def run_bot(): from gevent import monkey monkey.patch_all() #patch_MessageTable() parser = argparse.ArgumentParser() parser.add_argument('--token', help="discord api auth token", default=None) parser.add_argument('--log-level', help='log level', default="INFO") if not os.path.exists(CONFIG_FILE): print("%s missing, pls fix" % CONFIG_FILE) exit() config = ClientConfig.from_file(CONFIG_FILE) args = parser.parse_args() if args.log_level: setup_logging(level=getattr(logging, args.log_level.upper())) if args.token is not None: config.token = args.token if not is_valid_token(config.token): print("the token '%s' isn't valid" % config.token) exit() client = Client(config) bot_config = BotConfig(config.bot) # get plugin files # todo: support multilevel nested plugins _, _, filenames = next(os.walk("plugins"), (None, None, [])) filenames.remove("__init__.py") # convert plugins from ayylmao.py to plugins.ayylmao filenames = ["plugins.%s" % os.path.splitext(p)[0] for p in filenames] # remove disabled plugins from plugin array filenames = [p for p in filenames if p not in config.disabled_plugins] bot_config.plugins = filenames if len(bot_config.plugins) > 0: print("discovered plugins:") for p in bot_config.plugins: print(" - %s" % p) else: print("no plugins found") bot = Bot(client, bot_config) bot.run_forever()
def run_shard(config, shard_id, pipe): setup_logging( level=logging.INFO, format='{} [%(levelname)s] %(asctime)s - %(name)s:%(lineno)d - %(message)s'.format(shard_id) ) config.shard_id = shard_id client = Client(config) bot = Bot(client, BotConfig(config.bot)) bot.sharder = GIPCProxy(bot, pipe) bot.shards = ShardHelper(config.shard_count, bot) bot.run_forever()
class RwrsBot: """The high-level class that wraps the RWRS Discord bot logic.""" def __init__(self): setup_logging(level=logging.WARNING) self.client_config = ClientConfig() self.client_config.token = app.config['DISCORD_BOT_TOKEN'] self.client = Client(self.client_config) self.bot = Bot(self.client) self.bot.add_plugin(RwrsBotDiscoPlugin) def run(self): """Actually run the RWRS Discord bot.""" self.bot.run_forever()
def disco_main(run=False): """ Creates an argument parser and parses a standard set of command line arguments, creating a new :class:`Client`. Returns ------- :class:`Client` A new Client from the provided command line arguments """ from gevent import monkey monkey.patch_all() from disco.client import Client, ClientConfig from disco.bot import Bot, BotConfig from disco.util.token import is_valid_token from disco.util.logging import setup_logging config = ClientConfig.from_file('config.yaml') if not is_valid_token(config.token): print('Invalid token passed') return setup_logging(level='WARN') client = Client(config) bot_config = BotConfig(config.bot) bot = Bot(client, bot_config) from db import ChartingDao bot.db = ChartingDao() bot.run_forever() return bot
from gevent.monkey import patch_all; patch_all() import logging from os import environ from disco.bot import Bot, BotConfig from disco.client import Client, ClientConfig from disco.util.logging import setup_logging setup_logging(level=logging.INFO) config = ClientConfig.from_file("config.json") config.token = environ['token'] client = Client(config) bot_config = BotConfig(config.bot) bot = Bot(client, bot_config) if __name__ == '__main__': bot.run_forever()