Verified Commit 004508a7 authored by Kiryuu Sakuya's avatar Kiryuu Sakuya 🎵
Browse files

Now deploy on Heroku!

parent 997d3f92
Pipeline #202 passed with stages
in 1 minute and 24 seconds
# Torrent 功能
## 原理
> 这是暂未完成的规划。
- 机器人收到磁力链接之后,会向 iTorrents 提交请求。
- 如果 iTorrents 返回种子文件,则下载并缓存至本地,同时发送给用户。
- 发送成功后,记在自己的小本本里,以后还有用户请求同样的磁力链接即可快速知道来源。
- 如果 iTorrents 没有返回种子文件,或在 30 秒内请求超时,则通过一个 BitTorrent 客户端来进行种子文件下载。
- 同时,机器人会发送一个查询编号,用户可以通过私聊机器人的方式来查询进度。
- 如果获取到了种子文件,则会在下一次用户查询时发送给用户,并上传至 iTorrents。
## 问题
- 用户没有那么多耐心等待?
\ No newline at end of file
......@@ -4,9 +4,30 @@ Example usage: [@ikazuchi_bot](https://t.me/ikazuchi_bot)
## What can it do
|Command|Description |
|Command|Description|
|--|--|
|/torrent|Use magnet link to get torrent file.
|/torrent|Use magnet link to get torrent file|
|/policemodeon|Turn on the police mode|
|/policemodeoff|Turn off the police mode|
### Torrent
This function is simple. Just get the torrent file from a magnet link.
For now, it will get the torrent file from [iTorrents](https://itorrents.org).
We will add another mode in the future, but not now.
### Police mode
Like [policr](https://policr.bluerain.io).
## Roadmap
- [ ] Improve the torrent function.
- [ ] Add a database to store every query.
- [ ] Use a cache folder to store every torrents?
- [ ] Dockerfile (which will never finished).
## License
......
一个简单的机器人。
部署实例:[@ikazuchi_bot](https://t.me/ikazuchi_bot)
## 它能干嘛
|命令|简介|
|--|--|
|/torrent|将磁力链接转换为种子文件|
|/policemodeon|开启警察模式|
|/policemodeoff|关闭警察模式|
### Torrent
这个功能很简单,就是从磁力链接获取种子文件。
目前暂时只从 [iTorrents](https://itorrents.org) 获取文件。
我们会在未来改进这个功能,但不是现在。
### 警察模式
[policr](https://policr.bluerain.io) 差不多。
## 规划图
- [ ] 改进 Torrent 功能
- [ ] 将每个请求存储至数据库
- [ ] 将每个种子文件都缓存?
- [ ] Docker 适配
## 许可
WTFPL
\ No newline at end of file
......@@ -2,6 +2,7 @@ package main
import (
"log"
"net/http"
"os"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
......@@ -17,10 +18,23 @@ func main() {
log.Printf("Authorized on account %s", bot.Self.UserName)
updateConfig := tgbotapi.NewUpdate(0)
updateConfig.Timeout = 60
// Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
updates, err := bot.GetUpdatesChan(updateConfig)
port := os.Getenv("PORT")
_, err = bot.SetWebhook(tgbotapi.NewWebhook("https://pooper.herokuapp.com:443/" + bot.Token))
if err != nil {
log.Fatal(err)
}
updates := bot.ListenForWebhook("/" + bot.Token)
go http.ListenAndServe(":"+port, nil)
// Old method for NOT Heroku.
// updateConfig := tgbotapi.NewUpdate(0)
// updateConfig.Timeout = 60
// updates, err := bot.GetUpdatesChan(updateConfig)
for update := range updates {
if update.Message == nil {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment