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
+136
View File
@@ -0,0 +1,136 @@
package web_im
import (
"91porn-server/common"
"91porn-server/common/stderr"
"91porn-server/skd/job"
"91porn-server/services/srv_im"
"github.com/gin-gonic/gin"
)
type syncIMUsersResp struct {
Accepted bool `json:"accepted"`
Running bool `json:"running"`
Message string `json:"message"`
Task job.SyncIMUsersTaskStatus `json:"task"`
}
func SyncIMUsers(ctx *gin.Context) {
accepted, status := job.RequestSyncIMUsers()
resp := syncIMUsersResp{
Accepted: accepted,
Running: status.Running,
Task: status,
}
if accepted {
resp.Message = "sync task queued"
} else if status.Running {
resp.Message = "sync task already in progress"
} else {
resp.Message = "sync task already queued"
}
common.ServeJSON(ctx, stderr.Success, resp)
}
func SyncIMUsersStatus(ctx *gin.Context) {
common.ServeJSON(ctx, stderr.Success, job.GetSyncIMUsersStatus())
}
func ListIMUsers(ctx *gin.Context) {
var req srv_im.UserListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
resp, code, msg := srv_im.ListUsers(req)
if code != stderr.Success {
common.ServeJSON(ctx, code, msg)
return
}
common.ServeJSON(ctx, stderr.Success, resp)
}
func SyncIMUsersByIDs(ctx *gin.Context) {
var req srv_im.SyncUsersReq
if err := ctx.ShouldBindJSON(&req); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
resp, code, msg := srv_im.SyncUsers(req)
if code != stderr.Success {
common.ServeJSON(ctx, code, msg)
return
}
common.ServeJSON(ctx, stderr.Success, resp)
}
func AddIMFriendDirect(ctx *gin.Context) {
var req srv_im.FriendAddDirectReq
if err := ctx.ShouldBindJSON(&req); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
code, msg := srv_im.AddFriendDirect(req)
if code != stderr.Success {
common.ServeJSON(ctx, code, msg)
return
}
common.ServeJSON(ctx, stderr.Success, gin.H{"ok": true})
}
func BatchIMOnlineStatus(ctx *gin.Context) {
var req srv_im.OnlineStatusReq
if err := ctx.ShouldBindJSON(&req); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
resp, code, msg := srv_im.BatchOnlineStatus(req)
if code != stderr.Success {
common.ServeJSON(ctx, code, msg)
return
}
common.ServeJSON(ctx, stderr.Success, resp)
}
func SendIMPassthrough(ctx *gin.Context) {
var req srv_im.PassthroughReq
if err := ctx.ShouldBindJSON(&req); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
resp, code, msg := srv_im.SendPassthrough(req)
if code != stderr.Success {
common.ServeJSON(ctx, code, msg)
return
}
common.ServeJSON(ctx, stderr.Success, resp)
}
func SendIMAdNotify(ctx *gin.Context) {
var req srv_im.AdNotifyReq
if err := ctx.ShouldBindJSON(&req); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
resp, code, msg := srv_im.SendAdNotify(req)
if code != stderr.Success {
common.ServeJSON(ctx, code, msg)
return
}
common.ServeJSON(ctx, stderr.Success, resp)
}
func SendIMMessage(ctx *gin.Context) {
var req srv_im.SendMessageReq
if err := ctx.ShouldBindJSON(&req); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
resp, code, msg := srv_im.SendMessage(req)
if code != stderr.Success {
common.ServeJSON(ctx, code, msg)
return
}
common.ServeJSON(ctx, stderr.Success, resp)
}