Bladeren bron

Working on fixing telegram messages

JoostSijm 5 jaren geleden
bovenliggende
commit
5df54f3249
3 gewijzigde bestanden met toevoegingen van 36 en 9 verwijderingen
  1. 2 2
      app/__main__.py
  2. 19 2
      app/app.py
  3. 15 5
      app/database.py

+ 2 - 2
app/__main__.py

@@ -24,8 +24,8 @@ if __name__ == '__main__':
     # app.graph()
     # get_resources(4001, datetime.now(), 0)
     # jobs.send_telegram_update(2788, '@vn_resources', 'gold')
-    # jobs.send_telegram_update(2788, '@vn_uranium_resources', 'uranium')
-    # sys.exit()
+    jobs.send_telegram_update(2788, '@vn_uranium_resources', 'uranium')
+    sys.exit()
 
     JOBS = job_storage.get_jobs()
     for job in JOBS:

+ 19 - 2
app/app.py

@@ -83,10 +83,27 @@ def max_refill_seconds(regions, limit, max_time):
 
 def send_telegram_update(state_id, group_id, resource_name):
     """Send resource update to telegram"""
-    date = datetime.now()
-    # date = datetime.today().replace(hour=18, minute=5) - timedelta(1)
     resource_id = RESOURCE_NAMES[resource_name]
+    # date = datetime.now()
+    date = datetime.today().replace(hour=17, minute=5) - timedelta(1)
+    print(date)
     message = database.get_work_percentage(state_id, resource_id, date, 1, 1)
+    date = datetime.today().replace(hour=18, minute=5) - timedelta(1)
+    print(date)
+    message = database.get_work_percentage(state_id, resource_id, date, 1, 1)
+    date = datetime.today().replace(hour=19, minute=5) - timedelta(1)
+    print(date)
+    message = database.get_work_percentage(state_id, resource_id, date, 1, 1)
+    date = datetime.today().replace(hour=20, minute=5) - timedelta(1)
+    print(date)
+    message = database.get_work_percentage(state_id, resource_id, date, 1, 1)
+    date = datetime.today().replace(hour=21, minute=5) - timedelta(1)
+    print(date)
+    message = database.get_work_percentage(state_id, resource_id, date, 1, 1)
+    date = datetime.today().replace(hour=22, minute=5) - timedelta(1)
+    print(date)
+    message = database.get_work_percentage(state_id, resource_id, date, 1, 1)
+    return
     if message:
         print(message)
         TELEGRAM_BOT.sendMessage(

+ 15 - 5
app/database.py

@@ -123,13 +123,21 @@ def get_work_percentage(state_id, resource_type, end_date_time, hours, times):
             seconds_left = time_left.seconds
         else:
             seconds_left = 86400
+        print(seconds_left)
         for region_id, stat in data[i]['stats'].items():
             if i+1 not in data or stat.region_id not in data[i+1]['stats']:
                 continue
             next_stat = data[i+1]['stats'][stat.region_id]
-            if seconds_left == 82800:
+            if seconds_left == 3600:
+                mined = next_stat.total() - stat.total()
+                required = stat.total() / (seconds_left / (hours * 3600))
+            elif seconds_left == 86400:
+                left = RESOURCE_MAX[resource_type] + next_stat.explored
+                mined = next_stat.total() - stat.total()
+                required = left / (seconds_left / (hours * 3600))
+            elif seconds_left == 82800:
                 mined = RESOURCE_MAX[resource_type] + next_stat.explored - stat.total()
-                required = next_stat.total() / (seconds_left / (hours * 3600))
+                required = stat.total() / (seconds_left / (hours * 3600))
             else:
                 mined = next_stat.total() - stat.total()
                 required = next_stat.total() / (seconds_left / (hours * 3600))
@@ -137,12 +145,14 @@ def get_work_percentage(state_id, resource_type, end_date_time, hours, times):
             if required != 0:
                 coefficient = 100 / RESOURCE_MAX[resource_type]
                 percentage = (mined / required - 1) * next_stat.total() * coefficient + 100
+            elif mined == 0:
+                percentage = 0
             else:
                 percentage = 100
             data[i]['progress'][stat.region_id] = percentage
-            # print('{:4} left: {:3} mined: {:3} required: {:6.2f} percentage: {:6.2f}'.format(
-            #     stat.region_id, next_stat.total(), mined, required, percentage
-            # ))
+            print('{:5} left: {:4} mined: {:4} required: {:6.2f} percentage: {:7.2f}'.format(
+                stat.region_id, stat.total(), mined, required, percentage
+            ))
 
     message_text = ''
     message_text += '{:15}: {:>8}\n'.format('region', 'workers')