Eugen Rochko
c9b5168ebd
Add conversations API ( #8832 )
...
* 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-10-07 23:44:58 +02:00
Eugen Rochko
dc7bf28635
Reduce wasted work in RemoveStatusService due to inactive followers ( #7672 )
2018-05-29 22:55:33 +02:00
Eugen Rochko
f68736088b
Use #any? instead of #exists? when checking media attachments ( #7570 )
...
If media_attachments are not loaded, SQL query is the same, but
the #exists? method performs SQL query even if preloaded
2018-05-21 16:01:16 +02:00
Yamagishi Kazutoshi
ccc240b59c
Add media timeline ( #6631 )
2018-05-21 12:43:38 +02:00
Eugen Rochko
8913ccb434
Store home feeds for 7 days instead of 14 ( #7354 )
...
* 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-05 00:54:24 +02:00
Eugen Rochko
ca1c696dbd
Slightly reduce RAM usage ( #7301 )
...
* 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-05-02 18:58:48 +02:00
Kaito Sinclaire
447741e456
Direct messages column ( #4514 )
...
* 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
2018-04-18 13:09:06 +02:00
Eugen Rochko
e149067561
Lists ( #5703 )
...
* 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-11-18 00:16:48 +01:00
Eugen Rochko
20e15ecfb3
Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl ( #4090 )
2017-07-07 04:02:06 +02:00
takayamaki
aa6740c21b
change sidekiq queueing to bulk push ( #3536 )
2017-06-04 00:11:15 +02:00
Matt Jankowski
8ed4ecb7e4
Silence more scope order warnings ( #1604 )
2017-04-12 15:58:08 +02:00
Eugen Rochko
0db2a0c7c4
Fix wrong pubsub channel on public timelines
2017-04-06 04:03:23 +02:00
Eugen Rochko
fb6459d303
Fix notifications delivered to wrong pubsub channel, optimized RemoveStatusService,
...
slightly optimized FanOutOnWriteService again
2017-04-06 02:26:59 +02:00
Eugen Rochko
5189ce9cd1
Replace calls to FeedManager#inline_render and #broadcast
2017-04-05 19:45:18 +02:00
Eugen Rochko
8f38353c4d
Only render public payload once in FanOutOnWrite
2017-04-05 14:26:17 +02:00
Eugen Rochko
fa2a1af90a
Spawn FeedInsertWorker to deliver status into personal feed
2017-04-04 19:21:37 +02:00
Eugen Rochko
8796f7a125
Add check for visibility.nil? even though it can't ever be, to check for race conditions
2017-04-03 22:54:46 +02:00
Eugen Rochko
572cf64791
Fix feed regeneration bug
2017-04-02 15:46:31 +02:00
Eugen Rochko
f1b9644cfd
Add "direct" visibility level in the backend. Web UI is not yet
...
adjusted to allow choosing it, yet
2017-03-15 22:55:45 +01:00
Eugen Rochko
eb9934c88c
Add streaming API channels for local-only statuses
2017-02-06 23:46:14 +01:00
Eugen Rochko
00261b46ec
Move rendering of JSON payloads for public/hashtag timelines to
...
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-02 00:39:17 +01:00
Eugen Rochko
727d236fcc
Cleaning up format of broadcast real-time messages, removing
...
redis-backed "mentions" timeline as redundant (given notifications)
2017-02-02 00:03:31 +01:00
Eugen Rochko
edcfbee9f5
Fix #529 - Make hashtag timelines show conversations, fix hashtag loading in the UI
2017-01-31 22:35:38 +01:00
Eugen Rochko
23a4f93345
Fix #323 - self-replies to appear in public timelines again
2016-12-02 14:33:20 +01:00
Eugen Rochko
8d4ef0b6c3
Per-status control for unlisted mode, also federation for unlisted mode
...
Fix #233 , fix #268
2016-11-30 21:34:59 +01:00
Eugen Rochko
31108d4659
Public and hashtag timelines now exclude reblogs and replies
...
Fix #289 - don't download avatar unless the URL is http/https
Fix #293 - reblog/reblogged is now boost/boosted
2016-11-26 15:45:35 +01:00
Eugen Rochko
f613f2b84a
Only distribute statuses to followers who signed in in the last 2 weeks, add rake task for clearing feeds of inactive users
2016-11-24 18:17:58 +01:00
Eugen Rochko
0943e98288
Adding option to specify asset server, filter followers query by local accounts
...
during Fan Out On Write to load less stuff into memory
2016-11-21 22:04:10 +01:00
Eugen Rochko
e71b152d89
Fix rubocop issues, introduce usage of frozen literal to improve performance
2016-11-15 16:56:29 +01:00
Eugen Rochko
aed424aef0
Fix live status removal from public/hashtag channels
2016-11-10 00:47:47 +01:00
Eugen Rochko
f1d2c46ded
Improve feed regeneration
2016-11-08 02:08:32 +01:00
Eugen Rochko
5ad6611101
Add test for FanOutOnWriteService
2016-11-06 15:56:34 +01:00
Eugen Rochko
cb22dce970
Adding hashtags
2016-11-05 17:13:14 +01:00
Eugen Rochko
1eac265f35
Adding public timeline silencing
2016-10-27 19:33:04 +02:00
Eugen Rochko
c3f5dfeabb
Adding public timeline
2016-10-07 16:00:11 +02:00
Eugen Rochko
be86d4e0a3
Preparing feeds for better filtering
2016-10-02 15:28:47 +02:00
Eugen Rochko
c6b0311b86
Fix #54 - Fetch remote accounts by URL from mentions
...
Fetching atom extracted from FetchRemoteAccountService and FetchRemoteStatusService
into FetchAtomService. Mentions of the constant "http://activityschema.org/collection/public "
skipped as it's not a real URL/user.
2016-09-26 16:44:40 +02:00
Eugen Rochko
0077fc26df
Merge and unmerge timelines on follow/unfollow, solves #21 , #22
2016-09-10 18:36:48 +02:00
Eugen Rochko
3cc47beb6e
Refactored generation of unique tags, URIs and object URLs into own classes,
...
as well as formatting of content
2016-09-09 20:04:34 +02:00
Eugen Rochko
926eea89b5
RemoveStatusService fleshed out, still doesn't send Salmon slaps though
2016-09-05 01:59:46 +02:00
Eugen Rochko
49520d6e62
Adding React.js, Redux, revamping dashboard
2016-08-24 17:56:44 +02:00
Eugen Rochko
6426819b6f
Fix tests
2016-08-18 17:22:44 +02:00
Eugen Rochko
6deb9f966e
Live timelines using ActionCable
2016-08-18 15:49:51 +02:00
Eugen Rochko
e24bfbde1a
Fixing FanOutOnWriteService, fixing Sidekiq not having enough DB connections
...
in the pool, adding a throttle of 60rpm per IP, adding mini profiler, adding
admin status to users
2016-03-25 14:12:24 +01:00
Eugen Rochko
a08e724476
Fix subscriptions:clear task, refactor feeds, refactor streamable activites
...
and atom feed generation to some extent, as well as the way mentions are
stored
2016-03-25 02:13:30 +01:00
Eugen Rochko
12559b01ea
Add pagination by max_id instead of offset/limit
2016-03-22 21:38:47 +01:00
Eugen Rochko
9d55529318
Fix text color in dashboard inputs, sanitize remote status content in UI,
...
simplify FanOutOnWriteService, add /api/accounts/lookup method
2016-03-21 17:02:16 +01:00
Eugen Rochko
46cbb9c551
Increase note truncation length on account grids, improve FanOutOnWrite a bit,
...
fix tests (the recorded Salmon fixture expects LOCAL_DOMAIN to be something
specific unfortunately)
2016-03-21 08:44:30 +01:00
Eugen Rochko
2b116131d7
Adding e-mail notifications about mentions, follows, favourites and reblogs. Fixing another mention recording bug
2016-03-19 19:20:07 +01:00
Eugen Rochko
6c4c84b161
Distrubute statuses as a fan-out-on-write system, with optional precomputing
2016-03-08 20:20:45 +01:00