summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* feat(ui): Only show nickname once for multiple consecutive messagesfeat/hrefhref/multiline-hide-nickJordan Bracco2022-12-311-0/+16
|
* Only show one connected message per reconnectiondelthas2022-12-231-1/+7
|
* Show connected messages in the current buffer as welldelthas2022-12-231-1/+1
|
* Backoff from 0 seconds to 1 minute on reconnectdelthas2022-12-231-21/+23
| | | | Resets on successful connection.
* Hide on-register RPL_UMODEISdelthas2022-12-231-0/+8
|
* Show MOTD in server buffer onlydelthas2022-12-231-1/+9
| | | | Also hide MOTD start and end messages.
* np: Bump libnp & be more verbose with errorsdelthas2022-12-223-10/+13
|
* Fix failing on addresses with a literal IP address without URLsdelthas2022-12-221-2/+1
| | | | | | The configuration addr 127.0.0.1:12345 should now work again.
* Implement /OPERdelthas2022-12-213-0/+24
| | | | Fixes: https://todo.sr.ht/~taiite/senpai/105
* Bump go-libnpdelthas2022-12-212-3/+3
| | | | | | | | | This fixes a critical build issue introduced in [1] where go-libnp would fail building on Linux, with: C source files not allowed when not using cgo or SWIG: np_util.c [1]: a8e1b1b416c28985c58f8a5c4a4c8867d0eaf660
* Move /NP code to go-libnpdelthas2022-12-173-71/+26
| | | | | | This enables /NP to work on Windows. See: https://github.com/delthas/go-libnp
* Prevent possible deadlock in the typing systemdelthas2022-12-161-2/+3
| | | | | | | When being flooded by typing notifications, we could steal the lock from the routine supposed to empty the notification channel. This caused a possible deadlock in rare cases.
* Fix processing CHATHISTORY TAGMSG as standalone messagesdelthas2022-12-161-1/+1
| | | | | | | | | | | | | Receiving a TAGMSG in chathistory causes the handler to return nil. Previously this caused the handler to be called again without the playblack flag, causing us to emit events out of their history context. This meant we would show typing notifications for users from chathistory batches. Soju will soon be able to send TAGMSG messages in its chathistory, so we're fixing that now.
* doc: Fix trivial typodelthas2022-12-021-1/+1
|
* Fix failing to parse host:port IRC URLsdelthas2022-12-021-3/+6
| | | | | | This fixes a regression introduced in [1]. [1]: 68e1efcf0612c635ea186676559883e791552d30
* Implement /NPdelthas2022-11-234-0/+101
| | | | | | | | | | | This queries the system for the current song being played. This uses DBus & MPRIS/xesam. The priority is any player in playing state > any player in paused state. Only players in the playing or paused state, with a valid song title are considered.
* Add documentation for /MOTDdelthas2022-11-231-1/+4
|
* Implement /MOTDdelthas2022-11-222-0/+18
|
* Support irc URLs in the config addrdelthas2022-11-222-0/+20
| | | | Fixes: https://todo.sr.ht/~taiite/senpai/106
* Enable receiving away updates for private buffersdelthas2022-11-151-10/+11
| | | | We just need to enable extended-monitor :-)
* Print date as dd/mm or mm/dd depending on the user localedelthas2022-11-153-9/+60
| | | | | | Overkill, but this was a nice weekend project :-) Fixes: https://todo.sr.ht/~taiite/senpai/107
* Add a 10s timeout to connect + TLS handshakedelthas2022-11-041-6/+11
|
* Render the Unicode replacement character properlydelthas2022-10-191-3/+0
| | | | | | | | | | | | | Previously, we stopped rendering a line on its first Unicode replacement character, because we used that special value for detecting invalid Unicode bytes. Now that we pre-process incoming strings to replace invalid Unicode bytes with the Unicode replacement character [1], there is no need to stop rendering a string on this character: it should just be passed through as is. [1]: 700139404044730a726af7cd57e3d2dbc07871ea
* Clear highlights from MARKREAD when only NotifyNone lines are leftdelthas2022-10-185-47/+58
| | | | | | | | | | | | | | | | | Previously, we did not clear buffers highlight statuses on MARKREAD if there was any unread line after it. This meant that if we received a plain message, than a join message, and some other device sent us a read marker for the plain message, we would still highlight the buffer. But we should not: a join message should not highlight the buffer. This is a recurrent use case because some clients do not display join mesasges and therefore do not send read markers for it. This updates the logic to actually store the notify level (in the line) and uses it to reset the highlight status when only NotifyNone messages (or no messages) are left.
* Bump tcell versiondelthas2022-10-182-11/+26
| | | | | | tcell just got a bugfix for OSC 8 hyperlink IDs. See: https://github.com/gdamore/tcell/commit/ede1dd5ee68071a873d425e749bcbde04f1a1cc3
* Fix requesting CHATHISTORY TARGETS with invalid timestampsdelthas2022-10-172-3/+5
| | | | | | | | | | | Previously, we sent the CHATHISTORY TARGETS start time with an incorrect offset equal to the system time offset. This means that we only reopened private buffers from the last app close + N hours on a system with a N-hour time offset. This fixes the issue by saving the stamp as UTC, and also making sure to format any time offset correctly.
* Fix OSC 8 hyperlink ID formatdelthas2022-10-171-1/+1
| | | | I meant to add 0-padding to avoid spaces.
* Add OSC 8 hyperlink IDsdelthas2022-10-174-10/+15
| | | | | | | OSC 8 hyperlink ID support was merged into tcell. We can now use those IDs to help terminal emulators identify links spanning multiple lines, possibly highlighting the whole link whe it is hovered, or creating a single link hotkey for them.
* Switch to the upstream tcell implementation of OSC 8 hyperlinkdelthas2022-10-143-11/+9
| | | | | | | | | | | tcell has merged OSC support in [1], with support for more terminals than what was added in the tcell fork we used. Now, all terminals with mouse sequences support should receive OSC 8 hyperlinks sequences. [1]: https://github.com/gdamore/tcell/pull/527/commits/e7b14a71dc78721c0f007fd6197262c52c1d4df9 Fixes: https://todo.sr.ht/~taiite/senpai/103
* Scroll to buffer on zoomNomeji2022-10-132-0/+5
|
* Fix crashing on ISUPPORT PREFIX=delthas2022-10-121-0/+1
| | | | | | | On servers without prefixes, we previously crashed because of a missing break. The intended logic was to only process the string if it was not empty.
* Replace non-UTF8 chars with the Unicode replacement characterdelthas2022-10-081-0/+3
| | | | | tcell does not handle non-UTF8 chars well, so we explicitly replace them when getting the messages to avoid passing them to tcell down the line.
* Prevnet highlighting on notices, drop unknown CTCPdelthas2022-10-041-9/+23
|
* Make the last opened channel visible in the horizontal listdelthas2022-09-142-1/+6
| | | | | | | | When starting senpai, we jump to the last opened buffer. Offset the horizontal target list to make the buffer visible, as if scrolled to with CTRL+N. Fixes: https://todo.sr.ht/~taiite/senpai/100
* Use WHOX rather than WHO when availabledelthas2022-09-022-5/+25
| | | | | This will reduce network usage and possibly increase WHO cache hit ratio on bouncers supporting a WHO cache.
* Always show the date of the top messagedelthas2022-08-281-15/+20
| | | | | | Even if it is a continuation line. Fixes: https://todo.sr.ht/~taiite/senpai/98
* Highlight only on word boundariesdelthas2022-08-191-2/+29
| | | | | | | | | | | | | | | | | | | Preivously, we highlighted the user for any message that contained the nick, even in the middle of a word. Now, we only send a highlight if the user was mentioned in a single word, by detecting word boundaries around the mention of the user. For example, considering user "foo": Previously, we would highlight on "foo" and "foolish". Now, we highlight only on "foo". This was inspired/copied from soju's handling [1]. [1]: https://git.sr.ht/~emersion/soju/tree/5e56cc30c538eb88c21cce732e2e357e80098164/item/irc.go#L473 Fixes: https://todo.sr.ht/~taiite/senpai/97
* Show the message date instead of its time on date changedelthas2022-08-162-1/+25
| | | | Fixes: https://todo.sr.ht/~taiite/senpai/17
* Mention /help rather than mandelthas2022-08-151-1/+1
| | | | | | | Using man to learn more about senpai is obvious. Using /help is more specific to senpai. Mention that rather than the man.
* Revert to using base colors by default, making extended configurabledelthas2022-08-155-41/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In a previous commit, the color scheme for displaying nicks was changed to use more colors (30 rather than 14), using extended colors from the 256 colors set. The issue with this is that most terminal emulators customize the colors of the first 16 colors to make them more readable (eg, a terminal emulator with a light theme will make colors darker, and one with a dark theme will make colors lighter). So the 14 colors used before were usually not the default color codes from the original xterm/X11 spec, but specific colors chosen by the terminal emulator to be particularly readable. In a way, changing the behavior to use colors from the 256 colors set, which is usually not overriden, made them much less readable. Which is why we need a configuration option for this. I conversatively chose to make the default color scheme the previous one, with only the base 16 colors. The 256 colors scheme can be enable by adding to the configuration file: colors { nicks extended }
* Add a project descriptiondelthas2022-08-101-1/+3
| | | | This will help maintainers create their package.
* Update maintainerdelthas2022-08-101-2/+3
|
* Color nicks in the member list the same as in the timelinedelthas2022-08-104-19/+59
| | | | | | | | Also, change the color scheme to use more colors. Now 30 instead of 15, and with the consistent color codes offered by the extended XTerm 256 color scheme. Fixes: https://todo.sr.ht/~taiite/senpai/90
* Add support for soju.im/bouncer-networks-notifydelthas2022-08-105-19/+89
| | | | | | This enables dynamic discovery of new and deleted networks. Fixes: https://todo.sr.ht/~taiite/senpai/71
* Document selecting with shiftdelthas2022-08-101-0/+6
| | | | Fixes: https://todo.sr.ht/~taiite/senpai/91
* Hide automatic away repliesdelthas2022-08-051-0/+2
| | | | | We don't care about them since we display the user away status using MONITOR.
* Add a config option to beep on highlightKirill Chibisov2022-08-014-1/+24
| | | | | This will allow to bring user attention when you are getting highlighted.
* Add support for hex colorsdelthas2022-07-251-2/+43
|
* Add pane-widths { text } to limit the max line widthdelthas2022-07-255-8/+36
| | | | Fixes: https://todo.sr.ht/~taiite/senpai/87
* Fix crashing when shrinking the text to a zero widthdelthas2022-07-221-0/+3
| | | | | | Thanks steamyalt for the bug report. Fixes: https://todo.sr.ht/~taiite/senpai/86