-
Notifications
You must be signed in to change notification settings - Fork 184
Home
MIUI Task 是一个适用于 社区4.0 自动完成 KPI 任务的脚本
在第一次运行此脚本前,在你想要部署MIUI Task的设备上用浏览器在小米社区执行一次成功的登录操作,并将浏览器的 User-Agent
写入配置文件
MIUI Task 从 v1.4 开始采用 YAML 作为默认配置文件,自 v1.6 开始不再兼容旧版的 config.env
配置文件
config.yaml
支持为多账号进行配置,可根据以下配置文档进行配置,或使用 MIUI Task Dashboard 生成配置文件 (该生成器由于代码丢失,暂时无法更新,目前生成器已为旧版无法使用)
默认配置文件的结构如下:
accounts:
- uid: 100001
password: abc123
user-agent: 'Mozilla/5.0 (Android 11; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0'
check-in: false
browse-user-page: false
browse-post: false
thumb-up: false
browse-specialpage: false
board-follow: false
carrot-pull: false
ONEPUSH:
notifier: false
params:
title:
markdown: false
token:
userid:
logging: false
version: v1.6.0
选项含义:
- uid
账户ID,并非账户用户名或手机号 - password
账户的密码,也可以是其 MD5 哈希 - user-agent
登录小米账户的浏览器 User-Agent
可用此 工具 查看当前浏览器的 User-Agent - check-in
社区成长值签到,启用功能意味着你愿意自行承担相关风险。如需启用,将false
改为true
- browse-user-page
社区浏览个人主页10秒,启用功能意味着你愿意自行承担相关风险。如需启用,将false
改为true
- browse-post
社区浏览帖子10秒,启用功能意味着你愿意自行承担相关风险。如需启用,将false
改为true
- thumb-up
点赞帖子,启用功能意味着你愿意自行承担相关风险。如需启用,将false
改为true
- browse-specialpage
社区在活动期间可能会出现限时的“浏览指定专题页”任务,启用功能意味着你愿意自行承担相关风险。如需启用,将false
改为true
- board-follow
社区可能会出现限时的“加入圈子”任务,启用功能意味着你愿意自行承担相关风险。如需启用,将false
改为true
- carrot-pull
社区拔萝卜,启用功能意味着你愿意自行承担相关风险。如需启用,将false
改为true
- logging
以文件形式归档执行日志 - version
用于检测配置文件版本是否满足脚本最低版本要求,请勿修改
注意:一般情况下,本脚本只会执行登录账号和社区的基本操作。根据社区相关规定,使用脚本功能有可能导致封号
若要为多个小米账号进行配置,参考以下配置:
accounts:
# 账号 1
- uid: 100000
password: abc123
user-agent: 'Mozilla/5.0 (Android 11; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0'
check-in: false
browse-user-page: false
browse-post: false
thumb-up: false
browse-specialpage: false
board-follow: false
carrot-pull: false
# 账号 2
- uid: 100001
password: abc123
user-agent: 'Mozilla/5.0 (Android 11; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0'
check-in: false
browse-user-page: false
browse-post: false
thumb-up: false
browse-specialpage: false
board-follow: false
carrot-pull: false
logging: false
version: v1.6.0
若不熟悉 YAML 格式,可考虑使用 v1.5.3 ,该版本支持旧版 config.env
配置,但我们不保证旧版本的功能可用性,旧版文件格式如下:
(请注意该格式的配置文件自 v1.6.0 不再被支持)
MI_ID='100000'
MI_PASSWORD='abc123'
USER_AGENT='Mozilla/5.0 (Android 11; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0'
SIGN_IN='N'
LOG_SAVE='N'
CARROT_PULL='N'
BROWSE_SPECIALPAGE='N'
VERSION="v1.5.2"
推送基于onepush
推送名称 / notifier: bark
参数大全 / params: {'required': ['key'], 'optional': ['title', 'sound', 'isarchive', 'icon', 'group', 'url', 'copy', 'autocopy']}
推送名称 / notifier: custom
参数大全 / params: {'required': ['url'], 'optional': ['method', 'datatype', 'data']}
推送名称 / notifier: dingtalk
参数大全 / params: {'required': ['token'], 'optional': ['title', 'secret', 'markdown']}
推送名称 / notifier: discord
参数大全 / params: {'required': ['webhook'], 'optional': ['title', 'username', 'avatar_url', 'color']}
推送名称 / notifier: pushplus
参数大全 / params: {'required': ['token'], 'optional': ['title', 'topic', 'markdown']}
推送名称 / notifier: qmsg
参数大全 / params: {'required': ['key'], 'optional': ['title', 'mode', 'qq']}
推送名称 / notifier: serverchan
参数大全 / params: {'required': ['sckey', 'title'], 'optional': []}
推送名称 / notifier: serverchanturbo
参数大全 / params: {'required': ['sctkey', 'title'], 'optional': ['channel', 'openid']}
推送名称 / notifier: telegram
参数大全 / params: {'required': ['token', 'userid'], 'optional': ['title', 'api_url']}
推送名称 / notifier: wechatworkapp
参数大全 / params: {'required': ['corpid', 'corpsecret', 'agentid'], 'optional': ['title', 'touser', 'markdown']}
推送名称 / notifier: wechatworkbot
参数大全 / params: {'required': ['key'], 'optional': ['title', 'markdown']}
required为必填参数,optional为选填参数
配置参考:
ONEPUSH:
notifier: telegram
params:
title:
markdown: false
token: 123456789:XXXXXXXXXXXXXXXXXXXXXXXX
userid: 114514
ONEPUSH:
notifier: pushplus
params:
title:
token: XXXXXXXXXXXXXXXXXXXXXXXX
markdown: false
- 安装依赖
pip install -r requirements.txt
- 执行
python miuitask.py
注意:确保当前安装的 Python 版本 >= 3.6
- 拉取镜像
docker pull o1si/miui-auto-tasks:latest
- 编辑
config.yaml
配置文件,挂载到容器/srv/config.yaml
并运行
2.1 若使用config.env
作为配置文件,需要挂载到容器/srv/config.env
docker run -d \
-v /path/to/config.yaml:/srv/config.yaml \
o1si/miui-auto-tasks:latest
注意:默认将于每天 04:00 进行签到
定时任务
若有自定义执行时间的需求,创建一个 LINUX crontab
文件,其格式为
* * * * * python /srv/miuitask.py
创建 Docker 容器时挂载到容器路径 /var/spool/cron/crontabs/root
docker run -d \
-v /path/to/config.yaml:/srv/config.yaml \
-v /path/to/crontab:/var/spool/cron/crontabs/root \
o1si/miui-auto-tasks:latest
Crontab 在线工具
-
确保你已安装并配置好青龙面板
-
在青龙面板的
依赖管理
中,依次使用下方名称新建四个类型为Python3
的依赖
requests
python-dotenv
PyYAML
crypto
onepush
注意:如依赖列表中已有上方四个依赖则无需重复建立
- 在青龙面板的
订阅管理
中点击新建订阅
,将下方命令参数复制到新建订阅窗口的名称
中后手动设置定时规则,指定类型为interval
每 1 天
后点击确定,然后运行订阅并禁用订阅的自动运行,如不禁用将导致配置文件被覆盖。
ql repo https://github.com/0-8-4/miui-auto-tasks.git miuitask utils|init utils|config master py|yaml|sh
-
在青龙面板的
脚本管理
中点击0-8-4_miui-auto-tasks_master
文件夹,选中config.yaml
文件,参照本Wiki的配置文件释义进行编辑并保存 -
在青龙面板的
定时任务
中运行名称为miuitasks.py
的任务,查看日志检查确定成功运行即可
云函数(Serverless Cloud Function,SCF)是腾讯提供的 Function-as-a-Service 服务。
(因各种问题,该版本暂时不会得到更新,且目前版本较旧不建议使用)
下载最新 SCF Release- 解压并修改其中的
config.yaml
配置文件,并重新压缩为 .zip 格式 - 注册并开通 腾讯云 SCF 服务
- 新建自定义云函数
- 配置云函数
函数类型:事件函数
地域:广州
部署方式:代码部署
运行环境:Python 3.6
- 上传 .zip 代码
提交方法:本地上传zip包
执行方法:miuitask.main_handler
- 设置触发器
触发版本:默认流量
触发方式:定时触发
触发周期:每1天(每天0点0分执行一次)
立即启用:启用
注意:腾讯云函数有可能触发账户异地登录的风控,可能导致需要验证码且无法正常执行。尝试通过寻求云函数服务器选区的朋友帮助,用当地 IP 电脑登录一次小米社区。或租赁一台与云函数同区的按需实例进行一次成功的正常登录
MIT License
Copyright (c) 2021 東雲研究所
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.