Commit Graph

2848 Commits

Author SHA1 Message Date
Evan Prodromou
1817aedb5c fix subtitle in subscriptions feed 2010-12-12 12:13:54 -05:00
Evan Prodromou
d9a614c57e use new Subscription stream methods for AtomPub 2010-12-11 11:24:07 -05:00
Evan Prodromou
37c447be46 Show a single favorite for AtomPub 2010-12-10 18:50:50 -05:00
Evan Prodromou
5d56dba904 add a new subscription using POST to APP 2010-12-09 16:25:47 -05:00
Evan Prodromou
c619a257fe Add subscription feed for AtomPub 2010-12-09 16:05:07 -05:00
Evan Prodromou
34b8eb207d make HEAD work for AtomPubShowSubscription 2010-12-09 14:25:57 -05:00
Evan Prodromou
11a0bde459 AtomPub for single subscription 2010-12-09 13:11:02 -05:00
Brion Vibber
aa96c3c1d9 Fix for tickets #2917, #2262: user URL shortening options not being applied in non-web channels
common_shorten_links() can only access the web session's logged-in user, so never properly took user options into effect for posting via XMPP, API, mail, etc.

Adds an optional $user parameter on common_shorten_links(), and a $user->shortenLinks() as a clearer interface for that.
Tweaked some lower-level functions so $user gets passed down -- making the $notice_id param previously there for saving URLs at notice save time generalized a little.

Note also ticket #2919: there's a lot of duplicate code calling the shortening, checking the length, and reporting near-identical error messages. These should be consolidated to aid in code and translation maintenance.
2010-12-02 13:41:56 -08:00
Siebrand Mazeland
086d6c9f36 * Fix an incorrectly formatted message parameter in line 334.
* i18n/L10n updates
* translator documentation updated
2010-12-02 12:33:03 +01:00
Brion Vibber
5d9d0d7349 Ticket #2912 further cleanup: use JS on emailsettings form to help connect the 'I want to post by email' checkbox with the controls for adding or removing a post-by-email alias.
Now, when you first come up the checkbox will most likely be off and the button to create an address is grayed out.
Checking the box enables use of the 'new' button to generate an email address -- it's left disabled until you check the box, so you can't accidentally trip it.
Actually adding the address now enables the post-by-mail option, as well, thus ensuring that it's saved. WARNING: OTHER CHANGES ON THE FORM WILL STILL BE LOST.
Removing the address now disables the post-by-mail option, so it's not sitting around confusingly enabled but useless.

You can still disable the checkbox manually without removing the address, in case you want to keep it for later.
It's also still possible to actually save it in the state where the option is enabled, but there's no configured address, but that shouldn't happen too often. Possibly that should be prevented outright though.
2010-12-01 14:23:56 -08:00
Brion Vibber
36d605a1e9 Ticket #2912 tweaks: clean up wording on the incoming email generator box a bit. 2010-12-01 13:10:54 -08:00
Brion Vibber
3048f9100d Ticket #2912: move 'I want to post notices by email" checkbox up from the email *output* prefs up into the box for the address to post to, so they're next to each other. 2010-12-01 13:04:18 -08:00
Brion Vibber
dc350b5463 Work in progress on nickname validation changes. lib/nickname.php appears to have been destroyed by NetBeans and will be rewritten shortly. Sigh. 2010-11-29 14:15:25 -08:00
Evan Prodromou
edf660c6ff Make userxrd work without OStatus enabled 2010-11-26 22:09:51 -05:00
Evan Prodromou
fcc0825b14 Make userxrd part of the default hostmeta 2010-11-26 21:46:51 -05:00
Evan Prodromou
0a4911552e Move user xrd action to core and use hooks to extend
Moved the Webfinger user XRD action from the OStatus plugin to core.
Added hooks to add OStatus-specific stuff, but kept general stuff in
the core.
2010-11-26 21:38:38 -05:00
Craig Andrews
3f3b38766f move xrd and hostmeta out of the OStatus plugin and into core
add event for setting up hostmeta, and use them in the OStatus plugin
2010-11-26 21:12:14 -05:00
Brion Vibber
e0e7cb7c53 Merge branch 'master' into 0.9.x 2010-11-19 14:03:59 -08:00
Brion Vibber
ca55d6c514 Ticket #1987: support since_id on API notice search methods.
max_id is not yet implemented, as it'll need support added to the search backends. (since_id we get 'for free' by just cropping off the list, it'll do for now)
2010-11-19 14:00:22 -08:00
Brion Vibber
fa6c6077d6 Merge branch 'master' into 0.9.x 2010-11-16 11:17:29 -08:00
Brion Vibber
9b9db3b28a Prep for ticket #2895: consolidate common code from PopularNoticeList and FavoritedAction for fetching popular notice lists 2010-11-16 11:10:32 -08:00
Brion Vibber
89d5993674 Include width/height of locally-uploaded images in our oembed provider data for attachment pages. 2010-11-15 12:57:15 -08:00
Evan Prodromou
d038d0fa46 AtomPub-related actions are only read-only on GET 2010-11-15 14:14:09 -05:00
Evan Prodromou
8a21b13ee9 Merge remote branch 'gitorious/0.9.x' into 0.9.x 2010-11-15 11:57:31 -05:00
Evan Prodromou
c1cee3b27f Merge branch 'atompub' into 0.9.x
Conflicts:
	actions/apistatusesshow.php
	actions/apitimelineuser.php
