logo NodeSeekbeta

深夜发帖-开源C++基于telegram的轻量图床bot

开源地址: https://github.com/cryptoli/lite-telegram-image-bot/
成品bot: https://t.me/liteTgImagebot
功能:

  1. 支持将群组/频道里自己或别人发送的图片变为图源,只需要将群组或频道里的图片转发给bot即可得到一个url
  2. 支持个人私发给bot的图片变为图源,将图片发送给bot即可得到一个url
  3. 群聊中@ bot即可获取该图url(开发中...)
  4. 支持格式: 视频、文件、图片、贴纸等等,详见下面的json
"mime_types": {
        ".jpg": "image/jpeg",
        ".jpeg": "image/jpeg",
        ".png": "image/png",
        ".gif": "image/gif",
        ".bmp": "image/bmp",
        ".tiff": "image/tiff",
        ".webp": "image/webp",
        ".mp4": "video/mp4",
        ".mp3": "audio/mpeg",
        ".ogg": "audio/ogg",
        ".wav": "audio/wav",
        ".m4a": "audio/mp4",
        ".aac": "audio/aac",
        ".pdf": "application/pdf",
        ".doc": "application/msword",
        ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
        ".xls": "application/vnd.ms-excel",
        ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        ".ppt": "application/vnd.ms-powerpoint",
        ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
        ".zip": "application/zip",
        ".rar": "application/x-rar-compressed",
        ".7z": "application/x-7z-compressed",
        ".txt": "text/plain",
        ".csv": "text/csv",
        ".json": "application/json",
        ".xml": "application/xml",
        ".html": "text/html",
        ".htm": "text/html",
        ".css": "text/css",
        ".js": "application/javascript",
        ".webm": "video/webm",
        ".mkv": "video/x-matroska",
        ".mov": "video/quicktime",
        ".avi": "video/x-msvideo",
        ".flv": "video/x-flv",
        ".apk": "application/vnd.android.package-archive",
        ".tar": "application/x-tar",
        ".gz": "application/gzip",
        ".bz2": "application/x-bzip2",
        ".stl": "application/vnd.ms-pkistl"
    },

开发消息请关注频道: https://t.me/cryptothrifts
由于本代码还在完善中,如有bug请提pr
需要声明的:这只是个C++写的轻量telegram bot,和其他大佬的图床功能上是有冲突的,如果您想在tg里快速获得一个图床链接,那么用这个是比较合适的。

大致功能如下:
image
image

以下为编译、使用方法:

1. 克隆项目

git https://github.com/cryptoli/lite-telegram-image-bot.git
cd lite-telegram-image-bot

2. 安装依赖库

在 Ubuntu 上,你可以使用以下命令安装所需的库:

sudo apt-get install g++ libcurl4-openssl-dev make nlohmann-json3-dev libssl-dev

3. 编译项目

在项目根目录下运行:

make

4. 修改配置文件config.json

需要修改hostname,api_token

{
    "server": {
        "hostname": "yourdomain.com",
        "port": 443
    },
    "api_token": "your_telegram_api_token_here",
    "mime_types": {
        ".jpg": "image/jpeg",
        ".jpeg": "image/jpeg",
        ".png": "image/png",
        ".gif": "image/gif",
        ".bmp": "image/bmp",
        ".tiff": "image/tiff",
        ".webp": "image/webp"
    },
    "cache": {
        "max_size_mb": 100,
        "max_age_seconds": 3600
    }
}

5. 在当前目录生成证书

openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt

6. 运行机器人

运行程序并传入 Telegram Bot API Token:

./telegram_bot

你可以通过 @BotFather 在 Telegram 中创建并获取你的 Bot Token。

由于服务器在美国可能访问较慢,先来几张图
image
image
image
image
image

1234
  • 证书的问题修复了之前我是用的自己生成的证书,现在换成了letsencrypt的

  • @cryptothrift #23 我也觉得docker好点,还是域名反代好一点,现在这种方式安装,要求 80/443都不能被占用的干净服务器,这个就有点难了。docker 域名反代,然后配置里添加反代好的域名,然后上传图片返回的就是带域名的链接,我早上给你看的截图那个项目也是这样的,比较好实现安装。

  • “干净的服务器”搭建成功:image

  • 图挂了

  • 图url ssl不正确

  • 图图呢

  • 图床证书不对

  • 支持

  • https+域名+433看着好别扭,其实如果把域名反代单独拿出来,感觉会更好,有类似你这个的
    Alt Text

  • @bigbabyer #7 已经修改了端口的问题,我还真不知道已经有这个bot了

  • 居然是C++写的 xhj010

1234

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72803位seeker

🎉欢迎新用户🎉