MCPcopy
hub / github.com/krau/SaveAny-Bot

github.com/krau/SaveAny-Bot @v0.58.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.58.0 ↗
1,205 symbols 4,249 edges 234 files 350 documented · 29%
README

Save Any Bot

把 Telegram 上的文件转存到多种存储端

Release Date tag Build Status Stars Downloads Issues Pull Requests License

🎯 特性

  • 支持文档/视频/图片/贴纸…甚至还有 Telegraph
  • 破解禁止保存的文件
  • 批量下载
  • 流式传输
  • 多用户使用
  • 基于存储规则的自动整理
  • 监听并自动转存指定聊天的消息, 支持过滤
  • 在不同存储端之间转存文件
  • 集成 yt-dlp, 从所支持的网站下载并转存媒体文件
  • 集成 Aria2, 支持直链/磁力下载和转存
  • 使用 js 编写解析器插件以转存任意网站的文件
  • 存储端支持:
  • Alist
  • S3
  • WebDAV
  • 本地磁盘
  • Rclone
  • Telegram (重传回指定聊天)

快速开始

创建文件 config.toml 并填入以下内容:

[telegram]
token = "" # 你的 Bot Token, 在 @BotFather 获取
[telegram.proxy]
# 启用代理连接 telegram
enable = false
url = "socks5://127.0.0.1:7890"

[[storages]]
name = "本地磁盘"
type = "local"
enable = true
base_path = "./downloads"

[[users]]
id = 114514 # 你的 Telegram 账号 id
storages = []
blacklist = true

使用 Docker 运行 Save Any Bot:

docker run -d --name saveany-bot \
    -v ./config.toml:/app/config.toml \
    -v ./downloads:/app/downloads \
    ghcr.io/krau/saveany-bot:latest

查看文档 以获取更多配置选项和使用方法.

赞助

本项目受到 YxVMNodeSupport 的支持.

如果这个项目对你有帮助, 你可以考虑通过以下方式赞助我:

鸣谢

社区和关于作者

  • 通知群组
  • 讨论区
  • 个人频道

Extension points exported contracts — how you extend this code

ProgressTracker (Interface)
ProgressTracker defines the interface for tracking ytdlp task progress [10 implementers]
core/tasks/ytdlp/progress.go
Executable (Interface)
(no doc) [8 implementers]
core/core.go
Storage (Interface)
(no doc) [9 implementers]
storage/storage.go
StorageConfig (Interface)
(no doc) [7 implementers]
config/storage/types.go
Parser (Interface)
(no doc) [3 implementers]
pkg/parser/parser.go
RuleClass (Interface)
(no doc) [3 implementers]
pkg/rule/rule.go
Sink (Interface)
Sink receives task events. Implementations must be safe for concurrent use. [1 implementers]
pkg/taskevent/taskevent.go
TGFile (Interface)
(no doc) [1 implementers]
pkg/tfile/tgfile.go

Core symbols most depended-on inside this repo

T
called by 359
common/i18n/i18n.go
Error
called by 112
api/types.go
C
called by 98
config/viper.go
Name
called by 92
pkg/tfile/tgfile.go
String
called by 75
client/bot/handlers/utils/ruleutil/rule.go
TaskID
called by 45
core/tasks/batchtfile/taskinfo.go
Set
called by 42
pkg/enums/tasktype/tasktype_enum.go
call
called by 36
pkg/aria2/client.go

Shape

Method 546
Function 422
Struct 186
Interface 30
TypeAlias 15
FuncType 6

Languages

Go99%
TypeScript1%

Modules by API surface

pkg/aria2/client.go56 symbols
core/tasks/transfer/taskinfo.go21 symbols
core/tasks/parsed/taskinfo.go21 symbols
api/types.go21 symbols
core/tasks/directlinks/progress.go20 symbols
core/tasks/batchtfile/taskinfo.go20 symbols
api/progress.go20 symbols
pkg/tfile/tgfile.go18 symbols
cmd/upload/progress_tea.go16 symbols
api/handlers_test.go16 symbols
storage/webdav/client.go15 symbols
storage/rclone/rclone.go15 symbols

Dependencies from manifests, versioned

github.com/AnimeKaizoku/cacherv1.0.3 · 1×
github.com/ProtonMail/go-cryptov1.4.1 · 1×
github.com/alex-shpak/hugo-bookv0.0.0-2025053023383 · 1×
github.com/aws/smithy-gov1.24.0 · 1×
github.com/aymanbagabas/go-osc52/v2v2.0.1 · 1×
github.com/blang/semverv3.5.1+incompatible · 1×
github.com/celestix/gotgprotov1.0.0-beta22 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/charmbracelet/bubblesv1.0.0 · 1×
github.com/charmbracelet/colorprofilev0.4.3 · 1×

For agents

$ claude mcp add SaveAny-Bot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact