写在前面
该项目是我想要通过tg快捷上传图片到图床中,然后突发奇想写的,现开源给大家使用,如果发现什么可以优化的点也欢迎大家提PR
环境准备
- Linux/Windows
- TG Bot
- TG API ID & Hash
本项目基于Telethon开发,因此需要使用Telegram的API,需要自行使用自己的账号前往Telegram官网申请ID和Hash
申请API
首先前往TG官网用户中心:https://my.telegram.org/auth
输入你的号码并登陆,成功后如下,点击API development tools
输入app信息,可以任意填写(别太离谱),比如我的
提交后等待几秒会自动跳转刷新,保存好生成的App api_id和api_hash
申请Bot Token
Bot Token直接在TG中找@BotFather申请即可
向他发送/newbot
指令,然后根据提示一步一步输入你的Bot信息
最终完成后会给你一个Token,复制它,后面会用到
配置文件说明
默认没有配置文件,需要在项目根目录的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(不带@符号)
配置文件示例图,默认只需要配置圈起来的部分
安装部署
目前本项目有三种运行方式,分别是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
日志通过docker logs lsky-bot
查看,也可以查看项目路径中的logs文件夹
二进制部署
默认发布的是通过python3.12.6打包的二进制文件,如果你的环境中运行不了建议重新手动打包或者使用Docker运行
Linux
方法肯定不止一种,但是我这里就只简单说一下使用systemd的后台运行方式。
- 手动部署
先下载最新的release文件
https://github.com/xiaoyaohanyue/lsky-bot/releases/tag/v1.0
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
Windows
实际上Windows也能部署,不过无法使用systemd进行进程守护,我们曲线救国使用nssm进行后台守护。
-
安装nssm
前往NSSM官方网站进行下载
https://nssm.cc/download
下载并解压后得到如下内容
设置系统环境变量,可以考虑直接放到系统路径下C:\Windows\System32
,我这里也是这么操作的。 -
验证nssm
验证是否安装成功很简单,打开cmd输入nssm出现以下内容就是成功
-
部署bot程序
从github下载Windows的二进制文件。
https://github.com/xiaoyaohanyue/lsky-bot/releases/tag/v1.0
下载之后解压并放到一个不会被删除的位置,比如我直接放在D盘的根目录中。
同样的我们需要去修改配置文件,进入到程序根目录
然后进入conf文件夹,重命名.env.example为.env并修改内容
接下来使用nssm创建服务,使用管理员身份运行cmd并执行下面指令
nssm install lskybot
会出现一个弹窗,我们只需要填写Application中的内容
其中Path直接选中exe文件后会自动填写Startup directory的内容,第三行保持为空。如下图
然后点击Install按钮即可
出现这个弹窗就是安装完成。
然后再使用命令启动它就好
nssm start lskybot
使用
一切都是基于绑定token之后才使用,建议设置token后再设置上传策略
-
绑定token
首先需要绑定兰空图床的token才可以正常使用。
向bot发送指令/bind token内容
-
指令列表
发送/help
可查看支持的指令 -
设置上传策略
/setprofile 0 8
其中第一个参数是图片上传后是否公开,第二个是相册id(相册ID可以通过/album
获取)
-
上传图片
可以直接将聊天框、频道、群组的图片直接转发给机器人它就会自动上传到图床。
还可以直接将图片的链接发送给机器人就可以实现上传。
- 权限控制
允许临时给某个TG用户上传图片的权限
年后我会将一键脚本更新到github。
Comments NOTHING