action_bot 0.1.16 → 0.1.17

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: 95e26081f081110efb59027787e65ce2586b2fce6ae9e551d747df06e8cb96b0
4
- data.tar.gz: 50f545c38eebbfd76d4f4f5596a34b4961fc523ed5a42909afbe2fee5713b8e6
3
+ metadata.gz: 6cd02a083032cf1a30af35a8ce7bcce03388aa458c3a5d287e64da7180164806
4
+ data.tar.gz: c06bf08cf2a2309b25bfc447f61e452e22112c02a9d425ddb470d2e5458e444d
5
5
  SHA512:
6
- metadata.gz: 04e7223eb04b59df79696aa7a808669beaaae36210e382d8c365e4522940cb6023a0db092b6a3d2d0c6e2942df8a2906dfc128e09500f511575fcf43ae03491e
7
- data.tar.gz: 1e0e88ebad472f1d9e4ed0fb218fadbf2072d4c610108e9941c15f6d18d61a65c52264f6c80873a1a3f85498316c44ab5ba6108a1a17cbc0bb829f8b442ae23d
6
+ metadata.gz: 58dbd5b967385bf66d0b4d38e28f14af9c82e0132ddd1460bccbe59375f7306581d2eae577804d82db418638c5a1115bb3cd7bc870270f53de7bd96e8b6b226c
7
+ data.tar.gz: f726602ffa3fc327c238725bf93cc46d2bda35f9ba23803afec5b5477b1a0ee4c7453ee7764d53d4dc8752257540a4424b8ee0c70770f96264323f538db70dd6
@@ -0,0 +1,7 @@
1
+ require 'action_bot'
2
+
3
+ require_relative '../config/configuration'
4
+ require_relative '../bots/example_long_polling_bot'
5
+
6
+
7
+ ExampleLongPollingBot.call
@@ -0,0 +1,20 @@
1
+ require 'sinatra'
2
+ require 'action_bot'
3
+
4
+ require_relative '../config/configuration'
5
+ require_relative '../bots/example_webhook_bot'
6
+ use Rack::Logger
7
+
8
+ helpers do
9
+ def logger
10
+ request.logger
11
+ end
12
+ end
13
+
14
+ # Telegram requires GET endpoint to setup a webhook
15
+ get '/webhook' do
16
+ end
17
+
18
+ post '/webhook' do
19
+ # Do stuff with request here
20
+ end
@@ -0,0 +1,30 @@
1
+ class ExampleLongPollingBot < ActionBot::Base
2
+ def call
3
+ bot_runner.run do |bot|
4
+ ActionBot::Base.configure do |config|
5
+ config.bot = bot
6
+ end
7
+
8
+ bot.listen do |message|
9
+ @message = message
10
+ run
11
+ end
12
+ end
13
+ end
14
+
15
+ def self.call
16
+ new.call
17
+ end
18
+
19
+ def run
20
+ action hello: :world, params: {
21
+ tg_chat_id: tg_chat_id
22
+ }
23
+ end
24
+
25
+ private
26
+
27
+ def tg_chat_id
28
+ @message.chat.id
29
+ end
30
+ end
@@ -0,0 +1,21 @@
1
+ class ExampleWebhookBot < ActionBot::Base
2
+ def initialize
3
+ @api = Telegram::Bot::Api.new(AppConfigurator.config.token)
4
+ ActionBot::Base.configure do |config|
5
+ config.api = @api
6
+ end
7
+ end
8
+
9
+ def run(message)
10
+ @message = message
11
+
12
+ return unless message_legal?
13
+ catch(:done) do
14
+ on message == 'hello_world', hello: :world
15
+ end
16
+ end
17
+
18
+ def message_legal?
19
+ @message.respond_to?(:text) && @message.text
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ AppConfigurator.configure do |config|
2
+ # Configure bot
3
+ config.token = begin
4
+ YAML::load(IO.read('config/secrets/token.yml'))['telegram_bot_token']
5
+ rescue Errno::ENOENT
6
+ ENV["TOKEN"]
7
+ end
8
+
9
+ # Configure database
10
+ config.db_url = begin
11
+ YAML::load(IO.read('config/secrets/database.yml'))["database_url"]
12
+ rescue Errno::ENOENT
13
+ ENV["DATABASE_URL"]
14
+ end
15
+
16
+ # Configure i18n
17
+ config.i18n_locale = :en
18
+ config.i18n_load_path = Dir['config/secrets/locales.yml']
19
+ config.i18n_available_locales = %i[en]
20
+ end
@@ -0,0 +1 @@
1
+ database_url: postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
@@ -0,0 +1,2 @@
1
+ en:
2
+ hello_world: "Hello world!"
@@ -0,0 +1 @@
1
+ telegram_bot_token: your-tg-bot-token
@@ -0,0 +1,2 @@
1
+ class BotsController < ActionBot::Controller
2
+ end
@@ -0,0 +1,5 @@
1
+ class HelloController
2
+ def world
3
+ notify(params[:tg_chat_id], t('hello_world'))
4
+ end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Barseek
@@ -126,6 +126,16 @@ files:
126
126
  - lib/configuration/configurators/db_configurator.rb
127
127
  - lib/configuration/configurators/i18n_configurator.rb
128
128
  - lib/tasks/bot_scaffold.rake
129
+ - scaffolds/bin/example_long_polling_bot_runner.rb
130
+ - scaffolds/bin/example_webhook_bot_runner.rb
131
+ - scaffolds/bots/example_long_polling_bot.rb
132
+ - scaffolds/bots/example_webhook_bot.rb
133
+ - scaffolds/config/configuration.rb
134
+ - scaffolds/config/secrets/database.yml
135
+ - scaffolds/config/secrets/locales.yml
136
+ - scaffolds/config/secrets/token.yml
137
+ - scaffolds/controllers/bots_controller.rb
138
+ - scaffolds/controllers/hello_controller.rb
129
139
  homepage: https://rubygems.org/gems/hola
130
140
  licenses:
131
141
  - MIT