2025-11-14 04:03:20 +00:00
|
|
|
import sys
|
|
|
|
|
import logging
|
2025-11-14 04:03:20 +00:00
|
|
|
import argparse
|
2025-11-14 04:03:20 +00:00
|
|
|
import asyncio
|
2025-11-14 04:03:20 +00:00
|
|
|
|
2025-11-14 04:03:20 +00:00
|
|
|
from scheduling import OrderScheduler
|
|
|
|
|
from orders import order_issue, order_check
|
2025-11-14 04:03:20 +00:00
|
|
|
from telegram import handle_commands
|
2025-11-14 04:03:20 +00:00
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
2025-11-14 04:03:20 +00:00
|
|
|
if __name__=='__main__':
|
2025-11-14 04:03:20 +00:00
|
|
|
logging.basicConfig(
|
|
|
|
|
format="%(asctime)s %(module)s [%(levelname)-4.4s] %(message)s",
|
|
|
|
|
handlers=[
|
|
|
|
|
logging.StreamHandler(sys.stdout)
|
|
|
|
|
],
|
|
|
|
|
level=logging.INFO)
|
|
|
|
|
|
2025-11-14 04:03:20 +00:00
|
|
|
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')
|
2025-11-14 04:03:20 +00:00
|
|
|
parser_check = subparsers.add_parser('check', help="Checks if any orders are outstanding")
|
2025-11-14 04:03:20 +00:00
|
|
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
|
|
if args.command == 'immediate':
|
2025-11-14 04:03:20 +00:00
|
|
|
loop = asyncio.new_event_loop()
|
2025-11-14 04:03:20 +00:00
|
|
|
loop.run_until_complete(order_issue())
|
2025-11-14 04:03:20 +00:00
|
|
|
loop.close()
|
|
|
|
|
elif args.command == 'check':
|
|
|
|
|
loop = asyncio.new_event_loop()
|
2025-11-14 04:03:20 +00:00
|
|
|
loop.run_until_complete(order_check())
|
2025-11-14 04:03:20 +00:00
|
|
|
loop.close()
|
2025-11-14 04:03:20 +00:00
|
|
|
else:
|
|
|
|
|
loop = asyncio.new_event_loop()
|
|
|
|
|
s = OrderScheduler(loop)
|
2025-11-14 04:03:20 +00:00
|
|
|
loop.run_until_complete(handle_commands())
|
2025-11-14 04:03:20 +00:00
|
|
|
loop.run_forever()
|