summaryrefslogtreecommitdiff
path: root/irc/states.go (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix races conditionsHubert Hirtz2021-05-201-1197/+0
| | | | | | | | | | | | | | | | | | | | 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.
* Cleanly stop all coroutines on irc.Session.StopHubert Hirtz2020-11-231-3/+13
| | | | | This fixes a panic when irc.Session.handle is called with an empty message.
* Document the IRC libraryHubert Hirtz2020-11-211-21/+51
|
* Only send the SelfJoinEvent when channel info is completeHubert Hirtz2020-11-201-1/+9
|
* Consider the CASEMAPPING isupport tokenHubert Hirtz2020-11-191-2/+5
| | | | | | 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-191-3/+24
|
* 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-191-1/+26
|
* Show topic changesHubert Hirtz2020-10-191-0/+6
| | | | Closes #34
* Typing indicator timeoutHubert Hirtz2020-09-021-5/+29
|
* irc: Reset typing ratelimiter after sent messageHubert Hirtz2020-09-011-0/+2
|
* General refactor yayHubert Hirtz2020-08-261-101/+106
| | | | | | | | | | | | - 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-241-0/+1
| | | | | - 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-221-1/+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-191-4/+6
|
* ui: Show the nick when senpai registers with a different oneHubert Hirtz2020-08-191-4/+1
|
* 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: Update TopicWho and TopicTime on TOPICHubert Hirtz2020-08-181-29/+9
|
* irc: Send NAMES when multi-prefix is negociatedHubert Hirtz2020-08-171-12/+21
|
* Add /names commandHubert Hirtz2020-08-171-41/+76
|
* irc: Handle CAP NEW/DEL/NAK before registrationHubert Hirtz2020-08-171-0/+2
|
* irc: Also update casefolded nickname on ERR_ERRONEOUSNICKNAMEHubert Hirtz2020-08-171-0/+1
|
* irc: Use a bool instead of an error for validationHubert Hirtz2020-08-161-7/+1
|
* Handle RPL_TOPICWHOTIMEHubert Hirtz2020-08-161-4/+14
|
* Add a /topic commandHubert Hirtz2020-08-161-1/+41
|
* irc: Delete ConnectionState and use a bool insteadHubert Hirtz2020-08-161-14/+6
|
* irc: Use better names for casefolded variablesHubert Hirtz2020-08-161-57/+58
|
* irc: Use typing constantsHubert Hirtz2020-08-161-4/+11
|
* irc: Simplify debug logging of incoming messagesHubert Hirtz2020-08-161-13/+4
|