Procházet zdrojové kódy

Improve code, rename functions

JoostSijm před 5 roky
rodič
revize
14cb394a22
4 změnil soubory, kde provedl 53 přidání a 51 odebrání
  1. 2 2
      app/__main__.py
  2. 18 17
      app/api.py
  3. 29 28
      app/app.py
  4. 4 4
      app/jobs.py

+ 2 - 2
app/__main__.py

@@ -7,9 +7,9 @@ from app import SCHEDULER, LOGGER, RESOURCE_NAMES, jobs
 
 
 if __name__ == '__main__':
-    # jobs.start_orders()
+    jobs.schedule_orders()
     # jobs.sync_deep_exploration(4002)
-    jobs.start_deep_exploration(1)
+    # jobs.start_deep_exploration_order(2)
     sys.exit()
 
     try:

+ 18 - 17
app/api.py

@@ -6,7 +6,7 @@ import requests
 from bs4 import BeautifulSoup
 from dateutil import parser
 
-from app import BASE_URL, HEADERS, LOGGER, RESOURCE_IDS, RESOURCE_NAMES 
+from app import BASE_URL, HEADERS, LOGGER, RESOURCE_IDS, RESOURCE_NAMES
 
 
 def download_deep_explorations(region_id):
@@ -38,7 +38,7 @@ def parse_deep_explorations(html):
         }
     return deep_explorations
 
-def deep_explorate(state_id, capital_id, resource_type, amount, alt):
+def deep_explorate(state_id, region_id, resource_type, amount, alt):
     """Main function"""
     response = requests.get(
         '{}main/content'.format(BASE_URL),
@@ -48,17 +48,13 @@ def deep_explorate(state_id, capital_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))
-    LOGGER.info('Current state %s', current_state_id)
     params = {}
-    if current_state_id != state_id:
-        LOGGER.info(
-            'Not in the correct state, %s instead of %s', 
-            current_state_id, state_id
-        )
-    else:
+    LOGGER.info(
+        'Region belongs to state %s, current state %s',
+        state_id, current_state_id
+    )
+    if current_state_id == state_id:
         params = {}
-        # if current_state_id != state_id:
-        #     params['alt'] = True
         if alt:
             params['alt'] = True
 
@@ -68,23 +64,24 @@ def deep_explorate(state_id, capital_id, resource_type, amount, alt):
 
         requests.post(
             '{}parliament/donew/34/{}_{}/{}'.format(
-                BASE_URL, resource_type, amount, capital_id
+                BASE_URL, resource_type, amount, region_id
             ),
             headers=HEADERS,
             params=params,
             json=json_data
         )
+        LOGGER.info(
+            'Created deep exploration law for %s in %s',
+            RESOURCE_IDS[resource_type], region_id
+        )
 
     response = requests.get(
-        '{}parliament/index/{}'.format(BASE_URL, capital_id),
+        '{}parliament/index/{}'.format(BASE_URL, region_id),
         headers=HEADERS
     )
     soup = BeautifulSoup(response.text, 'html.parser')
     active_laws = soup.find('div', {'id': 'parliament_active_laws'})
-    deep_exploration_name = RESOURCE_IDS[resource_type]
-    exploration_laws = active_laws.findAll(text='Deep exploration,')
-    LOGGER.info('Resources exploration: state, %s deep_explorations', deep_exploration_name)
-    for exploration_law in exploration_laws:
+    for exploration_law in active_laws.findAll(text='Deep exploration,'):
         action = exploration_law.parent.parent['action']
         action = action.replace('law', 'votelaw')
         result = requests.post(
@@ -93,3 +90,7 @@ def deep_explorate(state_id, capital_id, resource_type, amount, alt):
             headers=HEADERS
         )
         LOGGER.info('Response: %s', result.text)
+    LOGGER.info(
+        'Accepted deep exploration law for %s in %s',
+        RESOURCE_IDS[resource_type], region_id
+    )

+ 29 - 28
app/app.py

@@ -3,7 +3,7 @@
 import random
 from datetime import datetime, timedelta
 
-from app import LOGGER, SCHEDULER, RESOURCE_IDS, DEEP_EXPLORATION_MAX , jobs, api, database
+from app import LOGGER, SCHEDULER, RESOURCE_IDS, DEEP_EXPLORATION_MAX, jobs, api, database
 
 
 def sync_deep_exploration(region_id):
@@ -11,32 +11,36 @@ def sync_deep_exploration(region_id):
     deep_explorations = api.download_deep_explorations(region_id)
     database.save_deep_explorations(region_id, deep_explorations)
 
-def start_orders():
+def schedule_orders():
     """start deep exploration orders"""
     orders = database.get_orders()
     for order in orders:
+        schedule_order(order)
+
+def schedule_order(order):
+    """start deep exploration order"""
+    deep_exploration = database.get_active_deep_exploration(order.region_id)
+    if deep_exploration is None:
+        sync_deep_exploration(order.region_id)
         deep_exploration = database.get_active_deep_exploration(order.region_id)
-        if deep_exploration is None:
-            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
-        random_seconds = random.randint(0, max_seconds)
-        scheduled_date = start_date + timedelta(seconds=random_seconds)
-        LOGGER.info(
-            'Deep exploration at %s for %s in %s',
-            scheduled_date.strftime("%Y-%m-%d %H:%M"),
-            RESOURCE_IDS[order.resource_type],
-            order.region_id
-        )
-        SCHEDULER.add_job(
-            jobs.start_deep_exploration,
-            'date',
-            args=[order.id],
-            id='deep_exploration_{}_{}'.format(order.region_id, order.resource_type),
-            replace_existing=True,
-            run_date=scheduled_date
-        )
+    start_date = deep_exploration.until_date_time if deep_exploration else datetime.now()
+    max_seconds = 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',
+        scheduled_date.strftime("%Y-%m-%d %H:%M:%S"),
+        RESOURCE_IDS[order.resource_type],
+        order.region_id
+    )
+    SCHEDULER.add_job(
+        jobs.start_deep_exploration_order,
+        'date',
+        args=[order.id],
+        id='deep_exploration_{}_{}'.format(order.region_id, order.resource_type),
+        replace_existing=True,
+        run_date=scheduled_date
+    )
 
 def start_deep_exploration(order_id):
     """Start deep exploration"""
@@ -50,12 +54,9 @@ def start_deep_exploration(order_id):
     }
     if order.order_type in order_types:
         points = order_types[order.order_type](order)
-        print(points)
         state = database.get_state(order.region_id)
-        api.deep_explorate(
-            state.id, order.region_id, order.resource_type, points, False
-        )
-
+        api.deep_explorate(state.id, order.region_id, order.resource_type, points, False)
+    schedule_order(order)
 
 def get_max_points(order):
     """Get  deep exploration points for order"""

+ 4 - 4
app/jobs.py

@@ -7,10 +7,10 @@ def sync_deep_exploration(region_id):
     """Check resources and refill if necessary"""
     app.sync_deep_exploration(region_id)
 
-def start_orders():
-    """Start deep exploration orders"""
-    app.start_orders()
+def schedule_orders():
+    """Schedule deep exploration orders"""
+    app.schedule_orders()
 
-def start_deep_exploration(order_id):
+def start_deep_exploration_order(order_id):
     """Start deep exploration"""
     app.start_deep_exploration(order_id)