pushbullet_client 0.0.4 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 637349004c915488377743896c07a428ef5fdd4bc2e49879573b5f0efbb2f1e2
4
- data.tar.gz: 6941d6cc16ab860c66e16ca6bff251811408dd55281f46ee8bba128852a4656e
3
+ metadata.gz: 1b61ec167511a70fe5f98c76377a38b5f811e8d6dd962107ce5abbf997c34867
4
+ data.tar.gz: 3ad3237081c2c3fe3da049843d2aacb9c9f56b29ab11bf05bd18f06b58598919
5
5
  SHA512:
6
- metadata.gz: 34d52875bc78520d4ed75196d856ea4eb1cda2d301b4cbe3e2bae07878daa6e9b92275c6ead66b4ecd344bac9cf66e44e1c9087c03b3c5787524406aac2039d8
7
- data.tar.gz: dafbdb01a475ed2341ebe5212805bfa6641e38adc66fb08ecf21eb2375bd9d822c54e6e3b8716da2dcbcdc5521ec98067d277089aae43d9d267d1eef257d73af
6
+ metadata.gz: 89f7a42c5288d0cb9cf5dcf34cdea7ed7f1ee1638f86e0405d2b1dc525c77f493bea35f2d70c5ba6b094a50297835a13ddcfb21d32b1ce77024b086dfddee8d4
7
+ data.tar.gz: 1385b5df261a067936564c92d2e29346eff160c219cd577f8d7b01217537035396ecc8e880f6cba1f7f30b43b36c1d6ca1b56878ee0edb4604796d347361beac
@@ -0,0 +1,18 @@
1
+ on:
2
+ pull_request: {}
3
+ push:
4
+ branches:
5
+ - main
6
+ - master
7
+ name: Semgrep
8
+ jobs:
9
+ semgrep:
10
+ name: Scan
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - uses: returntocorp/semgrep-action@v1
15
+ with:
16
+ auditOn: push
17
+ publishToken: ${{ secrets.SEMGREP_APP_TOKEN }}
18
+ publishDeployment: 607
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.1.0
data/Gemfile.lock ADDED
@@ -0,0 +1,111 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ pushbullet_client (0.0.8)
5
+ active_attr (~> 0.15.4)
6
+ httparty (~> 0.20.0)
7
+ nokogiri (~> 1.13.1)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionpack (7.0.1)
13
+ actionview (= 7.0.1)
14
+ activesupport (= 7.0.1)
15
+ rack (~> 2.0, >= 2.2.0)
16
+ rack-test (>= 0.6.3)
17
+ rails-dom-testing (~> 2.0)
18
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
19
+ actionview (7.0.1)
20
+ activesupport (= 7.0.1)
21
+ builder (~> 3.1)
22
+ erubi (~> 1.4)
23
+ rails-dom-testing (~> 2.0)
24
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
25
+ active_attr (0.15.4)
26
+ actionpack (>= 3.0.2, < 7.1)
27
+ activemodel (>= 3.0.2, < 7.1)
28
+ activesupport (>= 3.0.2, < 7.1)
29
+ activemodel (7.0.1)
30
+ activesupport (= 7.0.1)
31
+ activesupport (7.0.1)
32
+ concurrent-ruby (~> 1.0, >= 1.0.2)
33
+ i18n (>= 1.6, < 2)
34
+ minitest (>= 5.1)
35
+ tzinfo (~> 2.0)
36
+ addressable (2.8.0)
37
+ public_suffix (>= 2.0.2, < 5.0)
38
+ ansi (1.5.0)
39
+ builder (3.2.4)
40
+ coderay (1.1.3)
41
+ concurrent-ruby (1.1.9)
42
+ crack (0.4.5)
43
+ rexml
44
+ crass (1.0.6)
45
+ erubi (1.10.0)
46
+ hashdiff (1.0.1)
47
+ httparty (0.20.0)
48
+ mime-types (~> 3.0)
49
+ multi_xml (>= 0.5.2)
50
+ i18n (1.8.11)
51
+ concurrent-ruby (~> 1.0)
52
+ loofah (2.13.0)
53
+ crass (~> 1.0.2)
54
+ nokogiri (>= 1.5.9)
55
+ method_source (1.0.0)
56
+ mime-types (3.4.1)
57
+ mime-types-data (~> 3.2015)
58
+ mime-types-data (3.2022.0105)
59
+ minitest (5.15.0)
60
+ minitest-focus (1.3.1)
61
+ minitest (>= 4, < 6)
62
+ minitest-reporters (1.5.0)
63
+ ansi
64
+ builder
65
+ minitest (>= 5.0)
66
+ ruby-progressbar
67
+ mocha (1.13.0)
68
+ multi_xml (0.6.0)
69
+ nokogiri (1.13.1-x86_64-linux)
70
+ racc (~> 1.4)
71
+ pry (0.14.1)
72
+ coderay (~> 1.1)
73
+ method_source (~> 1.0)
74
+ public_suffix (4.0.6)
75
+ racc (1.6.0)
76
+ rack (2.2.3)
77
+ rack-test (1.1.0)
78
+ rack (>= 1.0, < 3)
79
+ rails-dom-testing (2.0.3)
80
+ activesupport (>= 4.2.0)
81
+ nokogiri (>= 1.6)
82
+ rails-html-sanitizer (1.4.2)
83
+ loofah (~> 2.3)
84
+ rake (13.0.6)
85
+ rexml (3.2.5)
86
+ ruby-progressbar (1.11.0)
87
+ timecop (0.9.4)
88
+ tzinfo (2.0.4)
89
+ concurrent-ruby (~> 1.0)
90
+ webmock (3.14.0)
91
+ addressable (>= 2.8.0)
92
+ crack (>= 0.3.2)
93
+ hashdiff (>= 0.4.0, < 2.0.0)
94
+
95
+ PLATFORMS
96
+ x86_64-linux
97
+
98
+ DEPENDENCIES
99
+ bundler (~> 2.3.5)
100
+ minitest (~> 5.15.0)
101
+ minitest-focus (~> 1.3.1)
102
+ minitest-reporters (~> 1.5.0)
103
+ mocha (~> 1.13.0)
104
+ pry (~> 0.14.1)
105
+ pushbullet_client!
106
+ rake (~> 13.0.6)
107
+ timecop (~> 0.9.1)
108
+ webmock (~> 3.14.0)
109
+
110
+ BUNDLED WITH
111
+ 2.3.5
@@ -1,8 +1,9 @@
1
1
  module Pushbullet
