botup 0.2.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/lib/botup/bin/exec.erb +5 -1
- data/lib/botup/config/config.yml +1 -1
- data/lib/botup/templates/client.erb +23 -11
- data/lib/botup/templates/commands_manager.erb +0 -2
- data/lib/botup/templates/configurator.erb +23 -0
- data/lib/botup/templates/core_file.erb +5 -5
- data/lib/botup/templates/message_parser.erb +9 -1
- data/lib/botup/templates/responder.erb +23 -0
- data/lib/botup/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c603c0ddf02ac224105e1b3a0f9749ba8ed118b
|
4
|
+
data.tar.gz: 84b3c8721dd37268f33cf0e04e176e6ae7539e79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a322d7667d52598815b3b3c4eb51cfee014d853a9c3d5eec100363fbbb882aa694a3e236c34c28f2cc68c9358ad5d2ece2604168c7e644276248d10725f89ad
|
7
|
+
data.tar.gz: 8616548bbd8b66761bb906cff83a0118d4336ed07dd37e73ac4738a2d83e90baef2c40e5b281b1e78383424fe0c1bb30ee623eb1113b4d0852a5778aa17f654c
|
data/lib/botup/bin/exec.erb
CHANGED
data/lib/botup/config/config.yml
CHANGED
@@ -1 +1 @@
|
|
1
|
-
bot_token: '
|
1
|
+
bot_token: <%= ENV['YOUR_TELEGRAM_TOKEN'] %>
|
@@ -8,20 +8,32 @@ module <%= class_name %>
|
|
8
8
|
|
9
9
|
def start
|
10
10
|
begin
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
messenger = Messenger.new(api: bot.api, chat_id: message.chat.id)
|
15
|
-
response = CommandsManager.new(message: message, messenger: messenger).call
|
16
|
-
messenger.send_text(response)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
rescue Telegram::Bot::Exceptions::ResponseError => e
|
21
|
-
puts e
|
11
|
+
respond
|
12
|
+
rescue Telegram::Bot::Exceptions::ResponseError => exception
|
13
|
+
puts exception
|
22
14
|
sleep 1
|
23
15
|
retry # run again on telegram server error
|
24
16
|
end
|
25
17
|
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def run_client(&block)
|
22
|
+
Telegram::Bot::Client.run(token) do |bot|
|
23
|
+
yield bot if block_given?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def respond
|
28
|
+
run_client do |bot|
|
29
|
+
bot.listen do |message|
|
30
|
+
Responder.new(bot.api, message).call if message.text
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_updates(bot, next_offset)
|
36
|
+
bot.api.getUpdates(offset: next_offset, timeout: 20)
|
37
|
+
end
|
26
38
|
end
|
27
39
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module <%= class_name %>
|
2
|
+
module Configurator
|
3
|
+
CONFIG_PATH = 'config/config.yml'.freeze
|
4
|
+
|
5
|
+
module_function
|
6
|
+
|
7
|
+
def bot_token
|
8
|
+
loaded['bot_token']
|
9
|
+
end
|
10
|
+
|
11
|
+
def loaded
|
12
|
+
YAML.load(erb_result)
|
13
|
+
end
|
14
|
+
|
15
|
+
def yaml_file
|
16
|
+
File.read(CONFIG_PATH)
|
17
|
+
end
|
18
|
+
|
19
|
+
def erb_result
|
20
|
+
ERB.new(yaml_file).result
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -3,16 +3,16 @@ require 'yaml'
|
|
3
3
|
|
4
4
|
$:.unshift("#{Dir.pwd}/lib")
|
5
5
|
|
6
|
+
require '<%= snake_case_name %>/configurator'
|
6
7
|
require '<%= snake_case_name %>/client'
|
7
8
|
require '<%= snake_case_name %>/messenger'
|
8
9
|
require '<%= snake_case_name %>/message_parser'
|
9
10
|
require '<%= snake_case_name %>/commands_keeper'
|
10
11
|
require '<%= snake_case_name %>/commands_manager'
|
12
|
+
require '<%= snake_case_name %>/responder'
|
11
13
|
|
12
14
|
module <%= class_name %>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
Client.new(CONFIGURATION['bot_token']).start
|
17
|
-
end
|
15
|
+
def self.start_client
|
16
|
+
Client.new(Configurator.bot_token).start
|
17
|
+
end
|
18
18
|
end
|
@@ -17,9 +17,17 @@ module <%= class_name %>
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def parse_message
|
20
|
-
if
|
20
|
+
if message_present? && message_starts_with_slash?
|
21
21
|
message.text[1..-1].split(' ')
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
def message_present?
|
26
|
+
message.text && message.text.length > 1
|
27
|
+
end
|
28
|
+
|
29
|
+
def message_starts_with_slash?
|
30
|
+
message.text[0] == '/'
|
31
|
+
end
|
24
32
|
end
|
25
33
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module <%= class_name %>
|
2
|
+
class Responder
|
3
|
+
attr_reader :api, :message
|
4
|
+
|
5
|
+
def initialize(api, message)
|
6
|
+
@api, @message = api, message
|
7
|
+
end
|
8
|
+
|
9
|
+
def call
|
10
|
+
messenger.send_text(parsed_response)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def messenger
|
16
|
+
@messenger ||= Messenger.new(api: api, chat_id: message.chat.id)
|
17
|
+
end
|
18
|
+
|
19
|
+
def parsed_response
|
20
|
+
@parsed_response ||= CommandsManager.new(message: message, messenger: messenger).call
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/botup/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: botup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emil Shakirov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -49,9 +49,11 @@ files:
|
|
49
49
|
- lib/botup/templates/client.erb
|
50
50
|
- lib/botup/templates/commands_keeper.erb
|
51
51
|
- lib/botup/templates/commands_manager.erb
|
52
|
+
- lib/botup/templates/configurator.erb
|
52
53
|
- lib/botup/templates/core_file.erb
|
53
54
|
- lib/botup/templates/message_parser.erb
|
54
55
|
- lib/botup/templates/messenger.erb
|
56
|
+
- lib/botup/templates/responder.erb
|
55
57
|
- lib/botup/version.rb
|
56
58
|
homepage: https://github.com/vaihtovirta/botup
|
57
59
|
licenses:
|
@@ -73,9 +75,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
75
|
version: '0'
|
74
76
|
requirements: []
|
75
77
|
rubyforge_project:
|
76
|
-
rubygems_version: 2.
|
78
|
+
rubygems_version: 2.5.1
|
77
79
|
signing_key:
|
78
80
|
specification_version: 4
|
79
81
|
summary: Telegram bot boilerplate generator
|
80
82
|
test_files: []
|
81
|
-
has_rdoc:
|