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