2010-11-15 11:57:19 -05:00
Evan Prodromou
cb371d65c1 add hooks for atom pub posts 2010-11-15 11:54:42 -05:00
Brion Vibber
e4913f9722 fix syntax error introduced in i18n tweaks: newgroup action 2010-11-12 13:35:19 -08:00
Brion Vibber
9621904cac Revert "Missing one close-paren in newgroup.php" - incorrect fix for paren bug
This reverts commit 3afb031d92.
2010-11-12 13:34:04 -08:00
Brion Vibber
5d12ec0532 Merge branch 'oembed-thumbnails' into 0.9.x 2010-11-12 12:28:44 -08:00
Zach Copley
0ed572ff3f Fix missing close of comment block 2010-11-11 10:39:05 -08:00
Zach Copley
09aaf21e8d Fix missing close of comment block 2010-11-11 10:33:26 -08:00
Evan Prodromou
3afb031d92 Missing one close-paren in newgroup.php 2010-11-09 17:08:11 -05:00
Evan Prodromou
a988e2e97b hook points for the email settings form 2010-11-09 15:00:30 -05:00
Brion Vibber
f25accc43e split out InlineAttachmentList from AttachmentList 2010-11-09 10:45:19 -08:00
Brion Vibber
6d7f02ff31 Pass file attachment thumbnails along with oEmbed data. 2010-11-08 17:22:01 -08:00
Brion Vibber
551b196a35 doomy doom doom 2010-11-08 15:32:41 -08:00
Evan Prodromou
719b480eaa use subclassing to change notice list output for single notice 2010-11-08 13:08:59 -05:00
Siebrand Mazeland
f5b037c169 Update translator documentation. 2010-11-07 22:32:52 +01:00
Siebrand Mazeland
66e34a28f7 screen_name -> nick names. Spotted by The Evil IP address. 2010-11-07 22:31:02 +01:00
Brion Vibber
51a756c211 Fix ticket #2860: clarify API doc comments for 'source' parameter's interaction with OAuth on api/statuses/update 2010-11-03 14:58:33 -07:00
Brion Vibber
6e03456753 Migrate some more code from manually constructing "fullname (nickname)" to using Profile->getFancyName(). Encapsulates common logic and allows for localization of the parens. 2010-11-03 13:10:42 -07:00
Brion Vibber
dc4fafbbd1 General cleanup & part of ticket #2864: use User_group->getFancyName() instead of replicating the logic in various places. Encapsulates and allows for localization of parens. 2010-11-03 12:59:19 -07:00
Siebrand Mazeland
973a48bded i18n/L10n fixes and translator documentation addded/updated. 2010-11-02 23:48:36 +01:00
Siebrand Mazeland
a65362f7fa Add context for different uses of "%1$s (%2$s)" 2010-11-02 23:08:59 +01:00
Brion Vibber
81e0653080 Merge branch 'pretty-title2' into 0.9.x 2010-11-02 14:21:23 -07:00
Brion Vibber
6a181bb128 Unrolled tagged vs untagged, page 1 vs page N message variants for showstream title. #2668 2010-11-02 14:20:06 -07:00
Brion Vibber
bc85f6914b fix syntax error introduced in i18n tweaks: newgroup action 2010-11-02 14:03:50 -07:00
Brion Vibber
426cda5e1f Alternate pretty-title tweaks for #2668 2010-11-02 13:42:44 -07:00
Siebrand Mazeland
760a1c27bc Update translator documentation. 2010-11-01 16:49:36 +01:00
Siebrand Mazeland
6ab34fd8e8 * i18n/L10n updates.
* translator documentation added.
* superfluous whitespace removed.
2010-11-01 16:49:35 +01:00
Siebrand Mazeland
5c6732c4bb Update translator documentation. 2010-11-01 16:49:35 +01:00
Siebrand Mazeland
1c0e84f066 Add forgotten translator documentation. 2010-10-31 01:26:39 +02:00
Siebrand Mazeland
5406873007 * translator documentation updated.
* superfluous whitespace removed.
* added FIXMEs for missing documentation and un-i18n-able timestamps.
2010-10-31 01:16:59 +02:00
Siebrand Mazeland
08edd1fedf * i18n/L10n updates.
* translator documentation added/updated.
* superfluous whitespace removed.
2010-10-31 00:58:35 +02:00
Siebrand Mazeland
234b03d945 * translator documentation updates.
* added FIXMEs in actions/showgroup.php.
* superfluous whitespace removed.
2010-10-30 14:36:54 +02:00
Brion Vibber
8d0c014ced Merge branch 'master' into 0.9.x 2010-10-28 13:01:10 -07:00
Brion Vibber
9ea7cafd27 Fix for regression: fatal error on group page display when not logged in.
Bug was introduced with group deletion feature.
2010-10-28 12:19:19 -07:00
Siebrand Mazeland
796d7b4939 Update translator documentation. 2010-10-28 01:42:09 +02:00
Siebrand Mazeland
04ae500749 * i18n/L10n fixes.
* translator documentation updated.
* superfluous whitespace removed.
2010-10-28 01:21:21 +02:00
Siebrand Mazeland
a12474a99d * i18n/L10n fixes.
* translator documentation updated.
* superfluous whitespace removed.
2010-10-28 01:21:09 +02:00
Zach Copley
b3cd558fe7 Fix OAuth verifier display page title and msgs for i18n 2010-10-26 13:19:23 -07:00
Zach Copley
1a1ca22aca Supress header, footer, sidebar on OAuth verifier pin page when in "desktop" mode 2010-10-25 13:30:38 -07:00
Zach Copley
82c280979d Add special CSS classes to OAuth authorization and pin pages when
in desktop mode
2010-10-25 11:25:35 -07:00
Zach Copley
479096c8d7 Less scary OAuth authorization messages when using anonymous consumer 2010-10-25 10:38:40 -07:00
Evan Prodromou
e6ba379c8b navigation links in user timeline (for AtomPub) 2010-10-25 11:08:10 -04:00
Evan Prodromou
59a7d78acb Atom Service Document 2010-10-24 23:43:26 -04:00
Evan Prodromou
c0664599aa allow posting to user timeline using AtomPub 2010-10-24 22:50:13 -04:00
Evan Prodromou
292e789584 delete a notice using AtomPub 2010-10-24 21:24:23 -04:00
Evan Prodromou
43a67b150a show a single notice in atom entry format 2010-10-24 15:58:53 -04:00
Siebrand Mazeland
0b6cc7c33d * translator documentation added.
* superfluous whitespace removed.
2010-10-23 19:20:51 +02:00
Zach Copley
3913b6a5d8 Updated styling for OAuth authorization page's desktop mode.
TODO: move these styles into the main CSS file.
2010-10-22 11:21:44 -07:00
Zach Copley
131c339c5a Pass OAuth authorize page's mode paramater to OpenID plugin so it can create a correct
returnto URL
2010-10-22 02:08:38 +00:00
Zach Copley
ac45f661f6 Fix regression (whoops!) 2010-10-21 18:38:54 -07:00
Zach Copley
c5a84ef76f Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x 2010-10-21 18:16:35 -07:00
Zach Copley
0b134d3e69 Re-camelcase ApiOauthAuthorizeAction so it will be accessible when
a site is in pivate mode
2010-10-21 18:15:11 -07:00
Zach Copley
aa6ec40c51 Fix syntax errors 2010-10-22 00:48:26 +00:00
Zach Copley
ce0d81c190 OAuth - inform consumer when user refused to authorize a request token
http://status.net/open-source/issues/2848
2010-10-21 17:11:59 -07:00
Zach Copley
94f7bfa50a Don't show 'anonymous' app in OAuth application list. 2010-10-21 16:42:59 -07:00
Zach Copley
4ab110e071 Fix bad reference. 2010-10-21 14:52:41 -07:00
Zach Copley
a548861dbf OAuth - proper callback handling and better styling for authorization
page when in desktop mode
2010-10-21 14:45:42 -07:00
Zach Copley
648f79be10 Change OAuth authorization page's action name to be inline with
other web page action names so the body id outputs correctly. Fix
some other bugs.
2010-10-21 13:00:59 -07:00
Zach Copley
bab012bd67 New "desktop" mode for the OAuth authorization page. If mode=deskstop
is specified in the request the page is probably meant to be displayed
in a small webview of another application, so suppress header, aside
and footer.
2010-10-21 12:23:04 -07:00
Siebrand Mazeland
cb74822e7a i18n/L10n consistency updates. 2010-10-21 13:20:21 +02:00
Siebrand Mazeland
fb12094f61 i18n/L10n updates, translator docs updated, superfluous whitespace removed. 2010-10-21 03:10:46 +02:00
Zach Copley
bfdb8385ec Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	actions/apioauthauthorize.php
	lib/apioauthstore.php
