From 0facb2b3f684af92bb584fa326df9337a686a48e Mon Sep 17 00:00:00 2001 From: O1Si <45961392+O1Si@users.noreply.github.com> Date: Tue, 7 Sep 2021 09:07:31 +0800 Subject: [PATCH] Feat: logs file (#21) --- .env | 3 ++ README.md | 4 ++ miuitask.py | 99 +++++++++++++++++++++++++------------------------- utils/utils.py | 33 ++++++++++++----- 4 files changed, 81 insertions(+), 58 deletions(-) diff --git a/.env b/.env index 213fa92..8c7a468 100644 --- a/.env +++ b/.env @@ -14,3 +14,6 @@ BOARD_ID='' # 本脚本虽是模拟您的操作向社区发送请求,但仍不能保证绝对安全 # 如果您愿意自行承担一切风险,请将 N 改为 Y SIGN_IN='N' +# 保存程序日志到文件 +# 如果想保存日志到文件,请将 N 改为 Y +LOG_SAVE='N' diff --git a/README.md b/README.md index 26a03b5..520a69d 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,10 @@ - 本脚本虽是模拟您的操作向社区发送请求,但仍不能保证绝对安全 - 如果您愿意自行承担一切风险,请将 `N` 改为 `Y` - 示例: `SIGN_IN='Y'` +- 在配置文件 第19行 中配置是否开启 日志保存 + - 启用后将按照日期保存到 logs 目录中 + - 如果想保存日志到文件,请将 N 改为 Y + - 示例: `LOG_SAVE='Y'` - 确保网络正常且无代理服务器后,可以尝试在脚本目录下使用 `python3 miuitask.py` 命令运行脚本了 - GNU/Linux 和 MacOS 环境下首次运行前可能需要手动执行以下命令 ```bash diff --git a/miuitask.py b/miuitask.py index 24374aa..2b69330 100644 --- a/miuitask.py +++ b/miuitask.py @@ -5,7 +5,7 @@ import json from urllib import request from http import cookiejar -from utils.utils import system_info, get_config, w_log, conf_check +from utils.utils import system_info, get_config, w_log, s_log, conf_check # Config @@ -399,57 +399,58 @@ def mi_login(): if __name__ == "__main__": - w_log("MIUITask_v1.2.2") + w_log("MIUITask_v1.3") w_log('----------系统信息-开始-------------') system_info() w_log('----------系统信息-结束-------------') w_log("项目地址:https://github.com/0-8-4/miui-auto-tasks") w_log("欢迎star,感谢東雲研究所中的大佬") w_log('----------检测配置文件-------------') - conf_check(config) - w_log('----------------------------------') - w_log("开始登录小米账号") - if mi_login(): - w_log("本脚本支持社区签到,因该功能存在风险默认禁用") - w_log("如您愿意承担一切可能的后果,可编辑配置文件手动打开该功能") - if config.get('SIGN_IN'): - w_log("风社险功能提示:正在进行区签到") - vip_sign_in() - start_task("10106263") - w_log("正在完成BUG反馈任务") - new_announce("7") - w_log("3秒后执行提建议任务") - acquire_task("10106263") - time.sleep(3) - w_log("正在完成提建议任务") - new_announce("6") - w_log("正在完成满意度调查任务") - get_survey_id() - w_log("正在完成点赞任务") - start_task("10106256") - for i in range(0, 5): - thumb_up() - time.sleep(0.2) - cancel_thumb_up() - time.sleep(0.2) - acquire_task("10106256") - w_log("正在完成活跃分_关注任务") - start_task("10106261") - unfollow_user() - follow_user() - w_log("5秒后领取活跃分_关注任务") - time.sleep(5) - acquire_task("10106261") - w_log("正在完成活跃分_加圈任务") - start_task("10106262") - unfollow_board() - follow_board() - w_log("5秒后领取活跃分_加圈任务") - time.sleep(5) - acquire_task("10106262") - w_log("正在完成活跃分_发帖任务") - start_task("10106265") - new_announce("5") - w_log("5秒后领取活跃分_发帖任务") - time.sleep(5) - acquire_task("10106265") + if conf_check(config): + w_log('----------------------------------') + w_log("开始登录小米账号") + if mi_login(): + w_log("本脚本支持社区签到,因该功能存在风险默认禁用") + w_log("如您愿意承担一切可能的后果,可编辑配置文件手动打开该功能") + if config.get('SIGN_IN'): + w_log("风社险功能提示:正在进行区签到") + vip_sign_in() + start_task("10106263") + w_log("正在完成BUG反馈任务") + new_announce("7") + w_log("3秒后执行提建议任务") + acquire_task("10106263") + time.sleep(3) + w_log("正在完成提建议任务") + new_announce("6") + w_log("正在完成满意度调查任务") + get_survey_id() + w_log("正在完成点赞任务") + start_task("10106256") + for i in range(0, 5): + thumb_up() + time.sleep(0.2) + cancel_thumb_up() + time.sleep(0.2) + acquire_task("10106256") + w_log("正在完成活跃分_关注任务") + start_task("10106261") + unfollow_user() + follow_user() + w_log("5秒后领取活跃分_关注任务") + time.sleep(5) + acquire_task("10106261") + w_log("正在完成活跃分_加圈任务") + start_task("10106262") + unfollow_board() + follow_board() + w_log("5秒后领取活跃分_加圈任务") + time.sleep(5) + acquire_task("10106262") + w_log("正在完成活跃分_发帖任务") + start_task("10106265") + new_announce("5") + w_log("5秒后领取活跃分_发帖任务") + time.sleep(5) + acquire_task("10106265") + s_log() diff --git a/utils/utils.py b/utils/utils.py index 5642101..dffb236 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -1,3 +1,4 @@ +import os import time import platform @@ -6,6 +7,9 @@ from dotenv import dotenv_values from urllib.request import getproxies +logs = '' + + def md5_crypto(passwd: str) -> str: return md5(passwd.encode('utf8')).hexdigest() @@ -37,26 +41,37 @@ def get_config() -> dict: def w_log(text): + global logs now_localtime = time.strftime("%H:%M:%S", time.localtime()) + logs += now_localtime + ' | ' + str(text) + '\n' print(now_localtime + ' | ' + str(text)) +def s_log(): + logs_save= get_config().get('LOG_SAVE') + if logs_save == 'Y': + global logs + folder = os.path.exists('./logs') + if not folder: + os.makedirs('./logs') + now_localtime = time.strftime("%Y-%m-%d", time.localtime()) + fname = now_localtime + '.log' + with open('./logs/' + fname, 'a+', encoding='utf-8') as f: + f.write(logs) + + def conf_check(config: dict): if not config.get('MI_ID'): w_log('小米账户 ID 未配置') - exit(127) + return False if not config.get('MI_PASSWORD'): w_log('小米账户 密码 / MD5 未配置') - exit(127) + return False if not config.get('USER_AGENT'): w_log('User-Agent 未配置') - exit(127) + return False if not config.get('BOARD_ID'): w_log('测试类型 ID 未配置') - exit(127) + return False w_log('.env 已配置') - - -if __name__ == '__main__': - print(get_config()) - # print(get_config()['MI_PASSWORD']) \ No newline at end of file + return True