Commit Graph

403 Commits

Author SHA1 Message Date
Jaron Swab
3ebfb87da2 Scale image message based on the user's text area.
Using the "image" package from the standard library the images loaded by
gomuks now scale to one third the size of the text area. The image data
contains both hight and width while the scaling uses only width the
option to scale by hight is possible if passed into `CalculateBuffer()`.
`ansimage.NewScaledFromReader()` now takes the new variable based off
the size of the buffers' width.

This may resolve issue #92
2019-06-15 11:01:05 -04:00
Tulir Asokan
0f08c49df4 Fix bumping unloaded rooms in room list when receiving messages 2019-06-15 17:51:36 +03:00
Tulir Asokan
160b035c4d Unbreak more things 2019-06-15 17:04:08 +03:00
Tulir Asokan
a55ea42d7f Unbreak things 2019-06-15 01:11:54 +03:00
Tulir Asokan
ae3bb9c7a3 Add pm command 2019-06-14 21:01:24 +03:00
Tulir Asokan
7c39729ada Remove room alias argument and switch to room after creating 2019-06-14 20:56:41 +03:00
Jaron Swab
fcd44fe63f Users can now create a new room directly in Gomuks
Added the ability to create a room from within gomuks using the now
`/create` command. This comman takes the room name followed by the
alias. Room name may contain spaces but the alias may not as per the
Matrix alias conventions.

