diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d14083d..6a6fa7f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Breaking: Remove the `/twitchemotes/` endpoints. See [issue 332](https://github.com/Chatterino/api/issues/332) for more information. (#465) - Minor: Use Twitter OG tags if no Twitter credentials are configured. (#522) - Minor: Support `x.com` for tweets. (#527) +- Minor: Increase tweet cache duration for non-credentialed requests to 24h. Currently not configurable. (#528) - Fix: We do some more YouTube video ID parsing to ensure broken links (such as `youtube.com/watch?v=foobar?feature=share`) still return the actual video ID, since this is how the browser operates. (#488) - Dev: Document the `log-development` setting. (#491) - Dev: Document the `log-level` setting. (#490) diff --git a/internal/resolvers/default/link_loader.go b/internal/resolvers/default/link_loader.go index 54148438..65473416 100644 --- a/internal/resolvers/default/link_loader.go +++ b/internal/resolvers/default/link_loader.go @@ -3,6 +3,7 @@ package defaultresolver import ( "bytes" "context" + "encoding/json" "errors" "fmt" "io" @@ -51,9 +52,12 @@ func (l *LinkLoader) Load(ctx context.Context, urlString string, r *http.Request } extraHeaders := make(map[string]string) + cacheDur := cache.NoSpecialDur ctx, isTwitterRequest := twitter.Check(ctx, requestUrl) if isTwitterRequest { extraHeaders["User-Agent"] = fmt.Sprintf("chatterino-api-cache/%s link-resolver (bot)", version.Version) + // TODO: Use twitter-tweet-cache-duration? + cacheDur = time.Hour * 24 } resp, err := resolver.RequestGETWithHeaders(requestUrl.String(), extraHeaders) @@ -160,5 +164,6 @@ func (l *LinkLoader) Load(ctx context.Context, urlString string, r *http.Request response.Thumbnail = utils.FormatThumbnailURL(l.baseURL, r, resp.Request.URL.String()) } - return utils.MarshalNoDur(response) + finalData, finalErr := json.Marshal(response) + return finalData, nil, nil, cacheDur, finalErr }