Commit graph

106 commits

Author SHA1 Message Date
jesopo
ee8c7813f7 Add IRCServer.send_raw so modules don't have to parse messages before sending
them
2019-04-16 13:47:45 +01:00
jesopo
91c2ab03ba add IRCServer.send_enabled, to prevent sending after QUIT in signals.py 2019-03-05 11:29:46 +00:00
jesopo
7a3db82300 Add IRCServer.has_capability and use it throughout line_handler 2019-03-03 22:38:34 +00:00
jesopo
8d55319f56 Rename IRCLine.Line to IRCLine.SentLine, for clarity 2019-02-24 08:25:12 +00:00
jesopo
1473f41b03 Fire preprocess.send per-command - use this to only strip colors from ParsedLine
objects for PRIVMSG and NOTICE
2019-02-23 21:40:11 +00:00
jesopo
8c94bcf6ca Move utils.irc.IRCParsedLine to IRCLine.ParsedLine, improve truncation
mechanism, don't convert sent line from ParsedLine to text to ParsedLine for
line_handler handling
2019-02-23 21:33:04 +00:00
jesopo
8b54046ca4 Add target typehint on IRCServer.send_tagmsg, add send_tagmsg to IRCChannel/IRCUser 2019-02-22 22:34:54 +00:00
jesopo
deedab7248 Add IRCServer.send_joins, a nicer interface than manually ",".joining 2019-02-20 17:08:30 +00:00
jesopo
577fae7cea Don't pass None around as tag default, fix some missing return type args 2019-02-19 15:57:00 +00:00
jesopo
81ae0cc889 Add make_batch and send_batch to IRCServer 2019-02-18 23:16:47 +00:00
jesopo
186b6b82a2 Shift formatting protocol data to it's own file: utils.irc.protocol 2019-02-18 14:58:27 +00:00
jesopo
cb0314da67 Put a helper function in utils to do iso8601 formatting. change IRCServer's
last-read setting to use it.
2019-02-17 14:15:40 +00:00
jesopo
be495344d4 How did this newline get here 2019-02-17 12:40:31 +00:00
jesopo
716568c21d 'src/IRCServer.capabilities' -> 'src/IRCServer.agreed_capabilities' 2019-02-16 09:12:43 +00:00
jesopo
23b0e58665 Send CAP REQ in 10-item chunks (src/IRCServer.py) 2019-02-16 08:21:42 +00:00
jesopo
ed99d66163 Don't add a space after a formatted tagmsg in _tag_str (src/IRCServer.py) 2019-02-14 21:59:26 +00:00
jesopo
8d97e51bf3 Add IRCServer.send_tagmsg, to send TAGMSG commands 2019-02-14 21:36:59 +00:00
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