Commit graph

459 commits

Author SHA1 Message Date
Yonle
3c1dc419ea html.c: Put "User Settings" outside of "Operations".
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-24 23:13:13 +07:00
Yonle
25bb8f0dd2 Rollback to 86f507410b for some reasons.
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-24 22:56:18 +07:00
Yonle
e776bf7e2c html.c: Rollback to e9adaa1f7a, Put "User Settings..." outside of "Operations..."'s <details> element
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-24 20:42:26 +07:00
Yonle
68d03d6d51 html.c: No need to redirect to #snac-posts again.
Form has been minimized with <details> since commit c409d2e,
So there is no need to redirect user to user/admin#snac-posts again.

Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-24 20:15:40 +07:00
Yonle
75e061a9f7 html.c & httpd.c: Fix hardlink.
Some people may still want to post in the web client with such different
way, Such as posting from Yggdrasil / SSH port forwarder, and so on.

This commit gives the workaround for that purpose, However things will
go messed up when current path were ends with / (Like: user/, admin/).

But overall, If user just uses it like normal, Then things will just
worked well as expected.

Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-24 19:42:20 +07:00
default
f67ac2517c Moved user settings to its own page. 2023-07-24 13:31:13 +02:00
default
4823f20085 If a message has an audience, its URL is shown after the content.
Messages coming from channels, communities (Lemmy) or magazines (kbin.social),
have this field set with the "parent" url.
2023-07-19 12:42:32 +02:00
default
7950783d41 Merge branch 'master' of grunfink-codeberg:grunfink/snac2 2023-07-19 11:58:22 +02:00
Yonle
7e273a73eb html.c: RSS: fix.
Feed title, and description is not properly rendered.
So here goes a fix that instead of using encode_html TWICE,