2010-10-20 17:28:28 -07:00
Zach Copley
e56385a7bb Use a new table (oauth_token_association) to associate authorized
request tokins with OAuth client applications and profiles.
2010-10-20 17:21:04 -07:00
Siebrand Mazeland
1603b7afc9 i18n/L10n updates, translator comments added/fixed, superfluous whitespace removed. 2010-10-21 01:53:42 +02:00
Brion Vibber
c24f4ddfdb Pretty up the OpenID variant of the OAuth login form a bit; change the 'Allow' button to 'Continue' so we're not confused why we get the form again after authenticating. 2010-10-20 16:14:32 -07:00
Brion Vibber
bcc06d05e8 Initial OpenID+OAuth thingy. 2010-10-20 15:59:27 -07:00
Siebrand Mazeland
ac4afb31e8 Consistent punctuation. 2010-10-20 20:29:59 +02:00
Siebrand Mazeland
59d0be4761 * i18n for many missing messages (???)
* add translator documentation.
2010-10-20 20:28:04 +02:00
Siebrand Mazeland
dc62cf1c0b * i18n/L10n fixes.
* translator documentation updated/added.
* superfluous whitespace removed.
2010-10-20 19:34:27 +02:00
Zach Copley
2760ef07f5 Stick OAuth developer help info in a section 2010-10-19 21:24:19 -07:00
Zach Copley
5ca29ab0de Merge branch 'anon-consumer' into 0.9.x 2010-10-19 21:01:53 -07:00
Zach Copley
e8b6d7c946 Add support for an anonymous OAuth consumer. Note: this requires a
small DB tweak.  Oauth_application_user needs to have the primary
compound key: (profile_id, application_id, token).

