修复支持本地http代理

This commit is contained in:
xumf
2021-10-13 10:17:57 +08:00
parent 47bfd04df5
commit f57df6f232
+24 -1
View File
@@ -6,6 +6,8 @@ import (
"regexp" "regexp"
"strings" "strings"
"time" "time"
"net/http"
"net/url"
"github.com/astaxie/beego/httplib" "github.com/astaxie/beego/httplib"
"github.com/beego/beego/v2/core/logs" "github.com/beego/beego/v2/core/logs"
@@ -34,6 +36,22 @@ var Handler = func(message *tb.Message) {
} }
} }
func buildClientWithProxy(addr string) (*http.Client, error) {
if addr != "" {
u, err := url.Parse(addr)
if err != nil {
panic(err)
}
// Patch client transport
httpTransport := &http.Transport{Proxy: http.ProxyURL(u)}
hc := &http.Client{Transport: httpTransport}
return hc, nil
}
return nil, nil // use default
}
func init() { func init() {
go func() { go func() {
token := tg.Get("token") token := tg.Get("token")
@@ -41,9 +59,14 @@ func init() {
logs.Warn("未提供telegram机器人token") logs.Warn("未提供telegram机器人token")
return return
} }
client, clientErr := buildClientWithProxy(tg.Get("url"))
if clientErr != nil {
logs.Warn("监听telegram机器人失败clientErr%v", clientErr)
return
}
var err error var err error
b, err = tb.NewBot(tb.Settings{ b, err = tb.NewBot(tb.Settings{
URL: tg.Get("url"), Client: client,
Token: token, Token: token,
Poller: &tb.LongPoller{Timeout: 10 * time.Second}, Poller: &tb.LongPoller{Timeout: 10 * time.Second},
// ParseMode: tb.ModeMarkdownV2, // ParseMode: tb.ModeMarkdownV2,