Skip to content

每日签到 ​

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

支持站点 ​

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

会员等级 ​

该功能不需要高级用户.

开启条件 ​

该功能开启的条件为:

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

    bash
    # 启用全部功能
    embykeeper -i
    
    # 启用每日签到
    embykeeper -i -c
    
    # 禁用每日签到, 启用其他功能
    embykeeper -i -e -m -s -r
  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.