telegram_bot 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +50 -3
- data/example/bot.rb +2 -2
- data/lib/telegram_bot/bot.rb +2 -2
- data/lib/telegram_bot/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 346a299cac50693e640fa05f84230a3b287b8d5e
|
4
|
+
data.tar.gz: 72b1b56a15773f289c294f7c511e75feb5e3560d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bae1c4f717dfdb9f858ef37f14b96c2b09f4386eea894d4b204188cc1dc00c597d5daf32465356f16155fa105343d89ce7a63a4c32b01e730c58251a11fbe9e
|
7
|
+
data.tar.gz: 38a2b016b63e6a24f3d5a2b608dfde18f5d91662d478e3de3fc15f6095215e20be60e844dd3b7fc1335b376deb404c128031281467c00d0c41922f184a36fd4c
|
data/README.md
CHANGED
@@ -12,7 +12,7 @@ Please [collaborate](https://github.com/eljojo/telegram_bot/issues/new) with you
|
|
12
12
|
Add this line to your application's Gemfile (currently under development):
|
13
13
|
|
14
14
|
```ruby
|
15
|
-
gem 'telegram_bot'
|
15
|
+
gem 'telegram_bot'
|
16
16
|
```
|
17
17
|
|
18
18
|
And then execute:
|
@@ -26,8 +26,8 @@ Here's an example:
|
|
26
26
|
```ruby
|
27
27
|
require 'telegram_bot'
|
28
28
|
|
29
|
-
bot = TelegramBot.new('[YOUR TELEGRAM BOT TOKEN GOES HERE]')
|
30
|
-
bot.get_updates do |message|
|
29
|
+
bot = TelegramBot.new(token: '[YOUR TELEGRAM BOT TOKEN GOES HERE]')
|
30
|
+
bot.get_updates(fail_silently: true) do |message|
|
31
31
|
puts "@#{message.from.username}: #{message.text}"
|
32
32
|
command = message.get_command_for(bot)
|
33
33
|
|
@@ -63,6 +63,53 @@ You can find more info [here](https://core.telegram.org/bots).
|
|
63
63
|
|
64
64
|
![How to get Token](http://i.imgur.com/90ya4Oe.png)
|
65
65
|
|
66
|
+
## What else can it do?
|
67
|
+
|
68
|
+
you can pass options to the bot initializer:
|
69
|
+
```ruby
|
70
|
+
bot = TelegramBot.new(token: 'abc', logger: Logger.new(STDOUT), offset: 123, timeout: 20)
|
71
|
+
```
|
72
|
+
|
73
|
+
if you don't want to start the loop, don't pass a block to ``#get_updates`` and you'll get an array with the latest messages:
|
74
|
+
```ruby
|
75
|
+
messages = bot.get_updates(timeout: 30, offset: 123)
|
76
|
+
```
|
77
|
+
|
78
|
+
Because things can go wrong sometimes with the API, there's a ``fail_silently`` option that you can pass to ``#get_updates`` like this:
|
79
|
+
```ruby
|
80
|
+
bot.get_updates(fail_silently: true) do |message|
|
81
|
+
puts message.text
|
82
|
+
end
|
83
|
+
```
|
84
|
+
|
85
|
+
A message has several attributes:
|
86
|
+
```ruby
|
87
|
+
message = bot.get_updates.last
|
88
|
+
|
89
|
+
# message data
|
90
|
+
message.text # "hello moto"
|
91
|
+
message.date # Wed, 01 Jul 2015 09:52:54 +0200 (DateTime)
|
92
|
+
|
93
|
+
# reading user
|
94
|
+
message.from # TelegramBot::User
|
95
|
+
message.from.first_name # "Homer"
|
96
|
+
message.from.last_name # "Simpson"
|
97
|
+
message.from.username # "mr_x"
|
98
|
+
|
99
|
+
# channel
|
100
|
+
message.channel.id # 123123123 (telegram's id)
|
101
|
+
|
102
|
+
# reply
|
103
|
+
message.reply do |reply|
|
104
|
+
reply.text = "homer please clean the garage"
|
105
|
+
reply.send_with(bot)
|
106
|
+
end
|
107
|
+
# or
|
108
|
+
reply = message.reply
|
109
|
+
reply.text = "i'll do it after going to moe's"
|
110
|
+
bot.send_message(reply)
|
111
|
+
```
|
112
|
+
|
66
113
|
## Contributing
|
67
114
|
|
68
115
|
Bug reports and pull requests are welcome on GitHub at https://github.com/eljojo/telegram_bot. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
|
data/example/bot.rb
CHANGED
@@ -4,10 +4,10 @@ require 'logger'
|
|
4
4
|
|
5
5
|
logger = Logger.new(STDOUT, Logger::DEBUG)
|
6
6
|
|
7
|
-
bot = TelegramBot.new('YOUR KEY GOES HERE')
|
7
|
+
bot = TelegramBot.new(token: 'YOUR KEY GOES HERE', logger: logger)
|
8
8
|
logger.debug "starting telegram bot"
|
9
9
|
|
10
|
-
bot.get_updates do |message|
|
10
|
+
bot.get_updates(fail_silently: true) do |message|
|
11
11
|
logger.info "@#{message.from.username}: #{message.text}"
|
12
12
|
command = message.get_command_for(bot)
|
13
13
|
|
data/lib/telegram_bot/bot.rb
CHANGED
@@ -55,9 +55,9 @@ module TelegramBot
|
|
55
55
|
|
56
56
|
def get_last_updates(opts = {})
|
57
57
|
response = request(:getUpdates, offset: opts[:offset] || @offset, timeout: opts[:timeout] || @timeout)
|
58
|
-
if opts[:fail_silently]
|
58
|
+
if opts[:fail_silently] && (!response.ok? || !response.result)
|
59
59
|
logger.warn "error when getting updates. ignoring due to fail_silently."
|
60
|
-
return []
|
60
|
+
return []
|
61
61
|
end
|
62
62
|
updates = response.result.map{|raw_update| Update.new(raw_update) }
|
63
63
|
@offset = updates.last.id + 1 if updates.any?
|
data/lib/telegram_bot/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telegram_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- José Tomás Albornoz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|