Commit graph

48 commits

Author SHA1 Message Date
jesopo
b7cf524e98 Give modules event objects with "context"s, to facilitate purging all the event
hooks for a module
2018-08-31 13:44:39 +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
jesopo
d6134d71a3 Don't put non-kwargs after unpacked list, handle ConnectionResetError 2017-11-01 13:56:44 +00:00
jesopo
0df7abb03e Handle empty CAP, additional IRCLog feature, better tls, better channel_save logic, add sed-sender-only setting
Signed-off-by: jesopo <github@lolnerd.net>
2017-10-27 13:15:33 +01:00
Evelyn
caab9b6714 Change line handling 2017-07-16 21:18:58 +01:00
Evelyn
e232ad5dae Add IRCv3→SASL support for nickserv auth, added optional module whitelist, added server option for recording channel keys, increased flexibility for event raising in linehandler, probably other things too 2017-07-12 10:00:45 +01:00
jesopo
3880030136
fixed a minor (but crash-causing) typo in IRCServer.py. 2016-05-17 17:58:20 +01:00
jesopo
bc12c77891
did what I said I would sooner than I thought I would. centralised persisting timers through bot restarts. 2016-04-19 13:25:50 +01:00
jesopo
9eff1b8931
entirely reworked the timer system to work with the event system, will eventually persist all timers to database until complete in a central way. 2016-04-19 12:21:27 +01:00
jesopo
978fc5a359
added a socket timeout to IRCServer socket objects. 2016-04-18 16:48:04 +01:00
jesopo
d0be88ef3b
this was supposed to be in the last commit. oops. 2016-04-10 17:30:44 +01:00
jesopo
9567ad4784
added some more mode event firing and removed unneeded debug printing. 2016-04-04 12:36:23 +01:00
jesopo
504e93a78d
tinkered with some modules and fixed a few bugs, also added the skeleton for the auto_mode.py module. 2016-04-03 13:20:05 +01:00
jesopo
957947cf8d
added code to prevent newlines being where they shouldn't be in outgoing lines. 2016-04-01 10:46:00 +01:00
jesopo
acc38b7460
made the args for IRCLineHandler functions global and added a timer-based channel join re-try. 2016-03-31 13:20:03 +01:00
jesopo
57a0e2f10f
made commands work in channel AND in private message. 2016-03-29 16:22:22 +01:00
jesopo
f943d63098
first commit. 2016-03-29 12:56:58 +01:00