Commit Graph

413 Commits

Author SHA1 Message Date
Simon Ser 321140327e Add UI to enable protocol handler 2021-11-16 11:19:25 +01:00
Simon Ser 195e4ca371 Don't stop fetching backlog on error
Some servers allow fetching history from some targets but not
others. Don't completely stop fetching chat history on error.

The root cause was a variable shadowing in Client.fetchBatch.
2021-11-10 09:53:17 +01:00
Simon Ser 94901f1662 Request WHO info w/ empty message list in switchBuffer 2021-11-08 15:03:05 +01:00
Simon Ser 9475ffb8c6 Don't auto-join without prompting user 2021-11-08 13:01:54 +01:00
Simon Ser f3c48a3748 Add "open" URL param
This can be set to an irc:// URL to open. This is useful for
bouncers.
2021-11-08 12:33:02 +01:00
Simon Ser 14031c594b Ask confirmation before JOIN on irc:// link click 2021-11-08 10:44:10 +01:00
Simon Ser 74fe6ee944 Auto-join when adding new network on irc:// link click
Closes: https://todo.sr.ht/~emersion/gamja/111
2021-11-07 19:47:49 +01:00
Simon Ser a58befd6d7 s/var/let/ 2021-11-07 13:51:39 +01:00
Simon Ser 38a3075a2c Disconnect previous server on connect re-submit 2021-11-07 13:50:26 +01:00
Simon Ser 96dd8476ad De-duplicate nicks in folded JOIN/PART/QUIT lines 2021-11-05 15:00:08 +01:00
Simon Ser 800f5ceb6a Keep track of channel join status
This makes us behave better when we receive a self-PART message
from the server.
2021-11-05 11:49:56 +01:00
Simon Ser 50f10a43dd components/buffer: show MODE target if different from buffer name
This happens for user modes, for instance.
2021-11-03 21:58:26 +01:00
Simon Ser a1ab87c71c Route self-NICK messages to server buffer 2021-11-03 21:49:53 +01:00
Simon Ser 8ebb61cb0e Route user MODE messages to server buffer 2021-11-03 21:44:24 +01:00
Simon Ser 8f90613951 components/buffer-header: add help text for user details
This makes it easier for users new to IRC to figure out what these
things mean. Additionally, it's not possible for a malicious user
to spoof the <abbr> style.
2021-11-03 17:23:32 +01:00
Simon Ser 0888af4a6f Request more messages for event-playback infinite scrolling
When the server supports draft/event-playback, some messages (like
join/part/etc) may be collapsed together. Request more messages to
avoid ending up with a half-filled page.
2021-11-03 16:31:12 +01:00
Simon Ser eec4126562 components/buffer-header: mark unauthenticated users as such 2021-11-02 18:04:53 +01:00
Simon Ser 6acf6d544a components/buffer-header: skip account name if it matches nick 2021-11-02 18:01:07 +01:00
Simon Ser 85e73d0ee8 Add RPL_WELCOME to server buffer 2021-11-02 15:27:24 +01:00
Simon Ser 483f0c65b1 Add hint in server operators buffer header 2021-11-01 18:45:16 +01:00
Simon Ser 33c3cf3278 Remove unnecessary irc.formatDate call 2021-10-29 16:34:50 +02:00
Simon Ser a1057092e0 state: move in QUIT and NICK update logic 2021-10-23 23:24:11 +02:00
Simon Ser bf471abb1b Add App.routeMessage
This splits handleMessage into two functions: one decides in which
buffers the message should be appended to, the other performs
message side-effects like auto-join.
2021-10-23 23:01:32 +02:00
Simon Ser 49a59077b7 lib/irc: extend parseURL to support flags and skip auth + options 2021-10-20 14:33:16 +02:00
Simon Ser 2d032259db Pretty-print RPL_LOGGEDIN and RPL_LOGGEDOUT 2021-10-18 22:11:14 +02:00
Simon Ser 3d09c43a91 Don't add RPL_YOURHOST to server buffer 2021-10-18 22:08:21 +02:00
Simon Ser e7054eab13 Don't add RPL_SASLSUCCESS to server buffer 2021-10-18 22:05:25 +02:00
Simon Ser 34aea84dde Close buffer tabs on middle click 2021-10-17 19:33:02 +02:00
Simon Ser a120d79585 Handle IRC URLs without channel name 2021-10-13 16:47:01 +02:00
Simon Ser 3562478946 Open dialog to create new network on IRC URL click
If we're running under a bouncer and the user clicks a link with
a server we aren't connected to yet, open the dialog to add a new
network.

