forked from chainsaw_mcginny/RoosterReWrite
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
import asyncio
|
|
import contextlib
|
|
import logging
|
|
|
|
import click
|
|
|
|
from bot import Rooster
|
|
|
|
@contextlib.contextmanager
|
|
def setup_logging():
|
|
try:
|
|
# __enter__
|
|
logging.getLogger("discord").setLevel(logging.INFO)
|
|
logging.getLogger("discord.http").setLevel(logging.WARNING)
|
|
|
|
log = logging.getLogger()
|
|
log.setLevel(logging.INFO)
|
|
handler = logging.FileHandler(
|
|
filename="Rooster.log", encoding="utf-8", mode="w"
|
|
)
|
|
dt_fmt = "%Y-%m-%d %H:%M:%S"
|
|
fmt = logging.Formatter(
|
|
"[{asctime}] [{levelname:<7}] {name}: {message}", dt_fmt, style="{"
|
|
)
|
|
handler.setFormatter(fmt)
|
|
log.addHandler(handler)
|
|
|
|
yield
|
|
finally:
|
|
# __exit__
|
|
handlers = log.handlers[:]
|
|
for hdlr in handlers:
|
|
hdlr.close()
|
|
log.removeHandler(hdlr)
|
|
|
|
|
|
def run_bot():
|
|
loop = asyncio.get_event_loop()
|
|
log = logging.getLogger()
|
|
|
|
bot = Rooster()
|
|
bot.run()
|
|
|
|
|
|
@click.group(invoke_without_command=True)
|
|
@click.pass_context
|
|
def main(ctx):
|
|
if ctx.invoked_subcommand is None:
|
|
loop = asyncio.get_event_loop()
|
|
with setup_logging():
|
|
run_bot()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|