telegram上传bot
前言
tele-aria2 是一个可以控制 Aria2 服务端的 Telegram Bot ,它可以发使命到长途 Aria2 进行下载、察看使命、删除使命等操作。正确来说它是一个 Aria2 前端程序,只不外情势不是我们所熟知的 AriaNg 那样的 Web 页面,而是以一个聊天机器人的情势存在。假如 Aria2 设置好联动 Rclone 主动上传,那么就可以实现发送下载链接给 Bot → Aria2 下载 → Rclon!e 主动上传文件到 Google Drive 等网盘的骚操作。
摆设 Aria2
Aria2 一键安装管理脚本 加强版 (GNU/Linux) 和 Aria2 Pro (Docker) 任选其一,这里不做赘述了。假如需要主动上传那么就需要设置联动 Rclone 的步骤,能正常下载并上传即代表摆设工作完成,不然忽略这个步骤即可。
获取 Telegram Bot 访问令牌
使用 @BotFather 创建自己的 Bot 并获取访问令牌(
<TOKEN>
),過逞如图所示:
获取用户 ID
-
访问
https://api.telegram.org/bot<TOKEN>/getUpdates
(更换
<TOKEN>
字段),会得到一长串信息,此中
"id":
字段背面的数字就是所要获取的用户 ID 。
给刚创建 Bot 任意发送一个信息
摆设 tele-aria2
为了防备环境不统一导致摆设失败将使用 Docker 进行摆设。
{ "aria2-server": "ws://10.0.0.2:6800/jsonrpc", "aria2-key": "P3TERX_2020", "proxy": "http://127.0.0.1:7890", "bot-key": "123456789:xyz", "user-id": "123456", "max-index": 10 }
TIPS:
假如你需要多用户支持,用户 ID 之间用
,
(半角逗号)隔开即可,就像这样:
"user-id": "123,456,789"
~/.tele-aria2-conf.json
(这个文件名称和路径随意,自己知道就行,背面的 Docker 运行下令中记得更换)
nano ~/.tele-aria2-conf.json
docker run -d \ --name tele-aria2 \ --restart unless-stopped \ --log-opt max-size=1m \ --network host \ -v ~/.tele-aria2-conf.json:/config.json \ p3terx/tele-aria2:0.2.2
/start
给 Bot ,Bot 回答并弹出菜单即代表摆设结果。
使用 Bot 控制 Aria2 下载
范围性
- 无法在 Bot 中直接察看上传进度,毕竟只是 Aria2 的前端
- 临时一个 Bot 只能控制一个 Aria2 服务端
尾巴
tele-aria2 现在尚处于低级开发阶段,功能比较极简,不外 Aria2 绝大多数时间的使用场景是添加、暂停、删除使命。AriaNg 功能强盛,但由于开发者为了保持操作逻辑的严谨性(添加使命前可修改默认参数),因此捐躯掉批量添加种子功能,而 tele-aria2 可以一次性发送多个种子来实现批量添加种子,肯定程度上也补充了 AriaNg 这个功能的缺失。以是说在日常使用场景中 tele-aria2 可以替换 AriaNg ,而在需要单独定制使命参数要么察看使命进度时使用 AriaNg ,二者相辅相成应该算是现在 Aria2 前端最佳解决方案。
更多 Aria2 教程
相关 TG 频道: Aria2 Channel
相关 TG 群组: Aria2 Group
本博客已开设 Telegram 频道 ,欢迎小同伴们订阅关注。
In telegram API documentation I see: “You can either pass a
file_id
as String to resend a photo that is already on the Telegram servers”, but I can’t find ways to get file_id of uploaded file. How can I get it?
在电报API文档中,我看到:“你可以将file_id作为String通报给重新发送已经在Telegram服务器上的照片”,但我找不到获取上传文件的file_id的方法。我怎么才能得到它?
3 个解决方案
1
Say you receive a
Message
with an array of
PhotoSize
假设您收到一个包含PhotoSize数组的消息
https://core.telegram.org/bots/api#photosize
https://core.telegram.org/bots/api#photosize
As you can see, there’s a
file_id
, you can use this to send a photo through
sendPhoto
.
如您所见,有一个file_id,您可以使用它通过sendPhoto发送照片。
If we assume
Update
is an object, with in it a
Message
object, which in turn provides a
Chat
object with in it a
id
of the chat where the initial message came from and an array of
PhotoSize
(excuse me for using PHP here, but that’s my main language…)
假如我们假设Update是一个对象,此中包含一个Message对象,该对象又提供了一个Chat对象,此中包含初始消息来自的聊天ID和一个PhotoSize数组(请包涵我在这里使用PHP,但是这是我的重要语言…)
$update->message->photo
is how you can access the array. Use some kind of For loop to iterate over the items, or just access the first one if the array isn’t bigger than 1.
$ update-> message-> photo是怎样访问数组的。使用某种For循环来迭代项目,要么只是在数组不大于1时访问第一个。
After that, you can use the result(s) to extract the
file_id
and send it as a
string
via
sendPhoto
‘s
photo
parameter and the Chat ID via the
chat_id
parameter.
之后,您可以使用结果提取file_id并通过sendPhoto的photo参数和聊天ID通过chat_id参数将其作为字符串发送。
I hope this helped!
我盼望这有帮助!
P.S. Here is a diagram of my current implementation of the API, i hope it brings some clarity to you!
附:这是我现在的API实现图,我盼望它给你带来一些清楚度!
first you should download the photo with this api to your bot
https://api.telegram.org/bot<token>/getfile?file_id={the file_id of the photo you want to download}
then it returns you a response of a File which has an attribute named file_path
then using the file_path you can download the photo full size using this
https://api.telegram.org/file/bot<token>/<file_path>
all of this is based on official documentation found here . Telegram API Doc
本文网址:
http://www.1cm8858.com/d/202071411433_7359_523498786/home
Ten articles before and after
不仅韩国n号房南韩Telegram上剥削数十位性奴隶-电报telegram技巧分享
“telegram”的发音:如何用英语日语备考常用标点符号怎么读?-电报telegram技巧分享
第125章国内电报一个字多少钱?-电报telegram技巧分享
抗日时期200毫瓦(0.2W)的短波7.023MHZ电报机-电报telegram技巧分享
中国用微信、海外用电报个人频道介绍:安利狂-电报telegram技巧分享
一键部署MTPROTO公益TG代理发布频道-电报telegram技巧分享
微信和telegram比微信更好用的通讯软件-电报telegram技巧分享
What is 100/8 as a decimal? (Convert 100/8 to decimal)