Also update `/help` to include the new command.
2019-06-13 21:14:32 -04:00
Tulir Asokan
4bcdcd1ccd Fix go 1.11 and go get compatibility 2019-05-12 17:34:47 +03:00
Tulir Asokan
08d99d776d Fix potential deadlock in room switching 2019-04-27 15:11:38 +03:00
Tulir Asokan
6f54066c43 Add partial deadlock detection in debug mode 2019-04-27 15:02:52 +03:00
Tulir Asokan
bc7e2d9a1c Add locks and other sync stuff 2019-04-27 15:02:21 +03:00
Tulir Asokan
60e3fe3927 Stop replacing text of event links 2019-04-15 00:34:48 +03:00
Tulir Asokan
98a8b52862 Minor UI changes 2019-04-13 17:04:52 +03:00
Tulir Asokan
e5264a242d Fix user list 2019-04-13 14:27:50 +03:00
Tulir Asokan
43a7bdab72 Add better stringification for UI message types for debugging 2019-04-13 00:51:58 +03:00
Tulir Asokan
abd21affc4 Fix code block rendering 2019-04-10 22:59:37 +03:00
Tulir Asokan
a9199dd9f2 Split container/text HTML entities and add support for <hr> 2019-04-10 22:49:33 +03:00
Tulir Asokan
db0e24ccc2 Use already parsed events for replies if possible 2019-04-10 21:06:19 +03:00
Tulir Asokan
7e0278c571 Fix m.emote rendering 2019-04-10 17:08:39 +03:00
Tulir Asokan
45a68c7fb5 Fix tests 2019-04-10 02:47:47 +03:00
Tulir Asokan
099eebfa67 Misc changes 2019-04-10 02:28:24 +03:00
Tulir Asokan
005c51c3b5 Re-add reply rendering 2019-04-10 02:19:38 +03:00
Tulir Asokan
20d3f8232d Remove commented code 2019-04-10 01:44:45 +03:00
Tulir Asokan
06c306bee9 Fix date change messages and input submit handling 2019-04-10 01:42:27 +03:00
Tulir Asokan
bbde121947 It compiles. Ship it! 2019-04-10 01:04:39 +03:00
Tulir Asokan
dbee49476d Start refactoring various things in message rendering and sending 2019-04-09 18:45:41 +03:00
Tulir Asokan
2b6c435e50 Refactor message parsing things 2019-04-09 18:42:49 +03:00
Tulir Asokan
927be9bdcd Move stripLinebreak to a struct field in the HTML parser 2019-04-09 01:03:17 +03:00
Tulir Asokan
887e2e232a Fix non-syntax-highlighted code block newline rendering 2019-04-09 00:59:56 +03:00
Tulir Asokan
5d7c1a4caa Improve handling of multiple linebreaks 2019-04-07 22:54:55 +03:00
Tulir Asokan
e6180c9b6f Move special list/blockquote prefixing to renderer 2019-04-07 22:25:53 +03:00
Tulir Asokan
cf93671ecd Add syntax highlighting. Fixes #28 2019-04-07 20:13:23 +03:00
Tulir Asokan
083ae8bd44 Remove commented code 2019-04-07 18:25:13 +03:00
Tulir Asokan
b0c4ef81e9 More changes to do #91 2019-04-07 18:21:38 +03:00
Tulir Asokan
21b81ccb27 Initial changes to do #91 2019-04-07 03:22:51 +03:00
Tulir Asokan
e9cf38a866 Focus username field in login view automatically 2019-04-06 18:03:37 +03:00
Tulir Asokan
7ad2103f8f Move history storage to matrix package. Fixes #90 2019-04-05 23:44:17 +03:00
Tulir Asokan
535fbbb4f7 Change even more things 2019-03-30 18:51:32 +02:00
Tulir Asokan
1b1cabb360 Even more changes 2019-03-28 23:28:27 +02:00
Tulir Asokan
6a3017888f Merge remote-tracking branch 'nepugia/nep' into mauview 2019-03-27 01:21:25 +02:00
Tulir Asokan
cc63a197c6 Change more things 2019-03-26 22:09:10 +02:00
Tulir Asokan
c3c7cc9b35 Change things 2019-03-26 19:57:44 +02:00
Tulir Asokan
8aa134b8b2 Start moving to mauview 2019-03-26 00:37:35 +02:00
Pascal Abresch
cefa840c28 adds kick, ban, unban and invite command 2019-03-19 16:06:40 +01:00
Pascal Abresch
c5bf3f894c fixed send and setstate to allow spaces 2019-03-19 16:06:18 +01:00
Pascal Abresch
e9b76ccfec adds /msetstate 2019-03-19 15:58:57 +01:00
Pascal Abresch
576de5264e adds /msend 2019-03-19 15:57:50 +01:00
Tulir Asokan
01523ae8ce Fix go vet warning 2019-02-12 14:58:12 +02:00
Tulir Asokan
bf2a5e9b34 Update license and sort imports 2019-01-23 00:26:51 +02:00
Tulir Asokan
d624023ca3 Fix potential negative index when getting color from name 2019-01-12 00:44:32 +02:00
Tulir Asokan
331597b9f8 Switch to Go modules and make other changes 2019-01-11 23:28:47 +02:00
Tulir Asokan
a0815a6f3d Fix named colors and remove HTML from plaintext body when sending 2018-11-14 00:28:53 +02:00
Tulir Asokan
7651e84be9 Merge branch 'master' into update 2018-11-14 00:01:20 +02:00
Tulir Asokan
ba387764ca Fix things 2018-11-14 00:00:35 +02:00
Ville Ranki
7417df0f3c Alt-a to jump to next channel with unread messages. 2018-10-18 17:02:38 +03:00
Tulir Asokan
cfb2cc057c Update to latest gomatrix. Things are broken 2018-09-05 10:55:48 +03:00
Vishnunarayan K I
68db26bcac Emojify message (#65) 2018-07-02 10:00:42 +03:00
Digital
cf3f3e51d1 Add support for more key events (#64)
In some cases tcell sends Key{Ctrl,Alt}{Up,Down} events instead of
Key{Up,Down} event that have the corresponding modifier mask set.
(these key combinations are used for switching rooms)
2018-06-30 23:28:53 +03:00
Digital
bf84fc09b2 Add option to disable typing notifications (#63) 2018-06-30 23:26:40 +03:00
Tulir Asokan
b03a3b6cec Make /rainbow yellow readable in light-themed clients 2018-06-11 19:52:22 +03:00
Tulir Asokan
5e3994ce2c Add font tag support and /rainbow command 2018-06-11 19:52:22 +03:00
evan
4962a78e4c turn off dynamic colors in fuzzy search 2018-06-06 11:56:48 -05:00
Tulir Asokan
b9079e22d2 Gofmt 2018-06-02 00:44:21 +03:00
Tulir Asokan
134604edce Add ui toggle for image rendering 2018-06-02 00:43:56 +03:00
Tulir Asokan
7868bd90fa Improve newlines in HTML parser 2018-06-02 00:28:21 +03:00
Tulir Asokan
1da02e3a13 Rewrite HTML parser 2018-05-31 16:59:40 +03:00
Tulir Asokan
e604346211 Add very basic arbitrary message/state event sending commands 2018-05-27 15:30:52 +03:00
Tulir Asokan
094a566189 Split command system from main view 2018-05-27 14:54:07 +03:00
Tulir Asokan
b63c451706 Fix m.emote messages in bare message views 2018-05-27 14:51:16 +03:00
Tulir Asokan
c9e138c5e8 Update tcell and include tcell database in debian package 2018-05-26 00:07:01 +03:00
evan
dd63d32d62 fix room name overwriting unread count 2018-05-25 00:14:05 -05:00
Tulir Asokan
b76c8d0147 Add UI preferences and simplify config save/load (ref #43) 2018-05-24 23:27:12 +03:00
evan
9f425f9909 switch fuzzysearch to upstream 2018-05-23 10:21:08 -05:00
Tulir Asokan
1d44d3da1a Add real bare view 2018-05-23 00:44:29 +03:00
Tulir Asokan
14903e0cdc Add bare mode and fix terminal resize bug. Fixes #48 2018-05-22 22:06:49 +03:00
Tulir Asokan
4849ef08b8 Re-enable coloring of new name in name change events 2018-05-22 21:18:46 +03:00
Tulir Asokan
34359a0599 More cleanup 2018-05-22 18:43:00 +03:00
Tulir Asokan
dc4e831022 Split up TagRoomList.Draw() 2018-05-22 18:40:25 +03:00
Tulir Asokan
f5e07f40db Move TagRoomList stuff into new file and split RoomList.Draw() 2018-05-22 18:30:25 +03:00
Tulir Asokan
c87097627e Split up getMembershipEventContent() 2018-05-22 17:36:41 +03:00
Tulir Asokan
f30eb65256 Fix missing newlines 2018-05-22 17:25:57 +03:00
Tulir Asokan
cc28c7b65f Gofmt 2018-05-22 17:24:47 +03:00
Tulir Asokan
cce79ab7d8 Clean up code 2018-05-22 17:23:54 +03:00
evan
b22ef132b7 fuzzy finder cleanup 2018-05-21 11:49:23 -05:00
evan
8c869b0fd7 make room finder transparent 2018-05-21 11:08:47 -05:00
evan
2fb1925881 fuzzy search prototype 2018-05-21 11:00:21 -05:00
Tulir Asokan
cbbec5bd18 Add transparent centering to widget 2018-05-21 18:21:35 +03:00
Tulir Asokan
e079f76157 Don't delete empty tags to avoid bugs 2018-05-17 16:30:02 +03:00
Tulir Asokan
76cff95540 Move all cache to ~/.cache/gomuks
Now `rm -rf ~/.cache/gomuks` has the same effect as `/clearcache`
2018-05-17 16:29:18 +03:00
Tulir Asokan
512ca88804 Fix notifications about own messages 2018-05-16 21:42:07 +03:00
Tulir Asokan
a8a4c72d14 Show per-tag room count in room list 2018-05-16 21:06:50 +03:00
Tulir Asokan
8a3fbc24ab Handle m.direct and m.receipt events
Fixes #12
Fixes #45
2018-05-16 20:51:43 +03:00
Tulir Asokan
c88801a657 Fix user list after initial sync. Fixes #36 2018-05-16 14:28:57 +03:00
Tulir Asokan
cb3a6e764e Fix room ordering after initial sync (ref #36) 2018-05-15 18:47:34 +03:00
Tulir Asokan
fdbb168e2b Display ban/unban events 2018-05-15 18:02:36 +03:00
Tulir Asokan
709a57d029 Fix displayname in leave messages 2018-05-15 17:55:08 +03:00
Tulir Asokan
5884ce3233 Fix sender color in membership events 2018-05-15 17:55:08 +03:00
Tulir Asokan
b6ebd7d8b5 Don't colorize new name in name change message 2018-05-15 17:55:08 +03:00
Tulir Asokan
eff910ff43 Update room list Previous/Next handling when selected room is not visible 2018-05-15 17:55:08 +03:00
Tulir Asokan
d53aa02c0f Add test for DeleteSession() and fix potential bug in roomlist CheckTag() 2018-05-11 07:53:17 +03:00
Tulir Asokan
1e6b599649 Don't parse room ID 2018-05-10 20:07:24 +03:00
Tulir Asokan
151141f288 Add command to log out 2018-05-10 15:47:24 +03:00
Tulir Asokan
2a02f518b2 Highlight whole room list row even if room name is short 2018-05-04 01:09:55 +03:00
Tulir Asokan
122b2441c9 Add support for explicit ordering and limiting rooms shown under a tag
Fixes #41
2018-05-04 00:55:30 +03:00
Tulir Asokan
85cbd64c5e Fix panic adding new room views from MainView.GetRoom() 2018-05-02 14:17:16 +03:00
Tulir Asokan
b49416ed80 Refactoring 2018-05-01 19:17:57 +03:00
Tulir Asokan
986c84b768 Update ui AddRoom and RemoveRoom parameters 2018-04-30 23:12:43 +03:00
Tulir Asokan
c600ce68a2 Fix room list updating when joining/leaving 2018-04-30 23:09:14 +03:00
Tulir Asokan
9ad3a95ba6 Re-render UI after printing message send error 2018-04-30 22:37:08 +03:00
Tulir Asokan
b3543e9090 Stop showing rooms the user has left in the room list. Fixes #35 2018-04-30 22:28:29 +03:00
Tulir Asokan
8346f65e3d Fix autoscrolling in room list when using keyboard. Fixes #34 2018-04-30 12:50:12 +03:00
Tulir Asokan
c5ec94a78f Add mouse scrolling support to room list (ref #34) 2018-04-30 12:40:28 +03:00
Tulir Asokan
cc929ba899 Fix splitting long messages without spaces. Fixes #38 2018-04-30 12:01:43 +03:00
Tulir Asokan
74119ee242 Move defer and add a debug print 2018-04-30 12:01:24 +03:00
Tulir Asokan
d1b62b854c Fix native terminal paste and custom form widgets 2018-04-30 11:03:13 +03:00
Tulir Asokan
576bab9e2e Fix People tag 2018-04-25 00:42:05 +03:00
Tulir Asokan
7026ed99a3
Merge pull request #33 from tulir/initial-sync
Use initial sync data instead of fetching room list, state, history, etc manually
2018-04-24 22:58:30 +03:00
Tulir Asokan
d7d654e2ec Flatten calculateBufferWithText() and gofmt 2018-04-24 22:50:04 +03:00
Tulir Asokan
6aceb4f8d2 Fix First(), Last(), Next() and Previous() of RoomList 2018-04-24 22:46:16 +03:00
Tulir Asokan
49cd74c548 Replace tabs with spaces so that they get rendered 2018-04-24 22:09:04 +03:00
Tulir Asokan
9ccceb48b9 Disable initial history fetch (comes with initial sync) 2018-04-24 22:08:09 +03:00
Tulir Asokan
28c6527544 Fix/break/change things 2018-04-24 17:12:08 +03:00
Tulir Asokan
e64df67ec3 Everything is no longer broken 2018-04-24 16:51:40 +03:00
Tulir Asokan
2a0145db88 Handle tag events 2018-04-24 02:13:43 +03:00
Tulir Asokan
135fcbf284 Make time-based room list sorting persistent (ref #11) 2018-04-24 02:13:43 +03:00
Tulir Asokan
1e8705319a Organize room list by last received message (ref #11) 2018-04-24 02:13:43 +03:00
Tulir Asokan
16406d6c91 Fix panic if replaceBuffer() is called with message not in buffer. Fixes #32 2018-04-24 02:13:43 +03:00
Tulir Asokan
9308f4cb47 Show errors in login view. Fixes #14 2018-04-23 12:55:38 +03:00
Tulir Asokan
ea965766b4 Gofmt and enable a test 2018-04-23 00:04:10 +03:00
Tulir Asokan
bfb5f0dd45 Add room alias autocompletion 2018-04-22 21:05:42 +03:00
Tulir Asokan
7e946a0703 Fix golint warnings 2018-04-22 20:14:40 +03:00
Tulir Asokan
7abfd97cda Allow clicking on room list entries to switch room. Fixes #30 2018-04-21 21:53:52 +03:00
Tulir Asokan
7da1555c84 Improve Markdown rendering
* Remove paragraphs from output HTML
* Remove mention link wrapper from text (leaving only mention name)
2018-04-21 21:24:07 +03:00
Tulir Asokan
d147fc7579 Improve tab completion system 2018-04-21 19:41:19 +03:00
Tulir Asokan
c3386ba118 Fix golint issues 2018-04-19 11:35:52 +03:00
Tulir Asokan
b1dc965a4a Gofmt 2018-04-19 11:10:34 +03:00
Tulir Asokan
b17ff318c2 Disconnect UI from main Gomuks struct. Fixes #21 2018-04-18 18:35:54 +03:00
Tulir Asokan
3b2d5fa034 Fix nick coloring 2018-04-18 17:33:59 +03:00
Tulir Asokan
bb36996194 Add support for sending Markdown messages 2018-04-18 14:46:03 +03:00
Tulir Asokan
3750d5007f Create pills when tab-completing or clicking nicks 2018-04-18 13:38:33 +03:00
Tulir Asokan
4f4e78ae0c Fix another nil pointer panic in the HTML parser (ref #20) 2018-04-16 12:04:00 +03:00
Tulir Asokan
0d4d597909 Fix panic in HTML parser (#20) 2018-04-15 17:54:11 +03:00
Tulir Asokan
bb9ed4558b Refactor things 2018-04-15 14:03:05 +03:00
Tulir Asokan
28e5f9d4b0 Add package docs 2018-04-15 13:34:39 +03:00
Tulir Asokan
d060d10615 Allow clicking names to mention them 2018-04-14 15:33:20 +03:00
Tulir Asokan
85757c387e Fix typo in newline stripping 2018-04-14 11:50:57 +03:00
Tulir Asokan
f5530ff99c Move message parsing to parser subpackage 2018-04-14 11:50:18 +03:00
Tulir Asokan
782ba0657a Make HTML rendering more advanced
Also add Python-like HTML parser thing in lib/htmlparser
2018-04-14 11:44:09 +03:00
Tulir Asokan
e7bf5bd59f Add basic HTML rendering (ref #16) 2018-04-14 00:34:25 +03:00
Tulir Asokan
69c163cfe9 Unknown changes that possibly fix and/or break things 2018-04-13 21:25:45 +03:00
Tulir Asokan
7e5e802e90 Cache TString version of UITextMessage.MsgText 2018-04-11 19:36:15 +03:00
Tulir Asokan
92a2428865 Allow clicking images and load images from cache 2018-04-11 19:20:40 +03:00
Tulir Asokan
ff7ee333a1 Rename UIString to TString, move ansimage to lib/ and switch to tcell fork 2018-04-11 17:57:15 +03:00
Tulir Asokan
c0705b02a0 Move notification package to lib/ and add open package 2018-04-11 15:05:42 +03:00
Tulir Asokan
8270bc0322 Move event parsing to ui/messages and add image displaying 2018-04-10 19:31:28 +03:00
Tulir Asokan
ee67c1446c Convert message buffer to use custom colorable strings 2018-04-10 16:07:16 +03:00
Tulir Asokan
eda2b575f0 Refactor UI to use interfaces everywhere 2018-04-09 23:45:54 +03:00
Tulir Asokan
2ba2fde396 Gofmt 2018-04-02 13:47:20 +03:00
Tulir Asokan
dd89fa621d Improve debug output options 2018-04-02 13:47:20 +03:00
Tulir Asokan
adce6d3211 Don't wrap user list 2018-03-26 22:03:30 +03:00
Tulir Asokan
d684187f42 Don't send notifications for current room 2018-03-26 20:59:58 +03:00
Tulir Asokan
e0298521c6 Add sounds to notifications 2018-03-26 18:04:10 +03:00
Tulir Asokan
b31d968814 Show notifications and highlights in room list. Fixes #8 2018-03-26 17:22:47 +03:00
Tulir Asokan
6095638fbb Fix and/or break scroll bar 2018-03-26 14:31:44 +03:00
Tulir Asokan
23bb46b18f Move room list to custom widget 2018-03-25 14:21:59 +03:00
Tulir Asokan
c128666109 Refactor things and add proper wheel scroll support 2018-03-25 12:35:50 +03:00
Tulir Asokan
e414e20215 Add mouse handler stub and keep track of focus 2018-03-24 22:14:17 +02:00
Tulir Asokan
1321e1a06a Possibly speed up syncs with filters 2018-03-24 14:16:11 +02:00
Tulir Asokan
38364646a7 Refactoring and documentation 2018-03-23 23:39:17 +02:00
Tulir Asokan
76cfbecc09 Remove panic when sending message if GetSessionOwner() returns nil 2018-03-23 17:45:58 +02:00
Tulir Asokan
7dc773c990 Render scroll position and indicate if at end/beginning of history. Fixes #9 2018-03-23 17:26:15 +02:00
Tulir Asokan
03e9a0d5ac Documentation and refactoring 2018-03-23 14:44:36 +02:00
Tulir Asokan
7cc55ade30 Fix membership event processing 2018-03-23 14:20:46 +02:00
Tulir Asokan
a3f48093eb gofmt and govet 2018-03-23 01:20:26 +02:00
Tulir Asokan
16635dcde7 Refactor PushRuleset#GetActions() and ViewMain event processing 2018-03-23 01:00:13 +02:00
Tulir Asokan
a5e7800ab6 Fix bugs and compile errors 2018-03-22 23:52:55 +02:00
Tulir Asokan
373b25c01c Rename matrix/room/ to matrix/rooms/ 2018-03-22 23:46:43 +02:00
Tulir Asokan
20a1a31fa8 Add doc.go files 2018-03-22 23:45:54 +02:00
Tulir Asokan
a9c899f0d5 Refactoring and documentation 2018-03-22 23:40:26 +02:00
Tulir Asokan
497ae566c0 Move LoginView to own struct 2018-03-22 23:03:45 +02:00
Tulir Asokan
b93dea2e1c Refactoring and documentation 2018-03-22 23:03:36 +02:00
Tulir Asokan
225dbdba4e Use display names in join/leave messages 2018-03-22 22:38:49 +02:00
Tulir Asokan
152b89ed5e Add support for m.emote. Fixes #6 2018-03-22 21:45:02 +02:00
Tulir Asokan
702a75a8c0 Save history to disk. Fixes #1 2018-03-22 19:54:31 +02:00
Tulir Asokan
232f7fe1be Update constants and demagicify RoomView drawing 2018-03-22 18:14:08 +02:00
Tulir Asokan
c32fffda15 Move history mutex to rooms.Room 2018-03-22 17:37:35 +02:00
Tulir Asokan
516ea42317 Use Flex as MainView base instead of Grid 2018-03-22 17:00:56 +02:00
Tulir Asokan
492a8752f1 Move input field to RoomView 2018-03-22 16:44:24 +02:00
Tulir Asokan
9fd67102ad Refactoring and godocs 2018-03-21 23:29:58 +02:00
Tulir Asokan
0e90972fe8 Handle some corner cases in MessageView 2018-03-21 19:46:30 +02:00
Tulir Asokan
35b6c7bd27 Add external debug file, refactoring and push rule parser 2018-03-21 18:46:25 +02:00
Tulir Asokan
7994c289aa Refactor some things and format everything 2018-03-21 00:21:24 +02:00
Tulir Asokan
85f289c98d Rename UpdateLogs back to LoadHistory 2018-03-20 23:31:04 +02:00
Tulir Asokan
095b982603 Show messages in message view while sending 2018-03-20 19:55:42 +02:00
Tulir Asokan
59cd900301 Simplify MessageView buffer recalculation to one loop 2018-03-20 17:26:37 +02:00
Tulir Asokan
508b4ea280 Add colon after username completion at beginning of line 2018-03-20 16:03:05 +02:00
Tulir Asokan
bfb5151cb6 Re-add colors to date change messages 2018-03-20 13:01:59 +02:00
Tulir Asokan
3897f23bc4 Add support for loading more history 2018-03-20 12:16:32 +02:00
Tulir Asokan
de2a8aee06 Add some vim-style keybindings to advanced inputfields 2018-03-20 12:14:30 +02:00
Tulir Asokan
160e8ff836 Don't panic if room list is empty 2018-03-19 15:19:44 +02:00
Tulir Asokan
43127dad0f Switch forms to use advanced inputfields and use user-friendly panics for UI errors 2018-03-19 10:57:31 +02:00
Tulir Asokan
7a4b108b37 Avoid showing panics directly if debug mode is not enabled 2018-03-19 01:21:53 +02:00
Tulir Asokan
72945c9a28 Organize files 2018-03-18 21:24:03 +02:00