from nullptr.command_line import CommandLine from nullptr.store import Store import argparse from nullptr.models.agent import Agent from nullptr.models.system import System from nullptr.models.waypoint import Waypoint from nullptr.api import Api from .util import * from time import sleep from threading import Thread from nullptr.atlas_builder import AtlasBuilder 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.atlas_builder = AtlasBuilder(self.store, self.api) self.store.flush() self.stop_auto= False 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_universe(self, page=1): self.atlas_builder.run(page) def do_systems(self, page=1): r = self.api.list_systems(int(page)) pprint(self.api.last_meta) def do_waypoints(self, system_str): system = self.store.get(System, system_str.upper()) r = self.api.list_waypoints(system) pprint(r) def do_marketplace(self, waypoint_str): waypoint = self.store.get(Waypoint, waypoint_str.upper()) r = self.api.marketplace(waypoint) def do_jumps(self, waypoint_str): waypoint = self.store.get(Waypoint, waypoint_str.upper()) r = self.api.jumps(waypoint) pprint(r)