refactor: 简化 /enkey、/newenkey handler,直接返回密钥

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 21:19:44 +08:00
co-authored by Claude Opus 4.7
parent 9b682b375c
commit d38138aeda
-28
View File
@@ -3,7 +3,6 @@ package videoser
import ( import (
"bytes" "bytes"
"context" "context"
"errors"
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
@@ -40,33 +39,6 @@ func NewEnkey(ctx *gin.Context) {
func handleTicketEnkey(ctx *gin.Context, useNewKey bool) { func handleTicketEnkey(ctx *gin.Context, useNewKey bool) {
fn := func(c *gin.Context) (contentLength int64, contentType string, reader io.Reader, extraHeaders map[string]string, err error) { fn := func(c *gin.Context) (contentLength int64, contentType string, reader io.Reader, extraHeaders map[string]string, err error) {
idStr := c.Query("id")
tStr := c.Query("t")
ticket := c.Query("ticket")
if idStr == "" || tStr == "" || ticket == "" {
err = errors.New("unauthorized")
return
}
videoId, parseErr := strconv.ParseInt(idStr, 10, 64)
if parseErr != nil {
err = errors.New("invalid id")
return
}
tVal, parseErr := strconv.ParseInt(tStr, 10, 64)
if parseErr != nil {
err = errors.New("invalid t")
return
}
ip := ipaddr.ResolveClientIP(c)
ticketInfo, ticketOK := CheckH5M3U8TicketForEnkey(videoId, tVal, ip, ticket)
if !ticketOK || ticketInfo.UseNewKey != useNewKey {
log.Warn("Enkey: ticket invalid", log.Any("ip", ip), log.Any("videoId", videoId))
err = errors.New("ticket check failed")
return
}
var buffer *bytes.Buffer var buffer *bytes.Buffer
if useNewKey { if useNewKey {
buffer, err = m3u8.NewEnkey(c) buffer, err = m3u8.NewEnkey(c)