http://status.net/open-source/issues/2761

This should also make it possible to have multiple access tokens
per application.

http://status.net/open-source/issues/2788
2010-10-19 20:54:53 -07:00
Siebrand Mazeland
0157df7396 Add missing "address" 2010-10-20 00:49:12 +02:00
Siebrand Mazeland
4b4894b121 Many i18n/L10n updates and lots of descriptions for translators added. 2010-10-20 00:35:39 +02:00
Brion Vibber
d358c88f94 Merge branch 'master' of gitorious.org:statusnet/mainline into 0.9.x 2010-10-19 15:10:47 -07:00
Brion Vibber
e13eb797c7 Fix PHP notice when submitting 'design' admin panel on a browser that doesn't support file uploads such as Mobile Safari 2010-10-19 15:09:45 -07:00
Zach Copley
d48f4a81d6 Relax restrictions on URL validation for oauth_callback. We need to
allow custom schemes like mustard:// etc.
2010-10-19 19:29:21 +00:00
Zach Copley
5ac694c74f Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x 2010-10-19 12:08:48 -07:00
Zach Copley
5866493cae OAuth - better log messages 2010-10-19 12:07:59 -07:00
Brion Vibber
53d45d7ffb Merge branch '0.9.x' 2010-10-18 15:21:02 -07:00
Siebrand Mazeland
24b94ebb2c * fix bugs in parameter numbering for two messages
* add translator documentation
2010-10-18 22:47:50 +02:00
Evan Prodromou
7c05b0dafc options to nofollow external links in notices 2010-10-18 11:29:52 -04:00
Siebrand Mazeland
505ac6eba0 * add plural support where missing
* update translator documentation.
2010-10-16 14:38:12 +02:00
Siebrand Mazeland
31415b5853 Update translator documentation. 2010-10-16 14:31:41 +02:00
Brion Vibber
9a35e48ee2 Fix for ticket #2837: white screen when hitting 'make admin' button on group members list.
RedirectingAction->returnToArgs() has been renamed to returnToPrevious() to avoid confusion with the existing Action->returnToArgs which gives the arguments that would be used to pass to one of those. :)
Switching to the correct function call gets it working.

