Commit graph

75 commits

Author SHA1 Message Date
jesopo
7108b05bc0 Only accept PROTOCOL_TLS as SSL handshake version 2018-09-19 14:44:28 +01:00
jesopo
fcbb7c960c Refactor everything to use delimited events 2018-09-19 13:25:12 +01:00
jesopo
b7dda02951 Add optional aliases for IRCServers, mostly to make logging prettier. 2018-09-19 01:13:54 +01:00
jesopo
0c7d088230 Set IRCServer.channel_types to ["#"] by default 2018-09-17 22:08:54 +01:00
jesopo
4a3dbeb7b8 Also catch socket.timeout in IRCServer.read() 2018-09-17 20:59:50 +01:00
jesopo
17f318acb6 'USER <username> 0 * :<realname>' is technically more correct, per RFC2812, than
"USER <username> - - :<realname>'
2018-09-17 13:49:48 +01:00
jesopo
c3482e78ba Add ability to not vertify a server's certificate ('ssl-verify') 2018-09-17 11:38:40 +01:00
jesopo
d307fab507 Add support for TLS client certificate/key 2018-09-17 10:55:39 +01:00
jesopo
3576f18a82 Verify server TLS certificates 2018-09-17 10:47:08 +01:00
jesopo
e8c7abd19a Remove additional % 2018-09-13 10:27:50 +01:00
jesopo
36fe1fa0d5 Specific "n%" for WHOX as to only return nicks. 2018-09-13 10:25:33 +01:00
jesopo
58bc741177 Don't return 0 as "time until next ping" when we've already sent a ping. return
None instead.
2018-09-11 18:25:27 +01:00
jesopo
80ec110640 Utils.irc_lower and Utils.irc_equals take an IRCServer parameter 2018-09-11 10:15:16 +01:00
jesopo
9236327366 Forgot to import Utils in IRCServer 2018-09-11 10:14:12 +01:00
jesopo
6c8399fa0f Respect RFC1459 casemapping rules 2018-09-11 08:52:12 +01:00
jesopo
78171f7504 Add support for IRCv3's batch and draft/labeled-response 2018-09-10 08:57:10 +01:00
jesopo
a4f0d1bf28 Support IRCv3's tls/STARTTLS 2018-09-07 16:34:51 +01:00
jesopo
7e3d7542b9 Support CAP 3.2 2018-09-07 15:51:41 +01:00
jesopo
f2aeaf7797 Don't use IRCUser.id ever, use IRCUser.get_id() 2018-09-05 12:58:12 +01:00
jesopo
6bd6f2492b Support IRCv3's account-notify/extended-join along with WHOX to replace internal
register/identify
2018-09-05 11:58:10 +01:00
jesopo
d90a5164da Nope, revert echo-message support. a certain network only offers it in channel,
not private.
2018-09-03 22:32:48 +01:00
jesopo
1c474771c5 Support IRCv3's echo-message 2018-09-03 22:17:34 +01:00
jesopo
759cd64f33 Keep a list of CAP capabilities in IRCServer 2018-09-03 22:17:01 +01:00
jesopo
9d95581c44 Support IRCv3's chghost and invite-notify 2018-09-03 11:47:11 +01:00
jesopo
0f578b1ec1 Send CAP END when we're not waiting for any capability handshakes 2018-09-03 11:18:20 +01:00
jesopo
29851d4305 Make CAP functionality more part of the framework and support message-tags and
multi-prefix
2018-09-03 11:14:52 +01:00
jesopo
525de94c02 Actually, we do need find_all_by_setting 2018-08-31 15:34:56 +01:00
jesopo
9874f79b49 Give modules event objects with "context"s, to facilitate purging all the event
hooks for a module
2018-08-31 12:55:52 +01:00
jesopo
c5d445c715 IRCServer.remove_own_mode doesn't take an "arg" 2018-08-30 11:17:00 +01:00
jesopo
9b7c7035f9 Refactor handling MODE in IRCLineHandler 2018-08-30 11:12:48 +01:00
jesopo
43ab3cbd10 Factor ping interval and ping timeout in to the main loop's minimum interval 2018-08-29 14:33:27 +01:00
jesopo
fead75cd2f Refactor IRCLineHandler in to an object that uses .on("raw") events 2018-08-29 12:20:25 +01:00
jesopo
a4a12a70c4 Change throttling mechanics to be "x lines per y seconds" 2018-08-29 08:38:43 +01:00
jesopo
ab9869aecb Change verbose logging to use propper logging system 2018-08-28 17:30:52 +01:00
jesopo
423eacaefe Do throttling based on line count, not byte count 2018-08-28 17:30:14 +01:00
jesopo
2728a8422f change IRCServer.Server.__str__ to return hostname:port instead of full __repr__ 2018-08-28 16:05:43 +01:00
jesopo
527d548743 Seperate .waiting_send() and throttle logic 2018-08-28 15:32:50 +01:00
jesopo
ab543022c4 Improve IRCServer.Server's __repr__ 2018-08-28 15:14:41 +01:00
jesopo
ef16817ad5 Switch to time.monotonic for comparisons, only send data at most once every .5
seconds and only send max 512 bytes at a time
2018-08-28 14:36:16 +01:00
jesopo
e5a5fa5c4b modules/logging.py -> IRCLogging.py; IRCLog.py -> IRCBuffer.py; change logging
to be an object on the server object instead of an event call
2018-08-28 12:23:57 +01:00
jesopo
3bb54a4808 upate IRCUser.id when a user changes their nickname 2018-08-19 10:19:54 +01:00
jesopo
9a3f2e5de6 Change the database to give channels and users ids and use those in the settings
tables
2018-08-19 00:19:53 +01:00
jesopo
ce05b98f61 Moved table-specific logic to their own "table" classes in Database.py 2018-08-05 22:41:38 +01:00
jesopo
558b368b1a Only get "fallback-encoding" setting when we need it 2018-08-05 11:42:25 +01:00
jesopo
fbd6975351 Remove debug print, improve wikipedia.py 2018-08-04 12:48:38 +01:00
jesopo
21c1db2965 nickname_ids was useless 2018-08-04 12:10:10 +01:00
jesopo
ffd41d0771 Added addition "find" methods to Database.py, along with a "get all" for user
settings to search without a nickname
2018-08-03 13:43:45 +01:00
jesopo
2ea2dd17da implemented handling notices in IRCLineHandler, including server notices 2018-07-22 21:46:22 +01:00
jesopo
d0ef4432b3 move sending CAP sasl request to sasl.py 2018-07-16 21:41:39 +01:00
jesopo
2012a388da move sasl logic to it's own module 2018-07-15 23:56:06 +01:00