Eugen Rochko
220bc48e8e
Only render public payload once in FanOutOnWrite
8 years ago
Kurtis Rainbolt-Greene
22dcadedb4
We're going to want these nice helper methods, lets share them with a parent class that matches Rails 5 practices (application level abstraction)
8 years ago
Eugen Rochko
bda37489ac
Remove PuSH subscriptions when delivery is answered with a 4xx error
8 years ago
Eugen Rochko
6fd865c000
Spawn FeedInsertWorker to deliver status into personal feed
8 years ago
Eugen Rochko
82aaedec46
Reduce number of items in feeds, optimize regeneration worker slightly,
...
make regeneration worker unique, (only schedule/execute once at a time)
8 years ago
Eugen Rochko
b21f7c28f6
Move OStatus processing back into default queue
8 years ago
Eugen Rochko
b510a56c0c
Only call regeneration worker after first login after a 14 day break
8 years ago
Eugen Rochko
f722bd2387
Separate background jobs into different queues. ATTENTION: new queue "pull"
...
must be added to the Sidekiq invokation in your systemd file
The pull queue will handle link crawling, thread resolving, and OStatus
processing. Such tasks are more likely to hang for a longer time (due to
network requests) so it is more sensible to not make the "in-house" tasks
wait for them.
8 years ago
Eugen Rochko
b7c1b12367
Make default admin UI page reports. Add admin UI for creating a domain block
8 years ago
Eugen Rochko
e8875c6046
Import feature for following/blocking lists (addresses #62 , #177 , #201 , #454 )
8 years ago
Eugen Rochko
6b81d10030
Add digest e-mails
8 years ago
Eugen Rochko
40a4053732
Disable PuSH for blocked domains
8 years ago
Eugen Rochko
720ff55262
Adding more unit tests. Fixing Salmon slaps XML
8 years ago
Eugen Rochko
db814543c0
Take out private toot distribution out of PuSH again
8 years ago
Eugen Rochko
446aad4ce2
Make PuSH only distribute to subscriptions that match follower domains
...
Allow PuSH to distribute private toots with that condition
8 years ago
Eugen Rochko
00b5731ecb
After FollowService, re-fetch remote account asynchronously, do nothing
...
if account lock info was up to date, otherwise re-do the FollowService
with now updated information
8 years ago
Eugen Rochko
149887a0ff
Make follow requests federate
8 years ago
Eugen Rochko
19b9e1e2c3
Preheat status cache
8 years ago
Eugen Rochko
3f075c7794
API for apps to register for push notifications
8 years ago
Eugen Rochko
8a880a3d46
Make blocks create entries and unfollows instantly, but do the clean up
...
in the background instead. Should fix delay where blocked person
can interact with blocker for a short time before background job
gets processed
8 years ago
Eugen Rochko
cca82bf0a2
Move merging/unmerging of timelines into background. Move blocking into
...
background as well since it's a computationally expensive
8 years ago
Eugen Rochko
f0de621e76
Fix #463 - Fetch and display previews of URLs using OpenGraph tags
8 years ago
Eugen Rochko
6c28886317
Improve background jobs params and error handling
8 years ago
Eugen Rochko
86be6d48c9
Fix accidental distribution of hidden stream entries to PuSH subscribers
8 years ago
Eugen Rochko
49834a6e7f
Add API for retrieving blocked accounts
8 years ago
Eugen Rochko
4c6809f6ab
Adding some rescues to workers, e.g. don't fail removal job when status can't be found in the first place (already removed)
8 years ago
Eugen Rochko
0542773bca
Make unfavouriting async to prevent timeout errors from leaving orphaned records behind
8 years ago
Eugen Rochko
6de079a5af
Removing external hub completely, fix #333 fixing digit-only hashtags,
...
removing web app capability from non-webapp pages
8 years ago
Eugen Rochko
668013265c
Restoring old async behaviour of thread resolving as it proved to be more robust
8 years ago
Eugen Rochko
f90133d2ad
Thread resolving no longer needs to be separate from ProcessFeedService,
...
since that is only ever called in the background
8 years ago
Eugen Rochko
f406e01fcf
Add filters for suspended accounts
8 years ago
Eugen Rochko
58b3f4fd67
Fix #329 - avatar errors no longer prevent remote accounts from being saved
...
(without avatar). Also improved search position of exact matches
8 years ago
Eugen Rochko
4a2347da41
Track successful PuSH deliveries
8 years ago
Eugen Rochko
93a90cd9c3
Delete statuses asynchronously but provide instant feedback in the API
8 years ago
Eugen Rochko
cc70f28f19
Adding rack timeout of 30sec, PuSH jobs moved to push queue so they
...
can be processed separately
8 years ago
Eugen Rochko
4e351baf88
Fix URLs in inline-rendered XML
8 years ago
Eugen Rochko
3ba6531611
Fix setting of confirmed=true on successful confirmation
8 years ago
Eugen Rochko
50638174c8
More logging to ConfirmationWorker
8 years ago
Eugen Rochko
4eba76711b
Adding backtracing to Salmon/Processing workers
8 years ago
Eugen Rochko
2d2c81765b
Adding embedded PuSH server
8 years ago
Eugen Rochko
45c7ee39b3
Remove unneeded indices, improve error handling in background workers, don't needlessly reload reblogged status, send Devise e-mails asynchronously
8 years ago
Eugen Rochko
7dea6a23f7
Move Salmon processing to background as well as PuSH
8 years ago
Eugen Rochko
fdc17bea58
Fix rubocop issues, introduce usage of frozen literal to improve performance
8 years ago
Eugen Rochko
a91c3ef6ce
Delegate processing of incoming PuSH data to background workers
8 years ago
Eugen Rochko
bb4d1eb2e8
Improve feed regeneration
8 years ago
Eugen Rochko
3319473b2c
Move PubSubHubbub pinging to a background worker
...
It can take as much as 0.5s if not longer to complete
8 years ago
Eugen Rochko
927333f4f8
Improve code style
8 years ago
Eugen Rochko
4bec613897
Fix #24 - Thread resolving for remote statuses
...
This is a big one, so let me enumerate:
Accounts as well as stream entry pages now contain Link headers that
reference the Atom feed and Webfinger URL for the former and Atom entry
for the latter. So you only need to HEAD those resources to get that
information, no need to download and parse HTML <link>s.
ProcessFeedService will now queue ThreadResolveWorker for each remote
status that it cannot find otherwise. Furthermore, entries are now
processed in reverse order (from bottom to top) in case a newer entry
references a chronologically previous one.
ThreadResolveWorker uses FetchRemoteStatusService to obtain a status
and attach the child status it was queued for to it.
FetchRemoteStatusService looks up the URL, first with a HEAD, tests
if it's an Atom feed, in which case it processes it directly. Next
for Link headers to the Atom feed, in which case that is fetched
and processed. Lastly if it's HTML, it is checked for <link>s to the Atom
feed, and if such is found, that is fetched and processed. The account for
the status is derived from author/name attribute in the XML and the hostname
in the URL (domain). FollowRemoteAccountService and ProcessFeedService
are used.
This means that potentially threads are resolved recursively until a dead-end
is encountered, however it is performed asynchronously over background jobs,
so it should be ok.
8 years ago
Eugen Rochko
85b00d19b8
Moving Salmon notifications to background processing, fixing mini-profiler
...
behaviour with Turbolinks enabled, optimizing Rabl for production
9 years ago
Eugen Rochko
8eeec389c1
Add link to github project to footer, move FanOutOnWriteService calls to
...
DistributionWorker. That isn't the heaviest service, yet, but gotta start
somewhere
9 years ago