Simon Ser
a0ed50a8e2
Keep closed buffers in store
...
This retains their delivery receipts.
Closes: https://todo.sr.ht/~emersion/gamja/154
2023-06-08 11:54:16 +02:00
Simon Ser
2f627eecad
state: handle WHO replies in bulk
2023-04-19 13:04:58 +02:00
Simon Ser
2d651ef901
components/app: prevent multiple WHO channel commands in parallel
...
References: https://todo.sr.ht/~emersion/gamja/152
2023-04-19 12:56:12 +02:00
Simon Ser
535bdb2f52
Migrate to async/await
2023-04-19 12:51:13 +02:00
Simon Ser
57f64e9cc2
lib/irc: add formatURL
2023-04-19 11:43:45 +02:00
Simon Ser
57809be989
Upgrade dependencies
2023-04-04 19:10:10 +02:00
Simon Ser
6c26ee2156
store: fix clearing buffers for a specific server
2023-04-04 17:00:05 +02:00
Simon Ser
5db0105dbd
store: protect against dup buffers
2023-04-04 16:51:23 +02:00
Simon Ser
c8fda8ed53
store: stop matching server URL and nick
...
This was supposed to accomodate for multi-server support, but to
be honest this is out of scope for gamja.
Closes: https://todo.sr.ht/~emersion/gamja/151
2023-04-04 16:46:58 +02:00
Simon Ser
fd63c169ed
lib/client: encode empty SASL response as "+"
2023-03-21 17:57:09 +01:00
Simon Ser
2c3fbdd605
readme: document default for server.url in config.json
2023-03-13 20:36:47 +01:00
Simon Ser
2883234ff6
Don't perform OAuth redirection after server meteadata error
2023-03-10 14:14:37 +01:00
Simon Ser
f7459704f6
components/composer: focus composer on keydown if a link is active
...
Fixes message not typed after clicking on a link.
2023-01-31 18:28:51 +01:00
Simon Ser
c6024e643a
Upgrade dependencies
2023-01-16 12:10:31 +01:00
Simon Ser
3f059567c5
Skip regular chat message handling for infinite scroll
...
Infinite scroll is special: it shouldn't trigger notifications.
Additionally we need to avoid sending on MARKREAD command per
message in the chathistory batch.
Split chat message handling into separate functions.
2022-11-30 12:23:12 +01:00
Simon Ser
4b306305bf
Move msg.tags fallback to client
2022-11-30 11:30:46 +01:00
Simon Ser
a172c810e9
Make first server check more robust when disconnecting
...
A disconnect/reconnect cycle will bump the server ID.
2022-11-30 11:21:54 +01:00
Simon Ser
ab3569e104
Close settings dialog when disconnecting
2022-11-30 11:18:23 +01:00
Simon Ser
dc5e64aaac
lib/client: unify checks for chathistory end
2022-11-30 10:17:50 +01:00
Simon Ser
2d27168529
Use ratified extended-monitor cap name
...
References: https://github.com/ircv3/ircv3-specifications/pull/508
2022-11-06 20:40:00 +01:00
Simon Ser
24ba3f5189
Remove unnecessary whoChannelBuffer() call
...
switchBuffer() will do that already, no need to do it manually here.
We risk sending two duplicate WHO commands.
2022-10-23 20:21:27 +02:00
Simon Ser
90a2c91651
Load initial members state via WHO when channel is selected
...
Closes: https://todo.sr.ht/~emersion/gamja/13
2022-10-23 20:18:33 +02:00
Simon Ser
e815295503
Add support for OAuth 2.0 authentication
2022-10-14 10:52:44 +02:00
Simon Ser
bbc94c88c0
Upgrade dependencies
2022-09-18 20:08:13 +02:00
Simon Ser
84ca0a4408
components/connect-form: autofocus username field
2022-09-12 13:43:58 +02:00
Simon Ser
84b68308b9
components/app: switch off loading state atomically
...
Set connectParams together with loading, to avoid intermediate
state where loading = false but connectParams isn't set yet.
2022-09-12 13:42:44 +02:00
Simon Ser
4964782c30
Display error in loading state
2022-09-12 13:41:23 +02:00
Simon Ser
54e1fc93d9
Add config option to generate random nickname
...
Closes: https://todo.sr.ht/~emersion/gamja/136
2022-09-12 13:04:59 +02:00
Simon Ser
34d3bd6df9
Remove unnecessary if in App.handleConfig
...
config.json is merged with baseConfig. The latter is guaranteed
to contain a "server" field.
2022-09-12 09:54:38 +02:00
Simon Ser
a13f74d466
Disallow server.{autoconnect,auth} mismatch in config.json
...
This combination doesn't make sense.
2022-09-12 09:48:49 +02:00
Simon Ser
a603b79e33
components/buffer-list: show buffers with errors in red
2022-09-05 14:00:52 +02:00
Simon Ser
a2d2a11d44
Drop support for soju.im/read
...
It's been superseded by draft/read-marker.
2022-09-03 14:41:53 +02:00
Simon Ser
e6618c8a1f
Fix draft/read-marker cap not negotiated
...
Fixes: 1428ec4d49 ("Add support for draft/read-marker")
2022-09-03 14:40:54 +02:00
Simon Ser
aa9aa78d71
Fix ignored MARKREAD messages
...
The prefix is a remnant of the soju extension. The IRCv3 one
doesn't have it.
Fixes: 1428ec4d49 ("Add support for draft/read-marker")
2022-09-03 14:40:46 +02:00
Simon Ser
4780b9c709
Fetch read marker before backlog for user targets
2022-09-03 14:31:56 +02:00
Simon Ser
e7b69cec9a
Limit composer length
...
Often times IRC servers will truncate messages which are too big.
2022-08-28 19:16:41 +02:00
Simon Ser
7138e43710
Ignore RPL_CHANNEL_URL
2022-08-22 10:35:50 +02:00
Simon Ser
89647472ae
components/app: don't open buffer for CTCP messages
...
These are usually completely uninteresting messages, e.g. CTCP
VERSION or whatever.
2022-08-22 10:30:56 +02:00
Simon Ser
e2dc32c0d3
Update dependencies
2022-07-11 21:02:12 +02:00
Simon Ser
1bcd9d3607
ci: deploy to new server
2022-07-09 12:26:39 +02:00
Simon Ser
e4ebf5eb80
ci: fix deploy host
...
emersion.fr is now an alias for the new server. gamja hasn't been
migrated yet.
2022-07-08 21:24:09 +02:00
Simon Ser
1428ec4d49
Add support for draft/read-marker
...
References: https://github.com/ircv3/ircv3-specifications/pull/489
2022-07-01 13:35:27 +02:00
Simon Ser
d0064dd647
components/buffer: show disclaimer for +draft/channel-context messages
2022-06-28 15:55:35 +02:00
Simon Ser
f6ba40046f
components/buffer-header: fix duplicate settings button
2022-06-28 15:11:48 +02:00
Simon Ser
54453c5f44
Fix invalid relative import
...
Worked locally because it's served at the root…
2022-06-27 17:16:33 +02:00
Simon Ser
fa80a56516
Add button to enable protocol handler in settings
2022-06-27 17:01:15 +02:00
Simon Ser
7cabb6f85b
Add a setting for seconds in timestamps
2022-06-27 16:34:41 +02:00
Simon Ser
505a6fd5ab
Workaround the sad state of base64 web APIs
...
This is necessary to make usernames/passwords with UTF-8 in them
work correctly.
2022-06-24 23:59:18 +02:00
Simon Ser
8e30806fec
Upgrade dependencies
2022-06-14 19:58:50 +02:00
Simon Ser
f0c398a10c
components/buffer-header: print bouncer network error if any
2022-06-09 15:54:29 +02:00
Simon Ser
baaf576d82
Add a settings dialog
...
Add an option to hide chat events or always expand them.
Closes: https://todo.sr.ht/~emersion/gamja/73
2022-06-08 16:57:16 +02:00
Simon Ser
e3c2d85a94
Fix ping config lost in ConnectForm
...
Reported-by: xse <xse@riseup.net >
References: https://lists.sr.ht/~emersion/public-inbox/patches/32126
2022-06-08 15:14:06 +02:00
Simon Ser
6b04cb1417
Add support for bot mode
...
References: https://ircv3.net/specs/extensions/bot-mode
2022-06-08 15:04:27 +02:00
Simon Ser
8507500d74
components/scroll-manager: don't crash when Buffer is empty
2022-04-22 12:32:54 +02:00
Simon Ser
aaef4e1629
store: use lower-case for buffer keys
2022-04-22 12:04:11 +02:00
Simon Ser
cdd2da90a9
Update webpage title when switching buffer
2022-04-22 11:49:23 +02:00
Simon Ser
4a981997f0
Handle CHATHISTORY messages when reaching end of batch
...
Closes: https://todo.sr.ht/~emersion/gamja/115
2022-04-22 11:25:41 +02:00
Simon Ser
f45b51d981
commands: fix TypeError in kickban
...
The ban variable was undefined.
2022-04-14 10:53:35 +02:00
Simon Ser
73db1a888e
Upgrade dependencies
2022-02-26 10:47:55 +01:00
Simon Ser
3dc98ec797
Convert remaining simple quotes to double quotes
2022-02-26 09:54:31 +01:00
Simon Ser
e37d5f363b
lib/irc: fix bound check in isHighlight
...
Doesn't seem like this was causing any issues, but let's fix the
logic regardless.
2022-02-25 11:38:00 +01:00
Simon Ser
221b1b6356
lib/irc: remove unnecessary non-breaking-space case
...
Handled by the default case already.
2022-02-25 11:37:18 +01:00
Simon Ser
86b1030b7a
lib/irc: add missing num range to alphaNum regexp
2022-02-25 11:36:43 +01:00
Simon Ser
08578c9a21
components/app: fix missing semicolons
2022-02-21 15:26:12 +01:00
Simon Ser
26cc073f41
store: save buffer state when user navigates away
...
Avoids loosing some state on page unload.
2022-02-18 18:22:00 +01:00
Simon Ser
9e703698ca
lib/irc: drop outdated CapRegistry TODO
2022-02-16 15:46:22 +01:00
Simon Ser
37d7f4a1c5
Refactor backlog fetching into function
2022-02-13 15:34:11 +01:00
Simon Ser
962c05c066
Prevent hole in history when reconnecting
2022-02-13 15:26:04 +01:00
Simon Ser
f2c9fd1d7f
Update stored unread status on READ message
2022-02-12 10:24:56 +01:00
Simon Ser
a3eec9a351
store: add note about comparison in Buffer.put
2022-02-12 10:24:34 +01:00
Simon Ser
2ac7be6218
state: add isReceiptBefore
2022-02-12 10:21:11 +01:00
Simon Ser
5f8cd976e6
keybindings: fix error on alt+h
...
Fixes the following JS error:
TypeError: e.setReceipt is not a function
2022-02-12 10:05:58 +01:00
Simon Ser
fbc42b6dab
components/app: move lastErrorID declaration down
...
Move it right before App, rather than drown in-between unrelated
functions.
2022-02-11 21:17:35 +01:00
Simon Ser
dc398baa3b
components/app: stop updating prevReadReceipt on READ message
...
prevReadReceipt is used for the unread marker. Let's not update it
before the user switches the current buffer.
2022-02-11 21:09:11 +01:00
Simon Ser
6a9a8e88f1
store: fix no-op read receipt update detection
...
If the old and new times are equal, the update is a no-op.
2022-02-11 21:07:49 +01:00
Simon Ser
f47d93af8a
Don't fetch backlog before read receipt
2022-02-11 21:02:34 +01:00
Simon Ser
fce0936c20
components/app: introduce getReceipt
2022-02-11 20:59:31 +01:00
Simon Ser
0636544c40
components/app: close notifications when receiving READ message
2022-02-11 19:32:30 +01:00
Simon Ser
7c6f334dbf
components/app: close notifications when switching buffer
2022-02-11 19:32:30 +01:00
Simon Ser
7ddd783150
components/app: make showNotification return null on error
...
We'll do more involved stuff with notifications soon, and don't
want to deal with buggy notification objects.
2022-02-11 19:32:30 +01:00
Simon Ser
bb42ff6a07
components/app: include server ID in notification tags
2022-02-11 19:32:30 +01:00
Simon Ser
db0ef39c6b
Add support for soju.im/read
2022-02-11 19:32:26 +01:00
Simon Ser
77f54080e7
Make delivery receipts follow read receipts
...
If a message has been read, it's been delivered.
Fixes #23 at least partially.
References: https://todo.sr.ht/~emersion/gamja/23
2022-02-11 19:29:55 +01:00
Simon Ser
065b3f21fc
Refactor receipts
...
They are now saved in the buffer store to allow for proper server
separation.
2022-02-11 19:29:55 +01:00
Simon Ser
d2bcea8c86
Introduce isMessageBeforeReceipt
2022-02-11 16:37:58 +01:00
Simon Ser
3d81466788
components/app: introduce receiptFromMessage
2022-02-11 16:30:46 +01:00
Simon Ser
f2923452c1
store: debounce buffer store saves
2022-02-11 16:24:32 +01:00
Simon Ser
39c36e7a7b
Fix unread marker going back
...
Receipts must never go back in time.
Fixes: c428e504fe ("Don't show unread marker for outgoing messages")
2022-02-11 16:06:06 +01:00
Simon Ser
e91b044134
components/app: make switchBuffer state changes atomic
...
Instead of calling App.setBufferState inside the App.setState
callback invoked when the update is done, call State.updateBuffer.
2022-02-11 15:48:56 +01:00
Simon Ser
0063a5a372
Set min node version in package.json
...
v14.13.0 is required for CommonJS named imports to work properly.
2022-02-10 14:46:42 +01:00
Simon Ser
f465e24adf
components/buffer-header: fix dead space above description
2022-02-04 14:38:28 +01:00
Simon Ser
7f7a7c1aac
components/buffer-list: remove pointless temporary variable
2022-02-04 14:32:29 +01:00
Simon Ser
e1bbe34ff2
state: add bouncerNetworks helpers
2022-02-04 14:22:50 +01:00
Simon Ser
9f93e200ed
commands: add comment param to /kick usage
2022-01-31 18:30:48 +01:00
Simon Ser
bd48f36ade
lib/irc: add missing Isupport.chanModes
...
It was called by forEachChannelModeUpdate, but wasn't implemented.
2022-01-31 18:24:34 +01:00
Simon Ser
a0f8f1f52f
components/buffer: fix INVITE link
...
It was throwing a TypeError.
2022-01-10 10:32:37 +01:00
Simon Ser
5d6de11a4c
commands: simplify /who usage string
...
As per https://modern.ircdocs.horse/#who-message
2022-01-09 19:30:01 +01:00
Simon Ser
6692ed0035
components/help: use bold for command name only
2022-01-09 19:28:23 +01:00
Simon Ser
5e34067d38
components/help: remove "/" keybinding, document middle mouse click
2022-01-09 19:20:44 +01:00
Simon Ser
b11f58b975
state: fix prefix() call in MODE handler
...
Lost during a refactoring.
Fixes: ab3d4dd661 ("Refactor ISUPPORT handling")
2021-12-16 23:37:33 +01:00