Commit Graph

56 Commits

Author SHA1 Message Date
bb4d005a83 Introduce OStatus::TagManager (#5008) 2017-09-19 18:08:08 +02:00
d3b6746173 Make "unfollow" undo pending outgoing follow request too (#4781)
* Make "unfollow" undo pending outgoing follow request too

* Add cancel button to web UI when awaiting follow request approval

* Make the hourglass button do the cancelling
2017-09-02 20:44:41 +02:00
1fcdaafa6f Fix webfinger retries (#4275)
* Do not raise unretryable exceptions in ResolveRemoteAccountService

* Removed fatal exceptions from ResolveRemoteAccountService

Exceptions that cannot be retried should not be raised. New exception
class for those that can be retried (Mastodon::UnexpectedResponseError)
2017-07-20 01:59:07 +02:00
33f669a5f8 Add status destroy authorization to policy (#3453)
* Add status destroy authorization to policy

* Create explicit unreblog status authorization
2017-05-30 22:56:31 +02:00
44cb08297c Fix some nil errors (#3338)
* Fix nil input not handled well in AuthorExtractor concern

* Fix hard error in ProcessFeedService when replied-to status has been deleted

* Fix nil errors in ProcessInteractionService when favourited status
cannot be found
2017-05-27 00:53:38 +02:00
f1ab70649b Add buttons to block and unblock domain (#3127)
* Add buttons to block and unblock domain

* Relationship API now returns "domain_blocking" status for accounts,
rename "block entire domain" to "hide entire domain", fix unblocking domain,
do not block notifications from domain-blocked-but-followed people, do
not send Salmons to domain blocked users

* Add test

* Personal domain blocks shouldn't affect Salmon after all, since in this
direction of communication the control is very thin when it comes to
public stuff. Best stay consistent and not affect federation in this way

* Ignore followers and follow request from domain blocked folks,
ensure account domain blocks are not created for empty domain,
and avoid duplicates in validation

* Purge followers when blocking domain (without soft-blocks, since they
are useless here)

* Add tests, fix local timeline being empty when having any domain blocks
2017-05-19 21:05:32 +02:00
43d754eb42 Fix not rejecting remote URIs when parsing out local IDs (#3012) 2017-05-12 16:47:55 +02:00
81584779cb More robust PuSH subscription refreshes (#2799)
* Fix #2473 - Use sidekiq scheduler to refresh PuSH subscriptions instead of cron

Fix an issue where / in domain would raise exception in TagManager#normalize_domain

PuSH subscriptions refresh done in a round-robin way to avoid hammering a single
server's hub in sequence. Correct handling of failures/retries through Sidekiq (see
also #2613). Optimize Account#with_followers scope. Also, since subscriptions
are now delegated to Sidekiq jobs, an uncaught exception will not stop the entire
refreshing operation halfway through

Fix #2702 - Correct user agent header on outgoing http requests

* Add test for SubscribeService

* Extract #expiring_accounts into method

* Make mastodon:push:refresh no-op

* Queues are now defined in sidekiq.yml

* Queues are now in sidekiq.yml
2017-05-05 02:23:01 +02:00
bafd22ecf4 Fix #2706 - Always respond with 200 to PuSH payloads (#2733)
Fix #2196 - Respond with 201 when Salmon accepted, 400 when unverified
Fix #2629 - Correctly handle confirm_domain? for local accounts
Unify rules for extracting author acct from XML, prefer <email>, fall back
to <name> + <uri> (see also #2017, #2172)
2017-05-03 17:02:18 +02:00
17c591ffba Punycode URI normalization (#2370)
* 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-25 02:47:31 +02:00
5442083b3c Split SalmonWorker into smaller parts, move profile updating into another job 2017-04-05 21:43:10 +02:00
d6ed2eb512 Prettier account and stream entry URLs 2017-03-22 19:55:14 +01:00
df63461ff0 Add handler for salmons of undoing favourites 2017-02-12 19:50:18 +01:00
e610555e10 Fix processing of incoming authorizations/rejections 2017-02-11 13:55:07 +01:00
149887a0ff Make follow requests federate 2017-02-11 02:58:00 +01:00
f2e08ff568 Remove unneeded block check 2017-01-23 17:40:23 +01:00
c04002b340 Federate blocks with the http://mastodon.social/schema/1.0 verb namespace 2017-01-02 12:17:51 +01:00
7376af90f7 Don't show statuses to blocked users 2016-12-26 19:13:56 +01:00
05b13c38b5 Re-enable Webfinger for locked accounts but don't handle "follow" events
coming in via Salmon.

Currently no way to prevent remote follows, but they will only receive public
and unlisted posts
2016-12-22 23:17:57 +01:00
39cc9fde8a Add account suspension 2016-12-05 22:59:30 +01:00
14bd46946d Per-status control for unlisted mode, also federation for unlisted mode
Fix #233, fix #268
2016-11-30 21:34:59 +01:00
5b076cbafb Fix delete Salmons 2016-11-28 19:44:27 +01:00
2cb3dc5e5a Update hub URL and re-subscribe if hub URL changes 2016-11-26 15:18:21 +01:00
da2ef4d676 Adding unified streamable notifications 2016-11-20 19:39:58 +01:00
fdc17bea58 Fix rubocop issues, introduce usage of frozen literal to improve performance 2016-11-15 16:56:29 +01:00
7ce4670164 Force utf-8 encoding when processing XML 2016-11-13 19:12:40 +01:00
77efdfa110 Fixing namespaces issue 2016-10-10 19:16:23 +02:00
87b618ab02 Fix namespace parsing in Atom feeds 2016-10-10 18:16:07 +02:00
22a8801dbc Adding domain blocks 2016-10-09 14:48:59 +02:00
5cfc9efad3 Update OStatus2 to handle malformed Salmon without raising unexpected exceptions 2016-10-06 14:47:38 +02:00
70e9dd0b5b Blocking will prevent e-mail notifications from blocked user, blocks in UI 2016-10-03 18:49:52 +02:00
927333f4f8 Improve code style 2016-09-29 21:28:21 +02:00
059ebbf48d Separate PuSH subscriptions from following, add mastodon:push:refresh task,
respect hub.lease_seconds (fix #46)
2016-09-20 00:43:36 +02:00
183a23943b Fix how other services used old FollowRemoteAccountService 2016-09-17 17:07:45 +02:00
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
a289c1d52f Handle delete Salmons, todo: clean up timelines 2016-09-04 14:44:16 +02:00
da4b675aca Fix favourite handling in ProcessInteractionService 2016-03-26 01:34:12 +01:00
7e53efae31 Fix for incoming favourites 2016-03-19 22:46:58 +01:00
2b116131d7 Adding e-mail notifications about mentions, follows, favourites and reblogs. Fixing another mention recording bug 2016-03-19 19:20:07 +01:00
580b91c387 Fix more subtle bugs with first_or_create 2016-03-19 00:02:39 +01:00
d022975444 Fixing small bug with FollowRemoteAccountService usage 2016-03-16 21:20:50 +01:00
086d487145 Fix unfollows 2016-03-16 21:14:39 +01:00
0e8f59c16f Refactoring Grape API methods into normal controllers & other things 2016-02-29 19:42:08 +01:00
47d50b0e39 A lot of fixes from a live test 2016-02-28 15:46:29 +01:00
ad5ae3f60e Update profile information and download avatar of remote accounts 2016-02-28 14:26:26 +01:00
44c5958203 Fixed small bugs and code style offences 2016-02-25 00:22:46 +01:00
fa7868675d Send Salmon interactions 2016-02-24 12:57:29 +01:00
10eb47a33e Do not PuSH-subscribe to remote accounts when creating them for salmon 2016-02-24 03:05:40 +01:00
784b9cca6a Forgotten argument fix 2016-02-24 02:15:58 +01:00
9411e8c35a Feed processing except fetching remote statuses 2016-02-24 01:28:53 +01:00