Skip to content
0-8-4 edited this page Apr 12, 2024 · 47 revisions

简介

MIUI Task 是一个适用于 社区4.0 自动完成 KPI 任务的脚本

使用方法

脚本在首次执行后将自动生成相应的配置文件供用户配置,执行过后配置文件为脚本所在目录下的 data/config.yaml
您也可以自行按照下方配置文件样例进行配置后放入对应目录后使用
请务必在正确配置后开始使用,与配置有关的部分请参照 配置文件

传统安装方法

  1. 安装依赖
    pip install -r requirements.txt
  2. 执行
    python miuitask.py

推荐安装方法

  1. 安装依赖 pip install pdm && pdm install
  2. 执行 pdm run python miuitask.py

Warning

确保当前安装的 Python 版本 >= 3.8
最好安装python3.11

Docker

  1. 拉取镜像
docker pull o1si/miui-auto-tasks:latest

docker run -d \
-v /path/to/your_data:/srv/data \
-v /path/to/your_logs:/srv/logs \
-e TZ=Asia/Shanghai \
--name miuitask \
o1si/miui-auto-tasks:latest

Warning

docker配置自动运行需要你配置在data文件夹下的config.yaml的时间键值

青龙面板

  1. 确保你已安装并配置好青龙面板

    1. 如果阁下实在是不知道怎么操作第二部步骤,可以尝试使用一件部署 (鸣谢@BA7JCM)
  2. 在青龙面板的订阅管理中点击 新建订阅 ,将下方命令参数复制到新建订阅窗口的 名称 中后手动设置定时规则,指定类型为 interval 每 1 天 后点击确定,然后运行订阅并禁用订阅的自动运行,如不禁用将导致配置文件被覆盖。

ql repo https://github.com/0-8-4/miui-auto-tasks.git miuitask|firstrun utils|init utils|config master py|yaml|sh
  1. 在青龙面板的定时任务中运行名称为 MIUI-Auto-Task 环境配置 的任务,查看日志检查确定成功后即可禁用然后进行下一步

  2. 在青龙面板的脚本管理中点击 0-8-4_miui-auto-tasks_master 文件夹,选中位于 data 下的 config.yaml 文件,参照本Wiki的配置文件释义进行编辑并保存

  3. 在青龙面板的定时任务中运行名称为 MIUI-Auto-Task 的任务,查看日志检查确定成功运行即可

配置文件

MIUI Task 从 v1.4 开始采用 YAML 作为默认配置文件,自 v1.6 开始不再兼容旧版的 config.env 配置文件

config.yaml 支持为多账号进行配置,可根据以下配置文档进行配置。

默认配置文件的结构如下(有可能会过时,运行一次项目主程序会自动生成一份配置文件在$priject_home/data/):

preference:
    geetest_url: ''
    geetest_params: {}
    geetest_data: {}
accounts:
-   uid: '<string>'
    password: <string>
    cookies: <string>
    login_user_agent: <string>
    user_agent: <string>
    device: <string>
    device_model: <string>
    CheckIn: <bool>
    BrowseUserPage: <bool>
    BrowsePost: <bool>
    ThumbUp: <bool>
    BrowseSpecialPage: <bool>
    BoardFollow: <bool>
    CarrotPull: <bool>
ONEPUSH:
    notifier: <string>
    params:
        title: <string>
        sctkey: <string>

选项含义:

  • uid
    账户ID,并非账户用户名或手机号
  • password
    账户的密码,也可以是其 MD5 哈希
  • cookies
    账户的Cookie,可以自己手动抓取填写,也可以由程序在登陆后获取
    注意复制出来的cookies一般是str类型,你应该删除{}后再填写
  • user_agent
    登录小米账户的浏览器 User-Agent
    可用此 工具 查看当前浏览器的 User-Agent
  • CheckIn
    社区成长值签到,启用功能意味着你愿意自行承担相关风险。如需启用,将 false 改为 true
  • BrowseUserPage
    社区浏览个人主页10秒,启用功能意味着你愿意自行承担相关风险。如需启用,将 false 改为 true
  • BrowsePost
    社区浏览帖子10秒,启用功能意味着你愿意自行承担相关风险。如需启用,将 false 改为 true
  • ThumbUp
    点赞帖子,启用功能意味着你愿意自行承担相关风险。如需启用,将 false 改为 true
  • BrowseSpecialPage
    社区在活动期间可能会出现限时的“浏览指定专题页”任务,启用功能意味着你愿意自行承担相关风险。如需启用,将 false 改为 true
  • BoardFollow
    社区可能会出现限时的“加入圈子”任务,启用功能意味着你愿意自行承担相关风险。如需启用,将 false 改为 true
  • CarrotPull
    社区拔萝卜,启用功能意味着你愿意自行承担相关风险。如需启用,将 false 改为 true
  • ONEPUSH
    推送相关配置,详情请见 推送参数

注意:一般情况下,本脚本只会执行登录账号和社区的基本操作。根据社区相关规定,使用脚本功能有可能导致封号

若要为多个小米账号进行配置,参考以下配置:

accounts:
    # 账号 1
  - uid: 100000
    password: abc123
    cookies: aabbcc123456
    user-agent: 'Mozilla/5.0 (Android 11; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0'
    CheckIn: false
    BrowseUserPage: false
    BrowsePost: false
    ThumbUp: false
    BrowseSpecialPage: false
    BoardFollow: false
    CarrotPull: false
    # 账号 2
  - uid: 100001
    password: abc123
    cookies: aabbcc123456
    user-agent: 'Mozilla/5.0 (Android 11; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0'
    CheckIn: false
    BrowseUserPage: false
    BrowsePost: false
    ThumbUp: false
    BrowseSpecialPage: false
    BoardFollow: false
    CarrotPull: false

推送参数

推送基于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
ONEPUSH:
    notifier: serverchanturbo
    params:
        title: 
        sctkey: XXXXXXXXXXXXXXXXXXXXXXXX

License

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.
Clone this wiki locally