diff --git a/go.mod b/go.mod index 0511086..87fecd4 100644 --- a/go.mod +++ b/go.mod @@ -7,11 +7,12 @@ require ( github.com/andybalholm/brotli v1.2.0 github.com/ayn2op/tview v0.0.0-20250720032506-63f04e47b15d github.com/deckarep/gosx-notifier v0.0.0-20180201035817-e127226297fb - github.com/diamondburned/arikawa/v3 v3.6.0 + github.com/diamondburned/arikawa/v3 v3.6.1-0.20250923014154-374d28cbf6b1 github.com/diamondburned/ningen/v3 v3.0.1-0.20250920191746-98fbd92e134d github.com/gdamore/tcell/v2 v2.9.0 github.com/gen2brain/beeep v0.11.1 github.com/google/uuid v1.6.0 + github.com/klauspost/compress v1.18.0 github.com/lmittmann/tint v1.1.2 github.com/ncruces/zenity v0.10.14 github.com/sahilm/fuzzy v0.1.1 @@ -46,6 +47,7 @@ require ( github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af // indirect github.com/twmb/murmur3 v1.1.8 // indirect go4.org v0.0.0-20230225012048-214862532bf5 // indirect + golang.org/x/crypto v0.42.0 // indirect golang.org/x/exp/shiny v0.0.0-20250911091902-df9299821621 // indirect golang.org/x/image v0.31.0 // indirect golang.org/x/mobile v0.0.0-20250911085028-6912353760cf // indirect diff --git a/go.sum b/go.sum index 46a7815..268196f 100644 --- a/go.sum +++ b/go.sum @@ -45,6 +45,8 @@ github.com/deckarep/gosx-notifier v0.0.0-20180201035817-e127226297fb h1:6S+TKObz github.com/deckarep/gosx-notifier v0.0.0-20180201035817-e127226297fb/go.mod h1:wf3nKtOnQqCp7kp9xB7hHnNlZ6m3NoiOxjrB9hFRq4Y= github.com/diamondburned/arikawa/v3 v3.6.0 h1:8sno6tO9F1TEkg1ChHfjuVX41a+uv3opcfWeNvbuhV4= github.com/diamondburned/arikawa/v3 v3.6.0/go.mod h1:thocAM2X8lRDHuEZR5vWYaT4w+tb/vOKa1qm+r0gs5A= +github.com/diamondburned/arikawa/v3 v3.6.1-0.20250923014154-374d28cbf6b1 h1:roGVkW36jZ18N+K+V/5kkX7eO+4OLOXWlH7AyP3mevs= +github.com/diamondburned/arikawa/v3 v3.6.1-0.20250923014154-374d28cbf6b1/go.mod h1:thocAM2X8lRDHuEZR5vWYaT4w+tb/vOKa1qm+r0gs5A= github.com/diamondburned/ningen/v3 v3.0.1-0.20250703054403-e5dc4cf15e84 h1:O/6NA4fQimjVNuT5F02kodPT2cz9Ltq2U96vxKYL0oA= github.com/diamondburned/ningen/v3 v3.0.1-0.20250703054403-e5dc4cf15e84/go.mod h1:UU1lud9g/GBl2+CZ8nPCe3Qk1U6fABEP1fk1sUzo7w0= github.com/diamondburned/ningen/v3 v3.0.1-0.20250920191746-98fbd92e134d h1:wS6HWl86RFItw38sUSdXlulj0VarV4G+9Rlv8j+p3oQ= @@ -108,6 +110,8 @@ github.com/josephspurrier/goversioninfo v1.5.0/go.mod h1:6MoTvFZ6GKJkzcdLnU5T/RG github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -178,6 +182,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= +golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= diff --git a/internal/http/transport.go b/internal/http/transport.go index ee5604b..cc72fd6 100644 --- a/internal/http/transport.go +++ b/internal/http/transport.go @@ -1,11 +1,12 @@ package http import ( - "compress/gzip" "io" "net/http" "github.com/andybalholm/brotli" + "github.com/klauspost/compress/gzip" + "github.com/klauspost/compress/zstd" ) type Transport struct { @@ -32,6 +33,15 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { return nil, err } + resp.Header.Del("Content-Encoding") + case "zstd": + decoder, err := zstd.NewReader(resp.Body) + if err != nil { + resp.Body.Close() + return nil, err + } + + resp.Body = io.NopCloser(decoder) resp.Header.Del("Content-Encoding") case "br": resp.Body = io.NopCloser(brotli.NewReader(resp.Body))