References: https://todo.sr.ht/~emersion/gamja/71
2021-10-13 16:40:34 +02:00
Simon Ser 405bc51c26 Handle click on irc:// channel URLs inside buffers
References: https://todo.sr.ht/~emersion/gamja/71
2021-10-13 16:18:59 +02:00
Simon Ser 21a4a71542 Add support for SASL EXTERNAL
Can be useful when the server is using e.g. a cookie for
authentication purposes.
2021-10-12 17:29:56 +02:00
Simon Ser a890665775 Allow revealing server field with ?server 2021-10-09 13:33:01 +02:00
Simon Ser a920914b4c Add nick to config.json 2021-10-09 10:45:44 +02:00
Simon Ser 47b12cc5d9 Add autoconnect to config.json 2021-10-09 10:45:44 +02:00
Simon Ser 312a3f812e Don't allow overriding server URL if set in config.json
This has security implications.
2021-10-09 10:34:51 +02:00
Simon Ser e3e3315125 Inherit from default connectParams in handleConfig
When handleConfig is called, this.state.connectParams will be set
to its default value. Inherit from it so that autoconnect isn't
missing any. If we ever add a new connect parameter, we don't want
an old localStorage to break connect() because it's missing the
param.
2021-10-09 10:10:51 +02:00
Simon Ser d2ac1e152a Add more type checks for config.json 2021-10-09 09:57:54 +02:00
Simon Ser 4577f0a27f components/buffer: pretty-print RPL_CHANNELMODEIS and RPL_CREATIONTIME 2021-10-06 12:12:49 +02:00
Simon Ser 19ee5553f6 components/buffer: add RPL_UMODEIS pretty-printing 2021-10-05 11:22:20 +02:00
Simon Ser 0b4302e059 Clear autojoin when loading autoconnect
This is handled by the buffer store.
2021-09-21 19:25:59 +02:00
Simon Ser 7bf9a0ca25 Auto-join previous channels on reconnect
Closes: https://todo.sr.ht/~emersion/gamja/47
2021-09-21 19:20:39 +02:00
Simon Ser 65674cb45d Narrow down syncBufferUnread to new buffers
syncBufferUnread might override the previous unread value.

Closes: https://todo.sr.ht/~emersion/gamja/105
2021-09-21 18:41:14 +02:00
Simon Ser 1dd55367e9 Send WHO queries for saved user buffers after ISUPPORT
This allows WHOX to be used.
2021-09-21 18:31:11 +02:00
Simon Ser 184b29b6e3 Hide meaningless real names 2021-09-21 17:24:39 +02:00
Simon Ser da4da01e34 Query WHO when switching to a user buffer without info
Closes: https://todo.sr.ht/~emersion/gamja/101
2021-09-21 17:06:32 +02:00
Simon Ser 329f9063d0 Add support for WHOX
This allows querying the account of the user.
2021-09-21 16:58:00 +02:00
Simon Ser 0b32d9295a Display account name 2021-09-21 15:38:59 +02:00
Simon Ser d12e1109b3 Add support for account-notify 2021-09-21 14:49:32 +02:00
Simon Ser 8e631f97ef Add tooltip with full date to timestamp component 2021-09-21 14:34:30 +02:00