Update atlas_builder.py and commander.py
This commit is contained in:
parent
80badca912
commit
20fb0b86f3
62
nullptr/atlas_builder.py
Normal file
62
nullptr/atlas_builder.py
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
from time import sleep
|
||||||
|
from nullptr.util import *
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
|
class AtlasBuilder:
|
||||||
|
def __init__(self, store, api):
|
||||||
|
self.store = store
|
||||||
|
self.api = api
|
||||||
|
self.stop_auto = False
|
||||||
|
|
||||||
|
def wait_for_stop(self):
|
||||||
|
input()
|
||||||
|
self.stop_auto = True
|
||||||
|
print('stopping...')
|
||||||
|
|
||||||
|
def run(self, page=1):
|
||||||
|
print('universe mode. hit enter to stop')
|
||||||
|
t = Thread(target=self.wait_for_stop)
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
self.all_systems(int(page))
|
||||||
|
print('manual mode')
|
||||||
|
|
||||||
|
def all_specials(self, waypoints):
|
||||||
|
for w in waypoints:
|
||||||
|
if self.stop_auto:
|
||||||
|
break
|
||||||
|
if 'MARKETPLACE' in w.traits:
|
||||||
|
self.api.marketplace(w)
|
||||||
|
print(f'marketplace at {w}')
|
||||||
|
sleep(0.5)
|
||||||
|
if w.type == 'JUMP_GATE':
|
||||||
|
self.api.jumps(w)
|
||||||
|
print(f'jumpgate at {w}')
|
||||||
|
|
||||||
|
def all_waypoints(self, systems):
|
||||||
|
for s in systems:
|
||||||
|
if self.stop_auto:
|
||||||
|
break
|
||||||
|
r = self.api.list_waypoints(s)
|
||||||
|
self.all_specials(r)
|
||||||
|
self.store.flush()
|
||||||
|
sleep(0.5)
|
||||||
|
|
||||||
|
|
||||||
|
def all_systems(self, start_page):
|
||||||
|
self.stop_auto = False
|
||||||
|
data = self.api.list_systems(start_page)
|
||||||
|
pages = total_pages(self.api.last_meta)
|
||||||
|
print(f'{pages} pages of systems')
|
||||||
|
print(f'page {1}: {len(data)} results')
|
||||||
|
self.all_waypoints(data)
|
||||||
|
self.store.flush()
|
||||||
|
|
||||||
|
for p in range(start_page+1, pages):
|
||||||
|
if self.stop_auto:
|
||||||
|
break
|
||||||
|
data = self.api.list_systems(p)
|
||||||
|
print(f'page {p}: {len(data)} systems')
|
||||||
|
self.all_waypoints(data)
|
||||||
|
sleep(0.5)
|
||||||
|
self.store.flush()
|
@ -8,6 +8,7 @@ from nullptr.api import Api
|
|||||||
from .util import *
|
from .util import *
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
from nullptr.atlas_builder import AtlasBuilder
|
||||||
|
|
||||||
class Commander(CommandLine):
|
class Commander(CommandLine):
|
||||||
def __init__(self, store_dir='data', agent=None):
|
def __init__(self, store_dir='data', agent=None):
|
||||||
@ -15,6 +16,7 @@ class Commander(CommandLine):
|
|||||||
self.store = Store(store_dir)
|
self.store = Store(store_dir)
|
||||||
self.agent = self.select_agent(agent)
|
self.agent = self.select_agent(agent)
|
||||||
self.api = Api(self.store, self.agent)
|
self.api = Api(self.store, self.agent)
|
||||||
|
self.atlas_builder = AtlasBuilder(self.store, self.api)
|
||||||
self.store.flush()
|
self.store.flush()
|
||||||
self.stop_auto= False
|
self.stop_auto= False
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@ -39,58 +41,8 @@ class Commander(CommandLine):
|
|||||||
def do_register(self, faction):
|
def do_register(self, faction):
|
||||||
self.api.register(faction.upper())
|
self.api.register(faction.upper())
|
||||||
|
|
||||||
def wait_for_stop(self):
|
|
||||||
input()
|
|
||||||
self.stop_auto = True
|
|
||||||
print('stopping...')
|
|
||||||
|
|
||||||
def do_universe(self, page=1):
|
def do_universe(self, page=1):
|
||||||
print('universe mode. hit enter to stop')
|
self.atlas_builder.run(page)
|
||||||
t = Thread(target=self.wait_for_stop)
|
|
||||||
t.daemon = True
|
|
||||||
t.start()
|
|
||||||
self.all_systems(int(page))
|
|
||||||
print('manual mode')
|
|
||||||
|
|
||||||
def all_specials(self, waypoints):
|
|
||||||
for w in waypoints:
|
|
||||||
if self.stop_auto:
|
|
||||||
break
|
|
||||||
if 'MARKETPLACE' in w.traits:
|
|
||||||
self.api.marketplace(w)
|
|
||||||
print(f'marketplace at {w}')
|
|
||||||
sleep(0.5)
|
|
||||||
if w.type == 'JUMP_GATE':
|
|
||||||
self.api.jumps(w)
|
|
||||||
print(f'jumpgate at {w}')
|
|
||||||
|
|
||||||
def all_waypoints(self, systems):
|
|
||||||
for s in systems:
|
|
||||||
if self.stop_auto:
|
|
||||||
break
|
|
||||||
r = self.api.list_waypoints(s)
|
|
||||||
self.all_specials(r)
|
|
||||||
self.store.flush()
|
|
||||||
sleep(0.5)
|
|
||||||
|
|
||||||
|
|
||||||
def all_systems(self, start_page):
|
|
||||||
self.stop_auto = False
|
|
||||||
data = self.api.list_systems(start_page)
|
|
||||||
pages = total_pages(self.api.last_meta)
|
|
||||||
print(f'{pages} pages of systems')
|
|
||||||
print(f'page {1}: {len(data)} results')
|
|
||||||
self.all_waypoints(data)
|
|
||||||
self.store.flush()
|
|
||||||
|
|
||||||
for p in range(start_page+1, pages):
|
|
||||||
if self.stop_auto:
|
|
||||||
break
|
|
||||||
data = self.api.list_systems(p)
|
|
||||||
print(f'page {p}: {len(data)} systems')
|
|
||||||
self.all_waypoints(data)
|
|
||||||
sleep(0.5)
|
|
||||||
self.store.flush()
|
|
||||||
|
|
||||||
def do_systems(self, page=1):
|
def do_systems(self, page=1):
|
||||||
r = self.api.list_systems(int(page))
|
r = self.api.list_systems(int(page))
|
||||||
|
Loading…
Reference in New Issue
Block a user