Daily checkin automator for emby bots in telegram.
Project description
自动签到 定时保号 按需水群
Embykeeper 是一个在中文社群规则下用于 Emby 影视服务器的签到和保号的工具, 基于Pyrogram编写并具有可拓展性。
声明
本项目涉及的一切 Emby 服务器与 Embykeeper 开发团队无关,在使用 Embykeeper 时造成的一切损失(包括但不限于 Emby 或 Telegram 账号被封禁或被群封禁)与开发团队无关。
本项目设计初衷是在中文 Emby 社群规则下,保号要求逐渐苛刻(部分要求每月登录或每日签到),这使得休闲时间紧张的人士难以安心使用。本项目仅旨在帮助该类人群保号,不鼓励持有大量 Emby 账号而不使用,导致真正需要的人、为中文影视资源分享和翻译有贡献的人难以获得账号的行为,开发团队也呼吁仅保留1-2个较全面质量较高的Emby服务器。本项目仅提供工具,具体使用形式及造成的影响和后果与开发团队无关。
当您安装并使用该工具,默认您已经阅读并同意上述声明,并确认自己并非出于"集邮"目的而安装。
功能
-
Telegram 机器人签到
-
Emby 保活
- 定时模拟账号登录视频播放
- 播放时间与进度模拟
-
Telegram 自动监控信息
-
- 不给看 抢邀请码
- Embyhub 开注自动注册
-
Telegram 自动水群
- NakoNako 自动水群
安装与使用
您可以通过 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_id
和 api_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
贡献者名单
- 暂无
活跃开发者名单
致谢
通过爱发电赞助
配置项
设置项 | 值类型 | 简介 | 默认值 |
---|---|---|---|
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
Built Distribution
Hashes for embykeeper-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ce53992d607b6df2beed36a883944d1f6613573b173a14901053e71997882c0 |
|
MD5 | 6ccebbf98cbc019326f3d14f128c9709 |
|
BLAKE2b-256 | 80f859617d121ae259b60036574cc28b2449a65fc0f0771a9a197eb462dd5e76 |