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.
- checksums.yaml +4 -4
- data/bin/presbeus +46 -18
- metadata +47 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ded533ad46ea98b79efaf8d074aca6d41832f235
|
4
|
+
data.tar.gz: 70111cecb71ae253d4fcb99581669ef5262da956
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
65
|
-
puts "#{iden} #{name}"
|
66
|
-
end
|
100
|
+
puts table devices
|
67
101
|
when "threads"
|
68
|
-
threads
|
69
|
-
puts "#{id} #{recipients.join(",")}"
|
70
|
-
end
|
102
|
+
puts table threads command[1]
|
71
103
|
when "thread"
|
72
|
-
|
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.
|
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
|