Quellcode durchsuchen

Merge branch 'master' into 'main'

Master

See merge request oloturia/damastodon!9
Mattioli vor 2 Jahren
Ursprung
Commit
e7e781e6a6
2 geänderte Dateien mit 17 neuen und 3 gelöschten Zeilen
  1. 12 2
      damastodon.py
  2. 5 1
      login.py

+ 12 - 2
damastodon.py

@@ -9,6 +9,7 @@ import os
 import time
 import sys
 import re
+import logging
 
 #configuration server
 api_url = sys.argv[1]
@@ -26,6 +27,8 @@ black_norm="◾ "
 black_knight="⚫ "
 empty="🟦 "
 
+#logging config
+logging.basicConfig(filename="/tmp/dama.log",level=logging.DEBUG)
 
 def cleanHTML(raw):
 	cleanText = re.sub(CLEANR, '',raw)
@@ -73,6 +76,7 @@ def check_message(notification):
 						start = pickle.load(f)
 				except FileNotFoundError:
 					mastodon.status_post("Hello @"+account+" \n unfortunately, your savegame is corrupted or missing",visibility="direct") #The file has moved or corrupted
+					logging.warning("%s file not found",account)
 					return
 				if start != "WAIT":
 					mastodon.status_post("Hello @"+account+" \n your request is not valid",visibility="direct") #The user that challenged us is playing a game with someone else
@@ -101,7 +105,13 @@ def check_message(notification):
 				return
 		else: #We are in a game, so movements are parsed and lobby commands are disabled
 			with open(save_position+account,"rb") as f:
-				start = pickle.load(f)
+				try:
+					start = pickle.load(f)
+				except EOFError: # Something went very wrong, file is corrupt?
+					mastodon.status_post("Hello @"+account+" \n unfortunately, your savegame is corrupted or missing",visibility="direct") #The file has been moved or is corrupted
+					os.remove(save_position+account)
+					logging.warning("%s file corrupted",account)
+					return
 				if start: #The game is started, load other parameters
 					black = pickle.load(f)
 					white = pickle.load(f)
@@ -155,7 +165,7 @@ def check_message(notification):
 
 if __name__ == "__main__":
 	if api_url[:4] != "http":
-		print("Invalid address.")
+		logging.error("Invalid address")
 		quit()
 	mastodon = login.login(api_url)
 	while True:

+ 5 - 1
login.py

@@ -1,8 +1,12 @@
 from mastodon import Mastodon
+import os
+
+fileDir = os.path.dirname(os.path.abspath(__file__))
+fileDir = fileDir +"/"
 
 def login(url):
 	mastodon = Mastodon(
-		access_token = "DAMA.SECRET",
+		access_token = fileDir+"DAMA.SECRET",
 		api_base_url = url
 	)	
 	return mastodon