Eugen Rochko
d1a78eba15
Embed modal ( #4748 )
...
* Embed modal
* Proxy OEmbed requests from web UI
2017-08-31 03:38:35 +02:00
Eugen Rochko
2db9ccaf3e
Add sharedInbox to actors ( #4737 )
2017-08-31 00:02:59 +02:00
Eugen Rochko
7b8f262840
Forward ActivityPub creates that reply to local statuses ( #4709 )
...
* Forward ActivityPub creates that reply to local statuses
* Fix test
* Fix wrong signers
2017-08-30 15:37:02 +02:00
Eugen Rochko
e95bdec7c5
Update status embeds ( #4742 )
...
- Use statuses controller for embeds instead of stream entries controller
- Prefer /@:username/:id/embed URL for embeds
- Use /@:username as author_url in OEmbed
- Add follow link to embeds which opens web intent in new window
- Use redis cache in development
- Cache entire embed
2017-08-30 10:23:43 +02:00
Eugen Rochko
fcca31350d
Remove unneccesary indices ( #4738 )
...
We only look up status_pins by account_id, or account_id and status_id,
never by status_id
2017-08-30 05:04:20 +02:00
Eugen Rochko
ee72a39641
Update bundler-audit and brakeman ( #4740 )
2017-08-30 03:30:13 +02:00
Eugen Rochko
4c76402ba1
Serialize ActivityPub alternate link into OStatus deletes, handle it ( #4730 )
...
Requires moving Atom rendering from DistributionWorker (where
`stream_entry.status` is already nil) to inline (where
`stream_entry.status.destroyed?` is true) and distributing that.
Unfortunately, such XML renderings can no longer be easily chained
together into one payload of n items.
2017-08-29 16:11:05 +02:00
Eugen Rochko
15093f9113
Shorten display of large numbers on public profiles ( #4711 )
2017-08-27 17:04:45 +02:00
Eugen Rochko
26402ee2cb
Adjust RTL styles ( #4712 )
2017-08-27 13:35:18 +02:00
Eugen Rochko
0d5d11eeff
Add _:inReplyToAtomUri to ActivityPub ( #4702 )
2017-08-26 19:55:10 +02:00
Eugen Rochko
0397c58b61
Forward ActivityPub deletes to followers of rebloggers ( #4706 )
2017-08-26 18:52:53 +02:00
Eugen Rochko
884b085f53
Use Tombstone and _:atomUri in Delete activities as fallback ( #4704 )
2017-08-26 16:10:35 +02:00
Eugen Rochko
2a2698e450
Add ActivityPub serializer for Undo of Announce ( #4703 )
2017-08-26 15:32:40 +02:00
Eugen Rochko
00840f4f2e
Add handling of Linked Data Signatures in payloads ( #4687 )
...
* Add handling of Linked Data Signatures in payloads
* Add a way to sign JSON, fix canonicalization of signature options
* Fix signatureValue encoding, send out signed JSON when distributing
* Add missing security context
2017-08-26 13:47:38 +02:00
Eugen Rochko
9caa90025f
Pinned statuses ( #4675 )
...
* Pinned statuses
* yarn manage:translations
2017-08-25 01:41:18 +02:00
Eugen Rochko
cf615abbf9
Add configuration to disable private status federation over PuSH ( #4582 )
2017-08-24 17:51:32 +02:00
Eugen Rochko
c66fe2aeba
Minor performance improvement for test suite ( #4678 )
2017-08-24 13:31:55 +02:00
Eugen Rochko
c1b086a538
Fix up the applications area ( #4664 )
...
- Section it into "Development" area
- Improve UI of application form, index, and details
2017-08-23 00:59:35 +02:00
Eugen Rochko
72bb3e03fd
Support more variations of ActivityPub keyId in signature ( #4630 )
...
- Tries to avoid performing HTTP request if the keyId is an actor URI
- Likewise if the URI is a fragment URI on top of actor URI
- Resolves public key, returns owner if the owner links back to the key
2017-08-21 22:57:34 +02:00
Eugen Rochko
f391a4673a
Periodically remove expired PuSH subscribers ( #4654 )
2017-08-21 22:56:33 +02:00
Eugen Rochko
4cbb638604
Fix visual line-break glitch with .invisible parts of links ( #4655 )
2017-08-21 17:59:34 +02:00
Eugen Rochko
3534e115e5
Do not try to re-subscribe to unsubscribed accounts ( #4653 )
2017-08-21 17:32:41 +02:00
Eugen Rochko
6e9eda5331
ActivityPub migration procedure ( #4617 )
...
* ActivityPub migration procedure
Once one account is detected as going from OStatus to ActivityPub,
invalidate WebFinger cache for other accounts from the same domain
* Unsubscribe from PuSH updates once we receive an ActivityPub payload
* Re-subscribe to PuSH unless already unsubscribed, regardless of protocol
2017-08-21 01:14:40 +02:00
Eugen Rochko
74e5078795
Fix #4637 - Re-add missing doorkeeper_authorize for /api/v1/verify_credentials ( #4650 )
2017-08-21 00:41:08 +02:00
Eugen Rochko
fe5b66aa08
Handle duplicate ActivityPub activities ( #4639 )
...
* Handle duplicate ActivityPub activities
Only perform side-effects when record processed for the first time
* Fast-forward repeat follow requests
2017-08-20 16:53:47 +02:00
Eugen Rochko
412ea87306
Improve ActivityPub/OStatus compatibility ( #4632 )
...
*Note: OStatus URIs are invalid for ActivityPub. But we have them for
as long as we want to keep old OStatus-sourced content and as long as
we remain OStatus-compatible.*
- In Announce handling, if object URI is not a URL, fallback to object URL
- Do not use specialized ThreadResolveWorker, rely on generalized handling
- When serializing notes, if parent's URI is not a URL, use parent's URL
2017-08-19 18:44:48 +02:00
Eugen Rochko
774b8661bc
Revert #4616 ( #4638 )
2017-08-19 02:23:47 +02:00
Eugen Rochko
c7d2619ab1
Parse OStatus tag URIs in ActivityPub handlers when those are local ( #4631 )
2017-08-18 11:24:44 +02:00
Eugen Rochko
4edf9d849f
Make ActivityPub::TagManager#local_uri? recognize local URIs with ports ( #4628 )
2017-08-18 03:21:59 +02:00
Eugen Rochko
10489b4e4a
If url attribute not present in Note, fallback to id attribute ( #4629 )
2017-08-18 02:29:12 +02:00
Eugen Rochko
40c45f5dd9
Put ActivityPub alternate link into Atom, prefer it when processing Atom ( #4623 )
2017-08-18 01:03:18 +02:00
Eugen Rochko
116b8a6363
Fix #4607 - Accept/reject activities use FollowRequest, which has inverse relations ( #4616 )
2017-08-17 22:15:37 +02:00
Eugen Rochko
ad892dbc0c
Add _:atomUri property for deduplicating OStatus/ActivityPub legacy records ( #4593 )
2017-08-17 21:35:00 +02:00
Eugen Rochko
ca7ea1aba9
Redesign public profiles ( #4608 )
...
* Redesign public profiles
* Responsive design
* Change public profile status filtering defaults and add options
- No longer displays private/direct toots even if you are permitted access
- By default omits replies
- "With replies" option
- "Media only" option
* Redesign account grid cards
* Fix style issues
2017-08-16 17:12:58 +02:00
Eugen Rochko
4fcbb1f838
Re-add missing transaction around status-from-OStatus creation ( #4603 )
2017-08-14 21:37:21 +02:00
Eugen Rochko
26d26644ac
Require "inbox" to be set on actor to be ActivityPub-ready ( #4595 )
2017-08-14 11:27:25 +02:00
Eugen Rochko
3c6503038e
Add protocol handler. Handle follow intents ( #4511 )
...
* Add protocol handler. Handle follow intents
* Add share intent
* Improve code in intents controller
* Adjust share form CSS
2017-08-14 04:53:31 +02:00
Eugen Rochko
6df8bd277b
Set correct content-type for ActivityPub JSON ( #4592 )
2017-08-14 04:16:43 +02:00
Eugen Rochko
4e75f0d889
Hook up URL-based resource look-up to ActivityPub ( #4589 )
2017-08-14 02:29:36 +02:00
Eugen Rochko
a2aeacbfee
Add alternate links to ActivityPub resources from HTML/HEAD variants ( #4586 )
2017-08-13 00:45:04 +02:00
Eugen Rochko
b7370ac8ba
ActivityPub delivery ( #4566 )
...
* Deliver ActivityPub Like
* Deliver ActivityPub Undo-Like
* Deliver ActivityPub Create/Announce activities
* Deliver ActivityPub creates from mentions
* Deliver ActivityPub Block/Undo-Block
* Deliver ActivityPub Accept/Reject-Follow
* Deliver ActivityPub Undo-Follow
* Deliver ActivityPub Follow
* Deliver ActivityPub Delete activities
Incidentally fix #889
* Adjust BatchedRemoveStatusService for ActivityPub
* Add tests for ActivityPub workers
* Add tests for FollowService
* Add tests for FavouriteService, UnfollowService and PostStatusService
* Add tests for ReblogService, BlockService, UnblockService, ProcessMentionsService
* Add tests for AuthorizeFollowService, RejectFollowService, RemoveStatusService
* Add tests for BatchedRemoveStatusService
* Deliver updates to a local account to ActivityPub followers
* Minor adjustments
2017-08-13 00:44:41 +02:00
Eugen Rochko
ccdd5a9576
Add serializing/unserializing of "locked" actor attribute ( #4585 )
2017-08-12 17:41:03 +02:00
Eugen Rochko
40be4ea239
Extend Devise remember_me longevity to 1 year instead of 2 weeks ( #4587 )
...
Force SSL only cookies for remember_me, adjust confirmation
expiration time to fit with the user cleanup scheduler
2017-08-12 16:30:59 +02:00
Eugen Rochko
3d47154c20
Only PuSH-resubscribe to OStatus accounts ( #4583 )
2017-08-12 02:54:54 +02:00
Eugen Rochko
81c1303cd6
Handle ActivityPub follows correctly ( #4571 )
...
* Handle ActivityPub follows correctly
ActivityPub follows are follow-requests. Always require an Accept.
If account is not locked, auto-accept.
* Handle ActivityPub Accept/Reject-Follow
* Fix wrong method
* Fix wrong class
2017-08-10 22:33:12 +02:00
Eugen Rochko
fdea173237
Add Digest header to requests with body, handle acct and URI keyId ( #4565 )
2017-08-09 23:54:14 +02:00
Eugen Rochko
dd7ef0dc41
Add ActivityPub inbox ( #4216 )
...
* Add ActivityPub inbox
* Handle ActivityPub deletes
* Handle ActivityPub creates
* Handle ActivityPub announces
* Stubs for handling all activities that need to be handled
* Add ActivityPub actor resolving
* Handle conversation URI passing in ActivityPub
* Handle content language in ActivityPub
* Send accept header when fetching actor, handle JSON parse errors
* Test for ActivityPub::FetchRemoteAccountService
* Handle public key and icon/image when embedded/as array/as resolvable URI
* Implement ActivityPub::FetchRemoteStatusService
* Add stubs for more interactions
* Undo activities implemented
* Handle out of order activities
* Hook up ActivityPub to ResolveRemoteAccountService, handle
Update Account activities
* Add fragment IDs to all transient activity serializers
* Add tests and fixes
* Add stubs for missing tests
* Add more tests
* Add more tests
2017-08-08 21:52:15 +02:00
Eugen Rochko
41c3389d76
Bump to 1.5.1
2017-08-06 23:53:25 +02:00
Eugen Rochko
61a06eb328
Update goldfinger to 2.0.1, see tootsuite/goldfinger#5 ( #4527 )
2017-08-05 15:29:52 +02:00
Eugen Rochko
df605f0f8b
Add "signed in as" header to some pages ( #4523 )
2017-08-05 04:24:58 +02:00
Eugen Rochko
724be2d5fe
Ignore some locale keys that can but do not need to be translated ( #4515 )
2017-08-04 04:42:28 +02:00
Eugen Rochko
559fd08845
Bump to 1.5.0
2017-08-01 15:12:07 +02:00
Eugen Rochko
9b247c3d88
Bump to 1.5.0rc3
2017-07-31 15:28:36 +02:00
Eugen Rochko
c7cc806251
Simplify web UI character counter logic ( #4463 )
2017-07-31 15:19:48 +02:00
Eugen Rochko
e1fcad34a9
Fix length validator counting things that look like URIs like URLs ( #4462 )
...
URI.extract is too strong, not limited to URLs, matched real text.
Same issue was present in language detector.
2017-07-31 05:06:20 +02:00
Eugen Rochko
53b2b1b238
Count all URLs in text as 23 characters flat, do not count domain part of usernames ( #4427 )
...
* Count all URLs in text as 23 characters flat, do not count domain part of usernames
* Add new status text counting logic to web UI
2017-07-29 00:06:29 +02:00
Eugen Rochko
f0bb2c6d1e
Fix web push notifications "boost" icon not being loaded (regression from #4426 ) ( #4431 )
2017-07-28 20:26:54 +02:00
Eugen Rochko
13bb1ddc7f
Use consistent icons for web push notifications, same as web UI ( #4426 )
2017-07-28 18:13:42 +02:00
Eugen Rochko
fdb65dcbee
Bump to 1.5.0rc2
2017-07-28 17:22:41 +02:00
Eugen Rochko
4e2f2fab73
Fix guard clause in WebPushNotificationWorker ( #4421 )
2017-07-28 17:21:28 +02:00
Eugen Rochko
6e186b9c77
When PuSH subscribe attempts are exhausted, unsubscribe ( #4422 )
2017-07-28 17:21:14 +02:00
Eugen Rochko
b3c44e95a9
Improve actions modal style ( #4423 )
2017-07-28 15:30:53 +02:00
Eugen Rochko
8c0dd33ce4
Fix current session not being displayed in sessions list ( #4424 )
2017-07-28 15:30:06 +02:00
Eugen Rochko
6270f9ce34
Fix #3189 - Share CSRF secret between main app and Sidekiq Web ( #4383 )
2017-07-28 04:36:42 +02:00
Eugen Rochko
92cb451da8
Fix #4026 - Accept backup codes for disabling 2FA ( #4382 )
2017-07-26 23:36:33 +02:00
Eugen Rochko
55bee84c97
Fix infinite scroll fluidity ( #4381 )
2017-07-26 23:35:03 +02:00
Eugen Rochko
07d93716aa
Improve remote profile disclaimer ( #4342 )
...
* Improve remote profile disclaimer
* yarn run manage:translations
2017-07-24 20:05:29 +02:00
Eugen Rochko
88b5e0b703
Use the "m" version of the logo for favicons ( #4345 )
2017-07-24 19:54:59 +02:00
Eugen Rochko
1306d637a2
Fix oddities with public profile CSS ( #4341 )
...
* Fix oddities with public profile CSS
* Remove trailing whitespace
2017-07-24 17:56:50 +02:00
Eugen Rochko
029f2c4545
Redesign /terms page ( #4338 )
...
* Redesign /terms page
* Fix tests
* Remove unused keys
2017-07-24 17:15:15 +02:00
Eugen Rochko
a549d1ae6b
Bump to 1.5.0rc1 ( #4318 )
2017-07-24 16:21:08 +02:00
Eugen Rochko
467456f7a1
Move clean up of unconfirmed users to sidekiq-scheduler ( #4336 )
...
* Move clean up of unconfirmed users to sidekiq-scheduler
* mastodon:daily is now deprecated
2017-07-24 16:17:55 +02:00
Eugen Rochko
2374d63536
Redesign extended information page ( #4322 )
...
* Redesign extended information page
* Remove unused keys
* Add $ui-base-lighter-color variable to SCSS
2017-07-24 15:09:08 +02:00
Eugen Rochko
de985a30bc
Run i18n-tasks normalize ( #4335 )
2017-07-24 14:30:10 +02:00
Eugen Rochko
ed4c754fff
Add background to media modal ( #4317 )
2017-07-23 20:28:31 +02:00
Eugen Rochko
1e0c7a0afc
Add loading indicator animation ( #4316 )
2017-07-23 20:28:18 +02:00
Eugen Rochko
3a3b556065
Improve noscript message and style ( #4315 )
2017-07-23 20:28:06 +02:00
Eugen Rochko
dd28b557ae
Update README header with logo
2017-07-23 02:46:10 +02:00
Eugen Rochko
0e0f18ce7c
New logo ( #4306 )
...
* Add new logo
* Remove unused images
2017-07-23 02:40:39 +02:00
Eugen Rochko
7964bfccdb
Add rake task mastodon:feeds:build to regenerate all active users' feeds ( #4303 )
2017-07-23 01:15:04 +02:00
Eugen Rochko
3c515f2cd2
Run yarn run manage:translations and i18n-tasks normalize ( #4302 )
2017-07-23 01:14:57 +02:00
Eugen Rochko
311871eefc
Turn clouds on landing page into SVGs, use SCSS variables to color them ( #4299 )
2017-07-22 16:36:54 +02:00
Eugen Rochko
a929f7e6ac
Fix #4172 - Mutes now block notifications ( #4300 )
2017-07-22 16:36:36 +02:00
Eugen Rochko
8d6c3cd48a
Fix sessions being replaced needlessly ( #4292 )
2017-07-22 01:09:10 +02:00
Eugen Rochko
399f9f4a4e
Update Goldfinger gem to 2.0 ( #4286 )
...
- No masking of HTTP::Error and OpenSSL::SSL::SSLError
- No longer accepts non-HTTPS WebFinger endpoints
2017-07-21 13:40:48 +02:00
Eugen Rochko
dbaa6a0e13
Fix intermittent test failures due to accidentally reused class instance between threads ( #4287 )
2017-07-21 12:45:13 +02:00
Eugen Rochko
7bf7ed6123
Fix #3220 - Show avatar/header on edit profile page ( #4288 )
2017-07-21 05:28:51 +02:00
Eugen Rochko
a390abdefb
Use the same emoji data on the frontend and backend ( #4284 )
...
* Use the same emoji data on the frontend and backend
* Move emoji.json to repository, add tests
This way you don't need to install node dependencies if you only
want to run Ruby code
2017-07-21 04:27:40 +02:00
Eugen Rochko
4b911fea03
Add button to re-subscribe to all accounts from a domain ( #4285 )
2017-07-20 23:07:13 +02:00
Eugen Rochko
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
Eugen Rochko
bbdcfd6baf
Add ActivityPub attributes to accounts ( #4273 )
2017-07-19 17:06:46 +02:00
Eugen Rochko
8400bee3b1
Refactor ResolveRemoteAccountService ( #4258 )
...
* Refactor ResolveRemoteAccountService
* Remove trailing whitespace
* Use redis locks around critical ResolveRemoteAccountService code
* Add test for race condition of lock
2017-07-19 14:44:04 +02:00
Eugen Rochko
c2c93f8cd6
Fix deprecation warning for non-pipeline assets ( #4267 )
2017-07-19 12:00:05 +02:00
Eugen Rochko
a5a07da892
Correct OStatus inflection (Ostatus -> OStatus) ( #4255 )
2017-07-19 01:37:26 +02:00
Eugen Rochko
d4b097a88c
Add missing ActivityPub representations ( #4230 )
...
- Follow, undo follow
- Accept follow, reject follow
- Like, undo like
- Block, undo block
- Delete (note)
- Update (actor)
2017-07-17 10:57:04 +02:00
Eugen Rochko
a47c2e8890
Add public key declaration to actors ( #4215 )
2017-07-17 02:37:27 +02:00
Eugen Rochko
a3202fd51e
Add SMTP_TLS variable for configuring TLS when server uses non-standard port ( #4227 )
2017-07-16 23:48:35 +02:00
Eugen Rochko
a6328fc1b1
Minor ActivityPub JSON fixes ( #4214 )
...
- Objects must have attributedTo instead of actor
- The current attribute belongs to CollectionPage, not Collection
2017-07-16 10:28:55 +02:00
Eugen Rochko
8c45cd0e36
Improve ActivityPub representations ( #3844 )
...
* Improve webfinger templates and make tests more flexible
* Clean up AS2 representation of actor
* Refactor outbox
* Create activities representation
* Add representations of followers/following collections, do not redirect /users/:username route if format is empty
* Remove unused translations
* ActivityPub endpoint for single statuses, add ActivityPub::TagManager for better
URL/URI generation
* Add ActivityPub::TagManager#to
* Represent all attachments as Document instead of Image/Video specifically
(Because for remote ones we may not know for sure)
Add mentions and hashtags representation to AP notes
* Add AP-resolvable hashtag URIs
* Use ActiveModelSerializers for ActivityPub
* Clean up unused translations
* Separate route for object and activity
* Adjust cc/to matrices
* Add to/cc to activities, ensure announce activity embeds target status and
not the wrapper status, add "id" to all collections
2017-07-15 03:01:39 +02:00
Eugen Rochko
3fbf1bf35a
Fix #3773 - Pin favourites column ( #4201 )
2017-07-15 00:49:34 +02:00