1.0版本(仅源代码与必要程序)
This commit is contained in:
112
run.py
Normal file
112
run.py
Normal file
@@ -0,0 +1,112 @@
|
||||
import os
|
||||
import sqlite3
|
||||
import datetime
|
||||
import time
|
||||
import json
|
||||
from termcolor import colored
|
||||
|
||||
def ifoff():
|
||||
while True:
|
||||
time.sleep(10)
|
||||
with open(logpath,'r',encoding='utf-8') as f:
|
||||
logs=f.readlines()[-1:-10:-1]
|
||||
log=''.join(logs)
|
||||
print(colored('\n'.join(logs[::-1]),"green"))
|
||||
if "任务已全部完成!" in log:
|
||||
return True
|
||||
elif ("请检查连接设置或尝试重启模拟器与 ADB 或重启电脑" in log) or ("已停止" in log):
|
||||
return False
|
||||
|
||||
def killpath(maapath):
|
||||
kpath='.\\mytaskkill.exe '
|
||||
for i in maapath:
|
||||
if i=='/':
|
||||
kpath=kpath+'\\'
|
||||
else:
|
||||
kpath=kpath+i
|
||||
return kpath
|
||||
|
||||
def runmaa(tel,game):
|
||||
with open(setpath,"r",encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
data["Configurations"]["Default"]["Start.AccountName"]=tel[:3]+"****"+tel[7:]
|
||||
week=str(datetime.datetime.now().strftime('%A'))
|
||||
if week=="Monday":
|
||||
data["Configurations"]["Default"]["MainFunction.Stage1"]="Annihilation"
|
||||
else:
|
||||
data["Configurations"]["Default"]["MainFunction.Stage1"]=game
|
||||
with open(setpath,"w",encoding="utf-8") as f:
|
||||
json.dump(data,f)
|
||||
os.system('start '+maapath)
|
||||
time.sleep(60)
|
||||
if ifoff():
|
||||
return True
|
||||
else:
|
||||
command=killpath(maapath)
|
||||
os.system(command)
|
||||
os.system('start '+maapath)
|
||||
time.sleep(60)
|
||||
if ifoff():
|
||||
return True
|
||||
else:
|
||||
command=killpath(maapath)
|
||||
os.system(command)
|
||||
return False
|
||||
|
||||
def updata(id):
|
||||
db=sqlite3.connect(DATABASE)
|
||||
cur=db.cursor()
|
||||
cur.execute("SELECT * FROM adminx WHERE admin='%s'" %(id))
|
||||
info=cur.fetchall()
|
||||
cur.execute("UPDATE adminx SET day=%d WHERE admin='%s'" %(info[0][2]-1,id))
|
||||
db.commit()
|
||||
cur.execute("UPDATE adminx SET last='%s' WHERE admin='%s'" %(curdate,id))
|
||||
print("upcurdate")
|
||||
db.commit()
|
||||
cur.close()
|
||||
db.close()
|
||||
return 0
|
||||
|
||||
#获取PATH与用户数据
|
||||
DATABASE="data/data.db"
|
||||
db=sqlite3.connect(DATABASE)
|
||||
cur=db.cursor()
|
||||
cur.execute("SELECT * FROM setting WHERE True")
|
||||
path=cur.fetchall()
|
||||
path=str(path[0][0])
|
||||
setpath=path+"/config/gui.json"
|
||||
logpath=path+"/debug/gui.log"
|
||||
maapath=path+"/MAA.exe"
|
||||
cur.execute("SELECT * FROM adminx WHERE True")
|
||||
data=cur.fetchall()
|
||||
data=[list(row) for row in data]
|
||||
cur.close()
|
||||
db.close()
|
||||
#开始执行
|
||||
curdate=datetime.date.today()
|
||||
curdate=curdate.strftime('%Y-%m-%d')
|
||||
idnew=[]
|
||||
idold=[]
|
||||
idfail=[]
|
||||
for i in range(len(data)):
|
||||
if data[i][3]=='y' and data[i][4]!=curdate and data[i][2]>0:
|
||||
book=runmaa(data[i][1],data[i][5])
|
||||
if book:
|
||||
updata(data[i][0])
|
||||
idnew.append(data[i][0])
|
||||
print(colored("已完成"+data[i][0]+"今日的代理","yellow"))
|
||||
else:
|
||||
idfail.append(data[i][0])
|
||||
print(colored("异常中止"+data[i][0]+"的代理","red"))
|
||||
for i in range(len(data)):
|
||||
if data[i][3]=='y' and data[i][4]==curdate and data[i][2]>0:
|
||||
book=runmaa(data[i][1],data[i][5])
|
||||
if book:
|
||||
idold.append(data[i][0])
|
||||
print(colored("已重复完成"+data[i][0]+"今日的代理","yellow"))
|
||||
with open("log.txt","w", encoding="utf-8") as f:
|
||||
print("任务结束,已完成数:"+str(len(idnew))+",未完成数:"+str(len(idfail))+",重复执行数:"+str(len(idold)),file=f)
|
||||
if len(idfail)!=0:
|
||||
print("代理未完成的用户:",file=f)
|
||||
for i in range(len(idfail)):
|
||||
print(idfail[i],file=f)
|
||||
Reference in New Issue
Block a user