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
7b19cf48a4
Add Parcel to dev dependencies
...
Closes: https://todo.sr.ht/~emersion/gamja/119
2021-11-04 12:21:21 +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
eb66045371
lib/client: use Client.isMyNick to handle self-NICK messages
...
This handles case-mapping.
2021-11-03 21:50:33 +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
08cd94d775
lib/irc: add "fullname" to isMeaningfulRealname
2021-11-02 18:12:18 +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
ac7785aa7f
lib/client: fix missing account in WHOX
2021-11-02 17:58:00 +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
40210f8b00
Upgrade http-server
2021-10-29 16:25:58 +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
c4a1f38b33
state: process RPL_NAMREPLY atomically
...
This allows updating the buf.members map only once when receiving
RPL_ENDOFNAMES, instead of repeatedly re-creating it each time a
RPL_NAMREPLY message is received.
2021-10-23 20:05:07 +02:00
Simon Ser
92043ded2c
lib/client: generalize pendingWHOIS, store list in ENDOF* messages
...
This allows processing a list of replies atomically and receiving
the ENDOF* marker.
2021-10-23 20:03:57 +02:00
Simon Ser
b059e034e2
lib/client: rename whoisDB to pendingWHOIS, garbage collect
2021-10-23 19:48:04 +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
a313363ed7
gitignore: add Parcel files
2021-10-20 10:55:49 +02:00
Simon Ser
ab2f8092a8
Add minimal Parcel integration
...
Closes: https://todo.sr.ht/~emersion/gamja/107
2021-10-19 00:50:02 +02:00
Simon Ser
4309cf44d3
Avoid using export * as namespace
...
This isn't supported by Safari.
2021-10-18 23:59:18 +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
d9f36c82ba
Allow bouncers to set NETWORK in ISUPPORT
...
This allows bouncers to customize the name they appear with.
2021-10-18 19:51:30 +02:00
Simon Ser
12440691c9
Unescape ISUPPORT values
...
This allows ISUPPORT values to contain spaces.
References: https://github.com/ircdocs/modern-irc/pull/137
2021-10-18 13:29:11 +02:00
Simon Ser
34aea84dde
Close buffer tabs on middle click
2021-10-17 19:33:02 +02:00
Simon Ser
a31976586c
Fallback to bouncer network host if name is unset
2021-10-15 18:23:56 +02:00
Simon Ser
8bdde589bb
lib/irc: "unknown" is not a meaningful realname
2021-10-15 17:44:33 +02:00
Simon Ser
bfef13824e
Use ISUPPORT NETWORK if user hasn't specified custom name
2021-10-15 14:05:39 +02:00
Simon Ser
1a8d539c9e
Use linkifyjs module
2021-10-14 20:55:55 +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
631f119061
Switch from anchorme to linkifyjs
2021-10-13 15:33:41 +02:00
Simon Ser
a7d3a3940a
readme: mention server.ping when server doesn't send PINGs
...
For instance, soju doesn't send PINGs.
2021-10-12 20:18:29 +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