Пример #1
0
          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()
Пример #2
0
                             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()
Пример #3
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)))

# 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 ...')
Пример #4
0
            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()
Пример #5
0
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()
Пример #6
0
           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()
Пример #7
0
          
    @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()