iaun 5 年 前
コミット
e744aeaa61
1 ファイル変更19 行追加13 行削除
  1. 19 13
      kaoqin.py

+ 19 - 13
kaoqin.py

@@ -13,8 +13,8 @@ TODAY = None
 TODAY_SUCCESS = False
 TODAY_EXEC_TIME = None
 
-d_start_time = None
-d_end_time = None
+# d_start_time = None
+# d_end_time = None
 
 def getHeader():
     return {
@@ -67,7 +67,7 @@ def f_getKq(session):
                 return f_submitKq(session, getObj(data['result']['sxid'], data['result']['xssxglid'], data['result']['data'][0]['lat'], data['result']['data'][0]['lng'], data['result']['data'][0]['title']))
             else:
                 print("[%s] %s" % (TODAY, data))
-                print("[%s] %s" % (TODAY, '缺少部分信息'))
+                print("[%s] %s" % (TODAY, '缺少部分信息,无法进行打卡'))
                 return False
     except Exception as e:
         print("[%s] %s" % (TODAY, e))
@@ -79,7 +79,7 @@ def f_submitKq(session, data):
             "xskqjlxxDTO": data,
             "_": getTime()
         }, headers=getHeader())
-        print("[%s] %s" % (TODAY, r.text))
+        print("[%s] 服务端数据:%s" % (TODAY, r.text))
         d = json.loads(r.text)
         if 'status' in d:
             if d['status'] == 200 or d['status'] == 300:
@@ -94,7 +94,6 @@ def getToday():
     return str(datetime.datetime.now().date())
 
 def getRandomTime():
-    global d_start_time, d_end_time
     d_start_time = datetime.datetime.strptime(TODAY+" %d:%d:00" % (config.START_TIME[0], config.START_TIME[1]), '%Y-%m-%d %H:%M:%S')
     d_end_time = datetime.datetime.strptime(TODAY+" %d:%d:59" % (config.END_TIME[0], config.END_TIME[1]), '%Y-%m-%d %H:%M:%S')
     i_start_time = int(time.mktime(d_start_time.timetuple()))
@@ -103,13 +102,13 @@ def getRandomTime():
     
 
 def f_start():
-    global TODAY_SUCCESS
     session = requests.session()
     success = f_login(session)
     if not success:
-        return
+        return False
     TODAY_SUCCESS = f_getKq(session)
-    print("[%s] %s %s" % (getToday(), TODAY_SUCCESS, datetime.datetime.now()))
+    print("[%s] %s %s" % (TODAY, ("成功" if TODAY_SUCCESS else "失败"), datetime.datetime.now()))
+    return TODAY_SUCCESS
 
 def f_loop():
     global TODAY, TODAY_SUCCESS, TODAY_EXEC_TIME
@@ -127,9 +126,13 @@ def f_loop():
                 time.sleep(5)
                 continue
             else:
-                print("[%s] 开始打卡时间:%s" % (TODAY, "now"))
-                f_start()
-                time.sleep(5)
+                print("[%s] 开始打卡时间:现在" % TODAY)
+                succ = f_start()
+                if not succ: # 失败等待1分钟后重试
+                    TODAY_EXEC_TIME = None
+                    time.sleep(60)
+                else:
+                    time.sleep(5)
                 continue
         
         if not TODAY == getToday():
@@ -140,8 +143,11 @@ def f_loop():
             print("[%s] 开始打卡时间:%s" % (TODAY, TODAY_EXEC_TIME))
 
         if now >= TODAY_EXEC_TIME and not TODAY_SUCCESS:
-            f_start()
-            time.sleep(5)
+            succ = f_start()
+            if not succ: # 失败等待1分钟后重试
+                time.sleep(60)
+            else:
+                time.sleep(5)
             continue
         
         time.sleep(5)