Skip to content
 
 

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Submanger

Submanger Bot 是一个管理订阅链接的机器人 可以帮助使用者更方便地管理订阅

Submanger Bot 本身只是一个订阅管理器 不具备任何代理能力 也不提供任何订阅链接

使用前说明

这是更新截止到2023年的Bot 尽管本项目完全手写无AI 但它不支持异步容易卡死 代码极度混乱同一个功能写十遍无法维护 因此在闭源分发停止两年后于此开源

如果使用时遇到任何问题 请勿提出任何issue 因为不再维护

如果您需要更多稳定的高级功能 欢迎联系 @Temp_ChatBot

环境要求

最低配置 1c0.5g
需连接Telegram服务器 请自行配置代理服务
目前仅支持 x86 架构的 Linux/Windows 系统 如需其他系统或架构的打包请私聊 开源了随便玩哈

安全

Submanger Bot 仅会在 config.yaml 文件中存储配置文件信息 在 My_sub.db 中存储订阅链接 在 Airport.list 文件中存储机场名称

Submanger Bot 的全部数据仅会存储在本地和Telegram服务器(聊天记录) 除拥有ssh账密,Telegram Bot Token或超管授予权限外无法通过其他方式从Bot获取数据 真没后门 你可以反一下试试

Submanger Bot 仅会连接 Telegram服务器 订阅链接服务器 subconverter服务器 除此之外不会连接任何其他服务 你可以自己抓包试试

安装

一键脚本

一键脚本目前仅支持 Debian/Ubuntu 系统 其他系统请自行手动下载

脚本启动后会下载bot本体 配置进程守护 screen 并要求填写 授权Token Telegram Bot Token 超管Telegram id

目前的一键脚本请在群内置顶获取 这个旧版开源的 没必要一键脚本

手动下载

Submanger Bot 直接以二进制单文件形式提供 目前仅支持 Linux x86/Windows x86 系统 如果需要其他架构的打包 请私聊我

配置

由于机器人的配置比较复杂 建议搭配 readme.config.yaml 与 #使用 查看

必要配置

以下配置必须设置 否则 Bot 将无法启动:

  • token: 你的 Bot 授权Token
  • telegramtoken 你的 Telegram Bot Token(请于 @BotFather 获取)
  • administrator: 超级管理员id

如以一键脚本安装 会要求填写以上配置

可选配置

请自行查看 readme.config.yaml 其实就是懒得写

数据库

My_sub.db : 使用Sqlite数据库 以明文方式存储订阅到本地
Airport.list : 机场名称数据库 每行格式为 域名 机场名 Bot不会提供数据库 请自行收集\

在识别机场名称时 会先从数据库中查找对应域名 若未找到则会尝试自动识别域名 但自动识别到的机场名并不会添加进数据库

使用

游客

无授权者即游客 在关闭唯一管理模式时 (adminOnlyMode 为 0) 可以使用如下指令:

查询订阅 /subinfo
转换订阅 /convert
注册试用 /free
消息延迟 /ping
版本信息 /version

/subinfo <链接>

查询订阅链接信息 显示机场名称 流量 过期时间等信息
可回复包含订阅链接的消息或写在后面 一次可查询多个订阅 会自动去除订阅转换与短链接并去重
订阅不会写入日志或数据库中

/convert <链接/节点>

订阅转换 可转换链接或节点
可回复包含链接或节点的消息或写在后面 一次可转换多个 会自动去除订阅转换与短链接并去重

/free <链接/域名>

获取白嫖订阅 仅支持获取使用V2board/SSpanel的无验证机场的试用订阅

/ping

获取Bot的消息延迟 会测试多次取平均值

/version

获取Bot的版本信息

管理

授权者即管理 至少可以使用如下指令:

发送消息 /chat 内容
发送通知 /notice 内容
添加订阅 /add 订阅链接 备注
删除订阅 /del 编号
查找订阅 /search 内容
更新订阅 /update 编号 订阅链接 备注
整理订阅 /sort
自动添加 /auto 回复/内容
获取订阅 /get 编号
页面跳转 /page 页数
交换订阅 /swap 编号 编号
修改备注 /comment 编号 备注
测活订阅 /prune
注册任务 /register
取消任务 /unregister
离开群聊 /leave

/chat /notice <内容>

使用Bot对全部授权者发送消息

/add <订阅链接> <内容>

向订阅库添加订阅

/del <编号> <可选:编号2> <可选:编号3>...

删除订阅库内对应编号的订阅

/search <关键词> <可选:页数>

显示说明或链接包含关键词的订阅 每页共20个

/update <编号> <订阅链接> <备注>

更新特定编号的订阅的信息

/sort

