Commit graph

89 commits

Author SHA1 Message Date
jesopo
86bc49a0a1 Only put a ":" on trailing args when it's required 2019-02-12 13:55:57 +00:00
jesopo
144182868c Upgrade resume.py to draft/resume-0.3 and support sending last-read timestamp 2019-02-12 11:14:36 +00:00
jesopo
b37a50ed7a IRCServer should handle ping_sent, not IRCSocket 2019-02-11 21:23:52 +00:00
jesopo
a8d9365442 last_read/last_send is now handled by IRCSocket.py 2019-02-11 20:49:53 +00:00
jesopo
137d5b1a58 connected status is now tracked by IRCSockets 2019-02-11 20:34:02 +00:00
jesopo
9b44b6cd13 Shift socket.socket related logic to IRCSocket.py 2019-02-11 10:00:41 +00:00
jesopo
b6b7345764 We don't need to send writebuffer.empty event any more (src/IRCServer.py) 2019-02-11 00:00:58 +00:00
jesopo
bb4ec082dd Let IRCLine.Line handle truncating command output 2019-02-10 20:49:59 +00:00
jesopo
abf5679b68 Parse sent data in IRCServer._send, not IRCServer.send 2019-02-10 20:49:03 +00:00
jesopo
89f035fdcf Add IRCServer.hostmask() to construct our nick!user@host hostmask 2019-02-10 20:44:29 +00:00
jesopo
a3b9be3d3d Shift encoding/truncating IRC lines to src/IRCLine.py 2019-02-10 18:43:04 +00:00
jesopo
bd9eaad0b2 Return truncted data from encode_truncate and hold it in IRCLine.Line 2019-02-10 18:16:19 +00:00
jesopo
7952d4c366 Make use of utils.truncate_encode, to avoid cutting utf8 sequences in half 2019-02-10 16:48:08 +00:00
jesopo
b744281e3d Don't send empty space with JOIN if key=="" (src/IRCServer.py) 2019-02-10 15:02:24 +00:00
jesopo
d62b8c79fd Return IRCLine object from IRCServer.send() (and functions that call .send()) 2019-02-10 14:21:14 +00:00
jesopo
8e03bc66af fix self.batches type hint (src/IRCServer.py) 2019-02-10 14:20:40 +00:00
jesopo
28107292f5 now isn't defined now that throttle code has been separated out (src/IRCServer.py) 2019-02-10 14:12:39 +00:00
jesopo
7792be247c Track lines-to-be-sent up until they're completely sent, queue up more than 1
line at a time in write buffer if we've got space (src/IRCServer.py)
2019-02-10 14:09:27 +00:00
jesopo
23da45bebc Make line cutoff character count a const (src/IRCServer.py) 2019-02-10 14:08:07 +00:00
jesopo
e558a7676b Abstract ssl socket wrapping away so we can reuse it 2019-02-10 12:36:52 +00:00
jesopo
b44c456081 Set default values for various types of channel modes (src/IRCServer.py) 2019-02-09 18:52:59 +00:00
jesopo
84a3bf6135 Also capture channel setting-related modes (e.g. +f for flood settings) 2019-02-09 18:48:18 +00:00
jesopo
bae98d1236 Send CAP LS after we send PASS (if applicable) (src/IRCServer.py) 2019-02-07 17:41:10 +00:00
jesopo
1895ac34d7 If a server has a hostname that's not an IP, use it as SNI server name 2019-02-06 18:11:19 +00:00
jesopo
70b29a345a Don't break if we try to "finish" a waiting CAP when it's already finished 2019-02-06 15:44:09 +00:00
jesopo
2f7937adc5 Don't .lower() nicknames in Database.py, it doesn't know about IRC casemapping 2019-02-06 11:25:20 +00:00
jesopo
cbbe6f1569 STARTTLS was removed long ago 2019-02-05 22:26:41 +00:00
jesopo
5991e02b0a Manually count ACK/NAK for REQed CAPs before ENDing CAP negotiation 2019-02-05 19:20:02 +00:00
jesopo
8dcd6b2937 Make sure more than one hook can catch preprocess.send but still respect any
that return a change to the output (src/IRCServer.py)
2019-01-26 11:05:25 +00:00
jesopo
1a24f17375 IRCServer.Server.irc_lower should have a return type hint of str 2019-01-24 17:15:02 +00:00
jesopo
3df6b39228 Typo, IRCServer.Server.irc_equal -> IRCServer.Server.irc_equals 2019-01-24 17:13:51 +00:00
jesopo
301dd7378a Add irc_lower() and irc_equals() to IRCServer.Server so that no where else
in the code has to know about the server having a casemapping
2019-01-24 17:12:50 +00:00
jesopo
809efc6793 Only pop MODE args when we're certain we should (pays more attention to
CHANMODES ISUPPORT)
2018-12-06 08:26:07 +00:00
jesopo
08bd31f150 A couple of tweaks to clarify some type hints 2018-12-02 09:56:57 +00:00
jesopo
c4ea6fa562 data is now line 2018-12-02 09:48:06 +00:00
jesopo
9a311c88b6 Remove print calls from IRCBot.py, move received data logging to IRCServer 2018-12-02 09:41:21 +00:00
jesopo
7c4b2b6c4e Add .nickname/.username/.realname/.hostname to IRCServer 2018-11-27 12:16:36 +00:00
jesopo
72dca06626 Add a way to catch when a writebuffer is emptied so we can e.g. assure a QUIT is
sent before shutting down the bot
2018-11-27 11:56:03 +00:00
jesopo
3061c65024 IRCServer.Server.get_user should be 'typing.Optional[IRCUser.User]', not just
'IRCUser.user'
2018-11-21 20:18:12 +00:00
jesopo
5001e47af9 typo in src/IRCServer.py, 'typing.float' -> 'float' 2018-11-21 20:17:02 +00:00
jesopo
9ecbb6be7b Fix mypy issues caused by overwriting a bytes variable with a str object 2018-11-21 20:16:07 +00:00
jesopo
bab4fca287 Add more return type annotations to src/IRCServer.Server 2018-11-21 20:13:56 +00:00
jesopo
9a5ba99840 Add some missing return type annotations in src/IRCServer.Server 2018-11-21 20:05:21 +00:00
jesopo
2852afd5f7 Add IRCServer.Server.get_target, to get an IRCChannel if the given target is a
channel name or an IRCUser
2018-11-21 20:04:07 +00:00
jesopo
5d813175a1 Don't enable write throttling until we get 005 2018-11-19 10:12:52 +00:00
jesopo
ed838193aa Better support passing "send" events through the parsers already present in
modules/line_handler.py
2018-11-14 14:41:28 +00:00
jesopo
555e8faa03 Print MOTD in modules/print_activity.py (after caching it in
modules/line_handler.py)
2018-11-13 14:59:47 +00:00
jesopo
a9b6086c70 Split out Channels in to IRCChannels.Channels, not IRCChannel.Channels 2018-11-11 14:53:16 +00:00
jesopo
2816fe67bb Move channel tracking data/functions to src/IRCChannel.Channels 2018-11-11 12:34:22 +00:00
jesopo
4bab1aea30 Add a way to more explicitly denote when a CAP handshake has ended early 2018-11-09 10:43:05 +00:00