GRL78
9432c82386
Change address mail to contact us ( #1282 )
2021-07-19 17:05:23 +02:00
David Négrier
dbd5b80636
Adding support for "readableBy" and "writableBy" in back
...
This means that we are now loading maps from server side.
2021-07-19 10:16:43 +02:00
GRL
0d3c697add
Merge branch 'develop' of github.com:thecodingmachine/workadventure into GlobalMessageToWorld
2021-07-19 10:01:13 +02:00
David Négrier
5c7ea7b258
Merge branch 'develop' of github.com:thecodingmachine/workadventure into scripting_api_room_metadata
2021-07-16 11:22:36 +02:00
David Négrier
c9fa9b9a92
Migrating away from the notion of public/private URL in WorkAdventure Github repository
...
The notion of public/private repositories (with /_/ and /@/ URLs) is specific to the SAAS version of WorkAdventure.
It would be better to avoid leaking the organization/world/room structure of the private SAAS URLs inside the WorkAdventure Github project.
Rather than sending http://admin_host/api/map?organizationSlug=...&worldSlug=...&roomSlug= ...., we are now sending /api/map&playUri=...
where playUri is the full URL of the current game.
This allows the backend to act as a complete router.
The front (and the pusher) will be able to completely ignore the specifics of URL building (with /@/ and /_/ URLs, etc...)
Those details will live only in the admin server, which is way cleaner (and way more powerful).
2021-07-15 17:07:47 +02:00
GRL
e43ea3aa5e
Graphic upgrade of the global message console
...
Fix: error if LoginScene doesn't exist
2021-07-15 15:09:35 +02:00
Kharhamel
41a1f56bd5
Merge pull request #1111 from thecodingmachine/svelteChat
...
FEATURE: migrated the chat window to svelte
2021-07-13 11:25:38 +02:00
GRL
f7127bfb5a
Graphic upgrade 2
2021-07-13 11:05:34 +02:00
kharhamel
3cfbcc6b02
FEATURE: migrated the chat window to svelte
2021-07-07 18:07:58 +02:00
David Négrier
e65e8b2097
First version with variables that actually work
2021-07-07 17:17:28 +02:00
David Négrier
ae9af56661
Merge pull request #1264 from thecodingmachine/UpdateShowHideLayer
...
Show/Hide Layer now unset collision and can show/hide all the layer in a group layer
2021-07-07 17:15:41 +02:00
GRL
64c569c42f
Add documentation and CHANGELOG
...
Modify error message
2021-07-07 17:06:23 +02:00
GRL
41c60579a6
Merge branch 'develop' of github.com:thecodingmachine/workadventure into UpdateSetTiles
2021-07-07 17:00:10 +02:00
GRL
e50292a2ba
Add documentation
...
No second parameter
2021-07-07 16:58:54 +02:00
GRL
6f6ad949ca
Merge branch 'develop' of github.com:thecodingmachine/workadventure into UpdateShowHideLayer
2021-07-07 16:34:36 +02:00
GRL
24811e0a31
SetProperty delete a property where tha value is undefined and load the map of exitUrl property
2021-07-07 14:59:40 +02:00
GRL
bef5e139c0
SetTiles can now set a tile to null so that there is no more tile.
2021-07-07 14:42:17 +02:00
GRL
d51ac45079
Show/Hide Layer now unset collision and can show/hide all the layer in a group layer
2021-07-07 14:26:53 +02:00
David Négrier
5116b82e77
Merge branch 'develop' of github.com:thecodingmachine/workadventure into scripting_api_room_metadata
2021-07-07 11:55:00 +02:00
David Négrier
34cb0ebf39
Users blocking now rely on UUID rather than ID
...
This way, if a user A blocks another user B, if user B refreshes the browser or leaves and re-enters the room, user B will still be blocked.
As a side effect, this allows us to completely remove the "sockets" property in the SocketManager on the Pusher.
2021-07-07 11:24:51 +02:00
David Négrier
19bd1045e1
Merge branch 'develop' of github.com:thecodingmachine/workadventure into scripting_api_room_metadata
2021-07-06 17:24:16 +02:00
David Négrier
46e6917df6
Adding a playersStore
...
The playerStore can be useful to get the details of a given player from its ID.
2021-07-06 17:13:08 +02:00
David Négrier
cb78ff333b
Adding client side check of setVariable with writableBy property
2021-07-06 10:58:12 +02:00
David Négrier
0aa93543bc
Adding warning if "template" object is used as a variable
2021-07-05 18:48:26 +02:00
David Négrier
bf17ad4567
Switching setVariable to a query and fixing error hangling in query mechanism
2021-07-05 18:29:34 +02:00
David Négrier
c30de8c6db
Adding support for default variables values
2021-07-05 17:25:23 +02:00
David Négrier
62a4814961
Migrating WA.player.getCurrentUser and WA.room.getCurrentRoom to direct property access and WA.room.getMap
2021-07-05 11:53:33 +02:00
jonny
310e131a6e
eslint restart
2021-07-02 19:03:34 +02:00
jonny
369d453455
Merge remote-tracking branch 'remotes/upstream/develop' into trigger-message-refv3
2021-07-02 18:49:22 +02:00
David Négrier
ea1460abaf
Adding variables (on the front side for now)
2021-07-02 17:36:43 +02:00
David Négrier
280c59e6b5
Changing callback signature of registerAnswerer so that it can return a value and not necessarily a promise.
2021-07-02 17:26:28 +02:00
David Négrier
5b4a72ea1f
Add new "query/answer" utility functions for the scripting API
...
So far, the scripting API was using events to communicate between WA and the iFrame.
But often, the scripting API might actually want to "ask" WA a question and wait for an answer.
We dealt with this by using 2 unrelated events (in a mostly painful way).
This commit adds a "queryWorkadventure" utility function in the iFrame API that allows us
to send a query, and to wait for an answer. The query and answer events have a unique ID to be
sure the answer matches the correct query.
On the WA side, a new `IframeListener.registerAnswerer` method can be used to register a possible answer.
2021-07-02 16:49:22 +02:00
GRL
8644389d7e
remove unnecessary conversion type
2021-07-02 14:45:27 +02:00
GRL
c5b5326480
setProperty function doesn't set an empty array if property doesn't exist
2021-07-02 14:40:18 +02:00
GRL
e1611969ce
Merge branch 'develop' of github.com:thecodingmachine/workadventure into jonnytest1-tiles-start-positions
2021-07-02 14:35:28 +02:00
GRL
01d02124d1
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2
2021-07-01 11:38:33 +02:00
David Négrier
8f3d9277ac
Merging master into develop
2021-06-29 18:39:43 +02:00
GRL
95bd639124
More statement
2021-06-29 16:50:33 +02:00
Lurkars
c264364752
Twemoji Emote Menu
2021-06-29 08:37:01 +02:00
David Négrier
1e57028e6e
Renaming changeTile
to setTiles
2021-06-28 14:58:49 +02:00
GRL
ed84dacb9c
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2
2021-06-28 12:01:08 +02:00
GRL
b182a08ca2
correction from review
2021-06-28 09:33:13 +02:00
jonny
bbdf0a1289
fixed merge conflict
2021-06-25 18:20:16 +02:00
jonny
7f61e9addd
Merge remote-tracking branch 'remotes/upstream/develop' into tiles-start-positions
2021-06-25 18:14:40 +02:00
jonny
769e0fcc29
refactor to position object
2021-06-25 18:03:43 +02:00
jonny
c7fa5cab8b
cleanup
2021-06-25 17:57:09 +02:00
jonny
f536d538ea
added backwards compatible check and maps
2021-06-25 17:35:42 +02:00
David Négrier
ac97cf5772
Fixing a lock when the player is moving from one room to the other
...
This was due to a store not properly unsubscribed when changing rooms.
2021-06-24 17:02:57 +02:00
David Négrier
8c8649b584
Merge pull request #1232 from thecodingmachine/fixCollides
...
Fix collides
2021-06-24 15:19:10 +02:00
kharhamel
a094e16c1f
FIX: solved a menu crash
2021-06-24 12:14:28 +02:00
GRL
dcc7f2a686
Fix collides
2021-06-24 12:10:44 +02:00
GRL
c79603d7fa
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2
2021-06-24 11:55:07 +02:00
David Négrier
2f282e3469
peerStore loading order caused issues. Fixed in GameScene (+ extracted a few stores in their files)
2021-06-24 11:54:09 +02:00
GRL
4903911d62
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2
2021-06-24 11:33:29 +02:00
GRL
a666bf310b
Change Tiles
2021-06-24 11:31:29 +02:00
David Négrier
e4708149e0
Merge branch 'develop' of github.com:thecodingmachine/workadventure into svelte_video_overlay
...
# Conflicts:
# front/package.json
# front/src/Components/App.svelte
# front/src/Phaser/Game/GameScene.ts
# front/src/Phaser/Menu/MenuScene.ts
# front/src/WebRtc/MediaManager.ts
2021-06-24 10:49:55 +02:00
jonny
5472d220ba
added trigger message code
2021-06-23 17:32:32 +02:00
jonny
64847cd465
adjusted null if no hash
2021-06-23 12:42:24 +02:00
jonny
b20b4abb9e
allow start hashes in tiles
...
# Conflicts:
# front/src/Phaser/Game/GameScene.ts
2021-06-23 12:37:50 +02:00
GRL
24cc340cb9
Merge branch 'metadataScriptingApi' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2
2021-06-23 12:02:29 +02:00
GRL
2a2cea2cd5
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-06-23 11:40:08 +02:00
GRL
bdb32a29e1
New methods refactored
2021-06-23 11:32:11 +02:00
David Négrier
b7934d9d03
Merge branch 'develop' of github.com:thecodingmachine/workadventure into functional-tile-properties
2021-06-23 10:40:59 +02:00
GRL
b50df10a49
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-06-23 09:25:13 +02:00
GRL
85fe92f604
Merge branch 'menu-commands-apiref' of github.com:jonnytest1/workadventure into metadataScriptingApi
2021-06-23 09:18:20 +02:00
David Négrier
ee07f637fa
Merge pull request #1219 from thecodingmachine/rex_outline
...
Putting an outline on the character name
2021-06-22 18:14:27 +02:00
David Négrier
1ef1a1cb22
Removing useless import
2021-06-22 17:47:54 +02:00
David Négrier
dc0f3feabf
Putting an outline on the character name
...
In the future, we might want to put an outline on the whole character body but this is harder as the body is actually a container and so we would need to turn this container into a sprite first.
2021-06-22 17:15:18 +02:00
GRL
cec7087fc2
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-06-22 16:28:45 +02:00
GRL
0728d462a5
Merge branch 'develop' of github.com:thecodingmachine/workadventure into adminSvelte
2021-06-22 16:08:06 +02:00
David Négrier
eb526f5b67
Upgrading animatedtiles plugin to trigger an event when an animation occurs and setting the scene to dirty state
2021-06-22 14:21:15 +02:00
GRL
ca3f5c599a
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-06-22 14:00:19 +02:00
GRL
0cc7ed1647
Merge branch 'develop' of github.com:thecodingmachine/workadventure into adminSvelte
2021-06-22 10:36:16 +02:00
jonny
ba1bcf226a
menu command api
2021-06-21 18:22:31 +02:00
David Négrier
e4dab5fd0d
Merge branch 'develop' of github.com:thecodingmachine/workadventure into feature/animated-tiles
...
# Conflicts:
# front/package.json
# front/tsconfig.json
# front/yarn.lock
2021-06-21 17:26:00 +02:00
GRL
232fd33ec8
Migrating ConsoleGlobalMessageManager in svelte
2021-06-21 17:19:27 +02:00
David Négrier
77a4d23301
Renaming biggestAvailableArray to biggestAvailableArea + removing duplicated code.
2021-06-21 14:07:03 +02:00
jonny
5bf943ce77
converted cache to constant lookup time
2021-06-20 19:14:04 +02:00
jonny
92485a02cf
tileIndex setting got merged out
2021-06-19 15:46:32 +02:00
jonny
c1d9b2c9ed
coverted property map to object
2021-06-19 15:41:58 +02:00
jonny
27ccdf165c
fixed merge imports
2021-06-19 15:24:27 +02:00
jonny
74dda8ab69
allow properties on tiles
...
# Conflicts:
# front/src/Phaser/Game/GameMap.ts
# front/src/Phaser/Map/ITiledMap.ts
2021-06-19 15:23:30 +02:00
David Négrier
227575043b
Removing dead code
2021-06-17 18:56:30 +02:00
David Négrier
d6ec0d22d3
Code cleanup
2021-06-17 10:35:08 +02:00
David Négrier
d533894a74
Fixing warnings and moving biggest area compute in store
2021-06-17 10:13:23 +02:00
David Négrier
3b278d0498
Removing dead code
2021-06-17 10:07:27 +02:00
David Négrier
5cf5e0ce2b
Changing the way we focus a video element.
...
Now, only one video element can be important.
2021-06-17 10:07:27 +02:00
David Négrier
e7b0f859a5
Migrating the video overlay in Svelte (WIP)
2021-06-17 10:07:27 +02:00
jonny
7712bd685b
fixed merge errors
2021-06-15 15:19:45 +02:00
jonny
238f333b81
Merge remote-tracking branch 'remotes/workadventure-main/develop' into load-page-api
...
# Conflicts:
# front/src/Api/Events/IframeEvent.ts
# front/src/Api/IframeListener.ts
# front/src/Phaser/Game/GameScene.ts
# front/src/iframe_api.ts
2021-06-15 15:05:49 +02:00
kharhamel
dd45996f9c
FIX: improved the visit card, cleanup the code
2021-06-08 16:39:22 +02:00
kharhamel
c5f3cfe87c
FEATURE: clicking on another player show a contact card when possible
2021-06-03 17:58:21 +02:00
David Négrier
50e994c674
Attempt to switch bubble sound playing into Phaser
...
In iOS, we cannot trigger a playing sound if it does not start from a user gesture.
This is a huge bummer for a notification sound!
This is an attempt to switch sound playing to Phaser, which is using under the hood the WebAudio API.
This might solve the issue.
2021-06-03 15:40:44 +02:00
grégoire parant
2b13b764b4
Public texture ( #1093 )
...
* Public texture
- Front => Get texture when user connected on public method
- Front => Anonymous login will be make every connexion to get map details
- Pusher => `/anonymLogin` permit to get map details and public texture load in customize scene
* Improve texture local user
- Permit to keep previous texture get with 'register' link
* Texture public loading
- Texture will be load with Room class
- Fix issue on lazzy loading atttempt
* Remove async await useless
2021-06-03 13:07:52 +02:00
kharhamel
b8ffe5038c
FIX: on a touch screen, the menu emote will not open if more than one pointer is used
2021-06-03 10:22:06 +02:00
David Négrier
267d0a2cd1
Moving audio message to Svelte
2021-06-02 16:46:28 +02:00
GRL
9a5300dd2d
helpCameraSettingPopup in svelte with nes-css
2021-06-01 11:07:52 +02:00
David Négrier
9d6b597552
Starting working towards migrating the help camera popup
2021-06-01 09:08:02 +02:00
GRL
b8873d1277
selectCompanionScene work with svelte
2021-05-31 12:06:11 +02:00
GRL
471ff2bb01
Merge branch 'develop' of github.com:thecodingmachine/workadventure into resizeSelect
2021-05-31 10:21:15 +02:00
GRL
1ac108a9b8
correction of resize select character and companion by David
2021-05-31 10:20:48 +02:00
kharhamel
12da6ddd6c
FEATURE: improved the display of player names, with the font-family 'Press start 2P' and gray outlines
2021-05-28 15:33:10 +02:00
GRL
276b404dd9
Merge remote-tracking branch 'origin/metadataScriptingApi' into metadataScriptingApi
2021-05-28 12:13:25 +02:00
GRL
858a513569
correction of adding custom menu
...
correction of setProperty
updating CHANGELOG
updating api-reference
2021-05-28 12:13:10 +02:00
David Négrier
5d8d729bd7
Uncommenting action
2021-05-27 18:25:27 +02:00
GRL
6dcb0d3750
first step to change tile
2021-05-27 17:06:39 +02:00
GRL
9cd3ff1d31
Merge branch 'correct-merge' into metadataScriptAPIV2
2021-05-27 10:16:00 +02:00
GRL
acbe4f89a6
Merge branch 'update-game-tiles' into correct-merge
2021-05-27 09:45:25 +02:00
GRL
5565ddd3f4
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-05-26 17:22:37 +02:00
David Négrier
870f16f9c6
Merge branch 'develop' of github.com:thecodingmachine/workadventure into SoundInMapScript
2021-05-26 16:15:33 +02:00
David Négrier
fac6574cb5
Removing console.log and unused files
2021-05-26 16:08:43 +02:00
David Négrier
8af8ccd54b
Migrating MediaManager game part to Svelte store
2021-05-26 12:12:18 +02:00
David Négrier
28d78a7988
Switching MediaManager to using a Svelte store
...
This allows cleaner and more expressive code, especially regarding whether the webcam should be on or off.
2021-05-26 12:11:16 +02:00
David Négrier
4f4d2532b7
Merge pull request #1082 from thecodingmachine/disabling_physics_optim
...
Moving Physics optim to DirtyScene
2021-05-26 12:08:57 +02:00
David Négrier
bc19cbd525
Moving Physics optim to DirtyScene
...
The Physics engine is now disabled only if no sprites are moving (if they have no velocity).
Also, if a sprite is moving (if it has a velocity), the dirty state is set.
2021-05-26 12:00:27 +02:00
GRL
17261dfab6
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-05-26 10:58:25 +02:00
GRL
b4fa38bf8c
Merge remote-tracking branch 'origin/metadataScriptingApi' into metadataScriptingApi
2021-05-25 17:21:12 +02:00
GRL
a5cb93541a
correction from code review
2021-05-25 17:21:02 +02:00
kharhamel
595c5ca64d
now use custom emotes with tweens instead of transistions
2021-05-25 16:37:24 +02:00
GRL78
7c44d747de
Apply suggestions from code review
...
Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>
2021-05-25 11:02:25 +02:00
GRL
d4bc999c54
pause loading tileset on fly
2021-05-25 10:15:56 +02:00
GRL
36f0cd1a23
Revert "pause for loading tileset on the fly"
...
This reverts commit a3165a0540
.
2021-05-25 10:11:27 +02:00
GRL
a3165a0540
pause for loading tileset on the fly
2021-05-25 09:39:04 +02:00
GRL
d0aaa0620d
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-05-25 09:24:26 +02:00
DESKTOP-FMM8UI0\CLV
0c3b9ccfbf
Merge branch 'develop' of https://github.com/thecodingmachine/workadventure into SoundInMapScript
...
# Conflicts:
# front/src/Api/IframeListener.ts
# front/src/Phaser/Game/GameScene.ts
# front/src/iframe_api.ts
# maps/Tuto/scriptTuto.js
# maps/Village/Village.json
2021-05-21 17:45:26 +02:00
GRL
1110f4fb7f
Revert "Merge branch 'update-game-tiles' into metadataScriptingApi"
...
This reverts commit 796a9418d3
, reversing
changes made to 3506063e65
.
2021-05-21 16:24:48 +02:00
GRL
796a9418d3
Merge branch 'update-game-tiles' into metadataScriptingApi
2021-05-21 15:56:35 +02:00
GRL
3506063e65
first step on loading a tileset from a script
2021-05-20 17:09:10 +02:00
GRL
2f9cc393a7
Implementation of getTag of the current user
...
documentation of getTag
Adding map for test of getTag
2021-05-20 10:57:36 +02:00
kharhamel
d93b30f982
improved radial menu
2021-05-19 18:11:51 +02:00
kharhamel
35b37a6a88
Added a radial menu to run emotes
2021-05-19 15:17:50 +02:00
kharhamel
a1d52b4265
FEATURE: added the possibility toplay emotes
2021-05-19 15:17:03 +02:00
GRL
ce0a72c6ce
Merge branch 'menu-command-api' of github.com:jonnytest1/workadventure into metadataScriptingApi
2021-05-19 09:36:11 +02:00
GRL
aa78bf44ef
implementation of DataLayerEvent
...
update GetGameState to add nickname to the returned data
update GameMap to separate phaserLayer and mapLayer
2021-05-18 15:41:16 +02:00
GRL
201fcf6afa
Merge branch 'gamestate-api-read' of github.com:jonnytest1/workadventure into metadataScriptingApi
2021-05-18 15:18:35 +02:00
GRL
2ee62c9e9e
Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi
2021-05-18 11:50:03 +02:00
kharhamel
20ec609535
FIX: rejected map axios promises are now catched
2021-05-18 11:45:07 +02:00
GRL
3edfd5b285
GameState is now save in cache
...
HasPlayerMoved is send when the player is actually moving on the map every 200ms.
2021-05-18 11:33:16 +02:00
David Négrier
2ea731beeb
Merge pull request #1057 from thecodingmachine/physics_flag
...
Making sure Physics is not enabled several times
2021-05-18 10:26:32 +02:00
David Négrier
127a4759ac
Merge branch 'develop' of github.com:thecodingmachine/workadventure into menu-command-api
...
# Conflicts:
# front/src/Api/Events/IframeEvent.ts
# front/src/Api/IframeListener.ts
# front/src/iframe_api.ts
2021-05-18 10:16:44 +02:00
David Négrier
6128f1e431
Making sure Physics is not enabled several times
...
As part of an energy saving measure, we started disabling physics when the character is not moving and enabling physics again only when the character moves.
However, we enabled Physics on each frame the characeter was moving.
As a result, the Physics system would run several times, slowly slowing the computer down.
This fixes this issue by adding a flag to only enable Physics once.
2021-05-18 09:42:01 +02:00
David Négrier
24dfa2703d
Set a global dirty flag on resize
...
This adds a global "Dirty" flag at the Game level and sets it each time the ScaleManager is modified.
This fixes a bug where the game was not redrawn when a CoWebsite was opening/closing.
2021-05-18 09:20:38 +02:00
kharhamel
a23e72454d
FEATURE: added the env variable DISABLE_DIRTY_CHECKS
2021-05-17 14:47:34 +02:00
David Négrier
fe573893a1
Merge pull request #1039 from thecodingmachine/importsNotUsedAsValues
...
Setting "importsNotUsedAsValues": "error"
2021-05-13 19:43:34 +02:00
GRL
43aad4ab14
phaserLayers managed by Gamemap
...
Implementation of LayersFlattener
Implementation of Setting properties of a layer form script
Update show/hide layer form script
Update unit test of LayersIteratorTest
2021-05-12 14:30:12 +02:00
David Négrier
8c1e01566a
Upgrading all dependencies in front
...
Upgrading to Webpack 5, Typescript 4, ...
2021-05-12 10:35:14 +02:00
David Négrier
4d4f845b9e
Setting "importsNotUsedAsValues": "error"
...
Turning the "importsNotUsedAsValues" TS config value to "error".
This will require us to use `import type` instead of `import` when we are importing a value that is only used as a type (and therefore that is dropped by the Typescript compiler).
Why this change?
This is a requirement to be able to use Svelte in the future. See https://github.com/sveltejs/svelte-preprocess/issues/206#issuecomment-663193798
2021-05-12 09:13:25 +02:00
David Négrier
d2b122efe5
Merge pull request #1035 from thecodingmachine/improveDirtyScene
...
FIX: trackDirtyAnims now listen to more generic events
2021-05-11 17:08:29 +02:00
kharhamel
4ec5ad9e33
FIX: trackDirtyAnims now listen to more generic events
2021-05-11 16:44:31 +02:00
David Négrier
0c279750be
Merge branch 'master' of github.com:thecodingmachine/workadventure into develop
...
# Conflicts:
# front/src/Phaser/Game/GameScene.ts
2021-05-11 16:43:34 +02:00