about summary refs log tree commit diff
path: root/app/services/follow_remote_account_service.rb
AgeCommit message (Collapse)Author
2017-05-06Handling failed http response (#2823)alpaca-tc
2017-04-27OEmbed support for PreviewCard (#2337)Eugen Rochko
* OEmbed support for PreviewCard * Improve ProviderDiscovery code failure treatment * Do not crawl links if there is a content warning, since those don't display a link card anyway * Reset db schema * Fresh migrate * Fix rubocop style issues Fix #1681 - return existing access token when applicable instead of creating new * Fix test * Extract http client to helper * Improve oembed controller
2017-04-25Punycode URI normalization (#2370)Eugen
* Fix #2119 - Whenever about to send a HTTP request, normalize the URI * Add test for IDN request in FetchLinkCardService * Perform IDN normalization on domains before they are stored in the DB
2017-04-19Fix possibility of unrightful webfinger redirect (#2147)Eugen
* Fix possibility of unrightful webfinger redirect * Add more tests for FollowRemoteAccountService
2017-04-16Clean up check that account needs a webfinger update (#1932)Matt Jankowski
2017-04-15Refresh webfinger (#1323)ThibG
* Refresh local info for remote accounts when webfinger returns new values It only refreshes account info if one of the URLs or the public-key changes, in which cases it refreshes the full info, re-downloading the feeds from that user. Some special handling should probably be done when the public key changes, but I have been unable to find any use for it in Mastodon yet. * Re-fetch remote users we aren't subscribed to. This might induce performance issues, we might want to only do that for users we explicitly attempted to subscribe but failed to. * Refactor changes * Do not refresh existing remote account details more than once a day * Avoid re-fetching webfinger info in tests unless otherwise specified
2017-04-08Merge pull request #1218 from R0ckweb/patch-2Eugen
Fix #1141 on remote follow
2017-04-08#1141 on remote followYann GUERN
The async action is send before persist, account.id not yet generated Pull queue receive 'nil' so no profile update.
2017-04-08Fix #801 - Respect webfinger's canonical response of username/domainEugen Rochko
2017-04-05Split SalmonWorker into smaller parts, move profile updating into another jobEugen Rochko
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