about summary refs log tree commit diff
path: root/app/services/process_feed_service.rb
AgeCommit message (Collapse)Author
2017-03-13Fix casuality of processing remote mentions such that notificationsEugen Rochko
about them would be processed only after the entire status is processed
2017-02-22Skip remote media URLs that don't have a hostnameEugen Rochko
2017-02-11Mentions in private statuses allow mentioned people to see themEugen Rochko
2017-02-09Fix #614 - extra reply-boolean on statuses to account for cases when replied-toEugen Rochko
status is not in the system at time of distribution; fix #607 - reset privacy settings to defaults when cancelling replies
2017-01-27Do not run FetchLinkCardService on local URLs, increase file size limit to 8MB,Eugen Rochko
fix ProcessFeedService pushing status into distribution if called a second time while the first is still running (i.e. when a PuSH comes after a Salmon slap), fix not running escape on spoiler text before emojify
2017-01-25Use <summary> to encode content warnings insteadEugen Rochko
2017-01-25Instead of using spoiler boolean and spoiler_text, simply check for ↵Eugen Rochko
non-blank spoiler_text Federate spoiler_text using warning attribute on <content /> instead of a <category term="spoiler" /> Clean up schema file from accidental development migrations
2017-01-23Optional domain block attribute that prevents media attachments from being ↵Eugen Rochko
downloaded
2017-01-20Instead of refusing to create accounts, domain blocks auto-suspend new ↵Eugen Rochko
accounts from that domain
2017-01-20Fix preview cards layout, do preview card crawling for remote statusesEugen Rochko
2017-01-14Fix too late returnEugen
2017-01-11Add ruby version to Gemfile, move devDependencies in package.json to ↵Eugen Rochko
dependencies, fix bug in process feed service
2016-12-12Restoring old async behaviour of thread resolving as it proved to be more robustEugen Rochko
2016-12-11Thread resolving no longer needs to be separate from ProcessFeedService,Eugen Rochko
since that is only ever called in the background
2016-12-05Add account suspensionEugen Rochko
2016-11-30Per-status control for unlisted mode, also federation for unlisted modeEugen Rochko
Fix #233, fix #268
2016-11-26Update hub URL and re-subscribe if hub URL changesEugen Rochko
2016-11-22Remove unneeded indices, improve error handling in background workers, don't ↵Eugen Rochko
needlessly reload reblogged status, send Devise e-mails asynchronously
2016-11-21Call NotifyService about remote reblogsEugen Rochko
2016-11-20Adding unified streamable notificationsEugen Rochko
2016-11-18Catch validation errors in ProcessFeedService so that one failing entry ↵Eugen Rochko
wouldn't stop others from going through
2016-11-18Don't create attachments if remote file cannot be fetchedEugen Rochko
2016-11-15Fix rubocop issues, introduce usage of frozen literal to improve performanceEugen Rochko
2016-11-13Force utf-8 encoding when processing XMLEugen Rochko
2016-11-10Discard misattributed remote statuses, improve timelines filterEugen Rochko
2016-11-08Adding more loggingEugen Rochko
2016-11-08Fix for thread resolve service and process feed service url methodEugen Rochko
2016-11-08Fix region setting for AWS gemEugen Rochko
2016-11-08Fix typoEugen Rochko
2016-11-08ProcessFeedService refactorEugen Rochko
2016-11-07Improved configuration from ENV, cleaned up timeline filter methodsEugen Rochko
to be more readable, add extra logging to process feed service
2016-11-05Adding hashtagsEugen Rochko
2016-10-14Fix duplication of media attachments when a remote status reblogs a local oneEugen Rochko
2016-10-12Fix up a few exceptionsEugen Rochko
2016-10-10Fixing namespaces issueEugen Rochko
2016-10-10Fix namespace parsing in Atom feedsEugen Rochko
2016-10-10Use Account#find_remote method when possibleEugen Rochko
2016-10-10Don't return unsaved status from ProcessFeedServiceEugen Rochko
2016-10-10Adding test for ProcessFeedServiceEugen Rochko
2016-10-10Improve process feed serviceEugen Rochko
2016-10-10Fix default assumed object type (note->activity), make stream entry ↵Eugen Rochko
threaded? check aware of orphaned replies
2016-10-06Better comparison of "local" domainEugen Rochko
2016-10-03Blocking will prevent e-mail notifications from blocked user, blocks in UIEugen Rochko
2016-10-02Small fixesEugen Rochko
2016-09-29Improve code styleEugen Rochko
2016-09-26Fix #54 - Fetch remote accounts by URL from mentionsEugen Rochko
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-22Handle remote account mentions a little better by trying a URL lookup in the dbEugen Rochko
2016-09-22Fix #51 - prevent duplicate attachments for remote statusesEugen Rochko
2016-09-21Fix #24 - Thread resolving for remote statusesEugen Rochko
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.
2016-09-20Separate PuSH subscriptions from following, add mastodon:push:refresh task,Eugen Rochko
respect hub.lease_seconds (fix #46)