aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Expand)AuthorAgeFilesLines
* switch to using asyncio's event loopGravatar jesopo2019-07-081-6/+7
* implement utils.http.request_many as a tonado ioloop yieldGravatar jesopo2019-07-081-1/+19
* "paramatered" -> "parametered"Gravatar jesopo2019-07-042-2/+2
* Add !editserver commandGravatar jesopo2019-07-041-0/+6
* threading.Lock() around any access to _write_bufferGravatar jesopo2019-07-041-22/+26
* return parsed modes from IRCChannel.parse_modes, pass through mode eventsGravatar jesopo2019-07-031-4/+13
* url_validate() -> url_sanitise()Gravatar jesopo2019-07-021-1/+1
* Add utils.http.url_validate() for best-effort url tidyingGravatar jesopo2019-07-021-0/+16
* fixed capabilitiesGravatar jan62019-07-011-1/+1
* Implemnt _options_factory for OptionsSetting to have dynamic optionsGravatar jesopo2019-06-292-13/+25
* Automatically format `example` text for OptionsSetting (showing options)Gravatar jesopo2019-06-291-1/+15
* Setting.__init__ call in OptionsSetting ctor needs `self` paramGravatar jesopo2019-06-281-1/+1
* Implement utils.OptionsSettingGravatar jesopo2019-06-281-0/+12
* Refactor set/channelset/serverset/botset in to 'utils.Setting' objectsGravatar jesopo2019-06-281-15/+29
* message arg for HTTPWrongContentTypeException/HTTPParsingExceptionGravatar jesopo2019-06-281-5/+5
* Give descriptions to utils.http.HTTPException subclassesGravatar jesopo2019-06-271-2/+6
* add CaseInsensitiveDict.__contains__Gravatar jesopo2019-06-261-0/+2
* add `allow_redirects` kwarg to utils.http.request()Gravatar jesopo2019-06-261-0/+2
* implement @utils.kwarg() magic, use it for command.regex hooksGravatar jesopo2019-06-263-4/+22
* Update IRCBot `except queue.Empty` commentGravatar jesopo2019-06-261-4/+1
* Re-add EventManager check to prevent _call() outside main threadGravatar jesopo2019-06-261-0/+3
* Refactor EventManager to only hold hooks on a root objectGravatar jesopo2019-06-266-259/+133
* Add system to have multiple url shorteners and chose which to useGravatar jesopo2019-06-251-0/+12
* Return 0 seconds if timeout seconds is negativeGravatar jesopo2019-06-241-1/+1
* move _check() after timeouted queue.get() so deadlines are met accuratelyGravatar jesopo2019-06-231-1/+2
* move get_poll_timeout() to event loop now that it is the one calling _checkGravatar jesopo2019-06-231-3/+9
* shift _check() call to event loop function so read_loop needn't call trigger()Gravatar jesopo2019-06-231-4/+5
* v1.10.0 releaseGravatar jesopo2019-06-231-1/+1
* Don't print BitBotPanic stacks when we don't need toGravatar jesopo2019-06-231-11/+11
* v1.10.0-rc2Gravatar jesopo2019-06-231-1/+1
* until_read_timeout is a func - read_timed_out has always been returning falseGravatar jesopo2019-06-221-1/+1
* Don't needlessly call time.monotonic() when checking cache expirationsGravatar jesopo2019-06-221-1/+2
* v1.10.0-rc1Gravatar jesopo2019-06-221-1/+1
* remove remove_own_mode( check - deferred_read.py better solves the issue.•••the issue was getting a MODE line on irc.com prior to 001, thus we didn't know what our nickname was thus we didn't know that the MODE was for us. not dying when we saw +x was easy to do with this check but I think it's more correct to actually parse that MODE after 001 so we know we have +x. Gravatar jesopo2019-06-221-5/+1
* Restrict EventManager calls to the main threadGravatar jesopo2019-06-221-0/+3
* return generated SentLine objects from IRCChannel.send_* functionsGravatar jesopo2019-06-211-9/+9
* Implement dependency system for CAPsGravatar jesopo2019-06-211-1/+3
* Adda system of aliases for CAPs, mostly for changeable draft specs and creating•••dependence between moving specs Gravatar jesopo2019-06-211-2/+5
* WARN log when we try to remove a mode from ourselves that we didn't haveGravatar jesopo2019-06-211-0/+3
* check we have a mode before trying to remove itGravatar jesopo2019-06-211-1/+2
* give every ParsedLine a uuid4 .id for tracking purposesGravatar jesopo2019-06-211-1/+2
* fix hostmask_match_many type hintingGravatar jesopo2019-06-201-1/+2
* Implement hostmask_match_any, for more efficient matching of multiple hostmasksGravatar jesopo2019-06-201-3/+9
* Implement utils.irc.hostmask_match() as regexGravatar jesopo2019-06-201-2/+9
* Differentiate between module "not found" and "not loaded"Gravatar jesopo2019-06-191-1/+4
* Raise ModuleNotFoundException on failure to find_module()Gravatar jesopo2019-06-191-0/+3
* Give requested module name to ModuleNotFoundExceptionGravatar jesopo2019-06-191-1/+1
* Add MessageTag.present, to see if a tag is present (even without value)Gravatar jesopo2019-06-191-0/+2
* add `margin` arg to ParsedLine.truncate so commands/outs.py doesn't do it•••manually and cause potential issues with multi-byte chars Gravatar jesopo2019-06-191-4/+4
* `line_formatted` -> `valid` so tags don't cause us to subvert truncationGravatar jesopo2019-06-181-1/+1