Home

Awesome

<div align="center"> <img height="180" src="https://pic.otaku.ren/20240320/AQADuroxGzAf2Vd9.jpg" alt="logo" /> <h1 align="center">img-mom | 图片老妈</h1> <p align="center"> Telegram 图片上传机器人,轻松上传图片到指定图床并获取外链地址 </p>

twitter wechat2

</div>

特性

使用方式

  1. 将图片通过私聊发送给 Bot, Bot 默认将只回复对应的 Telegram 图床链接
  2. 发送 /settings 指令,可以指定额外的图床,设置完成后,将图片通过私聊发送给 Bot, Bot 将回复你指定的额外图床链接
  3. 可使用 https://t.me/img_mom_bot , 进行在线体验 img-mom

自部署

前置条件

部署

  1. 克隆该项目

    git@github.com:beilunyang/img-mom.git
    cd img-mom
    
  2. 安装项目依赖

    npm install
    
  3. 创建 wrangler 配置文件

    cp wrangler.example.toml wrangler.toml
    
  4. 编辑新创建的 wrangler.toml 文件

  5. 当编辑完成后,运行

    npm run deploy
    

    等待项目编译完成并自动部署到 Cloudflare Workers

  6. 浏览器打开 https://<域名>/setup, 完成必要的 Webhook 初始化

Wrangler.toml 待配置项说明

# 你的 Cloudflare 账户ID
# 必填
account_id = "<string>"

[vars]
# 填写你创建的 Telegram Bot Token
# 必填
TG_BOT_TOKEN = "<string>"
# 长度为 1-256 字符,字符集为 A-Z,a-z,0-9,_,- 的字符串,用于防止 Webhook 接口被除当前Telegram Bot以外的应用恶意调用
# 非必填,但强烈推荐填写
TG_WEBHOOK_SECRET_TOKEN = "<string>"
# Telegram Bot 的所有者用户名
# 必填
TG_BOT_OWNER_USERNAME = "<string>"
# 是否允许非 Owner 用户使用 Telegram 图床 (注意:即使设置为 true, 非 Owner 用户也不能使用 CloudflareR2/BackblazeB2 图床)
# 非必填
TG_BOT_ALLOW_ANYONE = "<boolean>"

# Cloudflare R2 自定义域名
# 启用 Cloudflare R2 图床时,必填
R2_CUSTOM_DOMAIN = "<string>"
# Backblaze B2 keyID
# 启用 Backblaze B2 图床时,必填
B2_KEY_ID = "<string>"
# Backblaze B2 secretKey
# 启用 Backblaze B2 图床时,必填
B2_SECRET_KEY = "<string>"
# Backblaze B2 Endpoint
# 启用 Backblaze B2 图床时,必填
B2_ENDPOINT = "<string>"
# Backblaze B2 Bucket名
# 启用 Backblaze B2 图床时,必填
B2_BUCKET = "<string>"
# Backblaze B2 自定义域名
# 非必填
B2_CUSTOM_DOMAIN = "<string>"

[[kv_namespaces]]
# kv ID, 详见 https://developers.cloudflare.com/workers/runtime-apis/kv
# 必填
id = "<string>"

[[r2_buckets]]
# r2 Bucket名,详见 https://developers.cloudflare.com/r2/api/workers/workers-api-usage/
# 必填
bucket_name = "<string>"

提示:

GitHub Action 自动部署

要使用 GitHub Actions 部署 Cloudflare Workers,需要在 GitHub 仓库中设置以下 Secrets:

如何设置 Secrets

  1. 访问您的 GitHub 仓库。
  2. 点击 Settings > Secrets and variables > Actions > New repository secret(新建仓库密钥)。
  3. 按照上面列出的密钥添加每个 Name 和 Secret 并填入相应的值。

请确保替换为实际的 Cloudflare 和 Backblaze B2 账户详情。

配置好后,当推送代码到 master 分支,GitHub Actions 工作流将会使用这些 Secrets 动态生成 wrangler.toml 配置文件并自动部署您的 Cloudflare Worker。

Deploy to Cloudflare Workers

待办项

贡献

  1. fork 该项目
  2. 基于 master 分支 checkout 你的开发分支
  3. 配置 wrangler.toml
  4. 安装依赖并本地运行
    npm install
    npm run dev
    # 使用 Cloudflare tunnels 进行内网穿透
    npm run tunnel
    
    注意:由于该项目是作为 Telegram Bot 的 Webhook 后端,本地运行该项目无法让 Telegram Bot 访问,所以需要进行内网穿透,让本地运行的服务能够通过外网访问。(推荐使用 Cloudflare tunnels 进行免费内网穿透,当然也可以使用 ngrok 等服务)
  5. 浏览器打开 https://<域名>/setup, 完成必要的 Webhook 初始化
  6. 编写代码并测试
  7. 发送 PR, 等待合并

赞助

<img src="https://pic.otaku.ren/20240212/AQADPrgxGwoIWFZ-.jpg" style="width: 400px;"/> <br /> <a href="https://www.buymeacoffee.com/beilunyang" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-blue.png" alt="Buy Me A Coffee" style="width: 400px;" ></a>

License

MIT License.