telegruby 1.1.2 → 1.1.3

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/lib/telegruby.rb +98 -21
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e077b6dc134d14a53d7874fea939238cffe5ba0d
4
- data.tar.gz: 96dfbf65a75a08f346de5a56136b661a8ecdfd62
3
+ metadata.gz: a4744f23e0ac76fdbb1a66569aae506d9341c71f
4
+ data.tar.gz: 98ab4caddcbd8519580230568361b67ddaed4acf
5
5
  SHA512:
6
- metadata.gz: e29cb8af551bcd680dd0b1f8902b9fe0ce6b48ae5a5c72292cfd935edb936d99df4e6fb553494c38d87b9a3b837be101ebc3ee308deb578218722f9e2fb14ef6
7
- data.tar.gz: aa63bfd92bc4973d85470ed12663e59090684ce56a8272ceabfd0ca28ec9b8cf608e71572884fbd418151bcfeeee3545cbf009fee5e3fcfa4d7a4b5b6b77eb00
6
+ metadata.gz: d30ffe118c4e320a2122bfe517722859d0b3c3e660a8deb413d475cedbafb27d39f1e81537facc82094d4971f245c4955c3a0f29d8af4d010602506e48b29645
7
+ data.tar.gz: e1ad5cfa3245c652fd9921a6bf36638462c9ce3738b6ccf9affac4db863e0b907b282419458e1b9a3f8463f9a0a55cbfdef329057115272af79a74364c844043
data/lib/telegruby.rb CHANGED
@@ -13,16 +13,19 @@ module Telegruby
13
13
 
14
14
  # See https://core.telegram.org/bots/api for the full method list
15
15
 
16
- def get_updates(options = {}, error_callback = nil)
17
- if options == {}
18
- options = {
19
- :offset => @id
20
- }
21
- end
16
+ def get_updates(on_error: nil)
17
+ options = {
18
+ :offset => @id
19
+ }
22
20
 
23
21
  request = self.get_request("getUpdates", options)
24
22
  if request.code != 200
25
- return error_callback request
23
+ if on_error.nil?
24
+ puts "Failed to get updates: #{request}"
25
+ return nil
26
+ else
27
+ return on_error(request)
28
+ end
26
29
  end
27
30
  update = Update.new(JSON.parse(request.body, object_class: OpenStruct))
28
31
 
@@ -35,20 +38,25 @@ module Telegruby
35
38
  end
36
39
 
37
40
  # Send a plaintext message to a chat id
38
- def send_message(id, text, reply: nil, parse_mode: nil)
41
+ def send_message(id, text, reply: nil, parse_mode: nil, disable_preview: nil, reply_markup: nil)
39
42
  options = {
40
43
  :chat_id => id,
41
44
  :text => text
42
45
  }
43
46
 
47
+ if !parse_mode.nil?
48
+ options.merge!(:parse_mode => parse_mode)
49
+ end
50
+ if !disable_preview.nil?
51
+ options.merge!(:disable_preview => disable_preview)
52
+ end
44
53
  if !reply.nil?
45
54
  options.merge!(:reply_to_message_id => reply)
46
55
  end
47
-
48
- if !parse_mode.nil?
49
- options.merge!(:parse_mode => parse_mode)
56
+ if !reply_markup.nil?
57
+ options.merge!(:reply_markup => reply_markup)
50
58
  end
51
-
59
+
52
60
  self.get_request("sendMessage", options)
53
61
  end
54
62
 
@@ -63,7 +71,7 @@ module Telegruby
63
71
  end
64
72
 
65
73
  # Sends a photo message to a chat id
66
- def send_photo(id, filename: nil, file_id: nil, reply: nil)
74
+ def send_photo(id, filename: nil, file_id: nil, reply: nil, caption: nil, reply_markup: nil)
67
75
  options = {
68
76
  :chat_id => id,
69
77
  }
@@ -77,6 +85,14 @@ module Telegruby
77
85
  options.merge!(:reply_to_message_id => reply)
78
86
  end
79
87
 
88
+ if !caption.nil?
89
+ options.merge!(:caption => caption)
90
+ end
91
+
92
+ if !reply_markup.nil?
93
+ options.merge!(:reply_markup => reply_markup)
94
+ end
95
+
80
96
  self.post_request("sendPhoto", options)
81
97
  end
82
98
 
@@ -90,7 +106,7 @@ module Telegruby
90
106
  }
91
107
  end
92
108
 
93
- def send_voice(id, filename: nil, file_id: nil, reply: nil)
109
+ def send_voice(id, filename: nil, file_id: nil, reply: nil, reply_markup: nil)
94
110
  options = {
95
111
  :chat_id => id,
96
112
  }
@@ -104,10 +120,14 @@ module Telegruby
104
120
  options.merge!(:reply_to_message_id => reply)
105
121
  end
106
122
 
123
+ if !reply_markup.nil?
124
+ options.merge!(:reply_markup => reply_markup)
125
+ end
126
+
107
127
  self.post_request("sendVoice", options)
108
128
  end
109
129
 
110
- def send_sticker(id, file_id: nil, filename: nil, reply: nil)
130
+ def send_sticker(id, file_id: nil, filename: nil, reply: nil, reply_markup: nil)
111
131
  options = {
112
132
  :chat_id => id,
113
133
  }
@@ -121,10 +141,14 @@ module Telegruby
121
141
  options.merge!(:reply_to_message_id => reply)
122
142
  end
123
143
 
144
+ if !reply_markup.nil?
145
+ options.merge!(:reply_markup => reply_markup)
146
+ end
147
+
124
148
  self.post_request("sendSticker", options)
125
149
  end
126
150
 
