Eugen Rochko
cdb101340a
Keyword/phrase filtering ( #7905 )
...
* Add keyword filtering
GET|POST /api/v1/filters
GET|PUT|DELETE /api/v1/filters/:id
- Irreversible filters can drop toots from home or notifications
- Other filters can hide toots through the client app
- Filters use a phrase valid in particular contexts, expiration
* Make sure expired filters don't get applied client-side
* Add missing API methods
* Remove "regex filter" from column settings
* Add tests
* Add test for FeedManager
* Add CustomFilter test
* Add UI for managing filters
* Add streaming API event to allow syncing filters
* Fix tests
2018-06-29 15:34:36 +02:00
Eugen Rochko
45b5e60909
Fix Chrome issue with sizes="0px" ( #7886 )
...
"Do not dumb here. Not dumb area here."
2018-06-25 00:12:15 +02:00
Eugen Rochko
2a1089839d
Weblate translations (2018-06-19) ( #7847 )
...
* Translated using Weblate (Dutch)
Currently translated at 100.0% (623 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/nl/
* Translated using Weblate (Japanese)
Currently translated at 99.8% (622 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ja/
* Translated using Weblate (Greek)
Currently translated at 99.6% (621 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/el/
* Translated using Weblate (Japanese)
Currently translated at 92.9% (66 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ja/
* Translated using Weblate (Arabic)
Currently translated at 97.1% (69 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ar/
* Translated using Weblate (Arabic)
Currently translated at 100.0% (71 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ar/
* Translated using Weblate (Catalan)
Currently translated at 99.8% (622 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ca/
* Translated using Weblate (Arabic)
Currently translated at 95.8% (597 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/
* Translated using Weblate (Dutch)
Currently translated at 94.3% (67 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/nl/
* Translated using Weblate (Catalan)
Currently translated at 100.0% (71 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ca/
* Translated using Weblate (Greek)
Currently translated at 99.6% (621 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/el/
* Translated using Weblate (Dutch)
Currently translated at 100.0% (71 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/nl/
* Translated using Weblate (Dutch)
Currently translated at 100.0% (307 of 307 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/nl/
* Translated using Weblate (Persian)
Currently translated at 100.0% (307 of 307 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fa/
* Translated using Weblate (Korean)
Currently translated at 100.0% (71 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ko/
* Translated using Weblate (Slovak)
Currently translated at 96.3% (600 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/
* Translated using Weblate (Slovak)
Currently translated at 100.0% (307 of 307 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sk/
* Translated using Weblate (Slovak)
Currently translated at 95.7% (68 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/sk/
* Translated using Weblate (Polish)
Currently translated at 99.8% (622 of 623 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/pl/
* Translated using Weblate (Polish)
Currently translated at 100.0% (71 of 71 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/pl/
* Normalize
2018-06-19 02:25:29 +02:00
Eugen Rochko
d017f240f9
Bump version to 2.4.2
2018-06-19 01:45:00 +02:00
Eugen Rochko
86cce466b6
Bump version to 2.4.2rc3
2018-06-19 00:19:54 +02:00
Eugen Rochko
1a9124f50b
Update bcrypt to 3.1.12 fix issue with Fedora ( #7845 )
2018-06-19 00:19:17 +02:00
Eugen Rochko
fc09b3722a
Always send content for backwards-compatibility ( #7844 )
2018-06-18 23:58:13 +02:00
Eugen Rochko
a04dca36a3
Bump version to 2.4.2rc2
2018-06-18 23:01:52 +02:00
Eugen Rochko
908a9671d0
Serialize language into ActivityPub JSON ( #7840 )
...
* Serialize language into ActivityPub JSON
* Only use contentMap if language is present
2018-06-18 22:43:01 +02:00
Eugen Rochko
50689f0d41
Create special case to prefer "jpeg" over "jpe" file extension ( #7841 )
2018-06-18 17:27:05 +02:00
Eugen Rochko
a58ec29631
Allow selecting default posting language instead of auto-detect ( #7828 )
...
* Allow selecting default posting language instead of auto-detect
* Enable default language setting in credentials API
* Fix form saving
2018-06-17 18:57:31 +02:00
Eugen Rochko
bb21c6414d
Remove unused indexes ( #7829 )
2018-06-17 18:49:35 +02:00
Eugen Rochko
7eec279c7f
Change language opt-out to language opt-in ( #7823 )
...
* Switch filtered_languages to chosen_languages
* Adjust interface
* Remove unused translations
2018-06-17 13:54:02 +02:00
Eugen Rochko
5e9d51c24b
Do not pre-emojify note HTML in accounts REST API ( #7821 )
...
Fix #7820
2018-06-16 18:47:19 +02:00
Eugen Rochko
3b8023f9f9
Bump version to 2.4.2rc1
2018-06-15 20:38:41 +02:00
Eugen Rochko
0df91c7b1e
Add dat, dweb, ipfs, ipns, ssb, gopher protocols to URL extractor ( #7810 )
...
* Add dat:// and gopher:// to URL extractor
Fix #6072
* Fix comment indent
* Add dweb, ipfs, ipns, ssb
2018-06-15 20:21:47 +02:00
Eugen Rochko
09147186b7
Fix regression where CW is focused on reply ( #7811 )
2018-06-15 19:49:32 +02:00
Eugen Rochko
53f0452b70
Remove rack-timeout ( #7809 )
...
Timeout considered harmful due to leaving the app in a broken
state, including unreaped database connections
2018-06-15 19:46:25 +02:00
Eugen Rochko
ca85658975
Add autofollow option to invites ( #7805 )
...
* Add autofollow option to invites
* Trigger CodeClimate rebuild
2018-06-15 18:00:23 +02:00
Eugen Rochko
33dd9bf36d
Fix vertical alignment of navigation bar ( #7807 )
2018-06-15 18:00:03 +02:00
Eugen Rochko
c3b3594305
Remove placeholder text for media-only toots ( #7806 )
...
Ref: cfa9b6e13a
This breaks compatibility with pre-2.3.0 Mastodon and older
software, but at the time of writing the network is >80% above
that version.
Compatibility broken only for toots with no text.
2018-06-15 15:51:51 +02:00
Eugen Rochko
1cc775200e
Add "find friends", "invite people", and more to getting started footer ( #7803 )
...
- Find friends from Twitter (bridge)
- Invite people (when invites enabled)
- Security (change e-mail/password)
- Developers (create OAuth apps/tokens)
2018-06-15 15:51:37 +02:00
Eugen Rochko
0979d4275a
Bump version to 2.4.1
2018-06-10 17:20:56 +02:00
Eugen Rochko
35ae960122
Bump version to 2.4.1rc4
2018-06-10 00:39:56 +02:00
Eugen Rochko
10f51c9886
Fix domain hiding logic ( #7765 )
...
* Send rejections to followers when user hides domain they're on
* Use account domain blocks for "authorized followers" action
Replace soft-blocking (block & unblock) behaviour with follow rejection
* Split sync and async work of account domain blocking
Do not create domain block when removing followers by domain, that
is probably unexpected from the user's perspective.
* Adjust confirmation message for domain block
* yarn manage:translations
2018-06-09 22:46:54 +02:00
Eugen Rochko
17dc07f667
Fix has_one association on Web::PushSubscription ( #7767 )
...
* Fix has_one association on Web::PushSubscription
* Fix code style issues
2018-06-09 21:11:14 +02:00
Eugen Rochko
a043f8d277
Ensure emoji-mart dependency is updated ( #7771 )
...
Regression from 85470ec since version string was not updated
2018-06-09 21:10:53 +02:00
Eugen Rochko
18e1de6a16
Migrate old web push subscriptions to ensure deliveries ( #7764 )
2018-06-09 13:33:04 +02:00
Eugen Rochko
6ba7d9d0d9
Do not accept ActivityPub follow requests from blocked user ( #7756 )
...
* Do not accept ActivityPub follow requests from blocked user
Fix #7745
* Deliver auto-rejection immediately when follow-requested by blocked account
* Fix trailing whitespace
2018-06-08 00:14:06 +02:00
Eugen Rochko
9b9e96eae5
Add "Edit profile" link to public profile page, increase bottom padding ( #7754 )
2018-06-07 22:40:55 +02:00
Eugen Rochko
158cd7ee74
Bump version to 2.4.1rc3
2018-06-06 21:27:06 +02:00
Eugen Rochko
59b42188a7
Filter out blocked/muted people from profile timelines ( #7747 )
...
Fix #7741
2018-06-06 21:13:30 +02:00
Eugen Rochko
c75493755f
Preserve newlines in delete & redraft and desktop notifications ( #7750 )
...
Fix #7748
2018-06-06 20:49:53 +02:00
Eugen Rochko
fab65fb7e5
Bump version to 2.4.1rc2
2018-06-05 11:53:30 +00:00
Eugen Rochko
bd0791d800
Add redraft function ( #7735 )
...
* Add redraft function
Fix #7010
* Add explicit confirmation
* Add explicit confirmation message
2018-06-05 00:17:38 +02:00
Eugen Rochko
1bbe81030c
Display numbers in account header using shortNumberFormat for consistency ( #7723 )
2018-06-04 05:15:50 +02:00
Eugen Rochko
c7405fda11
Fix missing column in select in mastodon:feeds:build task ( #7720 )
2018-06-04 04:21:15 +02:00
Eugen Rochko
e18390cfe6
Fix bug in order of conversations in web UI ( #7721 )
2018-06-04 04:19:16 +02:00
Eugen Rochko
6b2f4f8c09
"Show" instead of "return to" after (remote)-following ( #7718 )
...
Resolve #6326
2018-06-04 03:00:36 +02:00
Eugen Rochko
0deb9fa6b9
Remove trending hashtags ( #7711 )
...
* Delete trends_controller.rb
* Update routes.rb
* Update trending_tags.rb
* Update index.js
* Update index.js
* Update search_results.js
* Update async-components.js
* Update index.js
* Delete trends.js
* Delete trends.js
* Delete trends_container.js
* Delete trends.js
* Update search_results.js
* Update search_results_container.js
2018-06-04 02:18:18 +02:00
Eugen Rochko
6e6c0e9613
Use different algorithm for trending tags ( #7697 )
2018-06-01 19:19:44 +02:00
Eugen Rochko
8d6e4e0485
Fix margin between compose warning, reply indicator and textarea ( #7701 )
2018-06-01 19:19:30 +02:00
Eugen Rochko
73c0c36e7b
Improve trends layout ( #7700 )
...
* Allow collapsing trends, responsively hide trends
* Add trends column
2018-06-01 19:18:37 +02:00
Eugen Rochko
fb1ae0152d
Wrong exception class: ActiveRecord::RecordNotUnique, not PG::UniqueViolation ( #7688 )
...
* Wrong exception class: ActiveRecord::RecordNotUnique, not PG::UniqueViolation
It's completely not obvious but PG::UniqueViolation is just a string inside the exception message, not the actual class of the exception
* Favourite does not have target_account_id
2018-05-31 17:22:33 +02:00
Eugen Rochko
19b4c666f7
Improve account index migration ( #7684 )
...
* Improve account index migration
- Display more progress in stdout
- Catch PG::UniqueViolation when re-attributing favourites
- Skip callbacks and validations when re-attributing other relationships
* Use in_batches to reduce table lock-up during account merge
* Use #say_with_time to benchmark each deduplication
2018-05-31 17:09:09 +02:00
Eugen Rochko
1e938b966e
Exclude unlisted, private and direct toots from affecting trends ( #7686 )
2018-05-31 16:47:28 +02:00
Eugen Rochko
0ce5339a7b
Make the refresh trends button refresh trends ( #7685 )
2018-05-31 16:46:02 +02:00
Eugen Rochko
c61c4565ab
Fix nil error in migration ( #7680 )
...
Under rare circumstances the user record could have already been deleted before...
2018-05-31 02:30:37 +02:00
Eugen Rochko
ad40bf5e0c
Speed up some rake tasks by moving execution to Sidekiq ( #7678 )
...
* Speed up some rake tasks by moving execution to Sidekiq
mastodon:media:remove_silenced
mastodon:media:remove_remote
mastodon:media:redownload_avatars
mastodon:feeds:build
* Fix code style issue
2018-05-30 21:09:30 +02:00
Eugen Rochko
a29f196f95
Bump version to 2.4.1rc1
2018-05-30 19:16:41 +02:00
Eugen Rochko
3623aea6c9
Redirect / to home on mobile layout, to getting started on desktop ( #7677 )
2018-05-30 18:42:06 +02:00
Eugen Rochko
1a7a74ff76
Improve getting started column ( #7676 )
...
* Adjust footer of getting started column
- Improved style
- Moved hotkeys, about this instance and logout to footer
- Removed FAQ, User Guide, Apps links
- Use hamburger icon for the column
* Add edit profile action button to profile and more to dropdown
* Add "Trending now" to getting started column
* Add preferences/security links on mobile layout
2018-05-30 18:41:47 +02:00
Eugen Rochko
a16e06bbf5
Deduplicate accounts and make unique username/domain index case-insensitive ( #7658 )
...
Fix #6937
Fix #6837
Fix #6667
2018-05-30 02:51:26 +02:00
Eugen Rochko
a7d726c383
Improve counter caches on Status and Account ( #7644 )
...
Do not touch statuses_count on accounts table when mass-destroying
statuses to reduce load when removing accounts, same for
reblogs_count and favourites_count
Do not count statuses with direct visibility in statuses_count
Fix #828
2018-05-30 02:50:23 +02:00
Eugen Rochko
461542784b
Reduce wasted work in RemoveStatusService due to inactive followers ( #7672 )
2018-05-29 22:55:33 +02:00
Eugen Rochko
8bb74e50be
Add GET /api/v2/search which returns rich tag objects, adjust web UI ( #7661 )
2018-05-29 02:01:24 +02:00
Eugen Rochko
90b64c0069
Always display tab navigation on local/federated timeline even when empty ( #7663 )
...
Fix #7659
2018-05-29 02:01:04 +02:00
Eugen Rochko
e599d7caf2
Rescue Mastodon::DimensionsValidationError in Remoteable ( #7662 )
...
Fix #7660
2018-05-29 08:39:02 +09:00
Eugen Rochko
04a2cf8bcc
Fix incomplete flex style on trends items ( #7655 )
2018-05-28 19:12:53 +02:00
Eugen Rochko
ab36e0ef72
Record trending tags from ActivityPub, too ( #7647 )
2018-05-28 12:21:04 +09:00
Eugen Rochko
dfbadd6837
Replace recursion in status mapStateToProps ( #7645 )
2018-05-28 02:42:06 +02:00
Eugen Rochko
9bd23dc4e5
Track trending tags ( #7638 )
...
* Track trending tags
- Half-life of 1 day
- Historical usage in daily buckets (last 7 days stored)
- GET /api/v1/trends
Fix #271
* Add trends to web UI
* Don't render compose form on search route, adjust search results header
* Disqualify tag from trends if it's in disallowed hashtags setting
* Count distinct accounts using tag, ignore silenced accounts
2018-05-27 21:45:30 +02:00
Eugen Rochko
63c7b91572
Validate that e-mail resolves with MX and it's not blacklisted ( #7631 )
...
Original patch by @j-a4
2018-05-27 11:58:08 +09:00
Eugen Rochko
182bdbc5f4
Don't use Object.assign with Notification, only display actions for mentions ( #7632 )
...
Fix #7627
2018-05-27 11:55:19 +09:00
Eugen Rochko
ebf2fef029
Catch ActionController::UnknownFormat and return HTTP 406 ( #7621 )
...
An error like that should not appear in production error log.
2018-05-26 01:09:30 +02:00
Eugen Rochko
d87649db07
Disable AMS logging ( #7623 )
...
Especially in production it's just noise and doesn't mix well with the log format
2018-05-26 01:08:31 +02:00
Eugen Rochko
4d81809f36
Yeah, it was supposed to be #create?
2018-05-22 20:05:24 +02:00
Eugen Rochko
7745a22ec7
Bump version to 2.4.0
2018-05-22 19:39:35 +02:00
Eugen Rochko
f8cf85db3b
Remove pointer to light theme until it is more polished ( #7594 )
2018-05-22 19:38:37 +02:00
Eugen Rochko
1a564df586
Do not encode HTML entities in initial Web Push payload body ( #7592 )
2018-05-22 18:12:45 +02:00
Eugen Rochko
36e47a31e3
Enforce order on authorized applications page ( #7587 )
...
Fix #7586
2018-05-22 14:44:53 +02:00
Eugen Rochko
5ea643b279
Save onlyMedia prop when pinning column ( #7575 )
2018-05-21 17:49:10 +02:00
Eugen Rochko
40ef46dbef
Display only domain of report account if remote under comment ( #7574 )
2018-05-21 17:33:20 +02:00
Eugen Rochko
292c987522
Bump version to 2.4.0rc5
2018-05-21 16:05:31 +02:00
Eugen Rochko
22e067bf5c
Use real container width in MediaGallery srcSet ( #7571 )
...
Fix #7568
2018-05-21 16:04:01 +02:00
Eugen Rochko
32d4372381
Use #any? instead of #exists? when checking media attachments ( #7570 )
...
If media_attachments are not loaded, SQL query is the same, but
the #exists? method performs SQL query even if preloaded
2018-05-21 16:01:16 +02:00
Eugen Rochko
e583f110c3
Unescape HTML entities in rich web push notifications in web UI ( #7569 )
2018-05-21 16:00:56 +02:00
Eugen Rochko
05f8c375a2
Remove small pagination limit from context API ( #7564 )
...
Fix #7557
2018-05-21 12:43:05 +02:00
Eugen Rochko
9ada532809
Convert rich push notifications to plaintext in webapp ( #7563 )
...
* Convert rich push notifications to plaintext in webapp
* Fix code style issues
2018-05-21 03:35:37 +02:00
Eugen Rochko
779eb07d75
Improve default background of public profile header ( #7556 )
...
Looks better when no header image is set
2018-05-20 13:09:28 +02:00
Eugen Rochko
8378b72eba
Ensure push subscription is immediately removed when application is revoked ( #7548 )
...
* Ensure push subscription is immediately removed when application is revoked
* When token is revoked from app, unsubscribe too
2018-05-19 21:05:08 +02:00
Eugen Rochko
bcbb6aa46f
Bump version to 2.4.0rc4
2018-05-19 18:38:10 +02:00
Eugen Rochko
1bbe12254d
Improve direct message warning again ( #7546 )
2018-05-19 18:37:33 +02:00
Eugen Rochko
93c66f0c03
In footer, replace text "Mastodon" with logo ( #7545 )
2018-05-19 16:10:55 +02:00
Eugen Rochko
4b94e9c65e
Improve payload format of Web Push API now that it's open ( #7521 )
...
> Good lord what is happening in there
Previously the contents of the Web Push API payloads closely resembled the structure of JavaScript's [Notification](https://developer.mozilla.org/en-US/docs/Web/API/Notification ). But now that the API is open to non-browser apps, and given that there is no required coupling between contents of the payload and a Notification object, here is how I changed the payload:
```json
{
"access_token": "...",
"preferred_locale": "en",
"notification_id": "12345",
"notification_type": "follow",
"title": "So and so followed you",
"body": "This is my bio",
"icon": "https://example.com/avatar.png "
}
```
The title, body and icon attributes are included as a fallback so you can construct a minimal notification if you cannot perform a network request to the API to get more data.
2018-05-19 14:46:47 +02:00
Eugen Rochko
7871d29aff
Skip pagination logic for pinned account timelines in reducer ( #7540 )
...
Fix #7516
2018-05-19 02:51:29 +02:00
Eugen Rochko
97f02f2c08
Do not raise delivery failure on 4xx errors, increase stoplight threshold ( #7541 )
...
* Do not raise delivery failure on 4xx errors, increase stoplight threshold
Stoplight failure threshold from 3 to 10
Status code 429 will raise a failure/get retried
* Oops
2018-05-19 00:23:19 +02:00
Eugen Rochko
9422b3e0d8
Fix double-encoding of display name in title and e-mails ( #7534 )
2018-05-18 15:56:57 +02:00
Eugen Rochko
57b503d4ef
Resolve unknown status from Add activity, skip Remove if unknown ( #7526 )
...
Fix #7518
2018-05-18 11:33:56 +02:00
Eugen Rochko
dafd7afc5e
Use randomized setTimeout when fallback-polling and re-add since_id ( #7522 )
2018-05-18 02:32:35 +02:00
Eugen Rochko
1e02dc8715
Add preference to hide following/followers lists ( #7532 )
...
* Add preference to hide following/followers lists
- Public pages
- ActivityPub collections (does not return pages but does give total)
- REST API (unless it's your own) (does not federate)
Fix #6901
* Add preference
* Add delegation
* Fix issue
* Fix issue
2018-05-18 02:26:51 +02:00
Eugen Rochko
7293b9fc61
Ensure unfilled fields are shown when errors are shown ( #7523 )
...
Fix #7486
2018-05-17 13:00:56 +02:00
Eugen Rochko
dfb6907e08
HTTP signatures spec no longer requires algorithms field ( #7525 )
...
Fix #7520
2018-05-17 04:03:28 +02:00
Eugen Rochko
2b97451168
Fix images resized in browser getting cropped ( #7514 )
...
Fix #7487
2018-05-16 16:24:16 +02:00
Eugen Rochko
8756fd1e82
Bump version to 2.4.0rc3
2018-05-14 17:46:44 +02:00
Eugen Rochko
d75b63e4fb
Bump version to 2.4.0rc2
2018-05-14 14:49:38 +02:00
Eugen Rochko
416f644505
Fix 404 for GET /api/v1/push/subscription ( #7472 )
...
My bad...
2018-05-13 21:45:18 +02:00
Eugen Rochko
97e43ec5f0
Add GET /api/v1/push/subscription REST API ( #7471 )
...
* Add Api::V1::Push::SubscriptionsController#show
* Add to routes
2018-05-13 21:07:31 +02:00
Eugen Rochko
f31e58af9e
Fix nil error in StatusFilter ( #7470 )
...
Fix #7462
2018-05-13 20:26:30 +02:00
Eugen Rochko
b4fb766b23
Add REST API for Web Push Notifications subscriptions ( #7445 )
...
- POST /api/v1/push/subscription
- PUT /api/v1/push/subscription
- DELETE /api/v1/push/subscription
- New OAuth scope: "push" (required for the above methods)
2018-05-11 11:49:12 +02:00