Explorar o código

Fix deep exploration with alt, improve logger

JoostSijm %!s(int64=5) %!d(string=hai) anos
pai
achega
d388b96fdf
Modificáronse 4 ficheiros con 22 adicións e 17 borrados
  1. 1 1
      app/__main__.py
  2. 6 7
      app/api.py
  3. 14 9
      app/app.py
  4. 1 0
      app/database.py

+ 1 - 1
app/__main__.py

@@ -3,7 +3,7 @@
 import time
 import sys
 
-from app import SCHEDULER, LOGGER, RESOURCE_NAMES, jobs
+from app import SCHEDULER, LOGGER, jobs
 
 
 if __name__ == '__main__':

+ 6 - 7
app/api.py

@@ -53,10 +53,9 @@ def deep_explorate(state_id, region_id, resource_type, amount, alt):
     state_div = soup.find_all('div', {'class': 'index_case_50'})[1]
     action = state_div.findChild()['action']
     current_state_id = int(re.sub('.*/', '', action))
-    params = {}
     LOGGER.info(
-        'Region belongs to state %s, current state %s',
-        state_id, current_state_id
+        '%s: region belongs to state %s, current state %s',
+        region_id, state_id, current_state_id
     )
     if current_state_id == state_id:
         json_data = {
@@ -72,8 +71,8 @@ def deep_explorate(state_id, region_id, resource_type, amount, alt):
             json=json_data
         )
         LOGGER.info(
-            'Created deep exploration law for %s in %s',
-            RESOURCE_IDS[resource_type], region_id
+            '%s: created deep exploration law for %s',
+            region_id, RESOURCE_IDS[resource_type]
         )
 
     response = requests.get(
@@ -92,6 +91,6 @@ def deep_explorate(state_id, region_id, resource_type, amount, alt):
         )
         LOGGER.info('Response: %s', result.text)
     LOGGER.info(
-        'Accepted deep exploration law for %s in %s',
-        RESOURCE_IDS[resource_type], region_id
+        '%s: accepted deep exploration law for %s',
+        region_id, RESOURCE_IDS[resource_type]
     )

+ 14 - 9
app/app.py

@@ -1,5 +1,6 @@
 """General function module"""
 
+import time
 import random
 from datetime import datetime, timedelta
 
@@ -11,14 +12,17 @@ def schedule_orders():
     """start deep exploration orders"""
     LOGGER.info('Start schedule orders')
     orders = database.get_orders()
+    for job in SCHEDULER.get_jobs():
+        print(job)
+        if 'deep_exploration' in job.id:
+            job.remove()
     for order in orders:
         schedule_order(order)
     LOGGER.info('Finish schedule orders')
 
-
 def sync_deep_exploration(region_id):
     """Check resources and refill if necessary"""
-    LOGGER.info('Sync deep exploration history for %s', region_id)
+    LOGGER.info('%s: sync deep exploration history', region_id)
     deep_explorations = api.download_deep_explorations(region_id)
     database.save_deep_explorations(region_id, deep_explorations)
 
@@ -29,14 +33,14 @@ def schedule_order(order):
         sync_deep_exploration(order.region_id)
         deep_exploration = database.get_active_deep_exploration(order.region_id)
     start_date = deep_exploration.until_date_time if deep_exploration else datetime.now()
-    max_seconds = 300
+    max_seconds = 5 # 300
     random_seconds = random.randint(0, max_seconds)
     scheduled_date = start_date + timedelta(seconds=random_seconds)
     LOGGER.info(
-        'Schedule deep exploration at %s for %s in %s',
+        '%s: schedule deep exploration at %s for %s',
+        order.region_id,
         scheduled_date.strftime("%Y-%m-%d %H:%M:%S"),
-        RESOURCE_IDS[order.resource_type],
-        order.region_id
+        RESOURCE_IDS[order.resource_type]
     )
     SCHEDULER.add_job(
         jobs.start_deep_exploration_order,
@@ -61,12 +65,13 @@ def start_deep_exploration(order_id):
         points = order_types[order.order_type](order)
         state = database.get_state(order.region_id)
         LOGGER.info(
-            'Deep explorate %s points for %s in %s',
+            '%s: deep explorate %s points for %s',
+            order.region_id,
             points,
-            RESOURCE_IDS[order.resource_type],
-            order.region_id
+            RESOURCE_IDS[order.resource_type]
         )
         api.deep_explorate(state.id, order.region_id, order.resource_type, points, True)
+    time.sleep(10)
     schedule_order(order)
 
 def get_max_points(order):

+ 1 - 0
app/database.py

@@ -81,6 +81,7 @@ def get_state(region_id):
         .join(State.state_regions) \
         .filter(StateRegion.region_id == region_id) \
         .filter(StateRegion.until_date_time == None) \
+        .order_by(StateRegion.from_date_time.desc()) \
         .first()
     session.close()
     return state