Ivan Tashkinov
279096228c
[ #114 ] Made MastodonAPI and TwitterAPI user show actions return 404 for auth-inactive users
...
unless requested by admin or moderator.
2018-12-19 18:56:52 +03:00
Ivan Tashkinov
a532ad5d72
[ #114 ] User.register/1 tweak.
2018-12-19 17:24:55 +03:00
Ivan Tashkinov
968d7490b6
[ #114 ] User.Info: renamed `confirmation_update` to `confirmation_changeset`.
2018-12-19 16:31:03 +03:00
Ivan Tashkinov
59fc5d15df
[ #114 ] User.Info: renamed `confirmation_update` to `confirmation_change`.
2018-12-19 16:27:16 +03:00
Ivan Tashkinov
b096e30cff
[ #114 ] Added email confirmation resend action. Added tests
...
for registration, authentication, email confirmation, confirmation resending.
Made admin methods create confirmed users.
2018-12-18 17:22:46 +03:00
Ivan Tashkinov
b86057cc7f
[ #114 ] Refactored User.register_changeset to init confirmation data.
...
Introduced User.register/1 to encapsulate User record creation and post-registration actions.
2018-12-18 17:22:42 +03:00
Ivan Tashkinov
1de0aa2f10
[ #114 ] Account confirmation email, registration as unconfirmed (config-based), auth prevention for unconfirmed.
2018-12-18 17:21:05 +03:00
Ivan Tashkinov
a05cb10a95
[ #114 ] Email confirmation route, action, node setting, User.Info fields.
2018-12-18 17:18:53 +03:00
raeno
a300336459
Merge branch 'develop' into oembed_provider
2018-12-18 14:59:32 +01:00
lain
e4763cd459
Fix tagging problems for existing instances.
2018-12-17 20:12:01 +01:00
raeno
46486595ff
Handle "users/:id" links as well. Fix comments in MR.
2018-12-14 19:55:40 +01:00
href
7214d57463
Extended nicknames: allow dashes.
2018-12-12 21:48:54 +01:00
href
7d9ddbe689
Allow underscores in usernames.
...
Fixes #429 .
2018-12-12 18:57:33 +01:00
Maksim Pechnikov
89b3729afa
fix warnings
2018-12-12 09:09:19 +03:00
lain
d6bf06ab4f
Fix warnings.
2018-12-10 20:49:06 +01:00
lambda
0863ec2737
Merge branch 'fix_empty_bio_crash' into 'develop'
...
Fixes #415 . Do not crash during registration when hasn't filled bio field
Closes #415
See merge request pleroma/pleroma!529
2018-12-10 19:08:35 +00:00
raeno
9ba4a1c5fe
Fixes #415 . Properly handle nil and empty string by User.parse_bio
2018-12-10 01:01:43 +04:00
Maksim Pechnikov
074fa790ba
fix compile warnings
2018-12-09 20:50:08 +03:00
lambda
94d8f1ab30
Merge branch '394_user_tags' into 'develop'
...
[#394 ] User tags
Closes #394
See merge request pleroma/pleroma!508
2018-12-07 18:25:38 +00:00
Ivan Tashkinov
1cea97df64
[ #394 ] Refactoring of User.tag and User.untag (removed User.tag_or_untag etc.)
2018-12-07 12:27:32 +03:00
Ivan Tashkinov
6ed5044c4e
[ #394 ] Refactoring (using Ecto.Multi; "untag" route change).
2018-12-07 11:04:39 +03:00
Ivan Tashkinov
7bcb6a183a
[ #394 ] Refactoring.
2018-12-06 20:23:16 +03:00
Ivan Tashkinov
7b19487389
[ #394 ] Added `users.tags` and admin routes to tag and untag users. Added tests.
2018-12-06 20:06:50 +03:00
rinpatch
2ae1128d9f
MastoAPI: Fix put_settings
2018-12-06 17:42:07 +03:00
William Pitcock
956f3c75ca
user: put default user info when registering a user
2018-12-05 03:35:41 +00:00
Maxim Filippov
ce98d5eb9b
Parse user's bio on register
2018-12-02 22:03:53 +03:00
lain
f18b86fd5f
More fixes for Info schema.
2018-12-01 12:46:08 +01:00
lain
347df6421d
Fix masto api user updating.
2018-12-01 10:40:01 +01:00
lain
badbe2656c
More fixes.
2018-11-27 18:12:03 +01:00
lain
0bea0308f1
Merge branch 'validate-user-info' of git.pleroma.social:pleroma/pleroma into validate-user-info
2018-11-20 20:16:16 +01:00
lain
d3180e0ccc
Raise on usage of old function.
2018-11-20 20:14:38 +01:00
William Pitcock
312676f711
user: fix user.info lookup in User.locked?()
2018-11-20 18:41:44 +00:00
lain
2887f4ff1d
Fix formatter tests.
2018-11-20 19:07:01 +01:00
lain
40d9d2098c
Fix user updating from AP.
2018-11-18 22:15:03 +01:00
lain
cafa15131a
Mix format.
2018-11-18 21:41:35 +01:00
lain
4c918392c6
Fix most User tests.
2018-11-18 21:40:52 +01:00
lain
fc3bcf335e
Fix following locked users.
2018-11-18 18:53:50 +01:00
lain
d5af41b577
Fix note count update.
2018-11-18 18:52:21 +01:00
lain
6f90ceb2ed
Fix follower count test.
2018-11-18 18:49:17 +01:00
lain
812f5b058a
Fix blocking.
2018-11-18 18:40:31 +01:00
lain
756764266c
Formatting.
2018-11-18 18:27:04 +01:00
lain
b396dba425
Fix follower count setting.
2018-11-18 18:24:16 +01:00
lain
5c8f07f0a8
Fix note counting.
2018-11-18 18:17:56 +01:00
lain
47d883d3ab
Fix User deactivation.
2018-11-18 18:06:02 +01:00
lain
e8d8c84f79
Add better test for user search functionlity.
2018-11-16 18:31:32 +01:00
William Pitcock
8c805ada32
user: remove obsolete User.get_notified_from_activity().
2018-11-09 09:01:40 +00:00
William Pitcock
d26cd6c1bf
user: factor out user set fetching from User.get_notified_from_activity()
2018-11-09 08:23:45 +00:00
William Pitcock
81d6ca1783
user: implement AS2 mention extraction + unify Announce handling
2018-11-08 20:19:56 +00:00
William Pitcock
6b4064fa5d
activitypub: transmogrifier: unify mention extraction
2018-11-08 19:41:36 +00:00
William Pitcock
0a2c1a3419
user: add optional local_only param to get_notified_from_activity()
2018-11-08 19:30:55 +00:00
William Pitcock
144dc048b8
user: only consider `to` recipients as mention targets
2018-11-08 18:58:24 +00:00
William Pitcock
f584a603f9
user: make User.delete() return data consistent with Object.delete()
2018-11-01 07:56:21 +00:00
William Pitcock
2c3bfd7f76
user: delete user_info data in User.invalidate_cache()
2018-11-01 07:52:58 +00:00
scarlett
b92e38d2d4
Add user reactivation task.
2018-10-29 23:13:15 +00:00
William Pitcock
1b480e3514
user: add helper for fetching profile url (which may be different than ap id)
2018-10-25 04:01:59 +00:00
Haelwenn (lanodan) Monnier
eacab0fb05
Delete Tokens and Authorizations on password change
...
Closes: https://git.pleroma.social/pleroma/pleroma/issues/320
2018-10-14 02:14:54 +02:00
William Pitcock
51eaece3ea
user: break out local cases for maybe_direct_follow
2018-10-11 10:49:54 +00:00
William Pitcock
2c29329d39
user: local users are always AP-enabled ( closes #316 )
2018-10-11 10:35:11 +00:00
William Pitcock
e69faf550c
user: add wait_and_refresh() for async three-way handshake case
2018-10-05 23:40:49 +00:00
William Pitcock
4f7a468659
user: only pre-create follow relationships on OStatus
...
closes #306
2018-10-05 22:58:03 +00:00
William Pitcock
735cdfb848
user: add User.html_filter_policy()
2018-09-22 02:53:00 +00:00
William Pitcock
c9f6eb9a41
user: implement dynamic refresh of profiles (gets rid of need for fix_ap_users task)
2018-09-20 23:50:56 +00:00
William Pitcock
b61430163b
user: add moderator_user_query()
2018-09-03 12:03:23 +00:00
Will Pearson
0c2a0e3551
Specify default scope in verify_credentials
...
Certain Mastodon/Pleroma front ends call verify_credentials to get the
default scope of a new toot.
Currently, Pleroma hardcodes this value to "public".
This patch changes it to the user's default_scope value.
2018-08-31 21:04:46 -07:00
William Pitcock
5dd6542db5
formatting
2018-08-27 10:46:01 +00:00
William Pitcock
1089d3658e
user: fix up notification last calculation [NOT related to upstream]
2018-08-27 10:46:01 +00:00
lambda
46c7c2380c
Merge branch 'feature/relay' into 'develop'
...
message relay
Closes #144
See merge request pleroma/pleroma!264
2018-08-27 08:29:25 +00:00
lambda
440b459cd1
Merge branch 'bugfix/announce-timeline-flooding' into 'develop'
...
activitypub: filter destination list for announce activities differently than normal (closes #164 )
Closes #164
See merge request pleroma/pleroma!227
2018-08-27 08:25:27 +00:00
kaniini
0f5bff8c66
Merge branch 'develop' into 'feature/relay'
...
# Conflicts:
# lib/pleroma/web/activity_pub/utils.ex
2018-08-26 21:06:15 +00:00
William Pitcock
d91fd48edf
user: do not leak virtuals in account search
2018-08-06 11:29:02 +00:00
William Pitcock
ecfd4b2106
user: hide virtual actors from statistics queries
2018-08-06 11:29:01 +00:00
William Pitcock
e49131bb72
relay: move to /relay endpoint from / due to webapp issues
2018-08-06 08:22:16 +00:00
William Pitcock
ae3cb652b6
user: set up a valid followers address to use
2018-08-06 08:22:15 +00:00
William Pitcock
1c90f88393
user: remote actors can have no nickname if they are virtual services
2018-08-06 08:22:11 +00:00
William Pitcock
4807a52284
user: support creating an actor which represents the instance itself
2018-08-06 08:22:07 +00:00
William Pitcock
275c42e438
user: filter out duplicate follow requests
2018-08-05 01:11:13 +00:00
William Pitcock
47189531c5
user: use Object.normalize() instead of Object.get_by_ap_id() directly.
2018-06-27 13:07:17 +00:00
lambda
dfc96f222c
Merge branch 'feature/configurable-blocks' into 'develop'
...
Add more configurability to how blocks work
See merge request pleroma/pleroma!203
2018-06-25 06:12:29 +00:00
squidboi
c4038ede07
fix mind-crushingly dumb syntax error
2018-06-23 14:32:00 -07:00
squidboi
f4990283de
change moved attributes into normal variables
2018-06-23 14:27:07 -07:00
squidboi
4e099fcfa9
move configurable module attributes into relevant functions
2018-06-23 14:16:08 -07:00
William Pitcock
056305dfa7
user: add helper function to fetch a user given only an ap_id (fix tests)
2018-06-19 08:31:06 +00:00
William Pitcock
320ca7b11e
user: when processing a block in User.block(), ensure all follow relationships are broken
...
this is needed for activitypub conformance
ref #213
2018-06-19 00:59:26 +00:00
William Pitcock
7e0f62acee
object: add helper functions to handle various forms of a given object and return a normalized one
2018-06-18 05:27:10 +00:00
William Pitcock
591c82620e
activitypub: filter destination list for announce activities differently than normal ( closes #164 )
2018-06-18 04:36:25 +00:00
squidboi
2e294ee44a
Merge branch 'develop' into feature/configurable-blocks
2018-06-16 15:37:16 -07:00
William Pitcock
5eed1ea181
run mix format
2018-06-11 22:15:53 +00:00
William Pitcock
1452b2823f
user: add a workaround for situations where Pleroma may believe a followee is followed
...
this was caused by lack of Undo follows in the early days, and can likely be eventually removed
2018-06-11 22:15:53 +00:00
William Pitcock
ad7188fe92
user: use Enum.uniq on the follow request query
2018-06-11 22:15:53 +00:00
William Pitcock
9c88933422
implement tracking of follow requests
2018-06-11 22:15:53 +00:00
William Pitcock
e5206752e1
activitypub: only send accept back automatically if the account is not locked
2018-06-11 22:15:27 +00:00
lambda
7f79b467b1
Merge branch 'feature/domain-blocks' into 'develop'
...
Domain blocks
See merge request pleroma/pleroma!190
2018-06-11 11:19:45 +00:00
squidboi
4f9ecfc77a
formatting
2018-06-09 04:28:11 +00:00
squidboi
16d896f526
fixes
2018-06-08 19:01:14 -07:00
squidboi
b3580b6971
add option to not deny follow if blocked (fixed)
2018-06-08 18:29:41 -07:00
William Pitcock
1e9dd6fbc2
user: fix maybe_direct_follow() after user_info() refactoring broke it slightly
2018-06-08 02:52:36 +00:00
eal
4856962434
MastoAPI: add domain blocking.
2018-06-03 22:21:23 +03:00
eal
87566b6e2f
user.ex: add domain blocks.
2018-06-03 22:01:37 +03:00
lain
6138b29783
There are no symbols in JSON.
2018-05-26 15:20:21 +02:00
lain
745072b2cc
Merge branch 'kaniini/pleroma-feature/activitypub-accept-reject-conformance' into develop
2018-05-26 15:15:52 +02:00
William Pitcock
e80d91c64a
introduce User.maybe_direct_follow() and use it where we used to call User.follow()
2018-05-25 09:40:10 +00:00
William Pitcock
c0ca9f82b9
mastodon api: properly track if an account is locked or not
2018-05-25 06:14:09 +00:00
William Pitcock
1d88abf2d4
user: do not allow refollowing somebody who has blocked a user
2018-05-25 03:18:35 +00:00
Thog
e55c6f311b
Migrate to comeonin 4 and Cachex 3
...
Also fix some warning in the code and add a missing alias
2018-05-20 20:08:40 +02:00
William Pitcock
6e8de2faae
run mix format
2018-05-19 08:37:04 +00:00
lain
1d4bbec6b3
Fix User search.
...
Now uses a trigram based search. This is a lot faster and gives better
results. Closes #185 .
2018-05-16 17:55:20 +02:00
lain
279b1d19f0
Align local bio limits to remote limit.
2018-04-25 15:41:59 +02:00
Dashie
afe892ddac
Correct syntax with mix format
2018-04-24 14:12:23 +02:00
Dashie
9972678a68
Add User.decrease_note_count and call it from ActivityPub.delete
2018-04-24 11:34:18 +02:00
eal
947431e9aa
MastoAPI and OAuth: allow login with either email or username.
2018-04-18 13:13:57 +03:00
William Pitcock
2edde06042
user: strip leading @ from user query when searching for users if present
...
closes #117
2018-04-09 02:42:37 -05:00
lain
2222e5599c
Don't fetch anything except ap_id for follower / following
...
collections.
Should speed up the queries because ecto doesn't have to parse the json.
2018-03-31 20:02:09 +02:00
lain
4afbef39f4
Format the code.
2018-03-30 15:01:53 +02:00
lain
bd4926288e
Speed up follower query.
2018-03-26 10:31:22 +02:00
lain
847cb15626
Fix tests.
2018-03-24 15:09:09 +01:00
Mark Felder
185c030258
AP again
2018-03-19 17:57:58 +00:00
lain
611ca385de
Merge branch 'develop' into feature/activitypub
2018-03-08 12:37:06 +01:00
lain
d3b0167854
Fix salmon tests.
2018-02-25 17:06:12 +01:00
lain
8e7f63afde
Fix specs.
2018-02-25 16:40:37 +01:00
lain
e3629af4da
Handle remote update activities.
2018-02-25 16:14:25 +01:00
lain
37e406ae36
Get avatar and banner from AP users.
2018-02-22 08:14:15 +01:00
lain
8895088029
Fix for following type change.
2018-02-21 22:27:16 +01:00
lain
4816b09fa7
Add user upgrade function.
2018-02-21 22:21:40 +01:00
lain
f48bc5c3e1
Make User.following a postgres array.
2018-02-21 22:20:29 +01:00
Ekaterina Vaartis
ec07e087bc
Make user bio optional
2018-02-21 23:31:57 +03:00
lain
6b32b9e346
Notifications: Use all recipients, not just "to".
2018-02-19 10:05:26 +01:00
lain
b99eeb2bdf
Try to fetch AP user data first.
2018-02-18 12:27:05 +01:00
lain
68752b2047
Switch protocols to AP when post come in through AP.
2018-02-18 12:04:59 +01:00
lain
fb7b926be3
Handle black name fields on incoming users.
2018-02-17 18:15:48 +01:00
lain
7b26443a76
ActivityPub: Send out Accept after Follow.
2018-02-17 16:08:55 +01:00
lain
8cf97ee8e1
ActivityPub: Basic note federation with Mastodon.
2018-02-11 20:43:33 +01:00
Roger Braun
ae1ec858f4
Basic AP user building.
2018-02-11 17:20:43 +01:00
Roger Braun
52200998c9
Merge branch 'develop' into feature/activitypub
2018-02-11 09:50:55 +01:00
Hakaba Hitoyo
ea6d1b2b17
move avi.png & banner.png from /priv/static/static to /priv/static/images
2018-02-03 20:43:14 +09:00
eal
14b086eec2
Add a default profile picture and banner.
...
This removes the placehold.it dependency.
2018-01-15 22:18:17 +02:00
Roger Braun
a9c23e1c32
Add plug to validate signed http requests.
2017-12-12 10:17:21 +01:00
Lain Iwakura
bad499b3fd
Basic user deletion.
2017-12-08 17:50:11 +01:00
Lain Iwakura
6df6ad0b42
User deletion: Remove relationships.
2017-12-07 18:13:05 +01:00
Lain Iwakura
a78ae2a685
Don't follow deactivated users.
2017-12-07 17:51:55 +01:00
Lain Iwakura
b727ecc5e7
Add function to deactivate users.
2017-12-07 17:47:23 +01:00
Lain Iwakura
5637d163e6
MastodonAPI: Add proper user count.
2017-11-30 14:59:44 +01:00
eal
e9037ffc8d
Do not include user in their own follower count.
2017-11-21 15:33:09 +02:00
eal
bd921ca5d7
Fix posts being streamed to non-local websocket channels.
2017-11-20 07:58:43 +02:00
eal
4db5954786
Don't let the user unfollow their own account.
2017-11-20 07:50:56 +02:00
eal
aadf54e0df
Don't show the user in their own following count.
2017-11-20 00:31:39 +02:00
Thog
59770c3f5c
Fix all compilation warnings
2017-11-19 02:22:07 +01:00
Roger Braun
a743940463
MastoAPI: Implement all streaming functions.
2017-11-16 16:49:51 +01:00
Roger Braun
6a5f087174
Add blocks to User.
2017-11-02 21:57:37 +01:00
Roger Braun
4dcbb64f19
Avoid potentially slow count queries for user note count.
...
For a variety of reasons, posgresql won't use the available actor,
type index to do an index only scan. We now just increase the user
note count, which will lead to slightly wrong counts in some cases,
but it's better than the potentially very slow count query.
2017-10-31 16:37:11 +01:00
Roger Braun
502cb38cd6
Move user search to User module.
2017-10-30 19:23:16 +01:00
Roger Braun
9af560083f
Use more efficient user note count update query.
2017-10-24 14:16:17 +02:00
Roger Braun
6af164f27b
Add password reset.
2017-10-19 17:37:24 +02:00
Roger Braun
44693c100d
Federate banners out.
2017-09-16 13:44:08 +02:00
Roger Braun
61adf676d5
Add basic mastodon notification support.
2017-09-11 18:53:19 +02:00
Roger Braun
5142a8efbb
Add profile update.
2017-08-29 15:14:00 +02:00
Roger Braun
72ca58c540
Save follower count and note count in user.
2017-07-22 17:42:15 +02:00
Roger Braun
44aef2183e
Add follower / friend fetching to user.
2017-07-20 19:37:41 +02:00
Roger Braun
396c32a6da
Add follower_address to users, add on generation.
2017-07-19 18:49:25 +02:00
Roger Braun
e343c0c9c4
Add way to update most recent notification id.
2017-07-02 15:01:59 +02:00
Roger Braun
ac04ba240a
Larger bio length limit for remote accounts.
2017-07-01 02:00:12 +02:00
Roger Braun
70024632ba
AP refactoring.
2017-05-16 18:19:04 +02:00
Roger Braun
dd12cf7296
Fix cws.
2017-05-11 17:59:11 +02:00
Roger Braun
fca7390c69
Only kick off websubs for local users.
2017-05-10 18:43:14 +02:00
Roger Braun
118c572006
Use changeset for remote user creation.
2017-05-10 10:16:20 +02:00
Roger Braun
373753e595
Add some basic changesets.
2017-05-09 18:11:51 +02:00
Roger Braun
b403ea4d2b
Merge branch 'develop' into dtluna/pleroma-feature/unfollow-activity
2017-05-07 19:28:23 +02:00
Roger Braun
bda389d7d9
Subscribe to remote users on following.
2017-05-06 14:09:39 +02:00
Roger Braun
c48c381e90
Merge branch 'develop' into dtluna/pleroma-refactor/1
2017-05-05 11:46:59 +02:00
Roger Braun
6843755834
Make outgoing salmons work.
2017-05-01 13:14:58 +02:00
Roger Braun
bed0b39813
Add function to fetch users from fqn.
2017-04-30 18:48:48 +02:00
Roger Braun
eb12a89d22
Rename wrongly-named function.
2017-04-30 15:06:22 +02:00
Roger Braun
a173fb9e41
Get users fresh, might so we don't make new keys all the time.
2017-04-30 15:05:16 +02:00
Roger Braun
bb1d08a47c
Return keys in webfinger.
2017-04-30 15:00:04 +02:00
Roger Braun
ffc604a2c2
Use cache for user info data.
...
Later these should be persisted in the user.
2017-04-30 10:04:54 +02:00
dtluna
a9b2ad1759
Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into feature/unfollow-activity
2017-04-28 16:06:57 +03:00
dtluna
6cf7c13228
Refactor code to comply with credo suggestions
2017-04-27 16:18:50 +03:00
Roger Braun
e8882ab3da
Merge branch 'develop' into feature/incoming_ostatus
2017-04-26 09:18:49 +02:00
dtluna
668b01da0b
Add restriction on names
2017-04-24 15:34:54 +03:00
Roger Braun
43d7a4b2cf
Add basic fields to support remote users.
2017-04-24 08:49:09 +02:00
Roger Braun
361a8c4219
Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into develop
2017-04-23 10:37:22 +02:00
dtluna
28b203d08f
Add Undo of Follow Activity insertion
2017-04-21 19:54:21 +03:00
Roger Braun
1e88f102c4
Fix specs, add some user info.
2017-04-21 00:51:09 +02:00
Roger Braun
36e883cd4b
Add basic Ostatus user representer.
2017-04-17 14:12:36 +02:00
lambadalambda
ac9817bdb0
Merge branch 'bugfix/repeated-follow-unfollow' into 'develop'
...
Add error messages for repeated follows and unfollows
See merge request !7
2017-04-17 05:46:59 -04:00
Roger Braun
6bfd521974
Switch cache implementation for size limiting.
2017-04-17 11:36:17 +02:00
dtluna
ef5033d7a7
Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into bugfix/repeated-follow-unfollow
2017-04-16 17:18:34 +03:00
Roger Braun
d7e3b72c6a
Add avatar objects to user, fix specs.
2017-04-16 15:28:28 +02:00
Roger Braun
03c6148bb3
Add user registration changeset.
2017-04-15 16:40:09 +02:00
Roger Braun
03ddaead7e
Add basic user caching.
...
Expires after 5 seconds.
2017-04-14 17:13:51 +02:00
dtluna
65ef18a715
Add error messages for repeated follows and unfollows
2017-04-12 17:34:36 +03:00
Roger Braun
ddaaab115e
Use standard base url in User.
2017-04-03 18:27:47 +02:00
Roger Braun
9ad045fd58
Return user specific json for logged in users.
2017-03-23 15:51:34 +01:00
Roger Braun
30650e5bc6
Add unfollowing to TwAPI.
2017-03-23 13:13:09 +01:00
Roger Braun
75e51b190d
Add following TwAPI endpoint.
2017-03-23 12:09:27 +01:00
Roger Braun
9a8850eb9e
Basic status creation and retrieval.
2017-03-21 17:53:20 +01:00
Roger Braun
66f536ecba
Add user schema.
2017-03-20 21:28:31 +01:00