wangsiyuan 2023-08-08 22:26:44 +08:00
parent 7b8652c02c
commit ab848035fc
12 changed files with 105 additions and 16 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (monitor)" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (adbMonitor)" project-jdk-type="Python SDK" />
</project> </project>

View File

@ -4,7 +4,7 @@
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" /> <excludeFolder url="file://$MODULE_DIR$/venv" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="jdk" jdkName="Python 3.9 (adbMonitor)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
</module> </module>

Binary file not shown.

40
cache/record.txt vendored
View File

@ -3,4 +3,42 @@
2023-08-05 16:18:39 2023-08-05 16:18:39
2023-08-05 16:35:21 2023-08-05 16:35:21
2023-08-05 16:51:34 2023-08-05 16:51:34
2023-08-05 17:03:17 2023-08-05 17:03:17
2023-08-05 17:22:21
2023-08-05 17:27:49
2023-08-05 17:33:23
2023-08-05 17:41:28
2023-08-05 17:45:57
2023-08-05 17:50:16
2023-08-05 17:57:55
2023-08-05 18:03:01
2023-08-07 12:06:32
2023-08-07 12:54:44
2023-08-07 13:08:40
2023-08-07 13:13:34
2023-08-07 13:22:38
2023-08-07 13:33:59
2023-08-07 13:44:37
2023-08-07 13:51:41
2023-08-07 13:58:42
2023-08-07 14:06:02
2023-08-07 14:36:10
2023-08-07 07:45:09
2023-08-07 08:19:47
2023-08-07 08:25:04
2023-08-07 08:38:54
2023-08-07 08:45:01
2023-08-07 08:49:49
2023-08-07 08:55:08
2023-08-07 09:00:53
2023-08-07 09:05:36
2023-08-07 09:10:41
2023-08-07 09:18:31
2023-08-07 09:26:42
2023-08-07 09:35:38
2023-08-07 09:40:33
2023-08-07 09:52:47
2023-08-07 09:59:44
2023-08-07 10:07:50
2023-08-07 10:14:39
2023-08-07 10:20:43

View File

@ -1,8 +1,9 @@
[Cache] [Cache]
cache_file_path = cache/record.txt cache_file_path = cache/record.txt
[General]
#timedifference成功拿取任务和现在的时间差大于此时间差重启ProxyMe
time_difference = 1800
[Database] [Database]
host = 192.168.2.20 host = 192.168.2.20

View File

@ -0,0 +1,6 @@
8AGX0SMQF
8AGX0SMQF
8AGX0SMQF
8AGX0SMQF
8AGX0SMQF

View File

@ -44,6 +44,6 @@ if __name__ == '__main__':
except KeyboardInterrupt: except KeyboardInterrupt:
pass pass
#
# if __name__ == '__main__': # if __name__ == '__main__':
# main() # main()

View File

@ -11,12 +11,12 @@ def run_adb_command(command_list):
def get_now_time(device): def get_now_time(device):
# adb shell date +%s # adb shell date +%s
output, status_code, error = run_adb_command(['adb', '-s', device, 'shell', 'date', '+%s']) output, status_code, error = run_adb_command(['adb', '-s', device, 'shell', 'date',"'+%Y-%m-%d %H:%M:%S'"])
if status_code == 0: if status_code == 0:
print(f"get_now_time output: {output}") print(f"get_now_time output: {output}")
logging.info(f"get now time output: {output}") logging.info(f"get now time output: {output}")
now_timestamp = int(output) now_time = output
return now_timestamp return now_time
else: else:
print(error) print(error)
logging.error(f"get now time error: {error}") logging.error(f"get now time error: {error}")
@ -100,4 +100,5 @@ def restart_ProxyMe(device):
return False return False
else: else:
print(f"stop autojs failed") print(f"stop autojs failed")
return False return False

View File

@ -16,3 +16,9 @@ def read_config_ini():
# return cache_file_path,database_config # return cache_file_path,database_config
return cache_file_path return cache_file_path
def read_time_difference():
file_path = './config.ini'
config = configparser.ConfigParser()
config.read(file_path)
time_difference = config.get("General","time_difference")
return time_difference

View File

@ -1,9 +1,10 @@
import logging import logging
import pytz
import modules.fileRW import modules.fileRW
from datetime import datetime from datetime import datetime
import modules.device import modules.device
import modules.command import modules.command
import modules.read_config
def convert_to_timestamp(string_time): def convert_to_timestamp(string_time):
# 定义日期时间格式 # 定义日期时间格式
date_format = "%Y-%m-%d %H:%M:%S" date_format = "%Y-%m-%d %H:%M:%S"
@ -39,10 +40,23 @@ def get_last_time():
return None return None
def str_to_timestamp(time_str):
format_str = "%Y-%m-%d %H:%M:%S"
try:
dt_object = datetime.strptime(time_str,format_str)
timestamp = dt_object.timestamp()
return timestamp
except ValueError as e:
logging.error(f"str_to_timestamp error: {e}")
print("Error:", e)
return None
def adb_get_now_time(device): def adb_get_now_time(device):
now_timestamp = modules.command.get_now_time(device) now_time = modules.command.get_now_time(device)
if now_timestamp != None: if now_time != None:
convert_timestamp(now_timestamp) now_timestamp = str_to_timestamp(now_time)
return now_timestamp return now_timestamp
else: else:
return None return None
@ -56,14 +70,15 @@ def monitor(device):
diff_timestamp = now_timestamp - last_line_timestamp diff_timestamp = now_timestamp - last_line_timestamp
print(f"diff_timestamp: {diff_timestamp},与上次成功获取任务时间差{int(diff_timestamp/60)}分钟") print(f"diff_timestamp: {diff_timestamp},与上次成功获取任务时间差{int(diff_timestamp/60)}分钟")
logging.info(f"{device}与上次成功获取任务时间差{int(diff_timestamp/60)}分钟") logging.info(f"{device}与上次成功获取任务时间差{int(diff_timestamp/60)}分钟")
if diff_timestamp >= 1800: time_difference = modules.read_config.read_time_difference()
if diff_timestamp >= time_difference:
success = modules.command.restart_ProxyMe(device) success = modules.command.restart_ProxyMe(device)
if success: if success:
return True return True
else: else:
return False return False
else: else:
print(f"时间差小于40分钟不执行重启ProxyMe") print(f"时间差小于{time_difference}分钟不执行重启ProxyMe")
return True return True
else: else:
print(f"get now timestamp: failed") print(f"get now timestamp: failed")

22
test.py Normal file
View File

@ -0,0 +1,22 @@
from datetime import datetime
def format_time_string(input_time_str):
try:
# 解析时区时间字符串为datetime对象
dt_object = datetime.strptime(input_time_str, "%a %b %d %H:%M:%S %Z %Y")
# 将datetime对象重新格式化为所需的字符串格式
formatted_time_str = dt_object.strftime("%Y-%m-%d %H:%M:%S")
return formatted_time_str
except ValueError as e:
print("Error: Invalid time format.")
return None
# 测试函数
input_time_str = "Mon Aug 7 09:33:39 BST 2023"
formatted_time = format_time_string(input_time_str)
if formatted_time is not None:
print(formatted_time)