mirror of
https://github.com/0-8-4/miui-auto-tasks.git
synced 2024-11-26 02:10:55 +00:00
V1.3.3 (#42)
新增 回帖签名算法 修改 使用面向对象编程重构代码 修改 发帖相关任务移至增强模式 修复 回帖失败的问题 Fixes #39
This commit is contained in:
parent
02b6f504ec
commit
a1ff287324
19
README.md
19
README.md
@ -36,16 +36,17 @@
|
|||||||
|
|
||||||
### **项目介绍**:
|
### **项目介绍**:
|
||||||
- [x] 可自动登录小米账号刷新社区 Cookie 实现自动化
|
- [x] 可自动登录小米账号刷新社区 Cookie 实现自动化
|
||||||
- [x] 可自动完成小米社区拔萝卜签到
|
- [x] 可选择启用小米社区拔萝卜签到
|
||||||
- [x] 可自动完成以下小米社区KPI任务且不留下可见痕迹
|
- [x] 可自动完成以下小米社区KPI任务且不留下可见痕迹
|
||||||
- [x] 可完成 “在内测圈分享这个版本的体验” KPI任务
|
- [x] 可完成 “在内测圈分享这个版本的体验” KPI任务
|
||||||
- [x] 可完成 “参与当前版本满意度投票” KPI任务
|
- [x] 可完成 “参与当前版本满意度投票” KPI任务
|
||||||
- [x] 可完成 “在内测圈提交带日志的bug反馈” KPI任务
|
|
||||||
- [x] 可完成 “内测圈内互动(答疑、点赞、投票)” KPI任务
|
- [x] 可完成 “内测圈内互动(答疑、点赞、投票)” KPI任务
|
||||||
- [x] 可自动完成以下小米社区活跃分任务且不留下可见痕迹
|
- [x] 可自动完成以下小米社区活跃分任务且不留下可见痕迹
|
||||||
- [x] 可完成 “加入1个圈子” 活跃分任务
|
- [x] 可完成 “加入1个圈子” 活跃分任务
|
||||||
- [x] 可完成 “关注1位用户” 活跃分任务
|
- [x] 可完成 “关注1位用户” 活跃分任务
|
||||||
- [x] 可完成 “点赞1篇帖子” 活跃分任务
|
- [x] 可完成 “点赞1篇帖子” 活跃分任务
|
||||||
|
- [x] 增强模式下可完成以下社区任务且不留下可见痕迹
|
||||||
|
- [x] 可完成 “在内测圈提交带日志的bug反馈” KPI任务
|
||||||
- [x] 可完成 “发布1条评论” 活跃分任务
|
- [x] 可完成 “发布1条评论” 活跃分任务
|
||||||
- [x] 可完成 “发布1篇帖子” 活跃分任务
|
- [x] 可完成 “发布1篇帖子” 活跃分任务
|
||||||
|
|
||||||
@ -72,8 +73,13 @@
|
|||||||
- 示例: `SIGN_IN='Y'`
|
- 示例: `SIGN_IN='Y'`
|
||||||
- 在配置文件 第19行 中配置是否开启 日志保存
|
- 在配置文件 第19行 中配置是否开启 日志保存
|
||||||
- 启用后将按照日期保存到 logs 目录中
|
- 启用后将按照日期保存到 logs 目录中
|
||||||
- 如果想保存日志到文件,请将 N 改为 Y
|
- 如果想保存日志到文件,请将 `N` 改为 `Y`
|
||||||
- 示例: `LOG_SAVE='Y'`
|
- 示例: `LOG_SAVE='Y'`
|
||||||
|
- 在配置文件 第25行 中配置是否开启 增强模式
|
||||||
|
- 根据小米社区规则,非正常渠道发帖可能会导致账户封禁
|
||||||
|
- 本脚本虽是模拟您的操作向社区发送请求,但仍不能保证绝对安全
|
||||||
|
- 如果您愿意自行承担一切风险,请将 `N` 改为 `Y`
|
||||||
|
- 示例: `ENHANCED_MODE='Y'`
|
||||||
- 确保网络正常且无代理服务器后,可以尝试在脚本目录下使用 `python3 miuitask.py` 命令运行脚本了
|
- 确保网络正常且无代理服务器后,可以尝试在脚本目录下使用 `python3 miuitask.py` 命令运行脚本了
|
||||||
- GNU/Linux 和 MacOS 环境下首次运行前可能需要手动执行以下命令
|
- GNU/Linux 和 MacOS 环境下首次运行前可能需要手动执行以下命令
|
||||||
```bash
|
```bash
|
||||||
@ -93,9 +99,14 @@
|
|||||||
|
|
||||||
如果你要提交 Pull request,请确保你的代码风格和项目已有的代码保持一致,遵循 [PEP 8](https://www.python.org/dev/peps/pep-0008) ,变量命名清晰,有适当的注释。
|
如果你要提交 Pull request,请确保你的代码风格和项目已有的代码保持一致,遵循 [PEP 8](https://www.python.org/dev/peps/pep-0008) ,变量命名清晰,有适当的注释。
|
||||||
|
|
||||||
|
|
||||||
#### **更新说明**:
|
#### **更新说明**:
|
||||||
|
|
||||||
|
v1.3.3
|
||||||
|
- 新增 回帖签名算法
|
||||||
|
- 修改 使用面向对象编程重构代码
|
||||||
|
- 修改 发帖相关任务移至增强模式
|
||||||
|
- 修复 回帖失败的问题
|
||||||
|
|
||||||
v1.3.2 - bugfix
|
v1.3.2 - bugfix
|
||||||
- 修复 在部分Python环境中,读取不到配置文件
|
- 修复 在部分Python环境中,读取不到配置文件
|
||||||
- 修复 安卓的部分编辑器中 找不到隐藏文件的问题
|
- 修复 安卓的部分编辑器中 找不到隐藏文件的问题
|
||||||
|
@ -17,3 +17,9 @@ SIGN_IN='N'
|
|||||||
# 保存程序日志到文件
|
# 保存程序日志到文件
|
||||||
# 如果想保存日志到文件,请将 N 改为 Y
|
# 如果想保存日志到文件,请将 N 改为 Y
|
||||||
LOG_SAVE='N'
|
LOG_SAVE='N'
|
||||||
|
# 增强模式可通过发帖获取更多内测分
|
||||||
|
# 如果只需要保留内测资格,请不要开启本模式
|
||||||
|
# 警告:根据小米社区规则,非正常渠道发帖可能会导致账户封禁
|
||||||
|
# 本模式风险较大,因此存在一定的封号风险
|
||||||
|
# 如果您愿意自行承担一切风险,请将 N 改为 Y
|
||||||
|
ENHANCED_MODE='N'
|
||||||
|
85
miuitask.py
85
miuitask.py
@ -2,6 +2,7 @@
|
|||||||
import requests
|
import requests
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
|
import hashlib
|
||||||
|
|
||||||
from urllib import request
|
from urllib import request
|
||||||
from http import cookiejar
|
from http import cookiejar
|
||||||
@ -75,15 +76,34 @@ class MIUITask:
|
|||||||
w_log("删除内容出错,请手动删除")
|
w_log("删除内容出错,请手动删除")
|
||||||
w_log(e)
|
w_log(e)
|
||||||
|
|
||||||
|
# 发帖签名
|
||||||
|
def post_sign(self,data):
|
||||||
|
s_data = []
|
||||||
|
for d in data:
|
||||||
|
s_data.append(str(d) + '=' + str(data[d]))
|
||||||
|
s_str = '&'.join(s_data)
|
||||||
|
w_log('签名原文:' + str(s_str))
|
||||||
|
s_str = hashlib.md5(str(s_str).encode(encoding='UTF-8')).hexdigest() + '067f0q5wds4'
|
||||||
|
s_sign = hashlib.md5(str(s_str).encode(encoding='UTF-8')).hexdigest()
|
||||||
|
w_log('签名结果:' + str(s_sign))
|
||||||
|
return s_sign, data['timestamp']
|
||||||
|
|
||||||
# 发帖
|
# 发帖
|
||||||
def new_announce(self, t_type):
|
def new_announce(self, t_type):
|
||||||
headers = {
|
headers = {
|
||||||
'cookie': str(self.cookie)
|
'cookie': str(self.cookie)
|
||||||
}
|
}
|
||||||
|
sign_data = {
|
||||||
|
'announce': '{"textContent":"小米社区白屏","boards":[{"boardId":"' + self.board_id + '"}],"announceType":"' + str(t_type) + '","extraStatus":1,"extraA":"","extraB":null}',
|
||||||
|
'timestamp': int(round(time.time() * 1000))
|
||||||
|
}
|
||||||
|
sign = self.post_sign(sign_data)
|
||||||
data = {
|
data = {
|
||||||
'announce': '{"textContent":"小米社区闪退","boards":[{"boardId":"' + self.board_id + '"}],"announceType":"' + str(
|
'announce': sign_data['announce'],
|
||||||
t_type) + '"}',
|
'pageType': '1',
|
||||||
'miui_vip_ph': str(self.miui_vip_ph)
|
'miui_vip_ph': str(self.miui_vip_ph),
|
||||||
|
'sign': sign[0],
|
||||||
|
'timestamp': sign[1]
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
response = requests.post('https://api.vip.miui.com/api/community/post/add/newAnnounce', headers=headers,
|
response = requests.post('https://api.vip.miui.com/api/community/post/add/newAnnounce', headers=headers,
|
||||||
@ -109,10 +129,19 @@ class MIUITask:
|
|||||||
headers = {
|
headers = {
|
||||||
'cookie': str(self.cookie)
|
'cookie': str(self.cookie)
|
||||||
}
|
}
|
||||||
|
post_text = '小米社区白屏'
|
||||||
|
sign_data = {
|
||||||
|
'postId': str(tid),
|
||||||
|
'text': post_text,
|
||||||
|
'timestamp': int(round(time.time() * 1000))
|
||||||
|
}
|
||||||
|
sign = self.post_sign(sign_data)
|
||||||
data = {
|
data = {
|
||||||
'postId': str(tid),
|
'postId': str(tid),
|
||||||
'text': '小米社区闪退',
|
'text': post_text,
|
||||||
'miui_vip_ph': str(self.miui_vip_ph)
|
'miui_vip_ph': str(self.miui_vip_ph),
|
||||||
|
'sign': sign[0],
|
||||||
|
'timestamp': sign[1]
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
response = requests.post('https://api.vip.miui.com/mtop/planet/vip/content/addCommentReturnCommentInfo',
|
response = requests.post('https://api.vip.miui.com/mtop/planet/vip/content/addCommentReturnCommentInfo',
|
||||||
@ -424,7 +453,7 @@ def process_exception(e: Exception):
|
|||||||
w_log('系统设置了代理,出现异常')
|
w_log('系统设置了代理,出现异常')
|
||||||
|
|
||||||
|
|
||||||
def start(miui_task: MIUITask, sign_in: bool):
|
def start(miui_task: MIUITask, sign_in: bool, enhanced_mode: bool):
|
||||||
|
|
||||||
if miui_task.mi_login():
|
if miui_task.mi_login():
|
||||||
w_log("本脚本支持社区签到,因该功能存在风险默认禁用")
|
w_log("本脚本支持社区签到,因该功能存在风险默认禁用")
|
||||||
@ -432,23 +461,14 @@ def start(miui_task: MIUITask, sign_in: bool):
|
|||||||
if sign_in:
|
if sign_in:
|
||||||
w_log("风险功能提示:正在进行社区签到")
|
w_log("风险功能提示:正在进行社区签到")
|
||||||
miui_task.vip_sign_in()
|
miui_task.vip_sign_in()
|
||||||
miui_task.start_task("10106263")
|
|
||||||
w_log("正在完成BUG反馈任务")
|
|
||||||
miui_task.new_announce("7")
|
|
||||||
w_log("3秒后执行提建议任务")
|
|
||||||
miui_task.acquire_task("10106263")
|
|
||||||
time.sleep(3)
|
|
||||||
w_log("正在完成提建议任务")
|
|
||||||
miui_task.new_announce("6")
|
|
||||||
w_log("正在完成满意度调查任务")
|
w_log("正在完成满意度调查任务")
|
||||||
miui_task.get_survey_id()
|
miui_task.get_survey_id()
|
||||||
w_log("正在完成点赞任务")
|
w_log("正在完成点赞任务")
|
||||||
miui_task.start_task("10106256")
|
miui_task.start_task("10106256")
|
||||||
for i in range(0, 5):
|
miui_task.thumb_up()
|
||||||
miui_task.thumb_up()
|
time.sleep(0.2)
|
||||||
time.sleep(0.2)
|
miui_task.cancel_thumb_up()
|
||||||
miui_task.cancel_thumb_up()
|
time.sleep(0.2)
|
||||||
time.sleep(0.2)
|
|
||||||
miui_task.acquire_task("10106256")
|
miui_task.acquire_task("10106256")
|
||||||
w_log("正在完成活跃分_关注任务")
|
w_log("正在完成活跃分_关注任务")
|
||||||
miui_task.start_task("10106261")
|
miui_task.start_task("10106261")
|
||||||
@ -464,17 +484,28 @@ def start(miui_task: MIUITask, sign_in: bool):
|
|||||||
w_log("5秒后领取活跃分_加圈任务")
|
w_log("5秒后领取活跃分_加圈任务")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
miui_task.acquire_task("10106262")
|
miui_task.acquire_task("10106262")
|
||||||
w_log("正在完成活跃分_发帖任务")
|
if enhanced_mode:
|
||||||
miui_task.start_task("10106265")
|
w_log("风险功能提示:增强模式已启用")
|
||||||
miui_task.new_announce("3")
|
w_log("增强模式已启用,存在封号风险")
|
||||||
w_log("5秒后领取活跃分_发帖任务")
|
miui_task.start_task("10106263")
|
||||||
time.sleep(5)
|
w_log("正在完成BUG反馈任务")
|
||||||
miui_task.acquire_task("10106265")
|
miui_task.new_announce("7")
|
||||||
|
w_log("3秒后执行提建议任务")
|
||||||
|
miui_task.acquire_task("10106263")
|
||||||
|
time.sleep(3)
|
||||||
|
w_log("正在完成提建议任务")
|
||||||
|
miui_task.new_announce("6")
|
||||||
|
w_log("正在完成活跃分_发帖任务")
|
||||||
|
miui_task.start_task("10106265")
|
||||||
|
miui_task.new_announce("3")
|
||||||
|
w_log("5秒后领取活跃分_发帖任务")
|
||||||
|
time.sleep(5)
|
||||||
|
miui_task.acquire_task("10106265")
|
||||||
miui_task.get_score()
|
miui_task.get_score()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
w_log("MIUITask_v1.3.2-fix")
|
w_log("MIUITask_v1.3.3")
|
||||||
w_log('----------系统信息-开始-------------')
|
w_log('----------系统信息-开始-------------')
|
||||||
system_info()
|
system_info()
|
||||||
w_log('----------系统信息-结束-------------')
|
w_log('----------系统信息-结束-------------')
|
||||||
@ -492,7 +523,7 @@ def main():
|
|||||||
board_id = config.get('BOARD_ID')
|
board_id = config.get('BOARD_ID')
|
||||||
|
|
||||||
miui = MIUITask(mi_id, p_md5, l_ua, board_id)
|
miui = MIUITask(mi_id, p_md5, l_ua, board_id)
|
||||||
start(miui, config.get('SIGN_IN'))
|
start(miui, config.get('SIGN_IN'), config.get('ENHANCED_MODE'))
|
||||||
|
|
||||||
s_log()
|
s_log()
|
||||||
|
|
||||||
|
@ -46,6 +46,10 @@ def get_config() -> dict:
|
|||||||
config['SIGN_IN'] = True
|
config['SIGN_IN'] = True
|
||||||
else:
|
else:
|
||||||
config['SIGN_IN'] = False
|
config['SIGN_IN'] = False
|
||||||
|
if config.get('ENHANCED_MODE').upper() in ('Y', 'YES'):
|
||||||
|
config['ENHANCED_MODE'] = True
|
||||||
|
else:
|
||||||
|
config['ENHANCED_MODE'] = False
|
||||||
return config
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user