@@ -0,0 +1,102 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/httputil"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/v/vidmod"
|
||||
"91porn-server/skd/skdg"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
// SyncFileFromFs 从文件服务器同步文件信息
|
||||
func SyncFileFromFs(vID string) (code stderr.Code) {
|
||||
v, _ := vidmod.GetVideoInfo(vID)
|
||||
resp, err := PullFileInfo(v.SourceID)
|
||||
if err != nil {
|
||||
return stderr.ErrConnectToFs
|
||||
}
|
||||
if resp.Code == stderr.UpLoadFileComplete {
|
||||
oid, _ := primitive.ObjectIDFromHex(resp.Data.ID)
|
||||
sourceID := resp.Data.ID
|
||||
playTime := resp.Data.PlayTime
|
||||
freeTime := vidmod.GetFreeTime(resp.Data.PlayTime)
|
||||
if v.FreeTime != 0 && freeTime != v.FreeTime {
|
||||
freeTime = v.FreeTime
|
||||
}
|
||||
seriesCover := v.SeriesCover
|
||||
resolution := strconv.FormatInt(int64(resp.Data.Width), 10) + "*" + strconv.FormatInt(int64(resp.Data.Height), 10)
|
||||
width := resp.Data.Width
|
||||
height := resp.Data.Height
|
||||
identifi := common.IdentifiVideoInfo(int64(resp.Data.Width), int64(resp.Data.Height))
|
||||
direction := string(identifi.Direction)
|
||||
quality := string(identifi.Quality)
|
||||
md5 := resp.Data.CheckSum
|
||||
actor := strings.Join(resp.Data.Actors, ",")
|
||||
size := resp.Data.Size
|
||||
filename := resp.Data.Filename
|
||||
via := resp.Data.Via
|
||||
ratio := resp.Data.Ratio
|
||||
update := vidmod.WebVideoUpdateDoc{
|
||||
ID: oid,
|
||||
SourceID: &sourceID,
|
||||
PlayTime: &playTime,
|
||||
FreeTime: &freeTime,
|
||||
SeriesCover: &seriesCover,
|
||||
Resolution: &resolution,
|
||||
Width: &width,
|
||||
Height: &height,
|
||||
MD5: &md5,
|
||||
Actor: &actor,
|
||||
Size: &size,
|
||||
Filename: &filename,
|
||||
Via: &via,
|
||||
Ratio: &ratio,
|
||||
Direction: &direction,
|
||||
Quality: &quality,
|
||||
}
|
||||
if v.Cover == "" {
|
||||
cover := resp.Data.FieldNameFs + "-1.jpg"
|
||||
update.Cover = &cover
|
||||
}
|
||||
if v.CoverThumb == "" {
|
||||
coverThumb := resp.Data.FieldNameFs + "-2.jpg"
|
||||
update.CoverThumb = &coverThumb
|
||||
}
|
||||
_, _ = vidmod.UpdateVideoResolutionPlayTime(v.ID, update)
|
||||
}
|
||||
return resp.Code
|
||||
}
|
||||
|
||||
// PullFileInfo 获取文件转码情况及详情
|
||||
func PullFileInfo(id string) (respBody vidmod.PuFinfoResp, err error) {
|
||||
client := httputil.Client()
|
||||
code, err := client.POSTWithJResp(&respBody, common.BindUrl(skdg.Conf.Url.PullFileInfo, id), nil, nil)
|
||||
log.Info("http method PullFileInfo response code ==>", log.Any("statusCode", code), log.Any("respCode", respBody.Code))
|
||||
if err != nil {
|
||||
log.Error("Pull FileInfo From Aws ", log.Any("Error", err))
|
||||
respBody.Code = stderr.ErrConnectToFs
|
||||
return
|
||||
}
|
||||
switch respBody.Data.Status {
|
||||
case vidmod.Merging, vidmod.MergeCompleted:
|
||||
respBody.Code = stderr.FileMerging
|
||||
case vidmod.MergeError:
|
||||
respBody.Code = stderr.ErrMergeFile
|
||||
case vidmod.Converting:
|
||||
respBody.Code = stderr.FileConverting
|
||||
case vidmod.ConvertError:
|
||||
respBody.Code = stderr.ErrConvertFile
|
||||
case vidmod.UploadLoadingToFs:
|
||||
respBody.Code = stderr.UploadLoadingToFs
|
||||
case vidmod.FileUploadError:
|
||||
respBody.Code = stderr.ErrUploadError
|
||||
case vidmod.ConvertCompleted, vidmod.Completed:
|
||||
respBody.Code = stderr.UpLoadFileComplete
|
||||
}
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user