From 20b69e66fb64f0d5da79234110ed29223f432418 Mon Sep 17 00:00:00 2001 From: long Date: Mon, 25 May 2026 16:30:24 -0500 Subject: [PATCH] added handling for different compression types --- reddit/compression.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 reddit/compression.go diff --git a/reddit/compression.go b/reddit/compression.go new file mode 100644 index 0000000..c3781f6 --- /dev/null +++ b/reddit/compression.go @@ -0,0 +1,26 @@ +package reddit + +import ( + "compress/gzip" + "compress/zlib" + "io" + "net/http" + "strings" + + "github.com/andybalholm/brotli" +) + +func ResponseReader(resp *http.Response) (io.ReadCloser, error) { + encoding := resp.Header.Get("Content-Encoding") + switch strings.ToLower(encoding) { + case "deflate": + return zlib.NewReader(resp.Body) + case "gzip": + return gzip.NewReader(resp.Body) + case "br": + return io.NopCloser(brotli.NewReader(resp.Body)), nil + case "zstd": + return zlib.NewReader(resp.Body) + } + return resp.Body, nil +}