소스 검색

Move commit to commit less often

Foppe Hemminga 6 년 전
부모
커밋
46844da0b7
2개의 변경된 파일26개의 추가작업 그리고 5개의 파일을 삭제
  1. 20 3
      main.py
  2. 6 2
      view.py

+ 20 - 3
main.py

@@ -59,6 +59,7 @@ if __name__ == '__main__':
 
         # compare retrieved scratchings with new data
         scratchings_for_database = []
+        messages = []
         for scratching in scratchings:
             found_in_database = False
             # if db_data is None:
@@ -132,13 +133,29 @@ if __name__ == '__main__':
                                                 scratching.horse)
                 print(message)
                 if broadcast:
-                    view.broadcast(message)
+                    messages.append(message)
+                    # view.broadcast(message)
                 # store new scratching
                 scratchings_for_database.append((scratching.venue, scratching.date,
                                                  scratching.race, scratching.horse))
+
+        long_message = ''
+        for this_message in messages:
+            # Append message if possible
+            if len(long_message) + len(this_message) < 5997:
+                long_message += '\n' + this_message
+            else:
+                # Send long message (max 6k characters)
+                view.broadcast(long_message)
+                long_message = this_message
+        # Send only or last message
+        if len(this_message) > 0:
+            view.broadcast(this_message)
+            this_message = ''
+
         query = """INSERT INTO horses(venue, race_date, race, horse) 
-            VALUES(%s, %s, %s, %s)
-            ON CONFLICT(venue, race_date, race, horse) DO NOTHING;"""
+        VALUES(%s, %s, %s, %s)
+        ON CONFLICT(venue, race_date, race, horse) DO NOTHING;"""
 
         cur3 = db.cursor(cursor_factory=psycopg2.extras.NamedTupleCursor)
         for database_entry in scratchings_for_database:

+ 6 - 2
view.py

@@ -1,5 +1,7 @@
 import os
 import datetime
+import sys
+
 import requests
 from dotenv import load_dotenv
 
@@ -14,9 +16,11 @@ def broadcast(this_message):
     load_dotenv()
     url = os.environ["BROADCAST_URL"]
     this_time = datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M')
-    json = {'content': this_time+': '+this_message}
+    json = {'content': this_time + ': ' + this_message}
     response = requests.post(url, json=json)
     if response.status_code in [200, 204]:
         print("Webhook executed")
     else:
-        print("status code {}: {}".format(response.status_code, response.content.decode("utf-8")))
+        print("status code {}: {}".format(response.status_code, response.content.decode("utf-8")))
+        if response.status_code == int(429):
+            sys.exit(1)