Merge pull request #325 from python-telegram-bot/examples

more robust echobot, let roboed go
This commit is contained in:
Rahiel Kasim 2016-06-12 17:08:15 +02:00 committed by GitHub
commit 9338f93d24
4 changed files with 11 additions and 53 deletions

View file

@ -129,11 +129,7 @@ code and building on top of it.
- `timerbot <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/timerbot.py>`_ uses the ``JobQueue`` to send timed messages. - `timerbot <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/timerbot.py>`_ uses the ``JobQueue`` to send timed messages.
Examples using only the pure API: - `echobot <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/legacy/echobot.py>`_ uses only the pure API to echo messages.
- `echobot <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/legacy/echobot.py>`_ replies back messages.
- `roboed <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/legacy/roboed.py>`_ talks to `Robô Ed <http://www.ed.conpet.gov.br/br/converse.php>`_.
Look at the examples on the `wiki <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Examples>`_ to see other bots the community has built. Look at the examples on the `wiki <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Examples>`_ to see other bots the community has built.

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,20 +36,17 @@ 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
message = update.message.text
if message: if update.message: # your bot can receive updates without messages
# Reply to the message # Reply to the message
bot.sendMessage(chat_id=chat_id, text=message) bot.sendMessage(chat_id=chat_id, text=update.message.text)
return update_id
if __name__ == '__main__': if __name__ == '__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()