Thanks to Siebrand for catching it when I could debug it live!
2010-10-15 15:33:54 -07:00
Evan Prodromou
9b9ba29791 add SSL servers and paths to pathadminpanel.php 2010-10-15 13:46:21 -04:00
Evan Prodromou
fc6711327b let users set their SSL logo through the admin panel 2010-10-14 15:06:11 -04:00
Zach Copley
04f3f57e2e Merge branch 'oauth-1.0a' into 0.9.x 2010-10-12 17:52:04 -07:00
Zach Copley
d8e06e66e9 Print a proper error message 2010-10-12 16:19:53 -07:00
Brion Vibber
f4f16af8ac Add a basic group deletion for moderator users. 2010-10-12 15:49:20 -07:00
Zach Copley
a77bc11326 Output a log message when issuing a request token 2010-10-12 12:25:34 -07:00
Brion Vibber
f62e7c461f Fix PHP fatal error in DeletenoticeAction: died when we had a valid notice, but weren't logged in due to accessing $this->user before the login check. Moved check up to prepare() from handle() so it's done before usage 2010-10-08 10:33:43 -07:00
Zach Copley
459727bd61 Update ApiOauthAccessTokenAction to OAuth 1.0a 2010-10-07 18:32:27 -07:00
Zach Copley
f8808b0761 Added a comment about an open question: Should we allow pin-based
workflow for clients registered as web applications?
2010-10-07 14:19:42 -07:00
Zach Copley
b8f2cc4e6f Make the verifier pin display a little nicer 2010-10-07 13:51:47 -07:00
Zach Copley
69e621a3e8 - Update ApiOauthAuthorizeAction to 1.0a
- Fix enumerable bugs
- New page for displaying 1.0a verifier (still needs work)
2010-10-06 19:20:47 -07:00
Zach Copley
f97b863fd7 Update ApiOauthRequestTokenAction to support OAuth 1.0a 2010-10-06 13:40:03 -07:00
Brion Vibber
5c19d33b27 Bugfix in FB-sharing header for empty profile avatar 2010-10-01 14:42:12 -07:00
Brion Vibber
12f68c4ff2 Throw in a quick event hook to override the profile list type on showstream (should be made more general in future).
Replace with a NoticeList to have output include avatar and username -- but CSS still hides them in default theme.