2
2
  module Chats
3
- def chats
3
+ def chats(params: {}, cursor: nil)
4
+ params = process_cursor(cursor, params: params)
4
5
  path = 'chats'
5
- authorise_and_send(http_method: :get, path: path)
6
+ authorise_and_send(http_method: :get, path: path, params: params)
6
7
  end
7
8
  end
8
9
  end
@@ -23,10 +23,11 @@ module Pushbullet
23
23
 
24
24
  attr_reader :key, :secret, :base_path, :port
25
25
 
26
- def initialize(access_token:, base_path: API_V2_BASE_PATH, port: 80)
26
+ def initialize(access_token:, base_path: API_V2_BASE_PATH, port: 80, limit: 500)
27
27
  @access_token = access_token
28
28
  @base_path = base_path
29
29
  @port = port
30
+ @limit = limit
30
31
  end
31
32
 
32
33
  def self.compatible_api_version
@@ -43,6 +44,12 @@ module Pushbullet
43
44
  def authorise_and_send(http_method:, path:, payload: {}, params: {})
44
45
  start_time = micro_second_time_now
45
46
 
47
+ if params.nil? || params.empty?
48
+ params = {}
49
+ end
50
+
51
+ params['limit'] = @limit
52
+
46
53
  response = HTTParty.send(
47
54
  http_method.to_sym,
48
55
  construct_base_path(path, params),
@@ -73,7 +80,8 @@ module Pushbullet
73
80
  {
74
81
  'start_time' => start_time,
75
82
  'end_time' => end_time,
76
- 'total_time' => total_time
83
+ 'total_time' => total_time,
84
+ 'cursor' => response.dig('cursor')
77
85
  }
78
86
  end
79
87
 
@@ -104,7 +112,7 @@ module Pushbullet
104
112
  def construct_base_path(path, params)
105
113
  constructed_path = "#{base_path}/#{path}"
106
114
 
107
- if params != {}
115
+ if params == {}
108
116
  constructed_path
109
117
  else
110
118
  "#{constructed_path}?#{process_params(params)}"
@@ -114,5 +122,11 @@ module Pushbullet
114
122
  def process_params(params)
115
123
  params.keys.map { |key| "#{key}=#{params[key]}" }.join('&')
116
124
  end
125
+
126
+ def process_cursor(cursor, params: {})
127
+ unless cursor.nil? || cursor.empty?
128
+ params['cursor'] = cursor
129
+ end
130
+ end
117
131
  end
118
132
  end
@@ -1,8 +1,9 @@
1
1
  module Pushbullet
2
2
  module Devices
3
- def devices
3
+ def devices(params: {}, cursor: nil)
4
+ params = process_cursor(cursor, params: params)
4
5
  path = 'devices'
5
- authorise_and_send(http_method: :get, path: path)
6
+ authorise_and_send(http_method: :get, path: path, params: params)
6
7
  end
7
8
  end
8
9
  end
@@ -1,14 +1,18 @@
1
1
  module Pushbullet
2
2
  module Permanents
3
3
  # See: https://stackoverflow.com/questions/38027963/pushbullet-api-thread-id-to-conversation-iden-for-sms
4
- def permanents(device_identity:)
4
+ def permanents(device_identity:, params: {}, cursor: nil)
5
+ params = process_cursor(cursor, params: params)
6
+
5
7
  path = "permanents/#{device_identity}_threads"
6
- authorise_and_send(http_method: :get, path: path)
8
+ authorise_and_send(http_method: :get, path: path, params: params)
7
9
  end
8
10
 
9
- def permanent_conversation(device_identity:, thread_id:)
11
+ def permanent_conversation(device_identity:, thread_id:, params: {}, cursor: nil)
12
+ params = process_cursor(cursor, params: params)
13
+
10
14
  path = "permanents/#{device_identity}_thread_#{thread_id}"
11
- authorise_and_send(http_method: :get, path: path)
15
+ authorise_and_send(http_method: :get, path: path, params: params)
12
16
  end
13
17
  end
14
18
  end
@@ -1,8 +1,16 @@
1
1
  module Pushbullet
2
2
  module Pushes
3
- def pushes
3
+ def pushes(params: {}, cursor: nil)
4
+ params = process_cursor(cursor, params: params)
4
5
  path = 'pushes'
5
- authorise_and_send(http_method: :get, path: path)
6
+ authorise_and_send(http_method: :get, path: path, params: params)
7
+ end
8
+
9
+ def self_pushes(params: {}, cursor: nil)
10
+ params = process_cursor(cursor, params: params.merge({ self: true }))
11
+
12
+ path = 'pushes'
13
+ authorise_and_send(http_method: :get, path: path, params: params)
6
14
  end
7
15
  end
8
16
  end
@@ -1,8 +1,9 @@
1
1
  module Pushbullet
2
2
  module Subscriptions
3
- def subscriptions
3
+ def subscriptions(params: {}, cursor: nil)
4
+ params = process_cursor(cursor, params: params)
4
5
  path = 'subscriptions'
5
- authorise_and_send(http_method: :get, path: path)
6
+ authorise_and_send(http_method: :get, path: path, params: params)
6
7
  end
7
8
  end
8
9
  end
@@ -1,8 +1,9 @@
1
1
  module Pushbullet
2
2
  module Texts
3
- def texts
3
+ def texts(params: {}, cursor: nil)
4
+ params = process_cursor(cursor, params: params)
4
5
  path = 'texts'
5
- authorise_and_send(http_method: :get, path: path)
6
+ authorise_and_send(http_method: :get, path: path, params: params)
6
7
  end
7
8
  end
8
9
  end
@@ -1,8 +1,9 @@
1
1
  module Pushbullet
2
2
  module Users
3
- def me
3
+ def me(params: {}, cursor: nil)
4
+ params = process_cursor(cursor, params: params)
4
5
  path = 'users/me'
5
- authorise_and_send(http_method: :get, path: path)
6
+ authorise_and_send(http_method: :get, path: path, params: params)
6
7
  end
7
8
  end
8
9
  end
@@ -1,3 +1,3 @@
1
1
  module Pushbullet
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.8'
3
3
  end
@@ -7,6 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.version = Pushbullet::VERSION
8
8
  spec.authors = ['trex22']
9
9
  spec.email = ['contact@jasonchalom.com']
10
+
10
11
  spec.summary = 'A client for using the Pushbullet API in Ruby.'
11
12
  spec.description = 'A client for using the Pushbullet API in Ruby. Built form their api documentation. https://docs.pushbullet.com/v10/#quick-start. This is an unofficial project.'
12
13
  spec.homepage = 'https://github.com/TRex22/pushbullet_client'
@@ -21,18 +22,18 @@ Gem::Specification.new do |spec|
21
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
23
  spec.require_paths = ['lib']
23
24
 
24
- spec.add_dependency 'active_attr', '~> 0.15'
25
- spec.add_dependency 'httparty', '~> 0.18'
26
- spec.add_dependency 'nokogiri', '~> 1.10.9'
25
+ spec.add_dependency "httparty", "~> 0.20.0"
26
+ spec.add_dependency "active_attr", "~> 0.15.4"
27
+ spec.add_dependency "nokogiri", "~> 1.13.1"
27
28
 
28
29
  # Development dependancies
29
- spec.add_development_dependency 'bundler', '~> 1.17'
30
- spec.add_development_dependency 'minitest', '~> 5.0'
31
- spec.add_development_dependency 'minitest-focus', '~> 1.1.2'
32
- spec.add_development_dependency 'minitest-reporters', '~> 1.4.2'
33
- spec.add_development_dependency 'mocha', '~> 1.11.2'
34
- spec.add_development_dependency 'pry', '~> 0.13'
35
- spec.add_development_dependency 'rake', '~> 13.0'
36
- spec.add_development_dependency 'timecop', '~> 0.9.1'
37
- spec.add_development_dependency 'webmock', '~> 3.8.3'
30
+ spec.add_development_dependency "bundler", "~> 2.3.5"
31
+ spec.add_development_dependency "rake", "~> 13.0.6"
32
+ spec.add_development_dependency "minitest", "~> 5.15.0"
33
+ spec.add_development_dependency "minitest-focus", "~> 1.3.1"
34
+ spec.add_development_dependency "minitest-reporters", "~> 1.5.0"
35
+ spec.add_development_dependency "timecop", "~> 0.9.1"
36
+ spec.add_development_dependency "mocha", "~> 1.13.0"
37
+ spec.add_development_dependency "pry", "~> 0.14.1"
38
+ spec.add_development_dependency "webmock", "~> 3.14.0"
38
39
  end
metadata CHANGED
@@ -1,183 +1,183 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pushbullet_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - trex22
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-25 00:00:00.000000000 Z
11
+ date: 2022-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: active_attr
14
+ name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.15'
19
+ version: 0.20.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
- version: '0.15'
26
+ version: 0.20.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: httparty
28
+ name: active_attr
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.18'
33
+ version: 0.15.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.18'
40
+ version: 0.15.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.10.9
47
+ version: 1.13.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.10.9
54
+ version: 1.13.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.17'
61
+ version: 2.3.5
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.17'
68
+ version: 2.3.5
69
69
  - !ruby/object:Gem::Dependency
70
- name: minitest
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '5.0'
75
+ version: 13.0.6
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '5.0'
82
+ version: 13.0.6
83
83
  - !ruby/object:Gem::Dependency
84
- name: minitest-focus
84
+ name: minitest
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.1.2
89
+ version: 5.15.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.1.2
96
+ version: 5.15.0
97
97
  - !ruby/object:Gem::Dependency
98
- name: minitest-reporters
98
+ name: minitest-focus
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.4.2
103
+ version: 1.3.1
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.4.2
110
+ version: 1.3.1
111
111
  - !ruby/object:Gem::Dependency
112
- name: mocha
112
+ name: minitest-reporters
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.11.2
117
+ version: 1.5.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 1.11.2
124
+ version: 1.5.0
125
125
  - !ruby/object:Gem::Dependency
126
- name: pry
126
+ name: timecop
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0.13'
131
+ version: 0.9.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0.13'
138
+ version: 0.9.1
139
139
  - !ruby/object:Gem::Dependency
140
- name: rake
140
+ name: mocha
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '13.0'
145
+ version: 1.13.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '13.0'
152
+ version: 1.13.0
153
153
  - !ruby/object:Gem::Dependency
154
- name: timecop
154
+ name: pry
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.9.1
159
+ version: 0.14.1
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.9.1
166
+ version: 0.14.1
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: webmock
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 3.8.3
173
+ version: 3.14.0
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 3.8.3
180
+ version: 3.14.0
181
181
  description: A client for using the Pushbullet API in Ruby. Built form their api documentation.
182
182
  https://docs.pushbullet.com/v10/#quick-start. This is an unofficial project.
183
183
  email:
@@ -186,9 +186,12 @@ executables: []
186
186
  extensions: []
187
187
  extra_rdoc_files: []
188
188
  files:
189
+ - ".github/workflows/semgrep.yml"
189
190
  - ".gitignore"
191
+ - ".ruby-version"
190
192
  - CODE_OF_CONDUCT.md
191
193
  - Gemfile
194
+ - Gemfile.lock
192
195
  - LICENSE
193
196
  - LICENSE.txt
194
197
  - README.md
@@ -227,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
230
  - !ruby/object:Gem::Version
228
231
  version: '0'
229
232
  requirements: []
230
- rubygems_version: 3.1.4
233
+ rubygems_version: 3.3.3
231
234
  signing_key:
232
235
  specification_version: 4
233
236
  summary: A client for using the Pushbullet API in Ruby.