Relative timestamps can cause you to feel that things are especially
interesting because they are happening "right now"; the effect is
lessened if you see absolute timestamps instead.
This fixes#2011
* feat: implement word filters
* fix: more progress on word filters
* fix: more progress
* fix: more work
* fix: more work
* fix: more progress
* fix: tweaks
* fix: basic crud stuff
* fix: more work
* test: add tests
* test: more test
* fix: handle filter expiry correctly
* fix: implement more efficient word filter logic
* fix: better required labels
* test: fix test
* first attempt
* progress
* working
* working
* test timeago
* rm
* get timeago working
* reduce size
* fix whitespace
* more intl stuff
* more effort
* more work
* more progress
* more work
* more intl
* set lang=LOCALE
* flatten
* more work
* add ltr/rtl
* more work
* add comments
* yet more work
* still more work
* more work
* fix tests
* more test and string fixes
* fix test
* fix test
* fix test
* fix some more strings, add test
* fix snackbar
* fix }
* fix typo
* fix english
* measure perf
* start on french
* more work on french
* more french
* more french
* finish french
* fix some missing translations
* update readme
* fix test
This commit fixes invalid assumption that all timelines are sorted by status id.
Some, like favorites or bookmarks are sorted by private server id. To correctly
paginate we must use the Link header.
To work around the issue, offline for favorites was effectively disabled.
Statuses are still inserted into the database but we can't reproduce correct
timeline order.
* perf: fetch lists from database on page load
follow-up to #1448, I would like for there not to be a flash on the /community page where the lists suddenly load in, but I would still like to avoid the network request if possible. So when the page first loads, we can load the lists from the database and only fetch them from the network if not in the cache.
* add comment
* chore(npm): Install blurhash
* feat(media): Show blurhash
* fix(media/blurhash): Better sensitive video handling
* feat(media): Preference for using blurhash
* chore(utils/blurhash): Add performance marks
* fix(utils/blurhash): Performance marks
* fix(utils/blurhash): Use correct dimension
* refactor(utils/blurhash): Use constant for number of pixels
* refactor(media): Simplify logic for displaying blurhash
* chore(tests/spec): Attempt to adjust sensitivity tests for blurhash
* chore(tests/spec): Update sensitivity tests for blurhash
* chore(tests/spec): Check for sensitive
* fix(media/blurhash): Handle videos
* fix: Video handling
* fix: Videos
* minor refactoring, fix Svelte warning
* fix: Large inline images and videos
* feat(settings): Rename blurhash setting
* refactor: Use toBlob, block media rendering until blurhash ready
* refactor: Move computations to Web Worker
* fix(workers/blurhash): More error handling
* feat(workers/blurhash): Use quick-lru for caching
* fix: Don't create Context2D needlessly
* fix(workers/blurhash): Increase cache size to 100
* fix(workers/blurhash): Don't resolve promise twice
* fix(utils/decode-image): Ignore data URLs
Throws exception which prevents the image from loading.