Skip to content

dddddluo/absboss

Repository files navigation

Audiobookshelf Telegram Bot

利用Telegram 机器人管理 Audiobookshelf 用户。

功能

  • 管理员回复用户 /pp 或发送 /pp tgid 可打开目标用户管理面板。
  • 普通用户私聊发送 /start 可查看个人面板、线路、个人信息、活跃时间、签到、兑换码、创建/重置/删除账号。
  • 无号用户可绑定已有 Audiobookshelf 账号;如账号已绑定到其他 TG,可提交换绑申请,由管理员在群组中同意或拒绝。
  • 开放注册支持人数名额,用完自动关闭。
  • 兑换码支持注册码、续期码、白名单码。
  • 每日定时任务:活跃保号、积分自动续期。
  • 数据库自动备份。

部署

前提

  • 已从 BotFather 创建的 bot token

配置环境变量

cp .env.example .env
cp docker-compose.yml docker-compose.yml

编辑 .env

变量 必填 说明
BOT_TOKEN BotFather 创建的 bot token
OWNER_TG_ID owner Telegram ID,用于执行 /setup 初始化向导
ADMIN_TG_IDS 管理员 Telegram ID,多个用逗号分隔
MYSQL_DSN MySQL 连接串,例如 mysql+aiomysql://user:pass@127.0.0.1:3306/audiobookshelf_bot?charset=utf8mb4
ABS_BASE_URL Audiobookshelf 地址
ABS_API_TOKEN Audiobookshelf 管理员 API token
BOT_TIMEZONE 定时任务时区,默认 Asia/Shanghai
LOG_LEVEL 日志级别,默认 INFO
LOG_FILE 日志文件路径,默认 logs/app.log
LOG_MAX_BYTES 单个日志文件最大字节数,默认 10485760
LOG_BACKUP_COUNT 日志轮转备份数量,默认 5
BACKUP_DIR 数据库备份目录,默认 backups
BACKUP_KEEP_COUNT 备份文件保留数量,默认 7
REGISTRATION_QUEUE_DELAY_SECONDS 注册队列处理延迟秒数,默认 2

启动

docker compose up -d

停止:

docker compose down

更新:

docker compose pull
docker compose down absboss
docker compose up -d

首次启动后,OWNER_TG_ID对应的用户向 bot 私聊发送/setup,按向导完成主群组、注册天数、签到积分等运行期配置。完成后 bot 即可正常使用。

开发

环境

Python 3.10 及以上。

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
Copy-Item .env.example .env

数据库

启动时会自动创建表。也可以使用 Alembic 手动迁移:

alembic upgrade head

运行

python -m absbot.main

测试

pytest
ruff check .

效果预览

个人面板 管理面板
个人面板 管理面板
签到 备份
签到 备份

About

利用 Telegram 来管理 Audiobookshelf 用户的机器人

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors