Commit graph

1056 commits

Author SHA1 Message Date
c469a17623
client: refactor info.vue to composition api 2022-09-08 04:10:28 -04:00
ad73d01986
client: remove "Disable AiScript on Pages" setting
In #49, the AiScript functionality was removed from pages as they've
been simplified to a simple textarea.

This setting now effectively does nothing as a result.

Changelog: Removed
2022-09-07 13:07:03 -04:00
0d02914de4
client: fix lints in general.vue
Removed some unused variables and added return type to reloadAsk
2022-09-07 12:57:39 -04:00
abef030a24 build: Move resolutions sections to workspace package.json
Yarn throws a warning on every `yarn install` that the resolutions
from respective packages' manifests are ignored.
2022-09-06 23:18:15 +02:00
5a9d4a3759
client: update dependencies
- Update Vue to 3.2.38
- Update Vite to 3.1.0
- Update cropperjs
2022-09-06 14:15:46 -04:00
5939c90b84
update eslint plugins 2022-09-06 11:19:34 -04:00
6c256c5934 Merge pull request 'client: Fix style scoping in MkMention' (#113) from Michcio/FoundKey-0x7f:fix/mention-style-scoped into main
Reviewed-on: FoundKeyGang/FoundKey#113
Changelog: Fixed
2022-09-06 13:01:04 +00:00
fa69ab5945 client: Fix typo in media caption code 2022-09-06 14:07:42 +02:00
6b289915ef client: Fix style scoping in MkMention
isMe class wasn't applying properly, because the use was not scoped
while the definition was scoped (and thus renamed to isMe_fksljfs).
2022-09-06 13:56:54 +02:00
5fb294e7d7
Use native shell commands for clean/clean-all 2022-09-05 04:43:40 -04:00
40683b0e10
update tsc-alias 2022-09-05 04:28:08 -04:00
892ea5e2bf
upgrade eslint and typescript-related dependencies
Changelog: Changed
2022-09-05 03:15:16 -04:00
19f8f095c7
client: add return types to functions 2022-09-04 19:31:11 -04:00
db5019d3ec
client: fix various lints
Mostly removing unused imports and adding function return types
2022-09-04 15:42:07 -04:00
d1f3353771
client: fix various lints 2022-09-03 22:14:30 -04:00
6c4655693e
auto-fix lints with eslint 2022-09-03 21:56:57 -04:00
500c0be179 client: fix alt text for non-image files
Reviewed-on: FoundKeyGang/FoundKey#106
Changelog: Fixed
2022-09-03 23:37:28 +00:00
039f6db40a
client: consolidate about & notifications pages
Reviewed-on: FoundKeyGang/FoundKey#104
Changelog: Changed
2022-09-04 00:30:02 +02:00
00c8eff611
Client: alt text dialog properly handles non-images
Changelog: Changed
2022-09-04 00:07:41 +02:00
525c8391a6
rename prop: image -> file 2022-09-03 23:56:41 +02:00
892a900aee
remove dead code 2022-09-03 17:55:54 -04:00
e1ebd1f75f
revert tsconfig declaration to false 2022-09-03 17:50:33 -04:00
74ee7c84d6
make defult about page tab 'overview' if invalid 2022-09-03 17:39:55 -04:00
29e3d8175f
make tab default to 'all' if not valid 2022-09-03 17:31:14 -04:00
c04b34ba67
Enable incremental builds 2022-09-03 15:37:54 -04:00
f0ba8d1877
Make mentions and direct notes accessible via url fragments 2022-09-03 15:15:42 -04:00
f2ebf77ab1
re-add federation and emojis to menu 2022-09-03 15:15:30 -04:00
9e0936284c
Re-add in mentions and direct notes to menu 2022-09-03 14:29:55 -04:00
syuilo
018aa6381d
enhance(client): メニュー整理
Resolve #6389
Fix #8035
2022-09-03 14:13:08 -04:00
5e320e49ab
client: improve emoji picker search
Reviewed-on: FoundKeyGang/FoundKey#101
Changelog: Added
2022-09-03 16:37:20 +02:00
89f26173c3
client: fix fetching value in photos.vue 2022-09-03 00:20:26 -04:00
8f775defaf
client: fix lints in photos.vue 2022-09-03 00:19:02 -04:00
ed8e346ff9 client: delay/batch emoji picker searches
This is particularly important for users that set limit to 0 (unlimited).
2022-09-01 13:38:07 -04:00
33ed6e98a7 client: make emoji picker suggestion count configurable 2022-09-01 13:20:20 -04:00
538e81db56 client: optimize, simplify and smartify emoji picker search
The query is split up on spaces, and we search for each of those terms,
in order, anywhere in the emoji name or any aliases/keywords.

This is done in a single filter pass against a compiled regex,
making the process reasonably performant.
Based on rough estimates, it should be between 2 and 5x faster
than the old implementation, depending on several factors.

There is a natural space left in to sort by relevancy (not done yet).
It should also be easy to make the number of matches shown configurable.
The number of matches is relevant, especially pre-sort.
Another consideration is to delay the calculation by up to 300ms.
2022-09-01 08:21:43 -04:00
c5cf19cc20 fix build 2022-08-31 13:40:41 -04:00
58ecb72b82 fix typo in url-preview-popup 2022-08-31 12:30:04 -04:00
c1530fe9e5
refactor url-preview-popup to composition API 2022-08-31 14:53:17 +02:00
b712623aa4
fix lints in post-form-attaches and drive.file 2022-08-31 07:01:03 -04:00
9a22905e85
client: refactor classic.header.vue to composition api 2022-08-30 16:45:53 -04:00
20f45e0179
client: refactor user-preview to composition api 2022-08-30 18:08:55 +02:00
12c811514d
client: refactor page-preview to composition api 2022-08-29 16:07:34 -04:00
14b90668b9
merge: use separate component for birthday dates
FoundKeyGang/FoundKey#92
2022-08-29 07:35:36 +02:00
6315ebc45b
fix: vue/attributes-order lint in instance-ticker 2022-08-28 16:52:13 -04:00
1d380ae344
use i18n.t instead of $t 2022-08-28 15:38:49 -04:00
b66ae3847b
refactor: use separate component for birthday dates
Resolves: FoundKeyGang/FoundKey#90
2022-08-28 15:27:39 -04:00
218c3a527d
merge: improve emoji picker UI performance 2022-08-28 19:22:35 +02:00
vib
62ff65fbf4
perf: use v-once in emoji picker window 2022-08-28 18:49:13 +03:00
41414b4576
chore: remove s-age dependency
This isn't being used anymore since
4e41fa8767.
In any case, age calculation really doesn't need to involve a 3rd party
library.

Ref: FoundKeyGang/FoundKey#90
2022-08-28 11:35:18 -04:00
10caf861e8 Merge pull request 'Workspaces refactor' (#86) from refactor/workspaces into main
Reviewed-on: FoundKeyGang/FoundKey#86
2022-08-28 14:46:45 +00:00
bc0f0bf08f
add foundkey-js to each workspace package.json 2022-08-26 16:38:41 -04:00
247a01dfe6
remove subproject yarn.locks 2022-08-26 16:05:11 -04:00
6bb3f39c36
migrate to Yarn 3.2.3 2022-08-26 15:24:29 -04:00
a424426857
client: Use foundkey-js instead of misskey-js 2022-08-26 01:25:56 -04:00
c1242cfde2
Fix build errors 2022-08-25 23:36:08 -04:00
7b33ee807e
refactor: window.vue to composition api 2022-08-25 21:28:14 -04:00
2e3bd6ddc2 feat: show real local info in instance ticker
add software info to client meta-config, "Foundkey" as default site name
2022-08-25 21:22:02 +00:00
09ebbe1d49 show software name and version in instance ticker 2022-08-25 21:22:02 +00:00
a74cd802fe
enhance: don't cut off long instance names
Instead of silently cutting of the name of the instance this should
properly ellipsize the name at the end of the available space.
2022-08-25 18:22:40 +02:00
f9eaf56491
refactor: add missing semicolons to type 2022-08-25 18:02:30 +02:00
75545b4b87
merge: refactor: slot.vue to composition api
FoundKeyGang/FoundKey#82
2022-08-25 10:36:20 +02:00
6fed87f85d
fix pagination.vue lints 2022-08-22 23:16:56 -04:00
b0fdedb264
fix lints in folder.vue 2022-08-22 22:04:49 -04:00
1521bc881c refactor: renote-button to composition api 2022-08-21 06:38:14 +00:00
7621e5461f
refactor: button.vue to composition api
Disabled require-default-prop for the to prop since it's only used when
link is true.

use null as default for props.to

FoundKeyGang/FoundKey#79
2022-08-21 00:19:39 +02:00
6fde66df1a refactor: emoji to composition api 2022-08-20 21:46:13 +00:00
5152ff89ee
refactor: slot.vue to composition api 2022-08-20 16:08:20 -04:00
f236653c26
add return type to toggle in checkbox.vue 2022-08-20 14:15:36 -04:00
16e9cf91f7 refactor: url.vue to composition api 2022-08-20 15:34:17 +00:00
6a3d98fbc1
refactor: remove reaction-icon component
The removed component does not contain any special script or styling.
It's template only contains a MkEmoji. To remove this unnecessary
indirection, the components was replaced with the MkEmoji component.
2022-08-20 16:03:09 +02:00
ffc23ae458
refactor: post-form-dialog.vue to composition api 2022-08-20 00:58:17 -04:00
e8414e8c8d
refactor: formula-core.vue to composition api 2022-08-19 16:02:51 -04:00
b3b8e56092
refactor: formula.vue to composition api 2022-08-19 15:58:16 -04:00
aa56cf5813
Fix lints in timeline and sub-note-content 2022-08-19 15:36:22 -04:00
b79cb711ac
add return type to tick() in time.vue 2022-08-19 15:05:24 -04:00
fd2028df48
fix: nonblock-statement-body-position lint in time.vue 2022-08-19 14:44:56 -04:00
01a4f3a7b8
enhance page editor
Using a plain textarea looks ugly and it is very small by default. Using
a MkTextarea fixes this.

For the readonly view, the individual fields should respectively be readonly.
2022-08-18 17:34:21 +02:00
c781210ea1
fix router for new page editor path 2022-08-18 17:34:20 +02:00
5489ce4053
client: siplify page display 2022-08-18 17:34:19 +02:00
b662ce8460
client: simplify page editor 2022-08-18 17:34:18 +02:00
bc79d721c8
remove client code related to pages 2022-08-18 17:31:51 +02:00
1ca6ad080c
fix: binding is not defined 2022-08-18 15:15:17 +02:00
b137a39160
merge: remove promo notes
FoundKeyGang/FoundKey#62
2022-08-18 14:26:48 +02:00
74c71f5ce5
Remove twitter embed
Fixes FoundKeyGang/FoundKey#46
2022-08-17 12:35:11 -04:00
298febeb9c
enhance: add re-collapsing to quoted notes 2022-08-15 22:28:29 +02:00
1cb5856f7c Fix birthday time offset and date locale
The user's configred birthday is stored as UTC time, so use that for display as well.
This means the birthday won't be shown as a day behind or ahead depending on the user's browser timezone.

Also use the locale configured in the user's client settings in Misskey for date formatting.
2022-08-15 13:11:53 -04:00
a07b464690
fix missed parentheses 2022-08-14 17:32:25 +02:00
4e41fa8767
refactor user page to use MkTime component 2022-08-14 14:46:18 +02:00
5548b585df
refactor MkTime component
Add the datetime property to the HTML5 time tag for a machine readable
timestamp.

Add the ability to display only the date or the time.

Change the computation of the relative time string to have precision
based on the format chosen based on the choice above. Also changed the
threshold for what is considered a date in the future so people do not
see "future" on notes they just created and thus try to stop them from
time traveling.
2022-08-14 14:14:29 +02:00
39b85f4a08
client: remove _prId_
That property was set on promo notes in the backend. Since it is no longer
being used it should also be removed from the client.
2022-08-14 13:14:17 +02:00
f0bdd9666f
remove empty import statements 2022-08-14 12:26:18 +02:00
9e6bc30a66 client: remove unused windowHeader references
All of them exist in separate header/body components.
Changed to have the entire component have the same background,
rather than setting it twice.
2022-08-12 21:25:06 +00:00
8d99f69c90 client: remove _acrylic
Acrylic is defined as having a background
similar to panel + transparency and backdrop.
Simply change everything that is _acrylic to be _panel instead.
2022-08-12 21:25:06 +00:00
7abad139f8 fix: uploadFile when folder is undefined
In uploadFile, folder can be undefined when uploading to the parent
folder.
2022-08-12 21:21:38 +00:00
e028a852f6
remove more code referencing promo notes 2022-08-12 19:39:48 +02:00
2209490cc8
client: fix syntax error in reaction-icon.vue 2022-08-12 09:07:13 +02:00
5b4c0ffdf3
client: fix some lints
Mostly focused on "@typescript-eslint/no-unused-vars" but also fixed some
other lints along the way.
2022-08-12 08:35:22 +02:00
7f806ca06b Remove client promotion code 2022-08-11 23:15:56 +02:00
534666f762 remove allowEmpty 2022-08-11 04:07:29 -04:00
21b78274aa more syntax fixes 2022-08-10 20:57:20 -04:00
091bf0f77b fix syntax error 2022-08-10 20:49:40 -04:00
ed52a39476 Remove unneeded imports/return annotations 2022-08-10 20:25:30 -04:00
0ce09d6753 refactor: post-form-attaches to composition api 2022-08-10 20:25:21 -04:00
4934303956
remove unused code 2022-08-11 00:38:56 +02:00
3e7285c8d5
remove unnecessary vue imports
> `defineProps` and `defineEmits` are compiler macros only usable inside
> `<script setup>`. They do not need to be imported, and are compiled away
> when `<script setup>` is processed.

-- https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits
2022-08-11 00:36:34 +02:00
609fb91ca1
fix some lints automatically 2022-08-10 22:42:30 +02:00
e82d12f44b
fix missing import 2022-08-10 17:02:17 +02:00
d6fb9619f6
refactor group pages to composition API
This solves some errors from just reinstating the pages since the new
routing and tab implementation have a different API.
2022-08-10 16:58:18 +02:00
7a80015225
fix lint "no-param-reassign" 2022-08-10 16:36:54 +02:00
4f9ba4b8a8
fix: readd group pages 2022-08-10 16:36:24 +02:00
7f5d7ffd93 Address review feedback 2022-08-09 21:25:02 +00:00
e6daf45cd7 Use optional chaining for onMounted sidebar 2022-08-09 21:25:02 +00:00
4fcbf3af36 refactor: classic.sidebar.vue to composition api 2022-08-09 21:25:02 +00:00
cbefddc071
fix: copy visibility for renotes
The backend does not allow follower only and direct notes to be renoted
but these are prohibited for the renote button anyway.
2022-08-05 08:36:59 +02:00
a3a3cb7258
remove --quiet flag from eslint
This flag means to hide warnings which is not generally desirable.
Even if warnings do not affect the end result of running CI it would
still be nice to be able to see the warnings when running the lints
normally or in CI.
2022-08-04 00:20:59 +02:00
4fbe2e065e
client: fix lint "quotes" 2022-08-03 22:48:13 +02:00
585e4f5c42
fix textarea not updating properly
fixes FoundKeyGang/FoundKey#54
2022-08-03 22:29:40 +02:00
4122d90f56
fix typo 2022-08-02 21:46:39 +02:00
646b8e08c0
fix another typo in import 2022-08-02 17:06:25 +02:00
f3a602c384
fix typo in import 2022-08-02 14:37:31 +02:00
aa2f401a85
refactor: reduce use of global variables 2022-08-02 12:02:28 +02:00
a24e0e0648
client: refactor form suspense to composition API 2022-08-02 11:50:46 +02:00
9b5d740530
refactor visitor ui kanban to composition API 2022-08-02 11:49:19 +02:00
455758e542
remove unused visitor ui variant 2022-08-02 11:49:10 +02:00
30d8bc9259 refactor: welcome.setup.vue to composition api 2022-08-02 09:16:45 +00:00
a615a76cf1
fix: missing parenthesis 2022-08-02 09:31:36 +02:00
288049e2dc
refactor: reduce usage of i18n global variables 2022-08-01 21:45:05 +02:00
3a07c13ac6
refactor: remove unused imports, remove use of global variables 2022-08-01 21:38:09 +02:00
2e71083823
refactor classic widgets to composition API 2022-08-01 21:34:38 +02:00
bcb07d819f
refactor pages/miauth.vue to composition API 2022-08-01 21:18:46 +02:00
751921e24f
make emoji picker case insensitive
fix FoundKeyGang/FoundKey#50
2022-08-01 11:06:46 +02:00
ba18589986
client: fix lints 2022-08-01 00:28:32 +02:00
c9f41f737d
fix: use correct closing quote 2022-08-01 00:08:56 +02:00
ce45f9f1b0
remove unused code 2022-07-31 23:42:56 +02:00
ca524a050e
remove unused scripts 2022-07-31 23:03:21 +02:00
225cd3caef
refactor pages/page-editor/page-editor.container.vue to composition API 2022-07-31 14:31:30 +02:00
5db59ba560
refactor pages/emojis.category.vue to composition API 2022-07-31 14:04:29 +02:00
1671b7123e
remove unnecessary tabbing
Probably there were multiple tabs here before, but now there is only one thing
here, so having tabs makes no sense.
2022-07-31 14:02:58 +02:00
a752dcab30
fix lints from refactoring
closes FoundKeyGang/FoundKey#48

Co-authored-by: Francis Dinh <normandy@biribiri.dev>
2022-07-31 13:35:07 +02:00
15ac0fb303 fix: modal src should not be null
See: FoundKeyGang/FoundKey#40 (comment)
2022-07-31 00:29:44 +00:00
09b844035c
refactor pages/user/index.photos.vue to compositon API 2022-07-31 00:19:00 +02:00
0cf6df8980
refactor pages/user/clips.vue to composition API 2022-07-30 23:35:35 +02:00
dc9bfff337
fix: provide feedback when marking all notifs as read
See also https://github.com/misskey-dev/misskey/issues/8653
2022-07-30 23:26:32 +02:00
10bf05563b
fix: remove unused import 2022-07-30 22:59:03 +02:00
340420c48a
refactor components/widgets.vue to composition API 2022-07-30 22:37:29 +02:00
9fc3fcaf18 refactor: welcome.timeline.vue to composition api 2022-07-30 12:24:54 +00:00
9e8b59f886
refactor: sample.vue to composition api 2022-07-29 12:46:58 -04:00
16833b8cd8 refactor: header.vue to composition api 2022-07-29 12:11:54 +00:00
6c8eb4c4df refactor: object-view.value.vue to composition api 2022-07-29 12:11:41 +00:00
a485d13e8a refactor: common.vue to composition api 2022-07-29 12:10:40 +00:00
86b94e213e
fix: lint errors in modal.vue 2022-07-28 15:47:39 -04:00
9abbe94108
client: search button is a no-op
Don't be evil.
reference: FoundKeyGang/FoundKey#2 (comment)
2022-07-28 15:41:16 +02:00
8c198f648b
fix: add missing setup property, use done state in remote follow page 2022-07-28 15:23:07 +02:00
1f3b3abf68 refactor: visitor.vue to composition api 2022-07-28 10:16:42 +00:00
9a236bd862
refactor components/form/textarea.vue to composition API 2022-07-28 12:01:15 +02:00
670c229cd0
refactor pages/follow.vue to composition API 2022-07-28 11:59:10 +02:00
225b56706d
MkError can be non-retry-able 2022-07-28 11:59:10 +02:00
2e1385930c
refactor pages/auth.vue to composition API 2022-07-28 11:59:09 +02:00
ddebf5a049
clean up refactor: use i18n and remove unused import 2022-07-28 11:59:09 +02:00
2f4704ccff Revert "Add padding"
This reverts commit d6a5eb4666.
2022-07-27 20:18:14 +00:00
aac8f209c8 Revert "only add padding for left and right sides"
This reverts commit ebfe2162e9.
2022-07-27 20:18:14 +00:00
0e7d1a5d7b Add padding for all page elements
Instead of just padding the page text element, pad all of the elements
of the page by 1em.
2022-07-27 20:18:13 +00:00
0ece67b04c
refactor pages/auth.form.vue to composition API 2022-07-25 21:57:19 +02:00
9ee609d700
Merge: enhance privacy of notes
FoundKeyGang/FoundKey#14
2022-07-25 18:15:21 +02:00
46fff77acc
client uses new API for child notes depth 2022-07-25 16:41:47 +02:00
2fe64c1150
Refactor components/page/page.textarea.vue to composition API
FoundKeyGang/FoundKey#26
2022-07-25 07:51:31 +02:00
6d3181f983
Refactor components/page/page.text.vue to composition API
FoundKeyGang/FoundKey#25
2022-07-25 07:50:22 +02:00
d96baf1672 Merge branch 'main' into refactor/page.textarea.vue 2022-07-24 21:25:22 +00:00
d32228a347
Use immediate: true for page.textarea.vue::text 2022-07-24 15:37:21 -04:00
6ffbabeedc
use immediate: true for watch 2022-07-24 11:58:15 -04:00
cff82ea52e
refactor: page.textarea.vue to use composition api 2022-07-24 00:50:20 -04:00
ebfe2162e9 only add padding for left and right sides 2022-07-23 17:57:04 -04:00
d6a5eb4666 Add padding
This will let not have text right up against the edge.
2022-07-23 17:51:53 -04:00
d79fe1dee0 refactor: page.text.vue to use composition api 2022-07-23 17:42:00 -04:00
3e05740bee
refactor queue chart to composition API 2022-07-23 23:03:20 +02:00
63591da33e
refactor: colours in queue chart 2022-07-23 23:00:59 +02:00
128d0f0d4e
remove isHidden and its uses
The `isHidden` attribute is not being set any more and is thus removed.
Handling in the client is no longer necessary.
2022-07-23 22:28:39 +02:00
2f432dce65 refactor: link.vue to use composition api 2022-07-23 20:26:45 +00:00
bbb16208ab remove async from ok() 2022-07-23 20:23:45 +00:00
95148cf647 refactor: use emit for MkModal @closed 2022-07-23 20:23:45 +00:00
b64f266483 refactor: media-caption component as composition api 2022-07-23 20:23:45 +00:00
Chloe Kudryavtsev
0ae09f2e80 Revert "additional background for acrylic popups if unsupported"
This reverts commit 10d401afc2.
See: FoundKeyGang/FoundKey#22
2022-07-22 10:15:42 -04:00
bfd9c7404b
form-dialog: set type of result for 'done' event to Record<string, any> 2022-07-21 18:54:43 -04:00
150f373ebf
replace one more object type 2022-07-21 21:17:39 +02:00
fef2d9173e
Merge: Refactor form-dialog.vue to Composition API
FoundKeyGang/FoundKey#17
2022-07-21 21:13:03 +02:00
2d245d62cf form-dialog: use Record<string, any> for form prop 2022-07-20 19:23:17 -04:00
9c411d181a
fix: volume sliders
Fixed a typo that made a required property be undefined.
Also reduced code duplication.

Fixes FoundKeyGang/FoundKey#18
2022-07-21 01:18:08 +02:00
syuilo
a12acf53ef
refactor(client): formatting and replace global $ts 2022-07-21 00:45:30 +02:00
929203b2f3 Remove leftover comments from form-dialog 2022-07-20 18:17:24 -04:00
d29a0dad8f Refactor form-dialog.vue to use Composition API 2022-07-20 18:15:55 -04:00
7e186dae69
refactor: use autofocus parameter
Using the `ref` seems to be broken but using the autofocus parameter
seems to fix it.
2022-07-20 23:49:55 +02:00
a988f6bda0
fix: not logged in clients send correct header 2022-07-20 18:40:36 +02:00
f3e196528f
Merge bearer-authentication
foundKeyGang/foundKey#15
2022-07-20 15:10:47 +02:00
syuilo
1477cb54b5
enhance(client): suspense
Fix https://github.com/misskey-dev/misskey/issues/8817
2022-07-19 18:56:50 +02:00
syuilo
8ed288cb22
fix(client): switch to receive email notifications
Fix https://github.com/misskey-dev/misskey/issues/8474
2022-07-19 18:40:36 +02:00
748a830937
client: display URLs in report 2022-07-19 17:18:19 +02:00
9ca504784a
keep URL of reported object separate
Instead of putting the URL in the report text, it is stored separately
so that users do not accidentally change or remove it.

This way it can easily be used when forwarding reports to different
instances to tell them what exactly was reported.
2022-07-19 17:18:18 +02:00
ecbb766df6
refactor: signup component as composition api 2022-07-19 10:35:11 +02:00
27be5e0892
fix collapsing long notes 2022-07-19 10:02:40 +02:00
e5f41ece7e
fix appending to pagination component
FoundKeyGang/FoundKey#16
2022-07-19 09:21:38 +02:00