Skip to main content

Daily checkin automator for emby bots in telegram.

Project description

Embykeeper

自动签到 定时保号 按需水群


Embykeeper 是一个在中文社群规则下用于 Emby 影视服务器的签到和保号的工具, 基于Pyrogram编写并具有可拓展性。

声明

本项目涉及的一切 Emby 服务器与 Embykeeper 开发团队无关,在使用 Embykeeper 时造成的一切损失(包括但不限于 Emby 或 Telegram 账号被封禁或被群封禁)与开发团队无关。

本项目设计初衷是在中文 Emby 社群规则下,保号要求逐渐苛刻(部分要求每月登录或每日签到),这使得休闲时间紧张的人士难以安心使用。本项目仅旨在帮助该类人群保号,不鼓励持有大量 Emby 账号而不使用,导致真正需要的人、为中文影视资源分享和翻译有贡献的人难以获得账号的行为,开发团队也呼吁仅保留1-2个较全面质量较高的Emby服务器。本项目仅提供工具,具体使用形式及造成的影响和后果与开发团队无关。

当您安装并使用该工具,默认您已经阅读并同意上述声明,并确认自己并非出于"集邮"目的而安装。

功能

安装与使用

您可以通过 pip 安装 embykeeper (需要 python >= 3.6):

pip install embykeeper

随后,您需要执行:

embykeeper

命令将会在当前目录生成模板 config.toml 文件,您也可以使用最小配置 (以下敏感信息为生成, 仅做参考):

[proxy]
host = "127.0.0.1"
port = "1080"
scheme = "socks5"

[[telegram]]
api_id = "27894236"
api_hash = "622159182fdd4b15b627eeb3ac695271"
phone = "+8612109347899"

[[emby]]
url = "https://weiss-griffin.com/"
username = "carrie19"
password = "s*D7MMCpS$"

对于 Telegram 而言, 您可以通过 Telegram 官网 申请 api_idapi_hash. 登陆后选择 API development tools, 随后应用信息可以随意填写, 提交时若显示 "Error", 您可能需要更换代理/清除浏览器记录.

然后, 运行:

embykeeper config.toml

您将被询问设备验证码以登录,登录成功后,Embykeeper 将首先执行一次签到和保活, 然后启动群组监控和水群计划任务 (若启用).

恭喜您!您已经成功部署了 Embykeeper, 为了让 Embykeeper 长期后台运行, 您可以运行:

tmux

这将启动一个 tmux 终端,您可以在该终端中运行上述命令 (embykeeper config.toml), 并按 Ctrl + B, 松开 B 再按 D, 以脱离 tmux 终端。

您随时可以通过运行:

tmux a

以重新连接到 tmux 终端.

支持 Embykeeper

贡献者名单
  • 暂无
活跃开发者名单
致谢
通过爱发电赞助

kitty

配置项

设置项 值类型 简介 默认值
timeout int Telegram机器人签到超时 (秒) 60
retries int Telegram机器人签到错误重试次数 10
concurrent int Telegram机器人签到最大并发 2
random int Telegram机器人签到定时任务时间随机量 (分钟) 15
proxy dict 代理设置 {}
telegram list Telegram账号设置 (支持多账号) []
emby list Emby账号设置 (支持多账号) []

proxy 设置可以为:

设置项 值类型 简介 默认值
host str 代理服务器地址 localhost
port int 代理端口号 1080
scheme str 代理协议, 可以为 "socks5" 或 "http" socks5

telegram 设置可以为:

设置项 值类型 简介 默认值
api_id str Telegram官网申请的 Application ID
api_hash str Telegram官网申请的 Application Hash
phone str 账户手机号, 一般为 "+86..."
monitor bool 启用群组监控系列功能 true
send bool 启用自动水群系列功能 false

emby 设置可以为:

设置项 值类型 简介 默认值
url str Emby服务器地址, 一般为 "https://..." 或 "http://..."
username str Emby服务器用户名
password str Emby服务器密码
time int 模拟观看的时间 (秒) 800
progress int 观看后模拟进度条保存的时间 (秒) 1000

代码重用与开发

代码架构如下:

flowchart TD
    A(fa:fa-terminal cli) --> B(fa:fa-telegram telechecker)
    A --> C(fa:fa-play embywatcher)
    B --checker--> E[fa:fa-robot Bot]
    B --monitor--> G[fa:fa-eye Monitor]
    B --messager--> F[fa:fa-message Messager]
    C --watcher--> H[fa:fa-circle-play EmbyWatcher]
    F ---- |schedule| A

主要可以扩展的类位于:

  • embykeeper.telechecker.bots
  • embykeeper.telechecker.monitor
  • embykeeper.telechecker.messager

通常来说, 增加一个机器人的签到非常简单, 您需要在 bots 中增加一个文件 dummy.py:

from .base import BotCheckin

class DummyCheckin(BotCheckin):
    name = "Dummy"
    bot_username = "dummy"
    bot_captcha_len = 4

然后在 embykeeper/telechecker/__init__.py 中注册您的类:

from .bots.dummy import DummyCheckin

然后在 embykeeper/telechecker/main.py 中启用您的类:

CHECKINERS = [
    ...
    DummyCheckin,
]

您即增加一个名为 "Dummy" 的签到器,将会向用户名为 "dummy" 的机器人发送 "/checkin" 并等候一个4位的验证码,识别验证码后将发送.

若您希望识别验证码后点击按钮, 您可以使用 AnswerBotCheckin, 您也可以重写 on_captcha 函数来实现自定义功能:

from .base import AnswerBotCheckin

class DummyCheckin(AnswerBotCheckin):
    ....
    async def on_captcha(self, message: Message, captcha: str):
        for l in captcha:
            try:
                await self.message.click(l)
            except ValueError:
                self.log.info(f'未能找到对应 "{l}" 的按键, 正在重试.')
                await self.retry()
                break

上述代码实现每次按对应一个字符按键的功能.

当您实现一个新的签到器时, 欢迎您提出 Pull Request 以帮助更多人使用!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

embykeeper-1.0.0.tar.gz (44.9 kB view hashes)

Uploaded Source

Built Distribution

embykeeper-1.0.0-py3-none-any.whl (50.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page