在使用 /del 删除订阅后 该订阅原来位置的编号会空缺 使用本命令可以使编号连贯

/auto

自动添加订阅 可以回复或者后面以空格分开 可一次添加多个
对于每个订阅 会先尝试识别机场名 然后尝试获取订阅流量信息

/get <编号> (等效于点击按钮获取)

获取特定编号的订阅 如果是已信任群组 (参见 #/trust) 则会发在群组中 否则发在私聊

/page <页数>

在使用 /search 命令搜索后 通过回复Bot的查找消息可进行页数跳转

/swap <编号> <编号>

交换两个不同编号的订阅信息

/comment <编号> <说明>

修改特定编号订阅的备注说明

/prune <可选:关键词>

手动测活订阅 可使用关键词限制测活的具体订阅

/register <可选:关键词>

将该群组或私聊添加进订阅监测任务中 可使用关键词限制监测显示的订阅

/unregister

将该群组或私聊从订阅监测任务中删除

/leave

使 Bot 从群组中离开

超管

超管具有最大的操作权限 在启动时读取 可以使用的命令如下:

给予授权 /grant
取消授权 /ungrant
清除授权 /grantclear
授权列表 /list
信任群组 /trust
取消信任 /distrust
赠与订阅 /invite
添加域名 /addkeyword
删除域名 /delkeyword
获取数据 /database
安装数据 /install
查询日志 /log
重载配置 /reload
保存配置 /save
获取配置 /value
设置配置 /set

/grant <可选:Telegram User id 1> <可选:Telegram User id 2>...

回复一个用户的消息或后面写入用户id可将此用户的权限提升为管理员 会被写入到 Config 的 admin 中

/ungrant <可选:Telegram User id 1> <可选:Telegram User id 2>...

回复一个用户的消息或后面写入用户id可将此用户的权限降低为游客 会从 Config 的 admin 中删除

/grantclear

清理所有人的管理员权限

/list

查看管理员列表 等效于 /value admin

/trust

将该群组设定为可信任群组 获取的订阅会发在群组中 否则会发在获取者的私聊 会被写入到 Config 的 trust 中

/distrust

将该群组设定为非可信任群组 会从 Config 的 trust 中删除

/invite <编号>

对于该功能 若 allowAdminToInvite 值为 1 则管理员也可使用此命令
通过回复他人消息来给予他人订阅库中特定订阅

/addkeyword <域名> <机场名>

将机场名信息添加进数据库

/delkeyword <域名>

将机场名信息从数据库中删除

/database <密码>

获取订阅数据库

/log <密码>

获取日志

/install <密码>

通过回复订阅数据库文件 来恢复原有的数据库

/reload

若 Bot 未关闭 而修改了配置文件 可使用此命令重新读取

/save

保存 Bot 当前配置

/value <路径>

获取配置文件中特定路径的值

需要对 config.yaml 很熟悉
不同级的路径用 . 分开

如 convert 的配置为:

convert:
  backend: https://api.nexconvert.com/
  config: https://cdn.jsdelivr.net/gh/lhl77/sub-ini@main/tsutsu-mini-gfw.ini
  target: clash
  parameter: &emoji=true&remove_emoji=false&interval=3600&udp=true&expand=false&list=false&scv=true&fdn=true&new_name=true

则读取的值为:

/value convert
返回:
[✅][配置 convert 的值为]

{'backend': 'https://api.nexconvert.com/', 'config': 'https://cdn.jsdelivr.net/gh/lhl77/sub-ini@main/tsutsu-mini-gfw.ini', 'target': 'clash', 'parameter': '&emoji=true&remove_emoji=false&interval=3600&udp=true&expand=false&list=false&scv=true&fdn=true&new_name=true'}


如 cron 的配置为:

cron:
  enable: 1
  interval: 3600
  list:
  - 123456
  - -789: 关键词

则读取的值为:

/value cron.interval
返回:
[✅][配置 cron.interval 的值为]

3600

/set <路径> <值>

设置配置文件中特定路径的值

其他

鉴权方式

Bot 采用本地鉴权 读取Bot用户名后加密并与token匹配 若不一致则自动退出程序无法启动
授权后可注销Bot重新注册同一用户名的Bot 但无法更换Bot用户名

命令缩写

对于 /subinfo /chat /notice /add /del /search /update 命令
可直接使用首字母 /s 使用命令 (/subinfo 为 /i)

订阅概要

对于搜索后的对于面板 如果可以翻页 点击页数显示按钮即可显示订阅概要

订阅监测

如需使用监测功能 请将 cron.enable 的值设置为 1 cron.delay 为监测延时 每获取一轮订阅后延迟一段时间重新获取

为避免短时间内多次获取同一机场订阅 监测会打乱顺序逐条获取

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages