about summary refs log tree commit diff
path: root/app/services/follow_remote_account_service.rb
AgeCommit message (Collapse)Author
2017-01-23Domain blocks now have varying severity - auto-suspend vs auto-silenceEugen Rochko
2017-01-20Instead of refusing to create accounts, domain blocks auto-suspend new ↵Eugen Rochko
accounts from that domain
2016-11-26Update hub URL and re-subscribe if hub URL changesEugen Rochko
2016-11-15Fix rubocop issues, introduce usage of frozen literal to improve performanceEugen Rochko
2016-11-03Allow @username@domain/@username in follow form, prevent duplicate accountsEugen Rochko
created via remote look-up when domains differ but point to the same resource
2016-10-13No-op for Salmons without body, fail fast if Webfinger does not containEugen Rochko
all required resource links (profile page, salmon, atom feed, magic key)
2016-10-12Treat dfrn:owner like xmlns:author for Friendica compatibilityEugen Rochko
2016-10-12Improve Friendica support (but still not there yet)Eugen Rochko
2016-10-09Adding domain blocksEugen Rochko
2016-10-06Better comparison of "local" domainEugen Rochko
2016-09-29Improve code styleEugen 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)
2016-09-17Improved error handling for FollowRemoteServiceEugen Rochko
2016-09-17Fix #41, debug #42Eugen Rochko
2016-09-08Fix local follows, 404 in logsEugen Rochko
2016-09-04Fixed more case-sensitivity issuesEugen Rochko
2016-03-21Adding Turbolinks, adding status posting form on homepageEugen Rochko
2016-02-29Refactoring Grape API methods into normal controllers & other thingsEugen Rochko
2016-02-28Update profile information and download avatar of remote accountsEugen Rochko
2016-02-25Fixed small bugs and code style offencesEugen Rochko
2016-02-24Send Salmon interactionsEugen Rochko
2016-02-24Do not PuSH-subscribe to remote accounts when creating them for salmonEugen Rochko
2016-02-23Adding reblogs, favourites, improving atom generationEugen Rochko
2016-02-22Fixes and general progressEugen Rochko
2016-02-22Made some progressEugen Rochko