Commit graph

65 commits

Author SHA1 Message Date
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
jesopo
ace82e49e5 Send events when BitBot sends a PRIVMSG 2018-07-15 14:13:51 +01:00
jesopo
6500d595ae Allow own usermodes to have args, added some vertical whitespace in IRCServer 2018-07-15 13:30:27 +01:00
jesopo
718da30728 skip !more's out/err, added a way to split messages from their prefixes for
logging purposes
2018-07-14 09:50:12 +01:00
jesopo
fe89164077 Default IRCServer.mode_prefixes to @+(ov) 2018-07-02 16:24:00 +01:00
jesopo
685364d56d Fixed small type in IRCServer 2018-07-02 11:08:39 +01:00
Evelyn
b6d34eb3f8 Remove debug print 2018-02-15 18:09:19 +00:00
jesopo
0cc72d5d66 Added a "replay" system to EventManager hooks, to replay missed .calls 2017-12-26 10:32:36 +00:00
jesopo
e63438e2bb Add OP_NO_TLSv1 and fix a bug created while fixing another bug 2017-11-01 14:16:01 +00:00
jesopo
8a48d0e74c unsupported operand type(s) for %: 'bytes' and 'bytes' 2017-11-01 14:08:02 +00:00
jesopo
4779c885c8 Handle versions of python that don't have ssl.PROTOCOL_TLS 2017-11-01 14:04:49 +00:00