127
- def send_audio(id, filename: nil, file_id: nil, reply: nil)
151
+ def send_audio(id, filename: nil, file_id: nil, reply: nil, reply_markup: nil)
128
152
  options = {
129
153
  :chat_id => id,
130
154
  }
@@ -138,10 +162,14 @@ module Telegruby
138
162
  options.merge!(:reply_to_message_id => reply)
139
163
  end
140
164
 
165
+ if !reply_markup.nil?
166
+ options.merge!(:reply_markup => reply_markup)
167
+ end
168
+
141
169
  self.post_request("sendAudio", options)
142
170
  end
143
171
 
144
- def send_video(id, filename: nil, file_id: nil, reply: nil)
172
+ def send_video(id, filename: nil, file_id: nil, reply: nil, reply_markup: nil)
145
173
  options = {
146
174
  :chat_id => id,
147
175
  }
@@ -155,10 +183,14 @@ module Telegruby
155
183
  options.merge!(:reply_to_message_id => reply)
156
184
  end
157
185
 
186
+ if !reply_markup.nil?
187
+ options.merge!(:reply_markup => reply_markup)
188
+ end
189
+
158
190
  self.post_request("sendVideo", options)
159
191
  end
160
192
 
161
- def send_location(id, lat, long, reply: nil)
193
+ def send_location(id, lat, long, reply: nil, reply_markup: nil)
162
194
  options = {
163
195
  :chat_id => id,
164
196
  :latitude => lat,
@@ -169,6 +201,10 @@ module Telegruby
169
201
  options.merge!(:reply_to_message_id => reply)
170
202
  end
171
203
 
204
+ if !reply_markup.nil?
205
+ options.merge!(:reply_markup => reply_markup)
206
+ end
207
+
172
208
  self.post_request("sendLocation", options)
173
209
  end
174
210
 
@@ -182,7 +218,7 @@ module Telegruby
182
218
  end
183
219
 
184
220
  # Sends a document by filename or file ID
185
- def send_document(id, filename: nil, file_id: nil, reply: nil)
221
+ def send_document(id, filename: nil, file_id: nil, reply: nil, reply_markup: nil)
186
222
  options = {
187
223
  :chat_id => id
188
224
  }
@@ -197,10 +233,14 @@ module Telegruby
197
233
  options.merge!(:reply_to_message_id => reply)
198
234
  end
199
235
 
236
+ if !reply_markup.nil?
237
+ options.merge!(:reply_markup => reply_markup)
238
+ end
239
+
200
240
  return self.post_request("sendDocument", options)
201
241
  end
202
242
 
203
- def get_userphoto(id, offset: nil, limit: nil)
243
+ def get_userphotos(id, offset: nil, limit: nil)
204
244
  options = {
205
245
  :user_id => id,
206
246
  :offset => offset,
@@ -221,6 +261,26 @@ module Telegruby
221
261
  return self.get_request("setWebhook", options)
222
262
  end
223
263
 
264
+ def get_file(file_id)
265
+ options = {
266
+ :file_id => file_id
267
+ }
268
+ return self.get_request("getFile", options)
269
+ end
270
+
271
+ def answer_inline_query(id, results, cache_time: 300, is_personal: false, next_offset: nil)
272
+ options = {
273
+ :inline_query_id => id,
274
+ :results => results,
275
+ :cache_time => cache_time,
276
+ :is_personal => is_personal,
277
+ }
278
+ if !next_offset.nil?
279
+ options.merge!(:next_offset => next_offset)
280
+ end
281
+ return self.get_request("answerInlineQuery", options)
282
+ end
283
+
224
284
  protected
225
285
 
226
286
  # Provides a generic method for GET requests.
@@ -232,6 +292,7 @@ module Telegruby
232
292
  def post_request(name, options = {})
233
293
  HTTMultiParty::post(@endpoint + name, query: options).body
234
294
  end
295
+
235
296
  end
236
297
 
237
298
  module_function
@@ -252,7 +313,7 @@ module Telegruby
252
313
  return false
253
314
  end
254
315
  end
255
-
316
+
256
317
  # Given an Update object, gets messages as structs.
257
318
  def collect_msgs(update)
258
319
  update.result.map { |msg|
@@ -288,6 +349,22 @@ module Telegruby
288
349
  self.message.chat.id
289
350
  end
290
351
 
352
+ def added?(username)
353
+ if self.message.new_chat_participant.nil?
354
+ false
355
+ else
356
+ self.message.new_chat_participant.username == username
357
+ end
358
+ end
359
+
360
+ def left?(username)
361
+ if self.message.left_chat_participant.nil?
362
+ false
363
+ else
364
+ self.message.left_chat_participant.username == username
365
+ end
366
+ end
367
+
291
368
  def body
292
369
  self.message.text
293
370
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telegruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - '"Lain"'
@@ -9,16 +9,16 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-07-17 00:00:00.000000000 Z
12
+ date: 2016-02-07 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Basic Telegram Bot API library, used for a few bots in the wild.
14
+ description: Telegram Bot API library, https://core.telegram.org/bots/api.
15
15
  email: lain@lain.org.uk
16
16
  executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - lib/telegruby.rb
21
- homepage: https://github.com/telegram-wired/telegruby
21
+ homepage: https://github.com/webgiorno/telegruby
22
22
  licenses:
23
23
  - MIT
24
24
  metadata: {}
@@ -41,5 +41,5 @@ rubyforge_project:
41
41
  rubygems_version: 2.4.8
42
42
  signing_key:
43
43
  specification_version: 4
44
- summary: Basic Telegram Bot API library.
44
+ summary: Telegram Bot API library.
45
45
  test_files: []