-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.rb
38 lines (31 loc) · 935 Bytes
/
main.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require 'pry'
require 'telegram/bot'
require_relative 'bot_logger'
require_relative 'settings'
require_relative 'storage'
require_relative 'duplicate_finder'
require_relative 'tiemurs_finder'
require_relative 'telegram_router'
require_relative 'message_builders/new_tiemur'
require_relative 'message_builders/top_tiemurs'
require_relative 'message_builders/database_size'
# Prepare
FileUtils.mkdir_p(Settings.get.storage_folder)
$0 = 'ruby_tiemur_bot'
# Sometimes, telegram fails because fuck you, that's why!
begin
Telegram::Bot::Client.new(Settings.get.telegram_token).run do |bot|
bot.listen do |message|
if response = TelegramRouter.new(message, bot).respond!
bot.api.public_send(
response[:method],
response[:params].merge(chat_id: message.chat.id)
)
end
end
end
rescue => e
BotLogger.warn("Telegram error! #{e.message}, #{e.backtrace}")
sleep(5)
retry
end