mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 09:50:40 +08:00
chore.整理python定时demo
This commit is contained in:
1
src/Python/timed_start/requirements.txt
Normal file
1
src/Python/timed_start/requirements.txt
Normal file
@@ -0,0 +1 @@
|
||||
schedule
|
||||
@@ -1,10 +1,14 @@
|
||||
from operator import ne
|
||||
"""
|
||||
function: 定时启动 maa
|
||||
author: Black Cat Bon
|
||||
version: v2.0.1
|
||||
"""
|
||||
|
||||
import threading
|
||||
import time
|
||||
import schedule
|
||||
|
||||
import datetime
|
||||
from threading import Timer
|
||||
import json
|
||||
import pathlib
|
||||
import sys
|
||||
@@ -12,9 +16,11 @@ import re
|
||||
|
||||
from interface import Asst, Message
|
||||
|
||||
|
||||
def get_now_time():
|
||||
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
|
||||
def job():
|
||||
# print("I'm running on thread %s" % threading.current_thread())
|
||||
print("现在时间:" + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
||||
@@ -26,10 +32,11 @@ def job():
|
||||
asst.append_visit()
|
||||
asst.append_mall(True)
|
||||
asst.append_award()
|
||||
# asst.set_penguin_id('18688523')
|
||||
# asst.set_penguin_id('1234567')
|
||||
|
||||
asst.start()
|
||||
|
||||
|
||||
def run_threaded(job_func):
|
||||
job_thread = threading.Thread(target=job_func)
|
||||
job_thread.start()
|
||||
@@ -41,10 +48,11 @@ def get_target_time(input_time):
|
||||
target_time = input_time
|
||||
else:
|
||||
while True:
|
||||
input_str = input('Invalid time format, please input again!\n For example, 20:00 \n> ')
|
||||
input_str = input(
|
||||
'Invalid time format, please input again!\n For example, 20:00 \n> ')
|
||||
if (input_str == 'exit()'):
|
||||
sys.exit()
|
||||
|
||||
|
||||
matchObj = re.match('\d\d:\d\d', input_str)
|
||||
|
||||
if matchObj:
|
||||
@@ -56,16 +64,18 @@ def get_target_time(input_time):
|
||||
|
||||
return target_time
|
||||
|
||||
|
||||
def get_target_port(input_port):
|
||||
matchObj = re.match('\d\d\d\d', input_port)
|
||||
if matchObj:
|
||||
target_time = input_port
|
||||
else:
|
||||
while True:
|
||||
input_str = input('Invalid port format, please input again!\n For example, 5565 \n> ')
|
||||
input_str = input(
|
||||
'Invalid port format, please input again!\n For example, 5565 \n> ')
|
||||
if (input_str == 'exit()'):
|
||||
sys.exit()
|
||||
|
||||
|
||||
matchObj = re.match('\d\d\d\d', input_str)
|
||||
|
||||
if matchObj:
|
||||
@@ -88,11 +98,11 @@ if __name__ == "__main__":
|
||||
elif len(sys.argv) == 2:
|
||||
target_time = get_target_time(sys.argv[1])
|
||||
port = '5555'
|
||||
elif len(sys.argv) == 3:
|
||||
elif len(sys.argv) == 3:
|
||||
target_time = get_target_time(sys.argv[1])
|
||||
port = get_target_port(sys.argv[2])
|
||||
|
||||
# 声明asst
|
||||
# asst 的回调
|
||||
@Asst.CallBackType
|
||||
def my_callback(msg, details, arg):
|
||||
m = Message(msg)
|
||||
@@ -100,7 +110,6 @@ if __name__ == "__main__":
|
||||
|
||||
print(m, d, arg)
|
||||
|
||||
|
||||
dirname: str = (pathlib.Path.cwd()).__str__()
|
||||
asst = Asst(dirname=dirname, callback=my_callback)
|
||||
|
||||
@@ -118,6 +127,6 @@ if __name__ == "__main__":
|
||||
|
||||
# print('下次定时任务开始于:' + target_time)
|
||||
|
||||
while 1:
|
||||
while True:
|
||||
schedule.run_pending()
|
||||
time.sleep(1)
|
||||
@@ -1,123 +0,0 @@
|
||||
from operator import ne
|
||||
import threading
|
||||
import time
|
||||
import schedule
|
||||
|
||||
import datetime
|
||||
from threading import Timer
|
||||
import json
|
||||
import pathlib
|
||||
import sys
|
||||
import re
|
||||
|
||||
from interface import Asst, Message
|
||||
|
||||
def get_now_time():
|
||||
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
def job():
|
||||
# print("I'm running on thread %s" % threading.current_thread())
|
||||
print("现在时间:" + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
||||
|
||||
# asst.append_fight("LastBattle", 0, 0, 999)
|
||||
# asst.append_recruit(3, [4, 5], [3, 4, 5], True, False)
|
||||
# asst.append_infrast(1, ["Mfg", "Trade", "Control",
|
||||
# "Power", "Reception", "Office", "Dorm"], "Money", 0.1)
|
||||
# asst.append_visit()
|
||||
# asst.append_mall(True)
|
||||
asst.append_award()
|
||||
asst.set_penguin_id('18688523')
|
||||
|
||||
asst.start()
|
||||
|
||||
def run_threaded(job_func):
|
||||
job_thread = threading.Thread(target=job_func)
|
||||
job_thread.start()
|
||||
|
||||
|
||||
def get_target_time(input_time):
|
||||
matchObj = re.match('\d\d:\d\d', input_time)
|
||||
if matchObj:
|
||||
target_time = input_time
|
||||
else:
|
||||
while True:
|
||||
input_str = input('Invalid time format, please input again!\n For example, 20:00 \n> ')
|
||||
if (input_str == 'exit()'):
|
||||
sys.exit()
|
||||
|
||||
matchObj = re.match('\d\d:\d\d', input_str)
|
||||
|
||||
if matchObj:
|
||||
break
|
||||
else:
|
||||
print('Please input a valid time!')
|
||||
|
||||
target_time = input_str
|
||||
|
||||
return target_time
|
||||
|
||||
def get_target_port(input_port):
|
||||
matchObj = re.match('\d\d\d\d', input_port)
|
||||
if matchObj:
|
||||
target_time = input_port
|
||||
else:
|
||||
while True:
|
||||
input_str = input('Invalid port format, please input again!\n For example, 5565 \n> ')
|
||||
if (input_str == 'exit()'):
|
||||
sys.exit()
|
||||
|
||||
matchObj = re.match('\d\d\d\d', input_str)
|
||||
|
||||
if matchObj:
|
||||
break
|
||||
else:
|
||||
print('Please input a valid time!')
|
||||
|
||||
target_time = input_str
|
||||
|
||||
return target_time
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
global target_time
|
||||
global asst
|
||||
|
||||
if (len(sys.argv) == 1):
|
||||
target_time = '20:00'
|
||||
port = '5555'
|
||||
elif len(sys.argv) == 2:
|
||||
target_time = get_target_time(sys.argv[1])
|
||||
port = '5555'
|
||||
elif len(sys.argv) == 3:
|
||||
target_time = get_target_time(sys.argv[1])
|
||||
port = get_target_port(sys.argv[2])
|
||||
|
||||
# 声明asst
|
||||
@Asst.CallBackType
|
||||
def my_callback(msg, details, arg):
|
||||
m = Message(msg)
|
||||
d = json.loads(details.decode('utf-8'))
|
||||
|
||||
print(m, d, arg)
|
||||
|
||||
|
||||
dirname: str = (pathlib.Path.cwd()).__str__()
|
||||
asst = Asst(dirname=dirname, callback=my_callback)
|
||||
|
||||
print('version', asst.get_version())
|
||||
|
||||
if asst.catch_custom('127.0.0.1:' + port):
|
||||
print('连接成功')
|
||||
else:
|
||||
print('连接失败')
|
||||
exit()
|
||||
|
||||
schedule.every().day.at(target_time).do(run_threaded, job)
|
||||
# schedule.every(30).seconds.do(run_threaded, job)
|
||||
print("定时任务已设置,将于每天 " + target_time + " 运行")
|
||||
|
||||
# print('下次定时任务开始于:' + target_time)
|
||||
|
||||
while 1:
|
||||
schedule.run_pending()
|
||||
time.sleep(1)
|
||||
Reference in New Issue
Block a user