ソースを参照

Refactor two functions to the model module

Foppe Hemminga 6 年 前
コミット
d116fb4e7a
2 ファイル変更53 行追加44 行削除
  1. 2 43
      main.py
  2. 51 1
      model.py

+ 2 - 43
main.py

@@ -139,50 +139,9 @@ if __name__ == '__main__':
                 scratchings_for_database.append((scratching.venue, scratching.date,
                                                  scratching.race, scratching.horse))
 
-    long_message = ''
-    leftover_message = ''
-    for this_message in messages:
-        print('this_message: {}'.format(this_message))
-        leftover_message = this_message
-        # Append message if possible
-        if len(long_message) + len(this_message) < 5997:
-            if len(long_message) == 0:
-                long_message = this_message
-            else:
-                long_message += '\n' + this_message
-            leftover_message = ''
-        else:
-            # Send long message (max 6k characters)
-            print('Sending very long message')
-            view.broadcast(long_message)
-            # Best would be to now store horses that were just broadcast
-            long_message = this_message
-            leftover_message = ''
+    model.send_messages(messages)
+    model.store_scratched_horses(scratchings_for_database, db)
 
-    # Send all messages
-    if len(long_message) > 0:
-        print('Sending long_message')
-        view.broadcast(long_message)
-        long_message = ''
-
-    # Send only or last message
-    if len(leftover_message) > 0:
-        print('Sending leftover_message')
-        view.broadcast(leftover_message)
-        leftover_message = ''
-
-    query = """INSERT INTO horses(venue, race_date, race, horse) 
-    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:
-        cur3.execute(query, database_entry)
-        print('Stored: {}'.format(database_entry))
-        print(cur3.statusmessage)
-    cur3.close()
-
-    db.commit()
     db.close()
 
     interim = time.time()

+ 51 - 1
model.py

@@ -5,7 +5,9 @@ import _bs
 import pytz
 import datetime
 # import time
-# import psycopg2.extras
+import psycopg2.extras
+
+import view
 
 
 """
@@ -79,3 +81,51 @@ def convert_to_date(weird_string):
     calculated_date = datetime.datetime.strptime(str(now.year) + ' ' + weird_string, "%Y %A %d %b").date()
     # print(calculated_date)
     return calculated_date
+
+
+def send_messages(messages):
+    long_message = ''
+    leftover_message = ''
+    for this_message in messages:
+        print('this_message: {}'.format(this_message))
+        leftover_message = this_message
+        # Append message if possible
+        if len(long_message) + len(this_message) < 5997:
+            if len(long_message) == 0:
+                long_message = this_message
+            else:
+                long_message += '\n' + this_message
+            leftover_message = ''
+        else:
+            # Send long message (max 6k characters)
+            print('Sending very long message')
+            view.broadcast(long_message)
+            # Best would be to now store horses that were just broadcast
+            long_message = this_message
+            leftover_message = ''
+
+    # Send all messages
+    if len(long_message) > 0:
+        print('Sending long_message')
+        view.broadcast(long_message)
+        long_message = ''
+
+    # Send only or last message
+    if len(leftover_message) > 0:
+        print('Sending leftover_message')
+        view.broadcast(leftover_message)
+        leftover_message = ''
+
+
+def store_scratched_horses(horses, db):
+    query = """INSERT INTO horses(venue, race_date, race, horse) 
+    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 horses:
+        cur3.execute(query, database_entry)
+        print('Stored: {}'.format(database_entry))
+        print(cur3.statusmessage)
+    cur3.close()
+    db.commit()