import sys import logging import argparse import asyncio from scheduling import OrderScheduler from orders import order_issue, order_check from telegram.telegram import handle_commands from telegram.commands import commands from db.queries import initdb logger = logging.getLogger(__name__) if __name__=='__main__': logging.basicConfig( format="%(asctime)s %(module)s [%(levelname)-4.4s] %(message)s", handlers=[ logging.StreamHandler(sys.stdout) ], level=logging.INFO) parser = argparse.ArgumentParser(description="Generate gear orders", prog='PROG') subparsers = parser.add_subparsers(help="Sub-command help", dest="command") parser_immediate = subparsers.add_parser('immediate', help='Immediately generate a command') parser_check = subparsers.add_parser('check', help="Checks if any orders are outstanding") parser_initdb = subparsers.add_parser('initdb', help="Creates the database tables") args = parser.parse_args() if args.command == 'immediate': loop = asyncio.new_event_loop() loop.run_until_complete(order_issue()) loop.close() elif args.command == 'check': loop = asyncio.new_event_loop() loop.run_until_complete(order_check()) loop.close() elif args.command == 'initdb': initdb() else: loop = asyncio.new_event_loop() s = OrderScheduler(loop) loop.run_until_complete(handle_commands( commands=commands, loop=loop )) loop.run_forever()