more robust echobot, let roboed go

This commit is contained in:
Rahiel Kasim 2016-06-12 15:30:56 +02:00
parent 897f9615f0
commit 94fd6851ab
2 changed files with 10 additions and 45 deletions

View file

@ -1,16 +1,19 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Simple Bot to reply to Telegram messages # Simple Bot to reply to Telegram messages. This is built on the API wrapper, see
# echobot2.py to see the same example built on the telegram.ext bot framework.
# This program is dedicated to the public domain under the CC0 license. # This program is dedicated to the public domain under the CC0 license.
import logging import logging
import telegram import telegram
from telegram.error import NetworkError, Unauthorized from telegram.error import NetworkError, Unauthorized
from time import sleep from time import sleep
update_id = None
def main(): def main():
global update_id
# Telegram Bot Authorization Token # Telegram Bot Authorization Token
bot = telegram.Bot('TOKEN') bot = telegram.Bot('TOKEN')
@ -25,7 +28,7 @@ def main():
while True: while True:
try: try:
update_id = echo(bot, update_id) echo(bot)
except NetworkError: except NetworkError:
sleep(1) sleep(1)
except Unauthorized: except Unauthorized:
@ -33,21 +36,21 @@ def main():
update_id += 1 update_id += 1
def echo(bot, update_id): def echo(bot):
global update_id
# Request updates after the last update_id # Request updates after the last update_id
for update in bot.getUpdates(offset=update_id, timeout=10): for update in bot.getUpdates(offset=update_id, timeout=10):
# chat_id is required to reply to any message # chat_id is required to reply to any message
chat_id = update.message.chat_id chat_id = update.message.chat_id
update_id = update.update_id + 1 update_id = update.update_id + 1
if not update.message: # we ignore updates without messages
continue
message = update.message.text message = update.message.text
if message: if message:
# Reply to the message # Reply to the message
bot.sendMessage(chat_id=chat_id, text=message) bot.sendMessage(chat_id=chat_id, text=message)
return update_id
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View file

@ -1,38 +0,0 @@
#!/usr/bin/env python
# encoding: utf-8
#
# Robô Ed Telegram Bot
# This program is dedicated to the public domain under the CC0 license.
import logging
import telegram
import urllib
def main():
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
bot = telegram.Bot('TOKEN') # Telegram Bot Authorization Token
LAST_UPDATE_ID = bot.getUpdates()[-1].update_id # Get lastest update
while True:
for update in bot.getUpdates(offset=LAST_UPDATE_ID, timeout=10):
text = update.message.text
chat_id = update.message.chat.id
update_id = update.update_id
if text:
roboed = ed(text) # Ask something to Robô Ed
bot.sendMessage(chat_id=chat_id, text=roboed)
LAST_UPDATE_ID = update_id + 1
def ed(text):
url = 'http://www.ed.conpet.gov.br/mod_perl/bot_gateway.cgi?server=0.0.0.0%3A8085&charset_post=utf-8&charset=utf-8&pure=1&js=0&tst=1&msg=' + text
data = urllib.urlopen(url).read()
return data.strip()
if __name__ == '__main__':
main()