兰空图床 TG Bot使用说明

最后更新于 4 天前 141 次阅读


写在前面

该项目是我想要通过tg快捷上传图片到图床中,然后突发奇想写的,现开源给大家使用,如果发现什么可以优化的点也欢迎大家提PR

环境准备

  • Linux/Windows
  • TG Bot
  • TG API ID & Hash

本项目基于Telethon开发,因此需要使用Telegram的API,需要自行使用自己的账号前往Telegram官网申请ID和Hash

申请API

首先前往TG官网用户中心:https://my.telegram.org/auth
file
输入你的号码并登陆,成功后如下,点击API development tools
file
输入app信息,可以任意填写(别太离谱),比如我的
file
提交后等待几秒会自动跳转刷新,保存好生成的App api_id和api_hash
file

申请Bot Token

Bot Token直接在TG中找@BotFather申请即可
向他发送/newbot指令,然后根据提示一步一步输入你的Bot信息
file
最终完成后会给你一个Token,复制它,后面会用到
file

配置文件说明

默认没有配置文件,需要在项目根目录的conf文件夹中创建一个.env文件,本项目中包含一个配置文件模版conf/.env.example

SAVE_PATH=./data/
LOG_PATH=./logs/
SQL_PATH=./sql/
SESSION_PATH=./session/
BOT_TOKEN= #你的telegram机器人token
API_ID= #你的telegram api id
API_HASH= #你的telegram api hash
LSKY_API= #Lsky API地址
OWNER_USERNAME= #机器人最高权限管理员的username(不带@符号)
BOT_USERNAME= #机器人的username(不带@符号)

配置文件示例图,默认只需要配置圈起来的部分
file

安装部署

目前本项目有三种运行方式,分别是Docker、Python、二进制

Docker部署

  • 手动部署
    首先是需要安装Docker环境,可以直接使用官方一键脚本实现安装

    bash <(curl -fsSL https://get.docker.com)
    systemctl start docker
    systemctl enable docker

    然后拉取本项目到本地使用docker启动

    mkdir -p /opt/lsky_bot
    cd /opt/lsky_bot
    git clone https://github.com/xiaoyaohanyue/lsky-bot.git .
    cp conf/.env.example conf/.env
    ##修改.env文件
    vim conf/.env
    ## 内容参考开头的配置文件说明
    docker compose up -d

    file
    日志通过docker logs lsky-bot查看,也可以查看项目路径中的logs文件夹
    file

二进制部署

默认发布的是通过python3.12.6打包的二进制文件,如果你的环境中运行不了建议重新手动打包或者使用Docker运行

Linux

方法肯定不止一种,但是我这里就只简单说一下使用systemd的后台运行方式。

  • 手动部署
    先下载最新的release文件
    https://github.com/xiaoyaohanyue/lsky-bot/releases/tag/v1.0
    file

    mkdir -p /opt/lsky_bot
    cd /opt/lsky_bot
    wget https://github.com/xiaoyaohanyue/lsky-bot/releases/download/v1.0/lsky-bot-linux_amd64.zip ##链接不保证时效性,建议通过上面的地址手动替换这个链接
    unzip lsky-bot-linux_amd64.zip
    cp dist/linux/conf/.env.example dist/linux/conf/.env
    ##修改配置文件
    vim dist/linux/conf/.env

    然后是设置systemd服务,首先创建/etc/systemd/system/lsky-bot.service文件,然后写入以下内容(如果完全按照上面步骤操作可以直接复制下面的内容)。

    
    [Unit]
    Description=Lsky Bot
    After=network.target
    Wants=network.target

[Service]
Type=simple
ExecStart=/opt/lsky_bot/dist/linux/main ##使用你的真实二进制文件地址替换
WorkingDirectory=/opt/lsky_bot/dist/linux ##使用你的真实二进制文件的根路径地址
User=root
Group=root
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

然后设置为开机自启并查看状态
```shell
systemctl daemon-reload
systemctl start lsky-bot.service
systemctl enable lsky-bot.service
systemctl status lsky-bot.service

file

Windows

实际上Windows也能部署,不过无法使用systemd进行进程守护,我们曲线救国使用nssm进行后台守护。

  • 安装nssm
    前往NSSM官方网站进行下载
    https://nssm.cc/download
    file
    下载并解压后得到如下内容
    file
    设置系统环境变量,可以考虑直接放到系统路径下C:\Windows\System32,我这里也是这么操作的。

  • 验证nssm
    验证是否安装成功很简单,打开cmd输入nssm出现以下内容就是成功
    file

  • 部署bot程序

从github下载Windows的二进制文件。
https://github.com/xiaoyaohanyue/lsky-bot/releases/tag/v1.0
file
下载之后解压并放到一个不会被删除的位置,比如我直接放在D盘的根目录中。

同样的我们需要去修改配置文件,进入到程序根目录
file
然后进入conf文件夹,重命名.env.example为.env并修改内容
file
接下来使用nssm创建服务,使用管理员身份运行cmd并执行下面指令
nssm install lskybot
会出现一个弹窗,我们只需要填写Application中的内容
其中Path直接选中exe文件后会自动填写Startup directory的内容,第三行保持为空。如下图
file
然后点击Install按钮即可
file
出现这个弹窗就是安装完成。
然后再使用命令启动它就好
nssm start lskybot
file

使用

一切都是基于绑定token之后才使用,建议设置token后再设置上传策略

  • 绑定token
    首先需要绑定兰空图床的token才可以正常使用。
    向bot发送指令 /bind token内容
    file

  • 指令列表
    发送/help可查看支持的指令

  • 设置上传策略
    /setprofile 0 8
    其中第一个参数是图片上传后是否公开,第二个是相册id(相册ID可以通过/album获取)
    file

  • 上传图片

可以直接将聊天框、频道、群组的图片直接转发给机器人它就会自动上传到图床。

还可以直接将图片的链接发送给机器人就可以实现上传。

  • 权限控制
    允许临时给某个TG用户上传图片的权限

年后我会将一键脚本更新到github。