def connect_bot():
    """
    Make new bot with default parse mode to HTML and disabled web page preview
    Make Dispatcher with PGPersistence and set JobQueue

    Return value: (dispatcher, bot, job_queue)
    """
    logger.info('Connecting bot...')
    new_bot = Bot(token=config.BOT_TOKEN,
                  defaults=Defaults(
                      disable_web_page_preview=True,
                      parse_mode=ParseMode.HTML,
                  ))
    jq = JobQueue()
    persistence = PGPersistence()
    dp = Dispatcher(
        bot=new_bot,
        update_queue=None,
        use_context=True,
        job_queue=jq,
        persistence=persistence,
    )
    jq.set_dispatcher(dp)
    jq.start()
    logger.info('Bot connected successfully')
    return dp, new_bot, jq
def main():
    mongoengine.connect(db=config.database.db, host=config.database.host,
                        port=config.database.port,
                        username=config.database.user,
                        password=config.database.password)

    start_handler = CommandHandler('start', commands)
    dispatcher.add_handler(start_handler)

    help_handler = CommandHandler('help', commands)
    dispatcher.add_handler(help_handler)

    register_handler = CommandHandler('register', register)
    dispatcher.add_handler(register_handler)

    info_handler = CommandHandler('info', info)
    dispatcher.add_handler(info_handler)

    balance_handler = CommandHandler('balance', balance)
    dispatcher.add_handler(balance_handler)

    balance_prefix_handler = PrefixHandler(COMMAND_PREFIX, 'balance', balance)
    dispatcher.add_handler(balance_prefix_handler)

    withdraw_handler = CommandHandler('withdraw', withdraw)
    dispatcher.add_handler(withdraw_handler)

    transfer_handler = CommandHandler('transfer', transfer)
    dispatcher.add_handler(transfer_handler)

    transfer_prefix_handler = PrefixHandler(COMMAND_PREFIX, 'transfer',
                                            transfer)
    dispatcher.add_handler(transfer_prefix_handler)

    tip_handler = CommandHandler('tip', tip)
    dispatcher.add_handler(tip_handler)

    tip_prefix_handler = PrefixHandler(COMMAND_PREFIX, 'tip', tip)
    dispatcher.add_handler(tip_prefix_handler)

    outputs_handler = CommandHandler('outputs', outputs)
    dispatcher.add_handler(outputs_handler)

    optimize_handler = CommandHandler('optimize', optimize)
    dispatcher.add_handler(optimize_handler)

    dispatcher.add_error_handler(handle_errors)

    jobqueue = JobQueue()
    jobqueue.set_dispatcher(dispatcher)
    jobqueue.run_repeating(update_balance_wallets,
                           config.wallet_balance_update_interval)
    jobqueue.start()

    updater.start_polling()
 def test_job_run(self, _dp, use_context):
     _dp.use_context = use_context
     job_queue = JobQueue()
     job_queue.set_dispatcher(_dp)
     if use_context:
         job = job_queue.run_repeating(self.job_context_based_callback, 0.02, context=2)
     else:
         job = job_queue.run_repeating(self.job_run_once, 0.02, context=2)
     assert self.result == 0
     job.run(_dp)
     assert self.result == 1
Example #4
0
def main():
    updater = Updater(token=FreeOnEpic.bot_token, use_context=True)
    dp = updater.dispatcher
    job_queue = JobQueue()
    job_queue.set_dispatcher(dp)
    job_queue.run_repeating(callback=FreeOnEpic.get_links, interval=600)
    logger.info('The bot has started')
    dp.add_handler(CommandHandler('freegame', FreeOnEpic.free_game))
    dp.add_handler(CommandHandler("help", FreeOnEpic.help_command))
    job_queue.start()
    updater.start_polling()
    updater.idle()
    def test_default_tzinfo(self, _dp, tz_bot):
        # we're parametrizing this with two different UTC offsets to exclude the possibility
        # of an xpass when the test is run in a timezone with the same UTC offset
        jq = JobQueue()
        original_bot = _dp.bot
        _dp.bot = tz_bot
        jq.set_dispatcher(_dp)
        try:
            jq.start()

            when = dtm.datetime.now(tz_bot.defaults.tzinfo) + dtm.timedelta(seconds=0.0005)
            jq.run_once(self.job_run_once, when.time())
            sleep(0.001)
            assert self.result == 1

            jq.stop()
        finally:
            _dp.bot = original_bot
Example #6
0
def main():
    try:
        vk_session = vk_api.VkApi(token=settings.VK_ACCESS_TOKEN)
        vk = vk_session.get_api()
        job_queue = JobQueue(vk)
        job_queue.start()
        upload = VkUpload(vk_session)

        long_poll = VkBotLongPoll(vk_session, settings.VK_GROUP_ID)

        for event in long_poll.listen():
            if event.type == VkBotEventType.MESSAGE_NEW:
                handle_message(vk, event, upload, job_queue)
            elif event.type == VkBotEventType.GROUP_JOIN:
                utils.send_referral_input(vk, event)
            elif event.type == VkBotEventType.GROUP_LEAVE:
                pass

    except Exception as exc:
        print(exc, file=sys.stderr)
        main()