|
| 1 | +import logging |
| 2 | +import datetime |
| 3 | + |
1 | 4 | import telegram |
2 | | -from telegram.ext import Updater, Filters, MessageHandler |
| 5 | +from telegram.ext import Updater, Filters, MessageHandler, CommandHandler |
3 | 6 | from telegram import Bot, Update |
4 | 7 |
|
5 | 8 | import config |
@@ -44,11 +47,43 @@ def reply(bot, update): |
44 | 47 | ) |
45 | 48 |
|
46 | 49 |
|
47 | | -updater = Updater(config.TELEGRAM_BOT_TOKEN) |
48 | | -dp = updater.dispatcher |
| 50 | +def since(reference=datetime.datetime.now()): |
| 51 | + now = datetime.datetime.now() |
| 52 | + delta = now - reference |
| 53 | + buff = [] |
| 54 | + if delta.days: |
| 55 | + buff.append('{} days'.format(delta.days)) |
| 56 | + hours = delta.seconds // 3600 |
| 57 | + if hours > 0: |
| 58 | + buff.append('{} hours'.format(hours)) |
| 59 | + minutes = delta.seconds // 60 |
| 60 | + if minutes > 0: |
| 61 | + buff.append('{} minutes'.format(minutes)) |
| 62 | + seconds = delta.seconds % 60 |
| 63 | + buff.append('{} seconds'.format(seconds)) |
| 64 | + return ' '.join(buff) |
| 65 | + |
| 66 | + |
| 67 | +def status(bot, update): |
| 68 | + bot.send_message( |
| 69 | + chat_id=update.message.chat_id, |
| 70 | + text='Status is OK, running since {}'.format(since()) |
| 71 | + ) |
| 72 | + |
| 73 | + |
| 74 | +def main(): |
| 75 | + logging.basicConfig(level=logging.INFO) |
| 76 | + logging.info('Starting bot...') |
| 77 | + updater = Updater(config.TELEGRAM_BOT_TOKEN) |
| 78 | + dp = updater.dispatcher |
| 79 | + |
| 80 | + dp.add_handler(MessageHandler(Filters.status_update.new_chat_members, welcome)) |
| 81 | + dp.add_handler(MessageHandler(Filters.group, reply)) |
| 82 | + dp.add_handler(CommandHandler('status', status)) |
| 83 | + |
| 84 | + updater.start_polling() |
| 85 | + updater.idle() |
49 | 86 |
|
50 | | -dp.add_handler(MessageHandler(Filters.status_update.new_chat_members, welcome)) |
51 | | -dp.add_handler(MessageHandler(Filters.group, reply)) |
52 | 87 |
|
53 | | -updater.start_polling() |
54 | | -updater.idle() |
| 88 | +if __name__ == "__main__": |
| 89 | + main() |
0 commit comments