yield from self.sender.sendMessage('Done') response = yield from bot.sendPhoto(chat_id, f) # Let admin know :) #pprint(response) if (chat_id != admin_chat_id): yield from bot.sendPhoto(admin_chat_id, response['photo'][-1]['file_id']) self._count = 0 # Do some simple stuff for every message, to be paired with per_message() def simple_function(seed_tuple): bot, msg, id = seed_tuple content_type, chat_type, chat_id = telepot.glance(msg) if (chat_id != admin_chat_id): yield from bot.sendMessage(admin_chat_id,'Request from @'+msg['from']['username']) yield from bot.forwardMessage(admin_chat_id,chat_id, msg['message_id']) TOKEN = sys.argv[1] # get token from command-line bot = telepot.async.DelegatorBot(TOKEN, [ (per_chat_id(), create_open(MessageCounter, timeout=10)), (per_message(), call(simple_function)), ]) loop = asyncio.get_event_loop() loop.create_task(bot.message_loop()) print('Listening ...') loop.run_forever()
flavors=['inline_query', 'chosen_inline_result']) self._count = 0 def on_message(self, msg): self._count += 1 flavor = telepot.flavor(msg) print('%s %d: %d: %s: %s' % (type(self).__name__, self.id, self._count, flavor, telepot.glance(msg, flavor=flavor))) def on_close(self, exception): print('%s %d: closed' % (type(self).__name__, self.id)) TOKEN = sys.argv[1] bot = telepot. async .DelegatorBot(TOKEN, [ (per_chat_id(), create_open(ChatHandlerSubclass, timeout=10)), (per_from_id(), create_open(UserHandlerSubclass, timeout=20)), (per_inline_from_id(), create_open(UserHandlerSubclassInlineOnly, timeout=10)), ]) loop = asyncio.get_event_loop() loop.create_task(bot.messageLoop()) print('Listening ...') loop.run_forever()
def on_message(self, msg): self._count += 1 flavor = telepot.flavor(msg) print('%s %d: %d: %s: %s' % (type(self).__name__, self.id, self._count, flavor, telepot.glance(msg, flavor=flavor))) # Do some simple stuff for every message, to be paired with per_message() def simple_function(seed_tuple): bot, msg, id = seed_tuple print('Simply print:', msg) TOKEN = sys.argv[1] bot = telepot.async.DelegatorBot(TOKEN, [ (per_chat_id(), create_open(ChatHandlerSubclass, timeout=10)), (per_from_id(), create_open(UserHandlerSubclass, timeout=20)), (per_inline_from_id(), create_open(InlineUserHandlerSubclass, timeout=10)), (per_application(), create_open(OneInstanceOnly)), (per_message(), call(simple_function)), ]) loop = asyncio.get_event_loop() loop.create_task(bot.message_loop()) print('Listening ...')
guess = int(msg['text']) except ValueError: yield from self.sender.sendMessage('Give me a number, please.') return # check the guess against the answer ... if guess != self._answer: # give a descriptive hint hint = self._hint(self._answer, guess) yield from self.sender.sendMessage(hint) else: yield from self.sender.sendMessage('Correct!') self.close() @asyncio.coroutine def on_close(self, exception): if isinstance(exception, telepot.helper.WaitTooLong): yield from self.sender.sendMessage( 'Game expired. The answer is %d' % self._answer) bot = telepot. async .DelegatorBot(BOTKEY, [ (per_chat_id(), create_open(Player, timeout=10)), ]) loop = asyncio.get_event_loop() loop.create_task(bot.messageLoop()) print('Listening ...') loop.run_forever()
import asyncio import telepot from telepot.async.delegate import per_chat_id, create_open """ $ python3.5 countera.py <token> Count number of messages. Start over if silent for 10 seconds. """ class MessageCounter(telepot.async.helper.ChatHandler): def __init__(self, seed_tuple, timeout): super(MessageCounter, self).__init__(seed_tuple, timeout) self._count = 0 async def on_chat_message(self, msg): self._count += 1 await self.sender.sendMessage(self._count) TOKEN = sys.argv[1] # get token from command-line bot = telepot.async.DelegatorBot(TOKEN, [ (per_chat_id(), create_open(MessageCounter, timeout=10)), ]) loop = asyncio.get_event_loop() loop.create_task(bot.message_loop()) print('Listening ...') loop.run_forever()
guess = int(msg['text']) except ValueError: await self.sender.sendMessage('Give me a number, please.') return # check the guess against the answer ... if guess != self._answer: # give a descriptive hint hint = self._hint(self._answer, guess) await self.sender.sendMessage(hint) else: await self.sender.sendMessage('Correct!') self.close() async def on_close(self, exception): if isinstance(exception, telepot.exception.WaitTooLong): await self.sender.sendMessage('Game expired. The answer is %d' % self._answer) TOKEN = sys.argv[1] bot = telepot.async.DelegatorBot(TOKEN, [ (per_chat_id(), create_open(Player, timeout=10)), ]) loop = asyncio.get_event_loop() loop.create_task(bot.message_loop()) print('Listening ...') loop.run_forever()
@asyncio.coroutine def on_callback_query(self, msg): query_id, from_id, query_data = telepot.glance(msg, flavor='callback_query') print ('Callback Query:', query_id, from_id, query_data) if query_data == 'dailyupdates': yield from self.sender.sendMessage("Got it! \U0001f60d" "\nLet\'s start with the current headlines!") items = news_source.get_top_news(3) for item in items: print("Got an item") yield from self.sender.sendMessage("*{}*\n{}".format(item.title, item.description), parse_mode='Markdown') elif query_data == 'noupdates': yield from self.sender.sendMessage("Ok, I\'ll keep my mouth shut untill you ask me! \U0001f64a") news_source = NewsDataSource.NewsDataSource('http://s.nos.nl/extern/nieuws.json') TOKEN = sys.argv[1] # get token from command-line bot = telepot.async.DelegatorBot(TOKEN, [ (per_chat_id(), create_open(NosBot, timeout=10)), ]) loop = asyncio.get_event_loop() loop.create_task(bot.message_loop()) print('Listening ...') loop.run_forever()