Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
+102
View File
@@ -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
}