presbeus 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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