diff --git a/Dockerfile.govod b/Dockerfile.govod index 0a3b223..cd2e44a 100644 --- a/Dockerfile.govod +++ b/Dockerfile.govod @@ -6,10 +6,13 @@ WORKDIR /src RUN git clone https://github.com/pulsejet/memories.git . \ && git checkout "$MEMORIES_COMMIT" -WORKDIR /src/go-vod +WORKDIR /src COPY patches/go-vod-sheepflix.patch /tmp/go-vod-sheepflix.patch -RUN git apply /tmp/go-vod-sheepflix.patch \ - && gofmt -w transcoder/handler.go transcoder/stream.go \ +RUN git apply --check --directory=go-vod /tmp/go-vod-sheepflix.patch \ + && git apply --directory=go-vod /tmp/go-vod-sheepflix.patch + +WORKDIR /src/go-vod +RUN gofmt -w transcoder/handler.go transcoder/stream.go \ && CGO_ENABLED=0 go build -ldflags="-s -w" -o /go-vod . # go-vod itself uses Jellyfin's FFmpeg distribution. Pin the stable Jellyfin diff --git a/patches/go-vod-sheepflix.patch b/patches/go-vod-sheepflix.patch index 87ee382..eb442cc 100644 --- a/patches/go-vod-sheepflix.patch +++ b/patches/go-vod-sheepflix.patch @@ -17,25 +17,6 @@ index 8c5bb08..0ad7458 100644 // Check version if monitoring is enabled if h.c.VersionMonitor && !h.versionOk(w, r) { return -@@ -55,15 +63,15 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - } - - // Serve actual file from manager -- if len(parts) < 3 { -+ if len(parts) < 5 || parts[0] != "vod" { - log.Println("Invalid URL", url) - w.WriteHeader(http.StatusBadRequest) - return - } - - // Get streamid and chunk -- streamid := parts[0] -- path := "/" + strings.Join(parts[1:len(parts)-1], "/") -+ streamid := parts[1] -+ path := "/" + strings.Join(parts[2:len(parts)-1], "/") - chunk := parts[len(parts)-1] - - // Check if POST request to create temp file diff --git a/transcoder/stream.go b/transcoder/stream.go index cf353fc..f8694fc 100644 --- a/transcoder/stream.go