We use sanitize() for feed description instead.

Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-18 23:34:29 +07:00
Yonle
d3e0f7a84b html.c: custom emoji <img>: Resize height to 2em, and put veritcal-align to middle.
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-18 21:16:22 +07:00
default
2700567fca Avoid too deep nesting of html_entry(). 2023-07-18 09:59:16 +02:00
Yonle
fe0d820795 html.c / UX: Give admin page more space
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-17 18:33:15 +07:00
Yonle
98c72db17c html.c: *prev_src at edit: Just use encode_html.
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-15 02:06:10 +07:00
Yonle
1dc61ace13 html.c: Probably put placeholder on certain input and textboxes
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-15 00:42:52 +07:00
default
3e21aafb26 Fixed crash on empty static and history objects. 2023-07-14 14:59:50 +02:00
Yonle
77f5b51126 html.c: Don't let public get into timeline.html_
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-14 11:59:31 +07:00
default
4ab22b2c14 If a Page has an image, show it as an attachment. 2023-07-13 23:41:22 +02:00
default
64d3bb7e33 Fixed Link HTML. 2023-07-13 22:32:06 +02:00
default
c4bb189d99 Added support for lemmy-style "Link" attachments. 2023-07-13 22:10:29 +02:00
default
2caeb550b9 Added support for the 'Page' ActivityPub object.
So that you can follow and interact with lemmy channels.
2023-07-13 21:01:15 +02:00
default
76e1608069 Fixed memory leaks. 2023-07-13 10:49:49 +02:00
Yonle
2d584d219a html.c: Also encode html characters in admin page 2023-07-12 09:19:04 +07:00
default
a0e813db0a Fixed HTML re-encoding in the user bio. 2023-07-11 20:34:02 +02:00
default
158b360181 When sanitize() is called, encode_html() is no longer needed. 2023-07-11 20:28:24 +02:00
default
28a91ab732 Added new CSS classes snac-embedded-video and snac-embedded-audio. 2023-07-11 20:16:44 +02:00
default
a18c719298 Fixed crash. 2023-07-11 19:58:55 +02:00
default
1c5a689457 Fixed some memory leaks. 2023-07-11 19:45:58 +02:00
Yonle
63741cb66a html.c: Escape XML characters & View unknown type attachment link
Signed-off-by: Yonle <yonle@lecturify.net>
2023-07-11 23:08:01 +07:00
default
0dd570dcad Pinned posts also appear in the public timeline. 2023-07-06 08:48:06 +02:00
default
eef3c419dd Posts can be pinned/unpinned from the web interface. 2023-07-05 14:06:21 +02:00
default
57ba1d575f Pinned posts appear at the top of the public timeline. 2023-07-05 13:51:20 +02:00
default
38ee86f81e Also call process_tags() when in the public timeline's bio. 2023-07-04 17:15:38 +02:00
default
8a392233d2 The content warning check and description is propagated from the replied message. 2023-07-04 15:02:04 +02:00
default
339fe5edc5 Also fill the sensitive content fields in the edit dialog. 2023-07-04 14:55:24 +02:00
default
b55dbf13e4 The sensitive content can have a description. 2023-07-04 14:50:09 +02:00
default
78b468f013 More unfollow notification tweaks. 2023-07-04 14:23:12 +02:00
default
7db4de872d Also show unfollows in the notification area. 2023-07-04 14:07:33 +02:00
default
d343b40ee5 Added HTTP caching to static data. 2023-07-02 11:11:01 +02:00
default
b5495ab40b Fixed footer link. 2023-07-01 19:22:42 +02:00
default
c423cc7425 Added CSS classes to notification and people pages. 2023-07-01 19:20:20 +02:00
default
e64471b7e4 Added class snac-post-header to the people list. 2023-06-29 18:10:59 +02:00
default
f4c7f4b9d7 Added a new snac-post-header CSS class. 2023-06-29 18:06:42 +02:00
default
4b1f060be8 Add a pin emoji to pinned posts. 2023-06-28 21:19:31 +02:00
default
bd81708d56 New CSS class snac-post-header, that wraps the avatar + name + link of a post. 2023-06-28 11:04:07 +02:00
default
e9711f94d0 Skip leading zeros en poll closing time. 2023-06-28 10:50:17 +02:00
default
3047f6220b For polls, shows a 'Closes in d:h:m:s' string. 2023-06-27 17:08:09 +02:00
default
1c6cc98f07 Also break the og:description in the first period in the bio. 2023-06-26 16:00:23 +02:00
default
983f137108 Added autocomplete=off to all forms. 2023-06-26 15:44:08 +02:00
default
b2598ca307 If the user style.css does not exist, return the server-wide version. 2023-06-26 08:54:09 +02:00
default
2f3ed55790 The WWW-Authenticate real also includes the user. 2023-06-24 08:29:29 +02:00
Haijo7
553ef7b40c added titles to images and emojis 2023-06-16 15:31:40 +02:00
default
5be2239467 Quick fix to "Script self-injection in edit box".
In the 'Edit...' box, the sourceContent (which was written by a user)
has its < replaced with &lt; . This issue does not propagate to the
public timeline nor to the recipients of the post.

