383 lines
8.4 KiB
Go
383 lines
8.4 KiB
Go
package proxy
|
|
|
|
import (
|
|
"91porn-server/common/log"
|
|
"91porn-server/web/api/tianyuctrl/http"
|
|
"bytes"
|
|
"encoding/base64"
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
apiDomain = BucketVideoAddressV2 + "/file/upload"
|
|
imgDomain = BucketImageAddressV2 + "/file/upload"
|
|
)
|
|
|
|
var (
|
|
header = map[string]string{"Content-Type": "application/json"}
|
|
)
|
|
|
|
const (
|
|
Success = 200
|
|
)
|
|
|
|
func UploadImg(fileName string, data []byte, domain string) (pathStr string, err error) {
|
|
r := objreq{
|
|
Name: fileName,
|
|
Data: base64.StdEncoding.EncodeToString(data),
|
|
}
|
|
jsonbytes, err := json.Marshal(r)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = imgDomain
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/upload") {
|
|
url = domain + "/file/upload"
|
|
}
|
|
resp, err := http.Post(url, header, bytes.NewReader(jsonbytes))
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
var or objresp
|
|
if err = json.Unmarshal(resp.Data, &or); err != nil {
|
|
return
|
|
}
|
|
if or.Code != Success {
|
|
err = fmt.Errorf("上传失败:%s", or.Msg)
|
|
return
|
|
}
|
|
pathStr = or.Object.Name
|
|
return
|
|
}
|
|
|
|
func UploadBase64Img(fileName string, data string, domain string) (pathStr string, err error) {
|
|
r := objreq{
|
|
Name: fileName,
|
|
Data: data,
|
|
}
|
|
jsonbytes, err := json.Marshal(r)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = apiDomain
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/upload") {
|
|
url = domain + "/file/upload"
|
|
}
|
|
resp, err := http.Post(url, header, bytes.NewReader(jsonbytes))
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
var or objresp
|
|
if err = json.Unmarshal(resp.Data, &or); err != nil {
|
|
return
|
|
}
|
|
if or.Code != Success {
|
|
err = fmt.Errorf("上传失败:%s", or.Msg)
|
|
return
|
|
}
|
|
pathStr = or.Object.Name
|
|
return
|
|
}
|
|
|
|
func fileServer() (url string) {
|
|
return BucketVideoAddressV2
|
|
}
|
|
|
|
func PostOk(baseInfo *ShardOk, domain string) (result *VideoOkResult, err error) {
|
|
result = &VideoOkResult{}
|
|
paramJson, err := json.Marshal(baseInfo)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/proxy/videoOk") {
|
|
url = domain + "/file/web/proxy/videoOk"
|
|
}
|
|
fmt.Println(paramJson)
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
fmt.Println(result)
|
|
return nil, err
|
|
}
|
|
fmt.Println(result)
|
|
return
|
|
}
|
|
func PostOkV2(baseInfo *ShardOk, domain string) (result *VideoOkResult, err error) {
|
|
result = &VideoOkResult{}
|
|
paramJson, err := json.Marshal(baseInfo)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/proxy/videoOkv2") {
|
|
url = domain + "/file/web/proxy/videoOkv2"
|
|
}
|
|
fmt.Println(paramJson)
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
fmt.Println(result)
|
|
return nil, err
|
|
}
|
|
fmt.Println(result)
|
|
return
|
|
}
|
|
func QueryMedia(baseInfo *MediaQueryeReq, domain string) (result *VideoQueryResult, err error) {
|
|
result = &VideoQueryResult{}
|
|
paramJson, err := json.Marshal(baseInfo)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/media/query") {
|
|
url = domain + "/file/web/media/query"
|
|
}
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
fmt.Println(err)
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
|
|
func QueryMedias(baseInfo *MediaQueryesReq, domain string) (result *VideoQuerysResult, err error) {
|
|
result = &VideoQuerysResult{
|
|
Data: make([]MediaResp, 0),
|
|
}
|
|
paramJson, err := json.Marshal(baseInfo)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/media/querys") {
|
|
url = domain + "/file/web/media/querys"
|
|
}
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
fmt.Println(err)
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
func SyncMedia(baseInfo *MediaSyncReq, domain string) (result *VideoSyncResult, err error) {
|
|
result = &VideoSyncResult{}
|
|
paramJson, err := json.Marshal(baseInfo)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/media/search") {
|
|
url = domain + "/file/web/media/search"
|
|
}
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
fmt.Println(err, string(fr.Data))
|
|
return nil, err
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func UploadVideo(domain string, body *ShardBody) (result *Result, err error) {
|
|
if body == nil {
|
|
return nil, errors.New("no video to upload")
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/proxy/videoBody") {
|
|
url = domain + "/file/web/proxy/videoBody"
|
|
}
|
|
fmt.Println(url)
|
|
|
|
buf, err := json.Marshal(body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
resp, err := http.Post(url, header, bytes.NewBuffer(buf))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
fmt.Println("resp-->", string(resp.Data))
|
|
result = new(Result)
|
|
if err = json.Unmarshal(resp.Data, result); err != nil {
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
func PostSearch(param *MediaSearchReq, domain string) (result *MediaSearchResult, err error) {
|
|
result = &MediaSearchResult{}
|
|
paramJson, err := json.Marshal(param)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/media/search") {
|
|
url = domain + "/file/web/media/search"
|
|
}
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
log.Error(fmt.Sprintf("ty media search err:%v", err))
|
|
return
|
|
}
|
|
if fr.StatusCode != 200 {
|
|
log.Error(fmt.Sprintf("ty media search fr.StatusCode:%v", fr.StatusCode))
|
|
return
|
|
}
|
|
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
log.Error(fmt.Sprintf("ty json Unmarshal search err:%v", err))
|
|
return nil, err
|
|
}
|
|
log.Info("proxy:test", log.Any("url", url), log.Any("result", result))
|
|
return
|
|
}
|
|
|
|
func PostUpdate(param *MediaUpdateReq, domain string) (result *MediaUpdateResult, err error) {
|
|
result = &MediaUpdateResult{}
|
|
paramJson, err := json.Marshal(param)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/media/update") {
|
|
url = domain + "/file/web/media/update"
|
|
}
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
|
|
func PostDelete(param *MediaDelReq, domain string) (result *MediaDelResult, err error) {
|
|
result = &MediaDelResult{}
|
|
paramJson, err := json.Marshal(param)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/media/delete") {
|
|
url = domain + "/file/web/media/delete"
|
|
}
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
|
|
func PostUpdatePreTime(param *MediaUpdatePreTime, domain string) (result *MediaDelResult, err error) {
|
|
result = &MediaDelResult{}
|
|
paramJson, err := json.Marshal(param)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/media/update/prefile") {
|
|
url = domain + "/file/web/media/update/prefile"
|
|
}
|
|
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err = json.Unmarshal(fr.Data, result); err != nil {
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
|
|
func UploadVideoV2(domain string, body *ShardBodyV2) (result *Result, err error) {
|
|
if body == nil {
|
|
return nil, errors.New("no video to upload")
|
|
}
|
|
if len(domain) == 0 {
|
|
domain = fileServer()
|
|
}
|
|
url := domain
|
|
if !strings.Contains(domain, "/file/web/proxy/videoBodyV2") {
|
|
url = domain + "/file/web/proxy/videoBodyV2"
|
|
}
|
|
fmt.Println(url)
|
|
|
|
buf, err := json.Marshal(body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
resp, err := http.Post(url, header, bytes.NewBuffer(buf))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
fmt.Println("resp-->", string(resp.Data))
|
|
result = new(Result)
|
|
if err = json.Unmarshal(resp.Data, result); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
fmt.Println("result-->", result)
|
|
if result.Code != 200 {
|
|
err = fmt.Errorf("result code err")
|
|
}
|
|
return
|
|
}
|