예제 #1
0
def run_bot(token: str = None):
    click.secho('Starting minder bot...', fg='green')

    try:
        build_bot(use_token=token, start_bot=True)
    except Exception as ex:
        exc_info = get_stacktrace(ex)
        click.secho(f'Error running bot: {ex}', fg='red')
        click.secho(f'Stack Trace:\n{"".join(exc_info)}', fg='cyan')
        raise click.Abort()
    else:
        click.secho('Bot finished :)', fg='green')
예제 #2
0
파일: uwsgi.py 프로젝트: synistree/minder
def start_bot():
    logger.info('Starting minder Bot under uWSGI...')
    bot = build_bot(start_bot=True)
    loop = bot.loop

    try:
        loop.run_in_executor(None, app.run, kwargs={'reload': False, 'eager_loader': False})
        loop.run_until_complete(bot.start(Config.BOT_TOKEN))
        logger.info('Bot finished, exiting')
    except KeyboardInterrupt:
        logger.info('CTRL-C encountered, logging out and cleaning up')
        loop.run_until_complete(bot.logout())
        logger.info('Bot logout complete')
    finally:
        logger.info('Loop closing..')
        loop.close()
        logger.info('Loop closed, exiting.')
예제 #3
0
def run_both(token: str, host: str, port: int, use_reloader: bool):
    from minder.web.app import create_app

    token = token or Config.BOT_TOKEN

    click.secho('Starting minder web app and bot...', fg='green')

    bot = build_bot(use_token=token, start_bot=False)
    app = create_app(hostname=host, port=port, use_reloader=use_reloader)

    def int_handler():
        click.secho('In int_handler', fg='cyan')

    thr = threading.Thread(target=app.run, kwargs={'threaded': True})
    thr.daemon = True
    click.secho('Starting Flask application..', fg='green')
    thr.start()

    click.secho('Starting bot...', fg='green')
    bot.run(token)
    click.secho('Bot closing...', fg='green')
예제 #4
0
def test_start_bot():
    bot = build_bot(start_bot=False)
    with pytest.raises(discord.errors.LoginFailure):
        bot.run('asdf')
예제 #5
0
#!/usr/bin/env python

from minder.bot import build_bot
from minder.config import Config

if __name__ == '__main__':
    bot = build_bot(start_bot=False)
    bot.run(Config.BOT_TOKEN)