use proxy for downloading discord images

This commit is contained in:
RockYang 2024-05-09 18:48:53 +08:00
parent 31828a3336
commit 8b3b0139b0

View File

@ -17,6 +17,7 @@ import (
"geekai/store" "geekai/store"
"geekai/store/model" "geekai/store/model"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"strings"
"time" "time"
"gorm.io/gorm" "gorm.io/gorm"
@ -118,17 +119,23 @@ func (p *ServicePool) DownloadImages() {
} }
logger.Infof("try to download image: %s", v.OrgURL) logger.Infof("try to download image: %s", v.OrgURL)
var imgURL string mjService := p.getService(v.ChannelId)
var err error if mjService == nil {
if servicePlus := p.getService(v.ChannelId); servicePlus != nil { logger.Errorf("Invalid task: %+v", v)
task, _ := servicePlus.Client.QueryTask(v.TaskId) continue
if len(task.Buttons) > 0 {
v.Hash = GetImageHash(task.Buttons[0].CustomId)
}
imgURL, err = p.uploaderManager.GetUploadHandler().PutImg(v.OrgURL, false)
} else {
imgURL, err = p.uploaderManager.GetUploadHandler().PutImg(v.OrgURL, true)
} }
task, _ := mjService.Client.QueryTask(v.TaskId)
if len(task.Buttons) > 0 {
v.Hash = GetImageHash(task.Buttons[0].CustomId)
}
// 如果是返回的是 discord 图片地址,则使用代理下载
proxy := false
if strings.HasPrefix(v.OrgURL, "https://cdn.discordapp.com") {
proxy = true
}
imgURL, err := p.uploaderManager.GetUploadHandler().PutImg(v.OrgURL, proxy)
if err != nil { if err != nil {
logger.Errorf("error with download image %s, %v", v.OrgURL, err) logger.Errorf("error with download image %s, %v", v.OrgURL, err)
continue continue