presbeus 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/presbeus +46 -18
  3. metadata +47 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24e38a877a37867af0dd1d00565d83fe39f9d10c
4
- data.tar.gz: 3a04c8b377b080b31b834df2ecbe8209b633a194
3
+ metadata.gz: ded533ad46ea98b79efaf8d074aca6d41832f235
4
+ data.tar.gz: 70111cecb71ae253d4fcb99581669ef5262da956
5
5
  SHA512:
6
- metadata.gz: 0f19f785f912a72764dcd5ae1846a5e8c85cb0282f11e2dc482516f777cafb9917f145863da65d236959b1b4491d63d72149a8faa30bc86f245d2e33ff41c19a
7
- data.tar.gz: 2cb5224e27ba02cf1e380bf8e2a170a6f74a0a0a950db9c277931c31144184007680895ede863e16862d2fe7045b60040b2708ae9891bf37d49b35237f2c6ddd
6
+ metadata.gz: 5701ba7f4dbd79757d6c4691e48986cca6a77eddb66a371f449cad98eef4fe9ba13bfe9add8d5c5e1568fba3c84fb407ff0462021a657a3483888a511264f096
7
+ data.tar.gz: 6b1db7b5b9a909f360ce3ef7c5292cd170dbec75f7a43db9f312f469628a8ce2fe9a3a784b87a8ed9ea1e79777c46d0ebfdb7d78bf01267cf46e979df17739d3
data/bin/presbeus CHANGED
@@ -3,6 +3,9 @@ require 'rest-client'
3
3
  require 'json'
4
4
  require 'yaml'
5
5
  require 'time_ago_in_words'
6
+ require 'terminal-table'
7
+ require 'highline'
8
+ require 'colorize'
6
9
 
7
10
  class Presbeus
8
11
 
@@ -20,17 +23,16 @@ class Presbeus
20
23
  end
21
24
 
22
25
  def devices
23
- Hash[get_v2("devices")["devices"].select do |device|
24
- device["icon"] == "phone"
25
- end.map do |device|
26
+ get_v2("devices")["devices"].map do |device|
26
27
  [device["iden"], device["model"]]
27
- end]
28
+ end
28
29
  end
29
30
 
30
31
  def threads iden
31
- Hash[get_v2("permanents/#{iden}_threads")["threads"].reverse.map do |thread|
32
- [thread["id"], thread["recipients"].map { |r| r["name"] }]
33
- end]
32
+ get_v2("permanents/#{iden}_threads")["threads"].reverse.map do |thread|
33
+ require 'awesome_print'
34
+ [thread["id"]] + thread["recipients"].map { |r| [r["address"], r["name"]] }.flatten
35
+ end
34
36
  end
35
37
 
36
38
  def thread device, id
@@ -58,22 +60,48 @@ class Presbeus
58
60
  @headers)
59
61
  end
60
62
 
63
+ def table rows, config = {}
64
+ t = Terminal::Table.new config.merge({:rows => rows})
65
+ t.style = { border_top: false, border_bottom: false, border_y: '' }
66
+ puts t
67
+ end
68
+
69
+ def wrap s, width
70
+ s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
71
+ end
72
+
73
+ def with_color string, width, background
74
+ lines = string.split("\n")
75
+ lines.map { |line| line.ljust(width).colorize(color: :black, background: background)}.join "\n"
76
+ end
77
+
78
+ def thread_with_two_columns_wrap device, id
79
+ width = HighLine::SystemExtensions.terminal_size[0] / 2 - 4
80
+ res = []
81
+ thread(device, id).reverse.each do |message|
82
+ text = [wrap(message["body"], width), ""]
83
+ date = ["\n#{Time.at(message["timestamp"]).ago_in_words}", ""]
84
+ if message["direction"] != "incoming"
85
+ text[0] = with_color text[0], width, :white
86
+ text.reverse!
87
+ date.reverse!
88
+ else
89
+ text[0] = with_color text[0], width, :green
90
+ end
91
+ res << date
92
+ res << text
93
+ end
94
+ res
95
+ end
96
+
61
97
  def run command
62
98
  case command[0]
63
99
  when "devices"
64
- devices.each do |iden, name|
65
- puts "#{iden} #{name}"
66
- end
100
+ puts table devices
67
101
  when "threads"
68
- threads(command[1]).each do |id, recipients|
69
- puts "#{id} #{recipients.join(",")}"
70
- end
102
+ puts table threads command[1]
71
103
  when "thread"
72
- thread(command[1], command[2]).reverse.each do |message|
73
- puts message["direction"] == "incoming" ? ">" : "<"
74
- puts " #{message["body"]}"
75
- puts " #{Time.at(message["timestamp"]).ago_in_words}"
76
- end
104
+ puts table thread_with_two_columns_wrap command[1], command[2]
77
105
  when "sms"
78
106
  send_sms command[1], command[2], command[3..-1].join(" ")
79
107
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: presbeus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olivier Abdesselam
@@ -14,28 +14,70 @@ dependencies:
14
14
  name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: time_ago_in_words
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: terminal-table
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: highline
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: colorize
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
39
81
  - !ruby/object:Gem::Version
40
82
  version: '0'
41
83
  description: Allows to view/send pushbullet SMS