summaryrefslogtreecommitdiff
path: root/irc (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Fetch missed messages on reconnectHubert Hirtz2021-09-011-0/+6
| | | | just one step closer to proper CHATHISTORY support!! :=D ^v^
* Print the channel topic on joindelthas2021-07-142-0/+2
| | | | Fixes: #45
* Switch to the buffer of a new user-requested channel joindelthas2021-07-132-22/+32
|
* Ratelimit +typing and send +typing=done once onlydelthas2021-07-132-5/+40
| | | | | Fixes: #8 Fixes: #41
* Sort channel members by namedelthas2021-07-122-0/+17
| | | | | | | This is used for nick autocomplete and for /NAMES. It will also be used for the vertical user list in the UI in a upcoming patch.
* Explicitly support keys in JOIN messagesHubert Hirtz2021-05-201-3/+6
|
* Fix races conditionsHubert Hirtz2021-05-205-576/+305
| | | | | | | | | | | | | | | | | | | | Refactor: - Split out reads/writes from irc.Session to irc.ChanInOut, - Message handling is now manual, messages must be passed to irc.Session.HandleMessage for its state to change, - Remove data-race-prone App.addLineNow (called from both the main eventLoop and irc loops) and add App.addStatusLine (to be called from the main event loop) and App.queueStatusLine (to be called from other goroutines). These two functions now write to both the current buffer and the home buffer, - add a irc.Typings.List function that locks the list of typings before accessing it. Changes as I went through the whole code... - CAP handling is fixed (especially CAP DEL and CAP ACK), - irc.Session now handles PREFIX, - unhandled messages are now shown, except for some rare cases where it's completely useless to show them.
* Add /mode commandAlexey Yerin2021-05-181-0/+21
|
* Add /nickHubert Hirtz2021-05-181-0/+15
|
* Fix duplicate lines when scrolling upHubert Hirtz2021-04-271-0/+9
|
* Split long messages before sending themHubert Hirtz2021-04-271-1/+44
| | | | | | | | avoids silent truncations. Also consider the LINELEN ISUPPORT token: - https://defs.ircdocs.horse/defs/isupport.html - http://rabbit.dereferenced.org/~nenolod/ircv3-harmony/id-wpitcock-ircv3-core.html#rfc.section.3.8.2.1.17
* Split the "feature" map into specific attributesHubert Hirtz2021-04-271-16/+23
|
* Don't show own typing notificationsHubert Hirtz2021-04-261-1/+1
|
* Better connection managementHubert Hirtz2021-03-041-8/+12
| | | | | | - Send keepalives - Reconnect when the connection is lost - Set timeout for write operations
* Add the QUIT commandHubert Hirtz2021-02-181-0/+14
|
* Chathistory: don't send invalid timestampsHubert Hirtz2021-01-061-2/+2
|
* Move configuration defaults to config.goHubert Hirtz2020-11-301-10/+0
|
* Don't forward outdated typing timeoutsHubert Hirtz2020-11-231-2/+10
| | | | | | The channel might have been parted, or the user might have parted from the channel before receiving the timeout from Typings, thus causing a segfault.
* Document irc/typing.goHubert Hirtz2020-11-231-4/+11
|
* Cleanly stop all coroutines on irc.Session.StopHubert Hirtz2020-11-232-5/+19
| | | | | This fixes a panic when irc.Session.handle is called with an empty message.
* Document the IRC libraryHubert Hirtz2020-11-212-27/+86
|
* Only send the SelfJoinEvent when channel info is completeHubert Hirtz2020-11-201-1/+9
|
* Consider the CASEMAPPING isupport tokenHubert Hirtz2020-11-192-2/+25
| | | | | | Using RFC1459 as a default since servers not advertising this token are likely to be pre-IRCv2, thus following the casemapping described in the RFCs.
* Consider the CHANTYPES isupport tokenHubert Hirtz2020-11-191-1/+5
|
* Basic display of errorsHubert Hirtz2020-11-193-5/+64
|
* Add completion for /msgHubert Hirtz2020-11-191-0/+8
|
* Default user/real to nickname if unspecifiedSimon Ser2020-11-061-0/+10
| | | | | While at it, error out if nick is unspecified instead of sending a broken command to the server.
* irc: Fix requestHistory by making it use UTCSamuel Hernandez2020-10-271-1/+1
|
* Vertical channel listHubert Hirtz2020-10-261-0/+2
|
* Handle KICK messagesHubert Hirtz2020-10-192-2/+27
|
* Show topic changesHubert Hirtz2020-10-192-0/+13
| | | | Closes #34
* Ensure timestamps from msg.TimeOrNow() are always UTCHubert Hirtz2020-10-191-1/+1
|
* Typing indicator timeoutHubert Hirtz2020-09-022-5/+93
|
* irc: Reset typing ratelimiter after sent messageHubert Hirtz2020-09-011-0/+2
|
* General refactor yayHubert Hirtz2020-08-263-172/+211
| | | | | | | | | | | | - Centralize message formatting - Make line formatting more flexible - Provide more information in irc events - Refactor command handling - Add a /help command - Make /me reply to last query if from home - Enforce argument for /me - Make BufferList and Editor public - Batch processing of IRC events
* Allow /part with a reasonHubert Hirtz2020-08-241-3/+4
|
* Drop username and hostname from TopicWhoHubert Hirtz2020-08-241-1/+1
|
* Improve query displayHubert Hirtz2020-08-242-0/+2
| | | | | - Print outgoing messages as "-> target" instead of self nick - Don't highlight messages
* Fix multiple SelfJoinEvent being sentHubert Hirtz2020-08-241-5/+1
| | | | | ... every time NAMES were requested. SelfJoinEvent should be ok being in the "JOIN" handler, since names are only useful for the user.
* Fix /topic only accepting one wordHubert Hirtz2020-08-221-1/+1
|
* Fix same messages being fetched with CHATHISTORYHubert Hirtz2020-08-222-3/+1
| | | | | | | | | The issue was that Message.Time() converted the timestamp to Local time, and this local timestamp was being used with UTC timestamps. Thus senpai now converts the time only during display. Moreover, to avoid missing messages in history (and at the cost of duplicates), the condition in bufferList.AddLines() as been modified.
* irc: Don't panic on a NICK from an unknown userHubert Hirtz2020-08-201-4/+5
|
* ui: Show unhandled messages in debug modeHubert Hirtz2020-08-192-4/+7
|
* ui: Show the nick when senpai registers with a different oneHubert Hirtz2020-08-192-5/+2
|
* ui: Don't panic when the connection failsHubert Hirtz2020-08-191-5/+5
|
* Properly close everything in case of errorHubert Hirtz2020-08-191-0/+6
|
* irc: Fix RPL_TOPICWHOTIME handlingHubert Hirtz2020-08-181-1/+1
|
* irc: Update TopicWho and TopicTime on TOPICHubert Hirtz2020-08-182-29/+17
|
* irc: Send NAMES when multi-prefix is negociatedHubert Hirtz2020-08-171-12/+21
|
* Add /names commandHubert Hirtz2020-08-172-42/+77
|