Skip to content

auto_sign_in

IvonWei edited this page Apr 3, 2024 · 38 revisions

自动签到 包含了 签到,读取收件箱未读消息,统计信息 功能

验证码签到功能需安装baidu-aip

统计信息生成图片需安装pandas matplotlib

dmhy签到需要 baidu-aip fuzzywuzzy python-Levenshtein

aipocr参数获取: https://cloud.baidu.com/doc/OCR/s/dk3iqnq51

    auto_sign_in:
      user-agent: <user-agent>
      max_workers: 4 #线程数
      get_messages: yes #设为no跳过获取未读信息。默认yes
      get_details: yes #设为no跳过获取统计。默认yes
      cookie_backup: yes #设为no跳过cookie备份 (config/cookies.bak)。默认yes
      aipocr:
        app_id: <app_id>
        api_key: <api_key>
        secret_key: <secret_key>
      sites:
        <site_name>: <cookie>

已适配站点

当前例子 config.yml 将 sites 配置在 variables 下,是无法在 webui 中获得自动补全的好处的。所以不熟悉的时候可以直接配置在 sites 之下

tasks:
  sign_in:
    auto_sign_in:
      sites:
       # 直接配置在插件之下以获得自动补全
       1ptba: xxxxxxxx

一些格式

站点配置格式

如 ptsites.sites 目录下存在需要的站点 只需配置相应的 主域名: cookie,例:

      sites:
        1ptba: xxxxxxxx

但是也有因cookie过期太快,而改用模拟登陆的站点,如以下站点:

      sites:
        filelist:
          login:
            username: xxxxxxxx
            password: xxxxxxxx
        ourbits:
          # 在同时配置了cookie 和 login 时,会忽略login 使用cookie签到
          cookie: xxxxxxxx
          login:
            username: xxxxxxxx
            password: xxxxxxxx
            #二次验证, 扫描二维码得到文本 otpauth://totp/*****:****?secret=[secret_key]&issuer=***** (只取[secret_key]部分)
            secret_key: <secret_key>
        skyey2:
          login:
            username: xxxxxxxx
            password: xxxxxxxx
            #二次验证, 扫描二维码得到文本 otpauth://totp/*****:****?secret=[secret_key]&issuer=***** (只取[secret_key]部分)
            secret_key: <secret_key>

dmhy:

      sites:
        dmhy:
          username: <username>
          cookie: 'xxxxxxx'
          # 五个字符以上签到留言
          comment: <comment>
          ocr_config:
            # 重试次数
            retry: 10
            # 最低识别字符数
            char_count: 3
            # 最低匹配分数
            score: 50

gazellegames:

      sites:
        gazellegames:
          cookie: 'xxxxxxx'
          key: 'xxxxxxx'
          name: 'xxxxxxx'

m-team:

      sites:
        m-team:
          key: 'xxxxxxx'

qbittorrent

qbittorrent 信息获取

      sites:
        qbittorrent:
            # 为客户端命名
          - name: <qbittorrent_name>
            host: qbittorrent.example.com
            port: 443
            use_ssl: yes
            username: xxxxxxx
            password: xxxxxxx
          - name: <qbittorrent_name2>
            host: qbittorrent2.example.com
            port: 443
            use_ssl: yes
            username: xxxxxxx
            password: xxxxxxx

签到结果保存在 entry['result'] 属性中

未读信息保存在 entry['messages'] 属性中

生成的 统计信息 保存在 plugins 目录下 details_report.png

执行流程(适配):

ptsites/executor.py 作为任务调度器

具体实现类名必须为 MainClass 至少继承于 SignIn

1. 生成 schema:

executor.build_sign_in_schema()

遍历 ptsites/sites 下所有 moudle, 调用 moudle 中 MainClass.build_sign_in_schema()

2. 生成 entry

executor.build_sign_in_entry()

根据配置的主域名,反射调用 ptsites/sites/{主域名}.py 中 MainClass.build_sign_in_entry()

3. 签到

executor.sign_in()

调用 MainClass.sign_in()

如果 MainClass 是 Message 的子类,则调用 MainClass.get_messages()

如果 MainClass 是 Detail 的子类,则调用 MainClass.get_details()

Detail 相关

get_details() 返回数据格式

{'uploaded': '44.216 TB', 'downloaded': '1.676 TB', 'share_ratio': '26.376', 'points': '821226.3', 'join_date': '2020-06-14', 'seeding': '0', 'leeching': '0', 'hr': '0'}

USER_CLASSES 数据格式说明

统计图表上的进度条

数组长度为 2 时,第一个数字为 最低保号 要求,第二个为 最高等级 要求

数组长度为 1 时,视为 最高等级 要求

数组长度必须统一

未达到 最低保号 时,颜色为蓝色

达到 最低保号 后,颜色为紫色

达到 最高等级 后,颜色为橙色

只支持以下数据作为判断,均为可选项

{
        'uploaded': [1832519379627, 109951162777600],
        'downloaded': [2199023255552, 10995116277760],
        'share_ratio': [1.2, 2],
        'points': [400000, 2000000],
        'days': [35, 35]
}
Clone this wiki locally