about summary refs log tree commit diff
path: root/app/services/fan_out_on_write_service.rb
AgeCommit message (Collapse)Author
2022-11-04Add caching for payload serialization during fan-out (#19642)Eugen Rochko
2022-07-17Add ability to follow hashtags (#18809)Eugen Rochko
2022-04-28Fix single Redis connection being used across all threads (#18135)Eugen Rochko
* Fix single Redis connection being used across all Sidekiq threads * Fix tests
2022-03-09Change how changes to media attachments are stored for edits (#17696)Eugen Rochko
* Change how changes to media attachments are stored for edits Fix not being able to re-order media attachments * Fix not broadcasting updates when polls/media is changed through ActivityPub * Various fixes and improvements * Update app/models/report.rb Co-authored-by: Claire <claire.github-309c@sitedethib.com> * Add tracking of media attachment description changes * Change poll in status edit to have a structure closer to the real one Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2022-02-11Add notifications when a reblogged status has been updated (#17404)Eugen Rochko
* Add notifications when a reblogged status has been updated * Change wording to say "edit" instead of "update" and add missing controls * Replace previous update notifications with the most up-to-date one
2022-01-28Fix Sidekiq warnings about JSON serialization (#17381)Claire
* Fix Sidekiq warnings about JSON serialization This occurs on every symbol argument we pass, and every symbol key in hashes, because Sidekiq expects strings instead. See https://github.com/mperham/sidekiq/pull/5071 We do not need to change how workers parse their arguments because this has not changed and we were already converting to symbols adequately or using `with_indifferent_access`. * Set Sidekiq to raise on unsafe arguments in test mode In order to more easily catch issues that would produce warnings in production code.
2022-01-26Fix local distribution of edited statuses (#17380)Claire
Because `FanOutOnWriteService#update?` was broken, edits were considered as new toots and a regular `update` payload was sent.
2022-01-19Add support for editing for published statuses (#16697)Eugen Rochko
* Add support for editing for published statuses * Fix references to stripped-out code * Various fixes and improvements * Further fixes and improvements * Fix updates being potentially sent to unauthorized recipients * Various fixes and improvements * Fix wrong words in test * Fix notifying accounts that were tagged but were not in the audience * Fix mistake
2020-11-19Fix DMs not appearing into timelines (#15182)ThibG
Fixes #15179
2020-09-01Change own direct-visibility statuses to be in the home feed again (#14711)Eugen Rochko
And remove highlighting in web UI Full circle from #8940
2020-08-31Fix limited follower id in fan-out-on-write service (#14709)Takeshi Umeda
2020-08-30Fix inefficiencies in fan-out-on-write service (#14682)Eugen Rochko
2020-05-12Fix not publishing update of remote timeline (#13745)Takeshi Umeda
* Fix not publishing update of remote timeline * fix @ missing * if/unless to if/else
2019-08-07Fix non-lowercase hashtags not being picked up by the streaming API (#11508)Eugen Rochko
Regression from f371b32 Fix hashtag links always being lowercase
2018-10-30Accept the same payload in multiple inboxes and deliver (#9150)Eugen Rochko
2018-10-17Improve support for aspects/circles (#8950)Eugen Rochko
* Add silent column to mentions * Save silent mentions in ActivityPub Create handler and optimize it Move networking calls out of the database transaction * Add "limited" visibility level masked as "private" in the API Unlike DMs, limited statuses are pushed into home feeds. The access control rules between direct and limited statuses is almost the same, except for counter and conversation logic * Ensure silent column is non-null, add spec * Ensure filters don't check silent mentions for blocks/mutes As those are "this person is also allowed to see" rather than "this person is involved", therefore does not warrant filtering * Clean up code * Use Status#active_mentions to limit returned mentions * Fix code style issues * Use Status#active_mentions in Notification And remove stream_entry eager-loading from Notification
2018-10-11Do not push DMs into the home feed (#8940)Eugen Rochko
* Do not push DMs into the home feed * Show DMs column after sending a DM, if DMs column is not already shown
2018-10-07Add conversations API (#8832)Eugen Rochko
* Add conversations API * Add web UI for conversations * Add test for conversations API * Add tests for ConversationAccount * Improve web UI * Rename ConversationAccount to AccountConversation * Remove conversations on block and mute * Change last_status_id to be a denormalization of status_ids * Add optimistic locking
2018-05-29Reduce wasted work in RemoveStatusService due to inactive followers (#7672)Eugen Rochko
2018-05-21Use #any? instead of #exists? when checking media attachments (#7570)Eugen Rochko
If media_attachments are not loaded, SQL query is the same, but the #exists? method performs SQL query even if preloaded
2018-05-21Add media timeline (#6631)Yamagishi Kazutoshi
2018-05-05Store home feeds for 7 days instead of 14 (#7354)Eugen Rochko
* Store home feeds for 7 days instead of 14 Reduces workload for status fan-out to active followers * Fix test for user model
2018-05-02Slightly reduce RAM usage (#7301)Eugen Rochko
* No need to re-require sidekiq plugins, they are required via Gemfile * Add derailed_benchmarks tool, no need to require TTY gems in Gemfile * Replace ruby-oembed with FetchOEmbedService Reduce startup by 45382 allocated objects * Remove preloaded JSON-LD in favour of caching HTTP responses Reduce boot RAM by about 6 MiB * Fix tests * Fix test suite by stubbing out JSON-LD contexts
2018-04-18Direct messages column (#4514)Kaito Sinclaire
* Added a timeline for Direct statuses * Lists all Direct statuses you've sent and received * Displayed in Getting Started * Streaming server support for direct TL * Changes to match other timelines in 2.0
2017-11-18Lists (#5703)Eugen Rochko
* Add structure for lists * Add list timeline streaming API * Add list APIs, bind list-account relation to follow relation * Add API for adding/removing accounts from lists * Add pagination to lists API * Add pagination to list accounts API * Adjust scopes for new APIs - Creating and modifying lists merely requires "write" scope - Fetching information about lists merely requires "read" scope * Add test for wrong user context on list timeline * Clean up tests
2017-07-07Refactor JSON templates to be generated with ActiveModelSerializers instead ↵Eugen Rochko
of Rabl (#4090)
2017-06-04change sidekiq queueing to bulk push (#3536)takayamaki
2017-04-12Silence more scope order warnings (#1604)Matt Jankowski
2017-04-06Fix wrong pubsub channel on public timelinesEugen Rochko
2017-04-06Fix notifications delivered to wrong pubsub channel, optimized ↵Eugen Rochko
RemoveStatusService, slightly optimized FanOutOnWriteService again
2017-04-05Replace calls to FeedManager#inline_render and #broadcastEugen Rochko
2017-04-05Only render public payload once in FanOutOnWriteEugen Rochko
2017-04-04Spawn FeedInsertWorker to deliver status into personal feedEugen Rochko
2017-04-03Add check for visibility.nil? even though it can't ever be, to check for ↵Eugen Rochko
race conditions
2017-04-02Fix feed regeneration bugEugen Rochko
2017-03-15Add "direct" visibility level in the backend. Web UI is not yetEugen Rochko
adjusted to allow choosing it, yet
2017-02-06Add streaming API channels for local-only statusesEugen Rochko
2017-02-02Move rendering of JSON payloads for public/hashtag timelines toEugen Rochko
FanOutOnWriteService. The only recipient-specific part on them is reblogged/favourited. But since only newly created statuses appear on them, it is safe to assume that both attributes would be false
2017-02-02Cleaning up format of broadcast real-time messages, removingEugen Rochko
redis-backed "mentions" timeline as redundant (given notifications)
2017-01-31Fix #529 - Make hashtag timelines show conversations, fix hashtag loading in ↵Eugen Rochko
the UI
2016-12-02Fix #323 - self-replies to appear in public timelines againEugen Rochko
2016-11-30Per-status control for unlisted mode, also federation for unlisted modeEugen Rochko
Fix #233, fix #268
2016-11-26Public and hashtag timelines now exclude reblogs and repliesEugen Rochko
Fix #289 - don't download avatar unless the URL is http/https Fix #293 - reblog/reblogged is now boost/boosted
2016-11-24Only distribute statuses to followers who signed in in the last 2 weeks, add ↵Eugen Rochko
rake task for clearing feeds of inactive users
2016-11-21Adding option to specify asset server, filter followers query by local accountsEugen Rochko
during Fan Out On Write to load less stuff into memory
2016-11-15Fix rubocop issues, introduce usage of frozen literal to improve performanceEugen Rochko
2016-11-10Fix live status removal from public/hashtag channelsEugen Rochko
2016-11-08Improve feed regenerationEugen Rochko
2016-11-06Add test for FanOutOnWriteServiceEugen Rochko
2016-11-05Adding hashtagsEugen Rochko