Reference: https://codeberg.org/grunfink/snac2/issues/53
2023-06-16 09:25:32 +02:00
default
ded12dcf52 Fixed look of users without creationg date in the people page. 2023-06-15 18:00:09 +02:00
default
478cb2cf15 Use xs_stock_* values wherever possible. 2023-06-15 17:51:24 +02:00
default
262de20aa8 Fixed voting / replying confusion. 2023-06-15 17:24:44 +02:00
default
aa7ed9bd9b Added Web UI to set the account 'bot' flag. 2023-06-11 21:06:08 +02:00
default
d9d4ffbc61 Hidden conversations are not rendered instead of given a 'display: none'. 2023-06-11 20:34:26 +02:00
default
e22da86ccf Minor tweak to snac-poll-form. 2023-06-07 18:44:33 +02:00
default
22565f5c40 New CSS classes snac-poll-form and snac-poll-result. 2023-06-07 18:37:19 +02:00
Haijo7
21bb4f3325
Added icon for bots 2023-06-02 18:12:07 +02:00
default
84152d67f5 Fixed bug in notify() (the poll id was not set). 2023-06-02 10:58:49 +02:00
default
2e19c193a0 Use a select instead of a checkbox for setting multiple-choice polls. 2023-06-02 10:48:05 +02:00
grunfink
99588a8a5c Merge pull request 'fixed typo in string "people that follows you"' (#38) from Haijo7/snac2:master into master
Reviewed-on: https://codeberg.org/grunfink/snac2/pulls/38
2023-06-02 08:19:01 +00:00
Haijo7
2a8d34a833 open image in new tab when clicked, add css class for attachments 2023-06-02 09:43:49 +02:00
Haijo7
f903d0769b
fixed typo in string "people that follows you" 2023-06-01 17:44:02 +02:00
default
47cb5f0b28 Add a check Unicode char to mark those polls that were voted by the user. 2023-06-01 17:28:38 +02:00
default
1023ee88f5 Fixed typo. 2023-06-01 09:32:40 +02:00
default
fac52ff262 Show the user@host identified next to the user avatar (contributed by Haijo7). 2023-06-01 09:16:17 +02:00
default
5aa9043668 Don't even call html_entry() for children with "name". 2023-05-31 06:41:06 +02:00
default
60fc87d845 Don't hide replies to polls (that are not votes). 2023-05-31 06:14:14 +02:00
default
f2a91d8d48 Label closed polls correctly in the notification area. 2023-05-30 14:58:41 +02:00
default
42918d44a0 Create polls from the web interface. 2023-05-30 10:34:46 +02:00
default
142b4d6d86 Added a poll pull-down and options (still unused). 2023-05-30 10:01:36 +02:00
default
b98a284f6f Wrap attachments in notes behind a "details". 2023-05-30 09:09:04 +02:00
default
e02beac47e Replaced "Image" with "File". 2023-05-30 09:01:33 +02:00
default
6e6fa934b5 Better poll close checks. 2023-05-30 06:37:09 +02:00
default
27218d06d8 Moved "Closed" poll string to where it belongs. 2023-05-30 06:35:29 +02:00
default
22fea17255 Disallow voting your own polls. 2023-05-29 09:20:25 +02:00
default
654e171b93 New macro ISO_DATE_SPEC. 2023-05-29 09:07:27 +02:00
default
34eb717344 Fixed multiple choice polls. 2023-05-24 13:46:06 +02:00
default
9cdb53de8e Hide the children for polls. 2023-05-24 13:25:13 +02:00
default
6eb0aa105a Show the poll as closed if we already voted for it. 2023-05-24 13:19:40 +02:00
default
5d8e370ec3 More prototype tunnings. 2023-05-24 13:05:43 +02:00
default
07b9fa90b2 Polls can now be voted. 2023-05-24 13:00:52 +02:00
default
67b21a9ecd Show HTML form code for oneOf polls. 2023-05-24 12:12:06 +02:00
default
0d8a040d90 Added some experimental 'Question' posting code. 2023-05-24 11:49:16 +02:00
default
4f0ab18f1c Show a ballot box emoji in the score if the enttry it's a poll. 2023-05-24 10:23:57 +02:00
default
2b6d6d3412 Finished polls are shown. 2023-05-24 10:11:48 +02:00
default
c356379cdd Some prototype tweaks. 2023-05-24 09:47:31 +02:00
default
49362f5404 Convert image links in notes to attachments. 2023-05-21 20:32:23 +02:00
default
ef1db81d1a Updated documentation. 2023-05-17 12:03:35 +02:00
default
ef59df5db2 Fixed bug in drop_dm_from_unknown web processing. 2023-05-17 11:47:11 +02:00
default
b3f2d15d00 Added web interface for drop_dm_from_unknown. 2023-05-17 11:37:23 +02:00
default
83aad1b7a4 Added some comments. 2023-05-17 10:40:44 +02:00
default
970ad7a540 Got rid of xs_encdec.h. 2023-05-17 10:08:57 +02:00
default
6b597ffdb4 Only show the bio in the top of the page for public pages. 2023-05-13 09:35:43 +02:00
default
e2e7bc2d71 Added a source (web, mastoapi, etc) to lastlog_write(). 2023-05-08 09:02:45 +02:00
default
980a8d524f Fixed more warnings. 2023-05-04 09:34:33 +02:00
default
185aac2387 Added -Wextra to C flags. 2023-05-04 09:28:36 +02:00
default
753eadfd17 Added some const here and there. 2023-05-04 09:25:09 +02:00
default
511f5062b7 Deleted real unused parameters. 2023-05-04 09:19:26 +02:00
default
0bd609f5be Fixed missing notifications in certain circunstancies. 2023-05-03 07:57:10 +02:00
default
b8eace33c9 Store the what-is-snac URL as a CPP constant. 2023-04-25 06:40:46 +02:00
default
048ee35039 New button to clear all notifications. 2023-04-16 06:08:33 +02:00
default
58b2a47631 Set the timeline check time after showing the notifications. 2023-04-14 19:21:57 +02:00
default
30567ba812 Delete the private HTML cache on edits. 2023-04-14 19:04:53 +02:00
default
81f94d44df More notification web page tweaks. 2023-04-14 13:38:06 +02:00
default
a64a25a551 More notification web tweaks. 2023-04-14 13:32:37 +02:00
default
a050be9107 Don't show the full tree in notifications. 2023-04-14 13:05:36 +02:00
default
cb616d6eb5 New notifications web page. 2023-04-14 12:23:32 +02:00
default
f38de8c6b0 Show a top link to the (future) notifications area, including a count of new ones. 2023-04-14 09:57:18 +02:00
default
9e9d740199 Added image attachments. 2023-04-10 13:22:59 +02:00
default
1fe34ffb4a New function lastlog_write(). 2023-04-05 23:46:51 +02:00
default
ec48ec314f Don't inline empty avatars in og:avatar meta property. 2023-02-26 20:23:02 +01:00
default
2c2c0df129 Added some property og meta headers. 2023-02-26 20:11:45 +01:00
default
90838f07c6 Minor actor name code refactoring. 2023-02-23 09:22:13 +01:00
default
9d02e70a2f Show the avatar in the nav menu. 2023-02-20 11:09:39 +01:00
default
fdda3c9235 New checkbox 'Only for mentioned people'. 2023-02-20 10:19:15 +01:00
default
5230435b31 New boolean argument 'priv' to msg_note(). 2023-02-20 09:32:44 +01:00
default
f1f3e3b116 Email notifications can be disabled. 2023-02-20 06:00:54 +01:00
default
75fbc38db3 Rewritten text 'More...' as 'Load more...'. 2023-02-15 09:35:44 +01:00
default
08aa6107b1 Added form field code for uploading the avatar. 2023-02-15 09:30:08 +01:00
default
306f5bdd26 Added support for receiving un uploaded avatar. 2023-02-15 09:08:27 +01:00
default
f325b567e3 Improved Delete button fix. 2023-02-10 23:04:42 +01:00
default
ed44462a41 Fixed actor / post Delete confusion bug. 2023-02-10 14:36:27 +01:00
default
436dbf9913 Followers can be deleted. 2023-02-08 20:19:36 +01:00
default
5d126d0e9e Only show the 'in reply to' link if level == 0. 2023-02-08 14:07:13 +01:00
default
95926fb98a Use timeline_here() for parents in html_entry(). 2023-02-08 13:30:15 +01:00
default
f253ea6578 Added web interface for the Telegram information. 2023-02-07 08:19:18 +01:00
default
70c73d0336 New user option 'purge_days'. 2023-02-05 19:09:22 +01:00
default
71a7569467 Deleted the type argument from object_get_my_md5() and object_get().
It was never used.
2023-02-05 17:45:00 +01:00
default
bad9f3a8c6 Renamed timeline_get() to timeline_get_by_md5(), as that is what id does. 2023-02-05 17:39:40 +01:00
default
12aedfadfd New function timeline_get(). 2023-02-05 13:35:50 +01:00
default
43c83ce9ed More debug level changes. 2023-02-03 19:34:52 +01:00
default
bad3768250 Attached images have a hashed name instead of a time one. 2023-01-28 18:28:00 +01:00
default
4e86847f72 Image attachments in posts can now have descriptions ('alt text'). 2023-01-28 18:22:42 +01:00
default
d3cf86c098 New post field 'alt_text'. 2023-01-28 18:00:26 +01:00
default
a3ed2408fc New function default_avatar_base64(). 2023-01-27 18:17:11 +01:00
default
428d75600a Added edit support for posts. 2023-01-24 11:14:45 +01:00
default
a38c7aeadc Updated year in copyright notices. 2023-01-17 09:50:16 +01:00
default
bb0d8f2a27 Backport from xs. 2023-01-12 09:28:02 +01:00
default
16be679ecd Show the More... link above the 'About this site'. 2023-01-11 21:51:42 +01:00
default
40b3f739d2 Deleted unused argument in timeline_admire(). 2023-01-11 20:47:36 +01:00
default
75f8554e38 Deleted unused arguments in timeline_add(). 2023-01-11 20:40:13 +01:00
default
029367f7cc Show the mentioned people after a CC:. 2023-01-09 09:24:09 +01:00
default
845df51686 Don't generate empty children popups. 2023-01-03 10:11:20 +01:00
default
913231d5c0 Add a link rel=alternate to the user RSS. 2022-12-25 15:45:46 +01:00
default
0bba515cf0 timeline_request() fixes the canonical id for the object. 2022-12-23 10:01:10 +01:00
default
dda60374f7 The 'Older...' details are back, now better. 2022-12-19 06:16:52 +01:00
default
020b854675 Deleted the 'Older...' details tag because it's becoming too confusing. 2022-12-18 20:57:34 +01:00
default
e31734c06a Conversations can be collapsed. 2022-12-18 06:10:50 +01:00
default
25acaf178c Replaced all calls to post() with enqueue_message(). 2022-12-16 07:16:00 +01:00
default
32eb3fb041 Also show the 'updated' timestamp. 2022-12-15 16:09:44 +01:00
default
2fd7e20380 Use object_likes_len() and object_announces_len() in the post score. 2022-12-10 11:26:51 +01:00
default
5e837aa57b Don't show the 'Boost' button for private messages. 2022-12-08 08:45:35 +01:00
default
2dba85ead2 Also add 'redir' hidden field to Replies. 2022-12-08 08:04:18 +01:00
default
a1673e6d0c Some tweaks to improve the page position after like or boost. 2022-12-08 07:40:15 +01:00
default
a5b8dd7841 Wrapped too long string literals. 2022-12-08 07:21:19 +01:00
default
8222776ff9 Little tweak to previous change to avoid a memleak. 2022-12-08 07:08:53 +01:00
Alex Schroeder
4c996c7622 Fix mentions with one @ sign
In a mention like the following, the old code had a problem: It would
split the name by '@' and get a list of two elements. Since this is
less than three, it would then try to get the domain name from the
href ("social.alexschroeder.ch") and concatenate it with the name,
resulting in "alex@social.alexschroeder.ch@social.alexschroeder.ch".
The reason was that the code expects an initial "@". In that case,
splitting "@alex@social.alexschroeder.ch" would result in three
elements, and no domain name guessing would happen. If, on the other
hand, the name was "@foo" then finding the domain name in the URL and
appending it so that you get @foo@domain.name is the correct solution.

    "tag": [
        {
            "type": "Mention",
            "href": "https://social.alexschroeder.ch/alex",
            "name": "alex@social.alexschroeder.ch"
        }
    ],

The fix consists in prepending an "@" if the name does not start with
"@" and leaving the rest of the code unchanged.
2022-12-07 22:03:32 +01:00
default
df1b1510b7 Ask for just 1 more entry beyond the current page to test if there are more. 2022-12-07 10:42:24 +01:00
default
979389fd47 Fixed last minute typo. 2022-12-07 10:12:59 +01:00
default
28816aaa85 Minor tweaks to paged timeline output. 2022-12-07 10:04:19 +01:00
Alex Schroeder
a221237637 Pagination of the public and private page
Use the query parameters skip and show to control what you can see,
e.g. /alex/admin?skip=0&show=4

Don't use or save the timeline cache if either is set.

The following functions were changed from accepting a single max
parameter to accepting both skip and show:
timeline_simple_list, timeline_list, index_list_desc.
2022-12-06 18:27:33 +01:00
Alex Schroeder
b60addc4e6 Add loading="lazy" to all images
Only load images when they're visible.

"The loading attribute on an <img> element … can be used to instruct
the browser to defer loading of images/iframes that are off-screen
until the user scrolls near them."
https://developer.mozilla.org/en-US/docs/Web/Performance/Lazy_loading#images_and_iframes
2022-12-06 12:25:08 +01:00
default
0e861196a1 Fixed crash in new code (moron me...) 2022-12-04 12:04:37 +01:00
default
785c859ce3 Match the CW checkbox status to what is currently configured. 2022-12-04 11:50:20 +01:00
Alex Schroeder
a3fa7dbaec No sensitive content in the public timeline
Don't use h3 in the public timeline. Use the details tag, as before,
but default to "open" if the config setting is set. Only do this in
the private timeline (where local == 0, as set by html_get_handler).
2022-12-04 10:05:53 +01:00
Alex Schroeder
e4c26715a1 Add an option to always show sensitive content
- add a cw key to user.json
- add a cw checkbox to user setup form
- handle the cw parameter when updating user setup
- when rendering an entry, look at the cw config: if set, use a h3
  heading for the summary; otherwise use details + summar + SENSITIVE
  CONTENT like before
2022-12-04 10:05:53 +01:00
default
bc0f9d116f Deleted debug code in html_entry(). 2022-12-04 06:37:30 +01:00
default
144d3c29a9 Don't show the messages' md5. 2022-12-04 06:34:42 +01:00
default
bd0149ee0d Don't try to admire empty messages. 2022-12-03 20:45:58 +01:00
default
c70bd2a85d Show the development version. 2022-12-03 19:28:16 +01:00
default
f205d20688 Always show who boosted something, not only when it's on level 0. 2022-12-03 18:08:44 +01:00
default
d00026ac06 Upgraded local/ to public/. 2022-12-03 17:58:49 +01:00
default
af6d31ff83 New function timeline_simple_list(). 2022-12-03 07:27:26 +01:00
default
2614a8b3cb Show stray parents in the origin. 2022-12-02 21:36:12 +01:00
default
4819c4248d More old code deletions. 2022-12-02 20:39:31 +01:00
default
c06136a8ac Fixed one post queries. 2022-12-02 19:39:17 +01:00
default
33c8a73c17 Fixed RSS and outbox to use the new data storage. 2022-12-02 19:30:59 +01:00
default
c00e3afcdc Big data storage change. 2022-12-02 19:14:59 +01:00
default
e62b6b87be Close a tag in history list. 2022-12-01 19:39:22 +01:00
default
3c7cccba3d Changed following_list() to return a list of actors. 2022-11-28 11:06:46 +01:00
default
07fec71273 Upgraded followers to the new db. 2022-11-28 10:46:42 +01:00
default
d03b988c99 Don't call object_del() from timeline_del().
Only delete from each user's cache, not from the global database.
2022-11-26 13:34:43 +01:00
default
17d4e4f5dd Renamed 'admin' link label to 'private'. 2022-11-26 05:12:58 +01:00
default
9df1cb129e Use macro XS_ALL were possible. 2022-11-25 12:21:26 +01:00
default
d215f8ce46 Use the new hide API. 2022-11-24 09:49:54 +01:00
default
b487b41be6 Backport from xs (new xs_set() API). 2022-11-21 11:14:24 +01:00
default
d253429fe7 Deleted the link at the end of each RSS entry. 2022-11-20 10:00:24 +01:00
default
ecff88922f More RSS tweaks. 2022-11-20 06:16:45 +01:00
default
3d6654143e Fixed RSS link. 2022-11-20 05:53:40 +01:00
default
e11fc49fd7 Add a link to the post in each RSS entry. 2022-11-20 05:51:54 +01:00
default
5882ed15de More RSS tweaks. 2022-11-20 05:33:42 +01:00
default
86aa0ff4b6 More RSS tweaks. 2022-11-20 05:24:11 +01:00
default
50d73a6e94 RSS improvements. 2022-11-19 06:15:35 +01:00
default
29a83fa1d2 Fixed crash when testing for the Accept header. 2022-11-18 20:37:46 +01:00
default
71b925d420 Log if the RSS is served. 2022-11-18 11:48:39 +01:00
default
331c392ae0 Added a RSS link in the public timeline page. 2022-11-18 11:42:13 +01:00
default
e239d51de1 More RSS tweaks. 2022-11-18 11:36:13 +01:00