aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Specifically handle OSError (e.g. Network is unreachable) as a disconnectGravatar jesopo2018-10-261-1/+1
|
* signal.signal timer callback takes 2 argsGravatar jesopo2018-10-251-1/+1
|
* Update src/IRCUser.py.send_notice to take a prefix kwargGravatar jesopo2018-10-251-2/+2
|
* Standardise "Failed to load results" errors!Gravatar jesopo2018-10-201-0/+3
|
* Some networks allow you to remove user modes that don't exist e.g. removing +oGravatar jesopo2018-10-181-4/+6
| | | | from someone that doesn't have it. wtf.
* Add missing `return` in src/IRCServer.py.get_user_settingGravatar jesopo2018-10-181-1/+1
|
* Print lines not [lines] in src/IRCBot.pyGravatar jesopo2018-10-171-1/+1
|
* "Cannot" -> "can't" in IRCServer encoding fallbackGravatar jesopo2018-10-171-1/+1
|
* TRACE log when we have to use fallback encodingGravatar jesopo2018-10-171-2/+4
|
* Only log exceptions when they're not unsafeGravatar jesopo2018-10-161-3/+4
|
* Add utils.EventError, utilise it for stderr in commands.py/coins.pyGravatar jesopo2018-10-161-0/+3
|
* event["args"] is an array already, args_split does not exist. Also send rawGravatar jesopo2018-10-151-1/+1
| | | | | events from src/IRCServer.py as call_unsafe to make errors like that more apparent.
* Typo in src/IRCServer.py, 'defau;t' -> 'default'Gravatar jesopo2018-10-141-1/+1
|
* Work directly from users in modules/coins.py.interest(), so as to not giveGravatar jesopo2018-10-141-0/+8
| | | | double-interest to two "users" online at the same time sharing the same identity
* Typo in src/Timers.py, 'conteext' -> 'context'Gravatar jesopo2018-10-131-1/+1
|
* Actually, don't give contexts to timers that aren't contextual. (e.g. pesistentGravatar jesopo2018-10-131-2/+2
| | | | timers)
* Timers._add takes a "context" paramGravatar jesopo2018-10-131-1/+1
|
* a Timer object can have a context yet not be a contextual timerGravatar jesopo2018-10-131-1/+1
|
* Correctly remove contextual timers from src/Timers.pyGravatar jesopo2018-10-131-3/+9
|
* Use Timers.get_timers() instead of Timers.timersGravatar jesopo2018-10-121-1/+1
|
* Pass context-wrapped timers to each module, add ModuleManager.BaseModule.on_loadGravatar jesopo2018-10-122-4/+7
|
* Add TimersContext, to be able to purge timers when modules are unloadedGravatar jesopo2018-10-122-8/+41
|
* Use decimal.Decimal in utils.parse_numberGravatar jesopo2018-10-121-9/+12
|
* Actually pass format args to ValueErrors in utils.parse_numberGravatar jesopo2018-10-121-2/+2
|
* int(number) after we've checked .isdigit() in utils.parse_numberGravatar jesopo2018-10-121-0/+1
|
* Add utils.parse_number, to turn 1k/1m/1b in to 1_000/1_000_000/1_000_000_000Gravatar jesopo2018-10-121-0/+19
|
* Improve "non-complete line" TRACE logGravatar jesopo2018-10-111-2/+2
|
* TRACE log when we receive and buffer a non-complete lineGravatar jesopo2018-10-111-0/+3
|
* Add !syncmodes in modules/auto_mode.py, fire internal.identified inGravatar jesopo2018-10-111-0/+3
| | | | | modules/permissions.py and catch it in modules/auto_mode.py to give users modes when they identify using the internal identity mechanism
* Add fallback_encoding to utils.http.get_url, in case a page has no implicitGravatar jesopo2018-10-101-2/+3
| | | | encoding
* .decode data prior to json.loads in utils.http.get_urlGravatar jesopo2018-10-101-2/+1
|
* Fix syntax error for throwing a timeout when signal.alarm firesGravatar jesopo2018-10-101-1/+3
|
* .decode plaintext returns from utils.http.get_urlGravatar jesopo2018-10-101-0/+1
|
* Use signal.alarm to Deadline utils.http.get_url and throw useful exceptionsGravatar jesopo2018-10-101-16/+28
|
* Set a max size of 100mb for utils.http.get_urlGravatar jesopo2018-10-101-3/+7
|
* Change utils.http to use requestsGravatar jesopo2018-10-101-83/+30
|
* Remove debug print in src.utils.httpGravatar jesopo2018-10-091-1/+0
|
* Return response code from utils.http.get_url when code=True and soup=TrueGravatar jesopo2018-10-091-4/+11
|
* Don't continue trying to use None dataGravatar jesopo2018-10-081-0/+2
|
* Support post_data in utils.http.get_urlGravatar jesopo2018-10-081-2/+7
|
* Support multiple types of comments in utils.get_hashflagsGravatar jesopo2018-10-071-3/+11
|
* clear _trigger_functions after we've called all the waiting functionsGravatar jesopo2018-10-071-0/+3
|
* Optionally take a function in IRCBot.trigger, a function to be called on theGravatar jesopo2018-10-071-1/+8
| | | | main thread
* Socket on_read functions take 2 args (socket, string)Gravatar jesopo2018-10-071-1/+1
|
* This is a far less complicated way of triggering epoll.pollGravatar jesopo2018-10-072-45/+5
|
* Research suggests _config and config are not synonymousGravatar Evelyn2018-10-061-1/+1
|
* Add control-socket to bot.conf.example, only start up control socket is a unixGravatar jesopo2018-10-061-5/+6
| | | | domain socket location is provided
* 'control_socket_client' -> '_control_client' in src/IRCBot.pyGravatar jesopo2018-10-061-3/+3
|
* Remove debug print in src/ControlSocket.pyGravatar jesopo2018-10-061-1/+0
|
* Add a ControlSocket client to IRCBot.py, use it to trigger the epoll loop when aGravatar jesopo2018-10-061-1/+8
| | | | github webhook has been caught!