Event::addHandler('ShowStreamNoticeList', 'awesome');
function awesome($notice, $action, &$pnl)
{
    $pnl = new NoticeList($notice, $action);
    return false;
}
2010-10-01 11:05:15 -07:00
Brion Vibber
8b8450f9ad Add helper metadata on individual notice pages to aid sharing to Facebook (use poster's avatar as image, indicate the text content) 2010-09-30 18:21:38 -07:00
Zach Copley
fd779009b8 Add Start/EndShowNoticeItem event hooks to single notice page 2010-09-29 16:35:12 -07:00
Brion Vibber
a6469aeed8 Fix PHP syntax errors introduced during localization fixups in a few files. 2010-09-25 12:10:36 -07:00
Zach Copley
da04858902 Update OAuth actions in show application page so it will display the right endpoint URLs 2010-09-23 16:16:32 -07:00
Evan Prodromou
0f1fc36a05 Merge branch '0.9.x' 2010-09-23 09:50:46 -04:00
Zach Copley
84331ca7bd Fix for ticket 2756 - Calls to OAuth endpoints are redirected to the
login page when a site is in private mode
2010-09-22 23:33:06 +00:00
Zach Copley
77609e0c4a Fix for ticket 2756 - Calls to OAuth endpoints are redirected to the
login page when a site is in private mode
2010-09-22 23:30:50 +00:00
Zach Copley
da4463cb76 License admin panel should allow empty or valid URLs for (license
URL and license image URL) when selecting private or allrightsreserved
licenses.
2010-09-21 13:06:23 -07:00
Brion Vibber
42dd460d3b Merge branch 'master' into 0.9.x 2010-09-21 12:48:16 -07:00
Brion Vibber
d342899677 Fix #2323: typo on oauth connections page 2010-09-20 18:07:19 -07:00
Brion Vibber
85bf20d95a Fix error when editing OAuth app registration and only changing the icon. 2010-09-20 16:57:07 -07:00
Brion Vibber
a47e664094 Fix for #2419: There is no function maxDescription in Oauth_application class (broke the 'description too long' error message when editing oauth app registrations) 2010-09-20 16:43:00 -07:00
Brion Vibber
64cdbe6c55 Ticket #2750: fixes to HTTP caching behavior across login/logout boundaries
* now ignoring if-modified-since if we failed an etag if-none-match comparison, per spec
* now including a hash of user id/nickname in most etags, so we'll update the view properly after login/logout

For API methods, checking the API-auth'ed user. (Many change results to include things like 'you're subscribed to this user' or 'this is one of your favorites', so user info is again needed)

There'll still be some last-modified stamps that aren't including user info properly, probably.
2010-09-20 13:42:58 -07:00
Zach Copley
55ad954b15 Basic license admin panel (maybe we can make it fancier later) 2010-09-17 16:38:12 -07:00
Zach Copley
afc799ddf8 Removed periods from instructions on some admin panels for consistency 2010-09-17 14:32:18 -07:00
Zach Copley
f4a1858b33 Fixed typo, and updated copyright dates while I was there 2010-09-17 14:20:05 -07:00
Brion Vibber
ead2f3375a Ticket #2701: old color settings now get reset when changing themes, so you don't end up with the previous theme's colors. 2010-09-13 13:37:13 -07:00
Siebrand Mazeland
bb2a4e7aac Update translator documentation. 2010-09-12 17:43:43 +02:00
Siebrand Mazeland
6b010ac79c Update/add translator documentation. 2010-09-12 17:27:38 +02:00
Siebrand Mazeland
a9fad9a7ac Add translator hint. 2010-09-12 17:08:49 +02:00
Evan Prodromou
255e96d3b5 add a hook for when someone deletes their own notice 2010-09-08 16:37:12 -04:00
Evan Prodromou
21bf50bad6 Merge branch 'noticetitle' into 0.9.x 2010-08-14 12:03:25 -07:00
Evan Prodromou
7dd46222a8 add StartNoticeSaveWeb and EndNoticeSaveWeb to hook web-based UI for notices 2010-08-13 11:21:07 -07:00
Brion Vibber
d9942a558a Fix regression in replies made from web (was saving reply_to value in wrong array key) 2010-08-12 15:18:16 -07:00
Brion Vibber
6ee3f35302 work in progress: prettier attachment mode for tinymce? 2010-08-11 15:56:40 -07:00
Brion Vibber
527561cd93 TinyMCE: core tweak; switching order of input processing so length limit is applied to stripped version of the text 2010-08-11 14:41:31 -07:00
Brion Vibber
3a85318bd0 First stab redoing argument loading for TinyMCE (to avoid hacking checks for all notice saves everywhere) 2010-08-10 16:55:03 -07:00
Siebrand Mazeland
46bffe3d69 Tweak message per suggestion of The Evil IP Address[1].
[1] http://translatewiki.net/w/i.php?title=Thread:Translating_talk:StatusNet/to_their_attention%3F&oldid=2220913
2010-08-01 00:16:39 +02:00