aboutsummaryrefslogtreecommitdiff
path: root/src/utils
Commit message (Expand)AuthorAgeFilesLines
* move src/utils/irc/__init__.py to src/utils/irc.pyGravatar jesopo2019-10-281-0/+0
* remove src/utils/irc/protocol.pyGravatar jesopo2019-10-282-91/+0
* Revert "remove unneeded import"•••This reverts commit 8425c11c97bbd9b5690000cac9f622327105d1ee. Gravatar jesopo2019-10-271-0/+1
* remove unneeded importGravatar jesopo2019-10-271-1/+0
* move IRCLine related code from utils.irc to IRCLine.pyGravatar jesopo2019-10-271-83/+5
* don't consume past 2nd digit in e.g. "\03033,123"Gravatar jesopo2019-10-251-5/+5
* support utf8 hostnames by punycode (idna) encodingGravatar jesopo2019-10-181-4/+12
* add a fairly basic file locking mechanism with src/LockFile.py•••closes #96 Gravatar jesopo2019-10-101-2/+4
* refactor multi-line-to-line normalisation to utils.parse.line_normalise(), us...•••closes #174 Gravatar jesopo2019-10-101-0/+5
* commit FunctionSetting changes i forgot to commit yesterdayGravatar jesopo2019-10-081-2/+7
* parse out content_type in Response ctorGravatar jesopo2019-10-051-5/+3
* parse content-type out in utils.http.request, put it on Response objectGravatar jesopo2019-10-041-9/+13
* Allow utils.Setting_ parse functions to throw detailed errorsGravatar jesopo2019-10-041-0/+3
* 'is_localhost()' -> 'host_permitted()'Gravatar jesopo2019-09-301-4/+4
* use ipaddress is_loopback etc to do better forbidden ranges•••closes #87 Gravatar jesopo2019-09-301-0/+9
* add utils.parse.try_int() because .isdigit() isnt good enoughGravatar jesopo2019-09-261-0/+6
* assume http fallback_encoding by content-type (utf8 for json)Gravatar jesopo2019-09-251-1/+8
* only BeautifulSoup for finding encoding when it's a html-ish typeGravatar jesopo2019-09-201-1/+1
* Allow passing source Hostmask to IRCBatchGravatar jesopo2019-09-191-1/+2
* log call was replaced with Exception but [] on args remainedGravatar jesopo2019-09-191-1/+1
* give Requests, use them in utils.http.request_many()Gravatar jesopo2019-09-191-12/+25
* utils.http.request_() has no self, let alone self.logGravatar jesopo2019-09-191-3/+4
* should be using pair_start/pair_end throughout `for`Gravatar jesopo2019-09-191-2/+2
* also show "bad" data in HTTPParsingException when a message is providedGravatar jesopo2019-09-181-1/+1
* show "bad" data in HTTPParsingException messageGravatar jesopo2019-09-181-2/+3
* move q.close() to where it will be called even if deadline is hitGravatar jesopo2019-09-181-1/+2
* move _raise_deadline() out of except block to clean up printed stacktraceGravatar jesopo2019-09-181-0/+4
* don't check already-read data when checking for too-large requests•••this check was here because the first read will return empty if it was an invalid byte sequence for e.g. gzip because we needed to receive more data. the second read will always return data (not decoded) so regardless of what the already-read data is, the second read is the only criteria we need. Gravatar jesopo2019-09-171-1/+1
* log which URL caused an error in request_manyGravatar jesopo2019-09-171-1/+6
* only decode content-types in DECODE_CONTENT_TYPESGravatar jesopo2019-09-171-1/+1
* Response.__init__() needs `encoding` nowGravatar jesopo2019-09-171-1/+1
* restore 5 second (instead of default 10) deadline for http.requestGravatar jesopo2019-09-171-1/+1
* use utils.deadline_process() in utils.http._request() so background threads can•••call _request() Gravatar jesopo2019-09-171-30/+37
* add .get() to CaseInsensitiveDictGravatar jesopo2019-09-171-0/+2
* use Queue.get() with timeout, not Process.join() for timeout•••this was because the threads spawned by multiprocessing.Queue seemed to be making Process.join() believe the subprocess had not exited. Gravatar jesopo2019-09-171-7/+7
* first draft of multiprocess.Process deadline systemGravatar jesopo2019-09-171-0/+23
* 'seperate_hostmask()' -> 'parse_hostmask()'Gravatar jesopo2019-09-161-2/+2
* add `json_body` arg to Request to json-encode body, only return from `body` if•••not null Gravatar jesopo2019-09-161-4/+8
* support '0' as an IntSetting valueGravatar jesopo2019-09-151-3/+6
* add utils.SensitiveSetting, to .format() hide valueGravatar jesopo2019-09-121-0/+4
* add utils.Setting.format() so subtypes can format differentlyGravatar jesopo2019-09-121-0/+3
* translate INVITE from [channel_name, target] to [target, channel_name]Gravatar jesopo2019-09-121-1/+1
* Revert "INVITE should be [channel_name, target]"•••This reverts commit f3d8ffad2c8dc9444e32f65e3c78373ec6ad0661. Gravatar jesopo2019-09-121-2/+2
* INVITE should be [channel_name, target]Gravatar jesopo2019-09-121-2/+2
* allow Requests to specify a useragentGravatar jesopo2019-09-121-3/+4
* add a helper utils.http.Client static objectGravatar jesopo2019-09-111-0/+4
* add `proxy` to Request objectsGravatar jesopo2019-09-111-1/+2
* refactor utils.http.requests to support a Request objectGravatar jesopo2019-09-111-27/+77
* automatically decode certain http content typesGravatar jesopo2019-09-111-1/+6
* Don't try to .decode non-html things, default iso-lat-1 for non-html tooGravatar jesopo2019-09-091-5/+5