pb-cli 0.3.0 → 0.3.1
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/Gemfile +2 -0
- data/Gemfile.lock +3 -3
- data/lib/pb/cli/device.rb +15 -7
- data/lib/pb/cli/push.rb +31 -13
- data/lib/pb/cli/utils.rb +58 -6
- data/lib/pb/cli/version.rb +1 -1
- data/pb-cli.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4ab9448679cc2513803963262826eb4f89b21cd
|
4
|
+
data.tar.gz: 4ff7a84e6f415bb073d249463bb6d0ab9572bc15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eeac3fca3367df6a7914c015ef016d22b66e227c1c71d3193877035936b118ab3032e9e2dea36191051aded66d25e5d13e2548bd4d81410089fd103b5a8bfdb2
|
7
|
+
data.tar.gz: 36a53918acfc698eaf4f4ad2cc9f015a22a111020851b52227ee23a68ddafcb8fba3fe10fd71d03e45fcd0d2801c460862deabea1a5ea380ec47d5a500d10f29
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pb-cli (0.3.
|
4
|
+
pb-cli (0.3.1)
|
5
5
|
rest-client (~> 1.8)
|
6
6
|
terminal-table (~> 1.5)
|
7
7
|
thor (~> 0.19)
|
@@ -44,9 +44,9 @@ PLATFORMS
|
|
44
44
|
ruby
|
45
45
|
|
46
46
|
DEPENDENCIES
|
47
|
-
bundler
|
47
|
+
bundler
|
48
48
|
pb-cli!
|
49
|
-
rake
|
49
|
+
rake
|
50
50
|
rest-client
|
51
51
|
rspec
|
52
52
|
terminal-table
|
data/lib/pb/cli/device.rb
CHANGED
@@ -8,18 +8,26 @@ module Pushbullet_CLI
|
|
8
8
|
class_option :token, :desc => "Access token"
|
9
9
|
|
10
10
|
desc "list", "Get a list of devices belonging to the current user."
|
11
|
+
method_option :format, :desc => "Accepted values: table, json. Default: table"
|
12
|
+
method_option :fields, :desc => "Limit the output to specific object fields."
|
11
13
|
def list
|
12
14
|
url = "https://api.pushbullet.com/v2/devices?active=true"
|
13
15
|
token = Utils::get_token( options )
|
16
|
+
cols = [ 'iden', 'nickname', 'created' ]
|
17
|
+
|
18
|
+
unless options[:fields].nil?
|
19
|
+
unless options[:fields].empty?
|
20
|
+
cols = options[:fields].split( /\s*,\s*/ )
|
21
|
+
end
|
22
|
+
end
|
14
23
|
|
15
24
|
result = Utils::send( url, token, "get" )
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
25
|
+
Utils::print( {
|
26
|
+
:format => options[:format],
|
27
|
+
:cols => cols,
|
28
|
+
:rows => result['devices'],
|
29
|
+
} )
|
30
|
+
end # end list
|
21
31
|
|
22
|
-
Utils:: print_table( [ "Iden", "Nickname", "Model" ], row )
|
23
|
-
end
|
24
32
|
end
|
25
33
|
end
|
data/lib/pb/cli/push.rb
CHANGED
@@ -10,6 +10,7 @@ module Pushbullet_CLI
|
|
10
10
|
desc "create <MESSAGE>", "Send a push to devices or another persons."
|
11
11
|
method_option :title, :desc => "Title of the notification."
|
12
12
|
method_option :device, :desc => "Iden of the target device to push."
|
13
|
+
method_option :url, :desc => "The url to open."
|
13
14
|
# method_option :person, :aliases => "-p", :desc => "Delete the file after parsing it"
|
14
15
|
def create( message = "" )
|
15
16
|
if File.pipe?( STDIN ) || File.select( [STDIN], [], [], 0 ) != nil then
|
@@ -20,23 +21,40 @@ module Pushbullet_CLI
|
|
20
21
|
token = Utils::get_token( options )
|
21
22
|
|
22
23
|
unless message.empty?
|
23
|
-
args =
|
24
|
-
|
25
|
-
"body" => message,
|
26
|
-
"title" => ( options[:title] ? options[:title] : "" )
|
27
|
-
}
|
28
|
-
|
29
|
-
unless options[:device].nil?
|
30
|
-
unless options[:device].empty?
|
31
|
-
args['device_iden'] = options[:device]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
24
|
+
args = Utils::get_push_args( options )
|
25
|
+
args['body'] = message
|
35
26
|
Utils::send( url, token, "post", args )
|
36
27
|
else
|
37
28
|
puts "Nothing to do."
|
38
29
|
end
|
39
|
-
end
|
30
|
+
end # end create
|
31
|
+
|
32
|
+
desc "list", "Request push history."
|
33
|
+
method_option :format, :desc => "Accepted values: table, json. Default: table"
|
34
|
+
method_option :fields, :desc => "Limit the output to specific object fields."
|
35
|
+
def list
|
36
|
+
url = "https://api.pushbullet.com/v2/pushes?active=true"
|
37
|
+
token = Utils::get_token( options )
|
38
|
+
cols = [ 'iden', 'type', 'title', 'created' ]
|
39
|
+
|
40
|
+
unless options[:fields].nil?
|
41
|
+
unless options[:fields].empty?
|
42
|
+
cols = options[:fields].split( /\s*,\s*/ )
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
result = Utils::send( url, token, "get" )
|
47
|
+
Utils::print( {
|
48
|
+
:format => options[:format],
|
49
|
+
:cols => cols,
|
50
|
+
:rows => result['pushes'],
|
51
|
+
} )
|
52
|
+
end # end list
|
40
53
|
|
41
54
|
end
|
42
55
|
end
|
56
|
+
|
57
|
+
# curl --header 'Access-Token: VeoW8P4oMACU46KXMYAA4f1ahIpRvB4E' \
|
58
|
+
# --data active=true \
|
59
|
+
# --get \
|
60
|
+
# https://api.pushbullet.com/v2/pushes
|
data/lib/pb/cli/utils.rb
CHANGED
@@ -3,24 +3,76 @@
|
|
3
3
|
|
4
4
|
require "yaml"
|
5
5
|
require "terminal-table"
|
6
|
+
require "date"
|
6
7
|
|
7
8
|
module Pushbullet_CLI
|
8
9
|
class Utils
|
9
10
|
class << self
|
10
11
|
|
12
|
+
def parse_row( cols, row )
|
13
|
+
table = []
|
14
|
+
cols.each{ |col|
|
15
|
+
if "created" == col || "modified" == col
|
16
|
+
val = Time.at( row[col] )
|
17
|
+
else
|
18
|
+
val = row[col]
|
19
|
+
end
|
20
|
+
table.push( val )
|
21
|
+
}
|
22
|
+
return table
|
23
|
+
end
|
24
|
+
|
25
|
+
def print( args )
|
26
|
+
if "json" == args[:format]
|
27
|
+
puts JSON.generate( args[:rows] )
|
28
|
+
else
|
29
|
+
table = args[:rows].map.with_index{ | row | parse_row( args[:cols], row ) }
|
30
|
+
Utils:: print_table( args[:cols], table )
|
31
|
+
end
|
32
|
+
end # end print
|
33
|
+
|
34
|
+
def get_push_args( options )
|
35
|
+
args = {}
|
36
|
+
|
37
|
+
unless options[:title].nil?
|
38
|
+
unless options[:title].empty?
|
39
|
+
args["title"] = options[:title]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
unless options[:device].nil?
|
44
|
+
unless options[:device].empty?
|
45
|
+
args["device_iden"] = options[:device]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
unless options[:url].nil?
|
50
|
+
unless options[:url].empty?
|
51
|
+
args["url"] = options[:url]
|
52
|
+
args["type"] = "link"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
if args["type"].nil?
|
57
|
+
args["type"] = "note"
|
58
|
+
end
|
59
|
+
|
60
|
+
return args
|
61
|
+
end # end get_push_args
|
62
|
+
|
11
63
|
def get_config
|
12
64
|
conf = {}
|
13
65
|
if File.exists?( File.join( ENV["HOME"], '.pb-cli/config.yml' ) )
|
14
|
-
|
66
|
+
config = YAML.load(
|
15
67
|
File.open(
|
16
68
|
File.join( ENV["HOME"], '.pb-cli/config.yml' ),
|
17
69
|
File::RDONLY
|
18
70
|
).read
|
19
71
|
)
|
20
|
-
conf.merge!(
|
72
|
+
conf.merge!( config ) if config.is_a?(Hash)
|
21
73
|
end
|
22
74
|
return conf
|
23
|
-
end
|
75
|
+
end # end get_config
|
24
76
|
|
25
77
|
def get_token( options )
|
26
78
|
token = ""
|
@@ -39,7 +91,7 @@ module Pushbullet_CLI
|
|
39
91
|
$stderr.puts "Please initialize an Access Token with `pb init <ACCESS-TOKEN>` or run command with `--token=<ACCESS-TOKEN>`."
|
40
92
|
exit 1
|
41
93
|
end
|
42
|
-
end
|
94
|
+
end # end get_token
|
43
95
|
|
44
96
|
def send( url, access_token, method = "post", args = {} )
|
45
97
|
begin
|
@@ -63,11 +115,11 @@ module Pushbullet_CLI
|
|
63
115
|
$stderr.puts e.message
|
64
116
|
exit 1
|
65
117
|
end
|
66
|
-
end
|
118
|
+
end # end send
|
67
119
|
|
68
120
|
def print_table( headers, rows )
|
69
121
|
puts Terminal::Table.new :headings => headers, :rows => rows
|
70
|
-
end
|
122
|
+
end # end print_table
|
71
123
|
|
72
124
|
end # end self
|
73
125
|
end # end Utils
|
data/lib/pb/cli/version.rb
CHANGED
data/pb-cli.gemspec
CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_development_dependency "bundler", "~> 1.10"
|
30
30
|
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
+
spec.add_development_dependency "rspec", "~> 3.3"
|
31
32
|
|
32
33
|
spec.add_dependency 'thor', '~> 0.19'
|
33
34
|
spec.add_dependency 'rest-client', '~> 1.8'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pb-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- miya0001
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.3'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: thor
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|