Simon Ser
fc9dfa2dca
Implement case-mapping for buffers and message handler
2021-05-27 23:40:08 +02:00
Drew DeVault
e000832483
Add /ban, /kickban commands
2021-05-27 23:21:01 +02:00
Drew DeVault
121d7ec075
Add /whois command
...
This also rigs up some helpers in Client for handling the whois
response, which I will use for /ban and /quiet and such shortly.
2021-05-27 23:15:53 +02:00
Drew DeVault
f5debac388
Add /op, /deop commands
2021-05-27 23:05:21 +02:00
Drew DeVault
f0a532dbd6
style: minor adjustment to buttons
...
This makes the borders appear more uniform within the buffer header.
2021-05-27 23:00:06 +02:00
Simon Ser
558548e6f7
Fix typo in Unread.union
2021-05-27 22:35:41 +02:00
Simon Ser
06f7651bef
Ignore TAGMSG messages
...
We get these from clients that support typing notifications, for
instance.
2021-05-27 21:58:37 +02:00
Simon Ser
74dc78a20b
Fix lib/irc.js import path in commands.js
2021-05-27 21:46:56 +02:00
Drew DeVault
258b0b0a3c
Restyle action buttons
2021-05-27 21:45:41 +02:00
Simon Ser
9567d56f53
Switch to channel buffer on /join
...
Closes: https://todo.sr.ht/~emersion/gamja/37
2021-05-27 19:10:42 +02:00
Drew DeVault
64900fbe80
Implement togglable sidebars for narrow viewports
...
Closed: https://l.sr.ht/96AD.jpg
Open: https://l.sr.ht/gr_9.jpg
2021-05-27 19:00:11 +02:00
Drew DeVault
d612c91016
Implement optional opportunistic pings
2021-05-27 18:31:04 +02:00
Drew DeVault
3021eae9af
Improve contrast of nick colors on dark theme
2021-05-27 18:04:45 +02:00
Drew DeVault
e2e2f7a8fc
/mode: use active buffer if omitted
2021-05-27 18:02:51 +02:00
Drew DeVault
a0c85c3372
Handle incoming MODE messages in appropriate buffer
2021-05-27 18:01:58 +02:00
Drew DeVault
0b1c4da0ce
Add /stats command
2021-05-27 17:58:54 +02:00
Drew DeVault
51d775dc4c
Add /j alias for /join
2021-05-27 17:52:48 +02:00
Simon Ser
70c0dd1d78
readme: add notes about nginx
2021-05-27 17:47:31 +02:00
Simon Ser
f36bba897e
Fix cross-network mixups when handling QUIT and NICK
...
Only mutate buffers if they belong to our connection.
2021-05-27 15:19:28 +02:00
Simon Ser
b2cdab86aa
Add case-mapping support for channel members
...
Make a buffer's members an irc.CaseMapMap.
2021-05-27 15:17:18 +02:00
Simon Ser
615e746ec5
lib/client: add Client.cm
...
This contains the current connection case-mapping, parsed from the
CASEMAPPING ISUPPORT token.
2021-05-27 15:14:03 +02:00
Simon Ser
3110a9e2df
lib/irc: add case-mapping primitives
...
irc.CaseMapping contains the basic canonicalization functions for
the three supported case-mappings. irc.CaseMapMap is a Map-like
class that supports case-mapped keys.
2021-05-27 15:13:32 +02:00
Simon Ser
d880b23d32
Add hint to run /help in unknown command error message
2021-05-27 12:55:28 +02:00
Simon Ser
45c12fb684
Add nick URL param
...
Closes: https://todo.sr.ht/~emersion/gamja/40
2021-05-27 12:32:22 +02:00
Simon Ser
37492e319b
Style dialogs for dark theme
...
Closes: https://todo.sr.ht/~emersion/gamja/32
2021-05-27 12:05:24 +02:00
Simon Ser
fa80817168
Accomodate for empty BOUNCER host
...
BOUNCER doesn't support describing UNIX domain socket connections.
2021-05-27 11:51:29 +02:00
Simon Ser
071c2626d5
Open error bubbles for IRC numeric errors
2021-05-27 11:34:23 +02:00
Simon Ser
b8c4bb3112
Improve command error reporting
...
state.error is expected to be a String, not an Error.
2021-05-27 11:26:42 +02:00
Simon Ser
d5e21097f8
Add /quote command
...
Closes: https://todo.sr.ht/~emersion/gamja/22
2021-05-27 11:22:34 +02:00
Drew DeVault
d34bff9ed6
Implement /kick and KICK handling in buffers
2021-05-27 10:58:57 +02:00
Simon Ser
1d983bd142
Downgrade IRC network logging to debug level
2021-05-27 10:39:24 +02:00
Simon Ser
08678ba57e
Always parse autojoin channels from URL params
...
Even if connection parameters were previously saved to local storage.
2021-05-27 10:36:03 +02:00
Simon Ser
ac5bbafdc3
Fix config.json relative path
...
The path should be relative to index.html, not the JS file.
2021-05-26 23:17:23 +02:00
Simon Ser
17cd38f0b9
Read auto-join channels from browser URL hash
...
This is easier to type than trying to escape the # in ?channels=#XXX.
2021-05-26 22:57:49 +02:00
Simon Ser
7c81fa6e8c
Set the viewport meta tag
2021-05-26 22:42:35 +02:00
Simon Ser
695b02caaa
Introduce store helper
...
Responsible for serializing/deserializing data to be saved in
localStorage. Add a prefix to all localStorage entries to avoid
conflicts with other webapps. Stop guarding against localStorage
not existing, browsers can just implement a dumb interface to
disable it.
2021-05-26 18:43:11 +02:00
Simon Ser
12a38ace90
Add support for IRCv3 setname
2021-05-25 20:22:21 +02:00
Simon Ser
92535fae24
Ignore BOUNCER NETWORK messages if we're already bound to a network
2021-05-25 17:11:06 +02:00
Simon Ser
9dba1b3736
Add vendor prefix to bouncer-networks BATCH type
2021-05-25 17:03:29 +02:00
Simon Ser
1b21f5f076
Display bouncer network status
2021-05-25 17:01:57 +02:00
Simon Ser
6524dc5dd2
Add support for the soju.im/bouncer-networks-notify cap
2021-05-25 17:01:20 +02:00
Simon Ser
94fba920cd
Fix close() for bouncer networks
2021-05-25 17:01:18 +02:00
Simon Ser
5165df718f
Disconnect on BOUNCER BIND error
2021-05-25 16:59:59 +02:00
Simon Ser
11642e1ab4
Add UI to edit/delete a network
2021-05-25 16:59:59 +02:00
Simon Ser
f84334c31e
Add UI to add a new bouncer network
2021-05-25 16:59:57 +02:00
Simon Ser
4c62b7571e
Indent channels and nicks in buffer list
2021-05-25 16:58:50 +02:00
Simon Ser
b429243573
Add support for the soju.im/bouncer-networks extension
2021-05-25 16:58:50 +02:00
Simon Ser
982a945932
Fix TypeError in handleBufferScrollTop
...
Fixes the following:
TypeError: client is undefined
2021-05-25 14:28:48 +02:00
Simon Ser
ed92c3c61a
Clear local storage when clicking "Disconnect"
2021-05-25 12:57:40 +02:00
Simon Ser
811984878c
Switch to query params for msgid/timestamp in irc:// URLs
...
The hash is confusing because channels often start with a # too.
Instead, use a query parameter. This is consistent with [1], which
uses query params for the channel key.
[1]: https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04
2021-05-25 12:46:00 +02:00