Skip to content

每日签到

很多 Emby 服务器对应的 Telegram 机器人可以签到攒积分, 用于 Emby 服账号续期.

支持站点

该模块支持若干特定站点, 请参考 README.

会员等级

该功能不需要高级用户.

开启条件

该功能开启的条件为:

  1. 命令行没有禁用每日签到:

    bash
    # 启用全部功能
    embykeeper -i
    
    # 启用每日签到
    embykeeper -i -c
    
    # 禁用每日签到, 启用其他功能
    embykeeper -i -e -m -s
  2. 配置文件有至少一个 Telegram 账户配置, 且没有设置 checkin = false:

    toml
    [[telegram.account]]
    phone = "+8616401875896"
    monitor = true
  3. 您需要向签到站点对应的机器人发送过任意一条消息 (例如/start).

  4. 若您所需的站点为默认禁用, 您需要在 配置文件中启用该站点:

    toml
    [site]
    checkiner = ["bluesea", "charon", "embyhub", "jms", "jms_iptv", "judog", "ljyy", "magic", "misty", "nebula", "peach", "pornfans", "singularity", "sssq", "temby", "terminus", "zhipian"]

配置选项

  1. 签到的时间范围:

    1. 通过命令行参数 -c <时间, 时间> 调节.

    2. 通过配置文件 time_range 项调节.

  2. 签到超时: 通过配置文件 timeout 项调节.

  3. 签到错误重试次数: 通过配置文件 retries 项调节.

  4. 签到最大并发: 通过配置文件 concurrent 项调节.

  5. 签到各站点间时间随机量: 通过配置文件 random 项调节.

  6. 签到的站点: 通过配置文件 site 项调节, 例如:

    toml
    [site]
    checkiner = ["charon", "embyhub"]

    其中的站点可以通过: 支持的站点 中的英文名 (而非机器人名) 填入.

自定义签到

如果您需要签到站点尚未被支持, 但是符合以下通用模板格式, 即可通过模板创建:

使用 Sakura_embyboss 部署的机器人 (templ_a)

支持类似于该图模式的机器人:

templ_a

可以使用 templ_a<xxx> 格式启用, xxx 为机器人的用户名, 如:

toml
[site]
checkiner = ["templ_a<moumou_bot>"]

如果机器人进行了特定的自定义, 请进行配置, 例如:

toml
[site]
checkiner = ["templ_a<moumou_bot>"]

[checkiner.'templ_a<moumou_bot>']
name = "某某站点"
templ_panel_keywords = "你好呀" # 机器人主菜单文字包含的关键词

可使用的设置项包括:

设置项值类型简介默认值
namestr签到器显示名称
templ_panel_keywordsstr/list机器人主菜单文字包含的关键词["请选择功能", "用户面板"]
bot_checkin_buttonstr/list机器人主菜单需点击的签到按钮["签到", "簽到"]
use_button_answerbool点击按钮后等待并识别响应true
bot_text_ignore_answerstr/list忽略的响应文本["Done"]
bot_fail_keywordsstr/list签到错误将重试时检测的关键词(使用内置)
bot_success_keywordsstr/list成功时检测的关键词(使用内置)
bot_success_patstr当接收到成功消息后, 从消息中提取数字的 Regex 模式, 只能含有 1~2 个捕获区"(\d+)[^\d]*(\d+)"
bot_captcha_lenint验证码长度的可能范围, 例如 [1, 2, 3][]
bot_text_ignorestr/list当含有列表中的关键词, 即忽略该消息[]
bot_checkin_caption_patstr当 Bot 返回图片时, 仅当符合该 Regex 才识别为验证码(不限制)
bot_checkin_cmdstr发送的签到命令, 提供列表用于群组签到时将随机选择一条"/checkin"
bot_use_captchabool当 Bot 返回图片时, 识别验证码并处理true
自定义签到, 支持识别输入式验证码 (templ_b)

可以使用 templ_b<xxx> 格式启用, xxx 为机器人的用户名.

例如:

toml
[site]
checkiner = ["templ_b<moumou_bot>"]

[checkiner.'templ_b<moumou_bot>']
name = "某某站点"
bot_checkin_cmd = "/sign"
bot_success_keywords = "签到结果"

这将在设定时间向某某站点机器人 (用户名为 @moumou_bot) 发送 "/sign" 并等待机器人返回带有 "签到结果" 的消息.

可使用的设置项包括:

设置项值类型简介默认值
namestr签到器显示名称
is_chatbool指定的用户名为群组用户名或 ID, 而非机器人false
bot_checkin_cmdstr/list发送的签到命令, 提供列表用于群组签到时将随机选择一条"/checkin"
bot_send_intervalint签到命令间等待的秒数3
wait_responsebool是否需要等待相关回复, 以确认签到完成true
bot_use_captchabool当 Bot 返回图片时, 识别验证码并处理true
bot_checkin_caption_patstr当 Bot 返回图片时, 仅当符合该 Regex 才识别为验证码(不限制)
bot_text_ignorestr/list当含有列表中的关键词, 即忽略该消息[]
ocrstrOCR 模型名称, 置空使用默认模型(默认模型)
bot_captcha_char_rangestrOCR 字符范围, 仅当默认模型可用(默认范围)
bot_captcha_lenint/list验证码长度的可能范围, 例如 [1, 2, 3][]
bot_success_patstr当接收到成功消息后, 从消息中提取数字的 Regex 模式, 只能含有 1~2 个捕获区"(\d+)[^\d]*(\d+)"
bot_retry_waitint失败时等待的秒数2
bot_use_historyint首先尝试识别历史记录中最后一个验证码图片, 最多识别 N 条(禁用)
bot_allow_from_scratchbool允许从未聊天情况下启动false
bot_success_keywordsstr/list成功时检测的关键词(使用内置)
bot_checked_keywordsstr/list今日已签到时检测的关键词(使用内置)
bot_account_fail_keywordsstr/list账户错误将退出时检测的关键词(使用内置)
bot_too_many_tries_fail_keywordsstr/list过多尝试将退出时检测的关键词(使用内置)
bot_fail_keywordsstr/list签到错误将重试时检测的关键词(使用内置)
max_retriesint验证码错误或网络错误时最高重试次数(根据全局设置)
checked_retriesint今日已签到时最高重试次数(不重试)
使用 Sakura_embyboss 部署的机器人定时尝试注册 (templ_c)

可以使用 templ_c<xxx> 格式启用, xxx 为机器人的用户名.

toml
[site]
checkiner = ["templ_c<moumou_bot>"]

[checkiner.'templ_c<moumou_bot>']
interval = 6000

这将在某某站点 (机器人用户名为 @moumou_bot) 每 6000 秒尝试使用 /start 获取一次开注情况, 如开注则注册.

运行细节

备注

  1. 启动时首次运行的关键消息不会发送到您设置的 Telegram 账号.

  2. 启动时首次运行, 将依次进行各站点签到, 之间没有间隔时间. 每日计划任务运行时, 将随机等待一定时间, 由配置文件中的 random 参数决定.

运行模式

  1. 发送类定义的签到命令.

  2. 检查消息历史或等待验证码信息出现.

  3. 使用 ddddocr 内置模型或自训练模型进行 OCR.

  4. 回复或点击按钮.

  5. 根据返回的信息判定是否成功.

  6. 显示或发送日志信息.

Released under the GPLv3 License.