51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from store import Store
|
|
from command_line import CommandLine
|
|
import argparse
|
|
from models.agent import Agent
|
|
from api import Api
|
|
from util import *
|
|
|
|
|
|
class Commander(CommandLine):
|
|
def __init__(self, store_dir='data', agent=None):
|
|
self.store_dir = store_dir
|
|
self.store = Store(store_dir)
|
|
self.agent = self.select_agent(agent)
|
|
self.api = Api(self.store, self.agent)
|
|
self.store.flush()
|
|
super().__init__()
|
|
|
|
def select_agent(self, agent_str):
|
|
if agent_str is not None:
|
|
return self.store.get(Agent, agent_str)
|
|
else:
|
|
agents = self.store.all('', Agent)
|
|
agent = next(agents, None)
|
|
if agent is None:
|
|
symbol = input('agent name: ')
|
|
agent = self.store.get(Agent, symbol)
|
|
return agent
|
|
|
|
def after_cmd(self):
|
|
self.store.flush()
|
|
|
|
def do_info(self):
|
|
pprint(self.api.info(), 100)
|
|
|
|
def do_register(self, faction):
|
|
self.api.register(faction.upper())
|
|
|
|
def do_systems(self, page=1):
|
|
self.api.list_systems(int(page))
|
|
|
|
def main(args):
|
|
c = Commander(args.store_dir, args.agent)
|
|
c.run()
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('-s', '--store-dir', default='data')
|
|
parser.add_argument('-a', '--agent', default=None)
|
|
args = parser.parse_args()
|
|
main(args)
|