Eugen Rochko
e2685ccc81
Fix #4149 , fix #1199 - Store emojis as unicode ( #4189 )
...
- Use unicode when selecting emoji through picker
- Convert shortcodes to unicode when storing text input server-side
- Do not convert shortcodes in JS anymore
2017-07-14 19:47:53 +02:00
Sorin Davidoi
0c7c188c45
Web Push Notifications ( #3243 )
...
* feat: Register push subscription
* feat: Notify when mentioned
* feat: Boost, favourite, reply, follow, follow request
* feat: Notification interaction
* feat: Handle change of public key
* feat: Unsubscribe if things go wrong
* feat: Do not send normal notifications if push is enabled
* feat: Focus client if open
* refactor: Move push logic to WebPushSubscription
* feat: Better title and body
* feat: Localize messages
* chore: Fix lint errors
* feat: Settings
* refactor: Lazy load
* fix: Check if push settings exist
* feat: Device-based preferences
* refactor: Simplify logic
* refactor: Pull request feedback
* refactor: Pull request feedback
* refactor: Create /api/web/push_subscriptions endpoint
* feat: Spec PushSubscriptionController
* refactor: WebPushSubscription => Web::PushSubscription
* feat: Spec Web::PushSubscription
* feat: Display first media attachment
* feat: Support direction
* fix: Stuff broken while rebasing
* refactor: Integration with session activations
* refactor: Cleanup
* refactor: Simplify implementation
* feat: Set VAPID keys via environment
* chore: Comments
* fix: Crash when no alerts
* fix: Set VAPID keys in testing environment
* fix: Follow link
* feat: Notification actions
* fix: Delete previous subscription
* chore: Temporary logs
* refactor: Move migration to a later date
* fix: Fetch the correct session activation and misc bugs
* refactor: Move migration to a later date
* fix: Remove follow request (no notifications)
* feat: Send administrator contact to push service
* feat: Set time-to-live
* fix: Do not show sensitive images
* fix: Reducer crash in error handling
* feat: Add badge
* chore: Fix lint error
* fix: Checkbox label overlap
* fix: Check for payload support
* fix: Rename action "type" (crash in latest Chrome)
* feat: Action to expand notification
* fix: Lint errors
* fix: Unescape notification body
* fix: Do not allow boosting if the status is hidden
* feat: Add VAPID keys to the production sample environment
* fix: Strip HTML tags from status
* refactor: Better error messages
* refactor: Handle browser not implementing the VAPID protocol (Samsung Internet)
* fix: Error when target_status is nil
* fix: Handle lack of image
* fix: Delete reference to invalid subscriptions
* feat: Better error handling
* fix: Unescape HTML characters after tags are striped
* refactor: Simpify code
* fix: Modify to work with #4091
* Sort strings alphabetically
* i18n: Updated Polish translation
it annoys me that it's not fully localized :P
* refactor: Use current_session in PushSubscriptionController
* fix: Rebase mistake
* fix: Set cacheName to mastodon
* refactor: Pull request feedback
* refactor: Remove logging statements
* chore(yarn): Fix conflicts with master
* chore(yarn): Copy latest from master
* chore(yarn): Readd offline-plugin
* refactor: Use save! and update!
* refactor: Send notifications async
* fix: Allow retry when push fails
* fix: Save track for failed pushes
* fix: Minify sw.js
* fix: Remove account_id from fabricator
2017-07-13 22:15:32 +02:00
Eugen Rochko
1764c32b9e
Fix #4067 - Do not make HTTP round-trip when resolving local URL ( #4160 )
2017-07-12 00:39:15 +02:00
nightpool
1c6c6b271c
Revert "Wrap methods of ProcessFeedService::ProcessEntry in classes ( #4151 )" ( #4157 )
...
This reverts commit 425acecfdb
.
2017-07-11 18:19:16 +02:00
Akihiko Odaki (@fn_aki@pawoo.net)
425acecfdb
Wrap methods of ProcessFeedService::ProcessEntry in classes ( #4151 )
...
ProcessFeedService::ProcessEntry had many methods, so wrap them in classes
representing activities.
2017-07-11 13:37:05 +02:00
Akihiko Odaki (@fn_aki@pawoo.net)
29f314a502
Remove redundant inclusion ( #4150 )
2017-07-11 11:55:48 +02:00
Akihiko Odaki (@fn_aki@pawoo.net)
7bacdd718a
Fix PrecomputeFeedService for filtered statuses ( #4148 )
2017-07-11 01:00:01 +02:00
abcang
617208053c
Rescue exceptions related to Goldfinger at FetchRemoteStatusService ( #4138 )
2017-07-10 13:59:29 +02:00
abcang
307f3e0dd7
Rescue exceptions related to Goldfinger ( #4044 )
...
* Rescue exceptions related to Goldfinger
* Exclude Goldfinger::SSLError
2017-07-09 17:33:21 +02:00
nullkal
007ab330e6
Use charlock_holmes instead of nkf at FetchLinkCardService ( #4080 )
...
* Specs for language detection
* Use CharlockHolmes instead of NKF
* Correct mistakes
* Correct style
* Set hint_enc instead of falling back and strip_tags
* Improve specs
* Add dependencies
2017-07-08 22:44:31 +02:00
Eugen Rochko
1c1819a78a
Fix feed author not being enforced in ProcessFeedService ( #4092 )
...
Ensure the only allowed author of top-level entries in feed is the person
the feed belongs to (a verified user). Ensure delete events only apply
if the deleted item belonged to that user.
2017-07-07 04:31:40 +02:00
Eugen Rochko
8b2cad5637
Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl ( #4090 )
2017-07-07 04:02:06 +02:00
abcang
5e6acf9601
Fix Nokogiri::HTML at FetchLinkCardService ( #4072 )
2017-07-05 14:54:21 +02:00
abcang
a6d02cff36
Rescue exceptions caused by FetchLinkCardService ( #4045 )
2017-07-03 11:03:34 +02:00
Akihiko Odaki (@fn_aki@pawoo.net)
7362469d89
Do not raise an error if PrecomputeFeed could not find any status ( #4015 )
2017-06-30 13:39:42 +02:00
abcang
b342c81c17
rescue HTTP::ConnectionError ( #3992 )
2017-06-29 13:04:07 +02:00
Akihiko Odaki (@fn_aki@pawoo.net)
f79c10162e
Use multiple pairs for zadd in PrecomputeFeedService ( #3990 )
2017-06-29 01:25:31 +02:00
Akihiko Odaki (@fn_aki@pawoo.net)
7d8e3721ae
Overwrite old statuses with reblogs in PrecomputeFeedService ( #3984 )
2017-06-28 14:50:23 +02:00
ThibG
a91d968cab
Raise an error if salmon request response is unsatisfactory ( #3960 )
2017-06-26 19:39:58 +02:00
ThibG
15b43f555d
Fix conversations ( fixes #3869 ) ( #3870 )
...
* Actually create conversations given explicit URIs
* Try to get the parent toot in before validation, to avoid creating a new conversation
2017-06-20 20:44:32 +02:00
Akihiko Odaki (@fn_aki@pawoo.net)
bab5a18232
Filter direct statuses in Status.as_home_timeline ( #3842 )
...
The classes using Status.as_home_timeline, namely Feed and
PrecomputeFeedService are expected to filter direct statuses as
FanOutWriteService does, but their filtering were incomplete or missing.
This commit solves the problem by filtering direct statuses in
as_home_timeline as the other similar methods such as as_public_timeline
does.
2017-06-20 20:41:23 +02:00
Eugen Rochko
f3be605286
Rename FollowRemoteAccountService to ResolveRemoteAccountService ( #3847 )
...
Rename Activitypub to ActivityPub
2017-06-19 01:51:04 +02:00
ThibG
51b2f789bd
Fix #3633 by not spawning RemoteProfileUpdateWorker from FetchRemoteAccountService ( #3642 )
2017-06-15 11:04:23 +02:00
Eugen Rochko
91c71471ab
Fix account delete form not accepting password, update suspended ( #3745 )
...
account before removing content for quicker feedback to end-users
2017-06-14 20:30:12 +02:00
Eugen Rochko
e17c2e5da5
Batched remove status service ( #3735 )
...
* Make Pubsubhubbub::DistributionWorker handle both single stream entry
arguments, as well as arrays of stream entries
* Add BatchedRemoveStatusService, make SuspendAccountService use it
* Improve method names
* Add test
* Add more tests
* Use PuSH payloads of 100 to have a clear mapping of
1000 input statuses -> 10 PuSH payloads
It was nice while it lasted
2017-06-14 18:01:35 +02:00
Eugen Rochko
4a618908e8
Account deletion ( #3728 )
...
* Add form for account deletion
* If avatar or header are gone from source, remove them
* Add option to have SuspendAccountService remove user record, add tests
* Exclude suspended accounts from search
2017-06-14 18:01:27 +02:00
Eugen Rochko
dc8a6244fc
Fix #2619 - When redis feed is empty, fall back to database ( #3721 )
...
* Fix #2619 - When redis feed is empty, fall back to database
* Use redis value to return feed from database only while RegenerationWorker
hasn't finished running
* Fix specs
* Replace usage of reject!
2017-06-14 13:37:03 +02:00
Eugen Rochko
605e2a417c
Fix regression from #3672 - Do not use pipeline around zscore ( #3704 )
2017-06-12 03:11:12 +02:00
ThibG
f8fe394e7a
Fix an error when TagManager.local_url? is called with a bad URI ( #3701 )
...
TagManager.local_url? was sometimes called with an URI with a nil host,
leading to a crash in TagManager.local_url?. This fixes moves the
already-existing uri.host.blank? check in front to avoid this case.
2017-06-11 22:53:12 +02:00
Eugen Rochko
ce812466c7
Fix removal of status sending the original status to mentioned users instead of delete Salmon ( #3672 )
...
* Fix removal of status sending the original status to mentioned users instead
of delete Salmon, add test
* Create remove_status_service_spec.rb
2017-06-11 17:13:43 +02:00
Yamagishi Kazutoshi
f3e8bc9f8f
Refactor UpdateRemoteProfileService ( #3690 )
2017-06-11 10:41:59 +02:00
Eugen Rochko
b87eb8ea14
Fix #3378 - If favourite/reblog already exists, return it instead of failing ( #3641 )
2017-06-08 15:07:39 +02:00
ThibG
f741673638
Fixes #3605 by returning account from database in case of race condition ( #3606 )
2017-06-08 13:40:11 +02:00
Yamagishi Kazutoshi
0a0b9a271a
Improve RuboCop rules (compatibility to Code Climate) ( #3636 )
...
08f8de84eb/Gemfile.lock (L38)
Code Climate is using RuboCop v0.46.0.
Change several rules to maintain compatibility.
2017-06-08 13:24:28 +02:00
Yamagishi Kazutoshi
1d68fe1a60
Fix Code Climate failed (regression from #3622 ) ( #3624 )
2017-06-07 15:57:59 +02:00
ThibG
28d2920472
Fixes #3388 by moving re-entrant `shared_status_from_xml` before transaction block ( #3622 )
...
Steps to reproduce the original issue:
1. Have two remote accounts, A that you don't follow, and B that you follow.
2. Have A post a toot and reply to it.
3. Boost A's reply from remote account B.
This used to cause the local instance to get A's reply but fail to link it to
the original post.
2017-06-07 12:28:16 +02:00
unarist
e34c5a3503
Fix 500 errors on searching invalid URLs ( #3613 )
2017-06-06 16:44:48 +02:00
ThibG
7adac1bc51
Try fixing ThreadResolveWorker calls ( #3599 )
...
* Try fixing ThreadResolveWorker calls
From my understanding of ActiveRecord, a transaction is commited as soon as
the exit of the outmost ActiveRecord.transaction block. However, inner
transaction blocks will exit without the transaction being commited.
In this case, ThreadResolveWorker were fired *within* a transaction block,
so moving the call out of it should do the trick. However, this is somewhat
fragile, as this whole codepath could be called within yet another transaction.
* Set status thread within the transaction block if it is immediately available from database
2017-06-06 00:09:14 +02:00
René Klačan
037f96c5ae
Don't follow account if it's already followed ( #3575 )
...
Closes https://github.com/tootsuite/mastodon/issues/3102
2017-06-05 03:24:18 +02:00
takayamaki
3eedad2737
change sidekiq queueing to bulk push ( #3536 )
2017-06-04 00:11:15 +02:00
Yamagishi Kazutoshi
336f0b0823
Remove WarmCacheService ( #3527 )
...
WarmCacheService is no longer used (removed with 5442083b3c
).
2017-06-03 14:40:47 +02:00
Matt Jankowski
b25e42a77f
Misc tidying and clean ups ( #3445 )
...
* Remove trailing whitespace in i18n mailers
* Use query methods instead of #present? on AR attributes
* Delegate Status#account_domain method
* Delegate Mention #account_username and #account_acct methods
2017-05-31 20:38:17 +02:00
Jack Jennings
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
Jack Jennings
e031fd60ad
Move status reblog authorization into policy ( #3425 )
2017-05-30 15:16:14 +02:00
Jack Jennings
3a2003ba86
Extract authorization policy for viewing statuses ( #3150 )
2017-05-29 18:22:22 +02:00
happycoloredbanana
9642601126
Avoid comparing domains when looking for an exact match of a local account ( #3336 )
2017-05-27 00:55:08 +02:00
Eugen Rochko
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
beatrix
19ecde8fe7
don't notify me when my toot is faved by someone i muted ( #3245 )
2017-05-23 20:05:52 +02:00
Eugen Rochko
4a4733b397
Similarly to #2426 , put creation of remote statuses in a transaction, ( #3233 )
...
so that public timeline/caching would not encounter incomplete data
2017-05-22 19:35:48 +02:00
Akihiko Odaki
f554807563
Use joins for account properties ( #3167 )
2017-05-20 15:13:51 +02:00