- Breaking: Updated the minimum supported Ubuntu version to v24.04. (#895)
- Breaking: Updated govips to 2.17. (#897)
- Bugfix: Allow malformed images from samsung phones. (#898)
- Dev: Run
go fixon the codebase. (#890) - Dev: Update a lot of dependencies.
- Breaking: Go version 1.24 is now the minimum required version to build this project. (#832)
- Minor: Support Twitch channel URLs ending in a slash (e.g.
twitch.tv/forsen/). (#833) - Fix: Don't parse images as HTML - this fixes the occasional
html parser error (or download) html: open stack of elements exceeds 512 nodes)error that would occur when the image binary data contained too many angled brackets. (#861) - Dev: Bump
go-chi/stampedeto v0.9.1. (#787) - Dev: Bump indirect deps. (#788)
- Dev: Add more logging to goquery error. (#860)
- Minor: Support
old.7tv.appemote links. (#784, #785)
- Breaking: Go version 1.23 is now the minimum required version to build this project. (#750)
- Minor: Add stream information to twitch users. (#714)
- Minor: Server perks are now sorted alphabetically. (#711)
- Minor: Use correct domains for twitch user resolver. (#715)
- Fix: Some Twitch clips being parsed as Twitch user profiles. (#755)
- Dev: Changed the default
twitch-username-cache-durationfrom 1 hour to 10 minutes. (#714) - Dev: Added unit tests for the Discord invite resolver. (#711)
- Dev: Replace github.com/golang/mock with go.uber.org/mock. (#712)
- Dev: Ignore mock files when generating code coverage. (#713)
- Fix: Release script not working. (#704)
- Minor: Made 7TV path regex compatible with new UIDs. (#699)
- Breaking: Go version 1.22.1 is now the minimum required version to build this project. (#667, #671)
- Minor: Add playlist support to YouTube resolver. (#597, #601)
- Minor: Add YouTube livestream support. (#678)
- Minor: Add Twitch user resolver (e.g.
https://twitch.tv/forsen). (#680) - Fix: Do not resolve /results using YouTube channel resolver (#616)
- Breaking: Go version 1.20 is now the minimum required version to build this project. (#586)
- Breaking: Remove the
/twitchemotes/endpoints. See issue 332 for more information. (#465) - Minor: Block direct requests to private IPs. (#529)
- Minor: Use Twitter OG tags if no Twitter credentials are configured. (#522)
- Minor: Support
x.comfor 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, #545) - Dev: Document the
log-developmentsetting. (#491) - Dev: Document the
log-levelsetting. (#490) - Dev: Add some
pkg/utils/url.gotests. (#525) - Dev: Make
IsSubdomainOfvariadic, making it easier for users of it to support multiple top level domains. (#526) - Dev: Use logger for skipping url message instead of fmt. (#554)
- Dev: Improve YoutTube resolver initialization logging. (#556)
- Dev: Moved tests & coverage uploads to its own workflow file. (#585)
- Minor: Our User-Agent now properly reflects the version of the API. (#459)
- Minor: Added support for FrankerFaceZ animated emote links. (#455)
- Fix: 7TV emote images now resolve correctly. (#456)
- Dev: Only upload Ubuntu binaries to releases. (#454)
- Breaking: Go version 1.19 is now the minimum required version to build this. (#430)
- Breaking:
enable-lilliputconfig renamed toenable-animated-thumbnails. (#312) - Breaking: Thumbnail generation now requires libvips. See docs/build.md for prerequisite instructions. (#366, #369, #312)
- Breaking: Resolver caches are now stored in PostgreSQL. See docs/build.md for prerequisite instructions. (#271)
- PDF: Generate customized tooltips for PDF files. (#374, #377)
- Twitter: Generate thumbnails with all images of a tweet. (#373)
- YouTube: Added support for 'YouTube shorts' URLs. (#299)
- Media files: Generate tooltips for Video and Audio files. (#427)
- Minor: Add ability to opt out hostnames from the API. (#405)
- Fix: SevenTV emotes now resolve correctly. (#281, #288, #307)
- Fix: YouTube videos are no longer resolved as channels. (#284)
- Fix: Default resolver no longer crashes when provided url is broken. (#310)
- Fix: JSON responses now always return the proper content type. (#334)
- Dev: Improve BetterTTV emote tests. (#282)
- Minor: BetterTTV cache key changed from plural to singular form. (#282)
- Dev: Add docker-compose support. (#395)
- Dev: Improve Twitch.tv clip tests. (#283)
- Dev: Improve YouTube tests. (#284)
- Dev: Resolver Check now returns a context. (#287)
- Dev: Improve Wikipedia tests. (#286)
- Dev: Improve Imgur tests. (#289)
- Dev: Improve migration tests. (#290)
- Dev: Improve Twitter tests. (#293)
- Dev: Improve SevenTV tests. (#294)
- Dev: Improve FrankerFaceZ tests. (#295)
- Dev: Improve Livestreamfails tests. (#297, #301)
- Dev: Improve default resolver tests. (#300)
- Dev: Resolve imgur.io links. (#365)
- Dev: Don't use
stampedefor link resolver links. (#394) - Dev: Update to Twitter's v2 API. (#414)
- Dev: Add HTTP Caching headers. (#417)
- Dev: Add custom middleware to strip trailing slashes. (#422)
- Dev: Make cache timeout durations configurable. (#419)
- Dev: Add prometheus middleware for chi. (#425)
- Dev: Automatically publish docker image to the GitHub Container Registry. (#279)
- YouTube: Added comment count to rich video tooltips. (#252)
- YouTube: Added a red
AGE RESTRICTEDlabel to the YouTube video tooltip. (#251) - YouTube: Removed dislike count from rich tooltips since YouTube removed it. (#243)
- Twitter: Blacklist special pages from being resolved as user pages. (#220)
- Twitch: Handle Twitch clips from
m.twitch.tvdomain. (#239) - Updated Facebook & Instagram endpoints to oembed v10. (#201)
- Added a Chatterino API Privacy Policy and Terms of Service to
/legal/privacy-policyand/legal/terms-of-service. (#253) - Dev: Disable CodeGQL. (#275)
- Dev: Add CodeCov support. (#276)
- Dev: Add CodeCov badge to readme. (#277)
- MaxThumbnailSize is now configurable using the
max-thumbnail-sizeconfig value. (#195) - Twitch clips under
www.twitch.tvdomain work again. (#189) - Imgur thumbnails are now proxied as well. (#187)
- Added link preview support for 7tv emote links. (#155)
- Skip lilliput if image is below maxThumbnailSize. (#184)
- Dev: Change Emote Set backend from
twitchemotes.comto the Twitch Helix API. (#175, #188)
- Breaking: YouTube environment variable has been renamed (
CHATTERINO_API_YOUTUBE_API_KEY). - Added viper as a configuration manager. This allows to set configuration with config files, environment variables or command line flags. There are also new configurable properties. See docs/config.md for detailed information. (#162)
- Pass http.Request all the way down the pipeline to custom resolvers. (#167)
- Made Reddit Score field in Livestreamfails tooltip use humanized value. (#164)
- Added support for customizable oEmbed resolving for websites with the
providers.jsonfile. Seedata/oembed/providers.json. Three new environment variables can be set. Seeinternal/resolvers/oembed/README.md(#139, #152) - Added support for YouTube channel links. (#157)
- Breaking: Environment variable
CHATTERINO_API_CACHE_TWITCH_CLIENT_IDwas renamed toCHATTERINO_API_TWITCH_CLIENT_ID. (#144) - Dev, Breaking: Replaced
dankeroni/gotwitchwithnicklaw5/helix. This change requires you to add new environment variable:CHATTERINO_API_TWITCH_CLIENT_SECRET- it's a client secret generated for your Twitch application.
- Twitter profile pictures are now returned in their original quality. (#131)
- Youtube thumbnails are now in medium quality instead of standard definition to get a rectangular shaped image. (#127)
- Dev: You can now set the Base URL flag with the
CHATTERINO_API_BASE_URLenvironment variable. (#123) Note that the priority will always be CLI Argument > Environment Variable, so passing-bto the application will negate any environment variables set. - Dev: Add Dockerfile (#125)
- Dev: You can now set the Base URL flag with the
CHATTERINO_API_BIND_ADDRESSenvironment variable. (#124) Note that the priority will always be CLI Argument > Environment Variable.
- Non-Windows builds now use
discord/lilliputto support animated GIFs and static WebP thumbnails. (#119) - Twitter resolver timestamp date format changed from
Jan 2 2006to02 Jan 2006(#105) - Dev, Breaking: Moved main package from root directory to
/cmd/api. This change also changes the path of the executable from./apito./cmd/api/api- make sure to reflect this change in your systemd unit. (#104, #107) - Dev: Replaced
gorilla/muxwithgo-chi/chi. This change requires the URL parameters to be percent-encoded, specifically the slashes. (#99) - Added support for Livestreamfails clip links. (#98, #112)
- Added support for Wikipedia article links. (#92, #118)
- Fixed an issue where OpenGraph descriptions were not HTML-sanitized. (#90)
- Added support for imgur image links. (#81)
- Added support for FrankerFaceZ emote links. (#57, #110)
- Added author name to Twitch clips response. (#76)