From e87a5e716efeeef2fc58f1af4137c35bbe461bab Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Tue, 17 May 2022 05:11:23 +0300 Subject: [PATCH] fix ETag header VLC will be happy --- server/torr/stream.go | 3 ++- server/web/api/m3u.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/server/torr/stream.go b/server/torr/stream.go index 1bfebb3..3d35cd0 100644 --- a/server/torr/stream.go +++ b/server/torr/stream.go @@ -1,6 +1,7 @@ package torr import ( + "encoding/hex" "errors" "fmt" "log" @@ -61,7 +62,7 @@ func (t *Torrent) Stream(fileID int, req *http.Request, resp http.ResponseWriter sets.SetViewed(&sets.Viewed{t.Hash().HexString(), fileID}) resp.Header().Set("Connection", "close") - resp.Header().Set("ETag", httptoo.EncodeQuotedString(fmt.Sprintf("%s/%s", t.Hash().HexString(), file.Path()))) + resp.Header().Set("ETag", httptoo.EncodeQuotedString(fmt.Sprintf("%s/%s", t.Hash().HexString(), hex.EncodeToString([]byte(file.Path()))))) // DLNA headers resp.Header().Set("transferMode.dlna.org", "Streaming") mime, err := mt.MimeTypeByPath(file.Path()) diff --git a/server/web/api/m3u.go b/server/web/api/m3u.go index 3252151..7dd6b57 100644 --- a/server/web/api/m3u.go +++ b/server/web/api/m3u.go @@ -2,6 +2,7 @@ package api import ( "bytes" + "encoding/hex" "fmt" "net/http" "net/url" @@ -72,7 +73,7 @@ func sendM3U(c *gin.Context, name, hash string, m3u string) { c.Header("Content-Type", "audio/x-mpegurl") c.Header("Connection", "close") if hash != "" { - c.Header("ETag", httptoo.EncodeQuotedString(fmt.Sprintf("%s/%s", hash, name))) + c.Header("ETag", httptoo.EncodeQuotedString(fmt.Sprintf("%s/%s", hash, hex.EncodeToString([]byte(name))))) } if name == "" { name = "playlist.m3u"