aboutsummaryrefslogtreecommitdiff
path: root/src/utils
Commit message (Expand)AuthorAgeFilesLines
* hash_colorize code should first be looked up in HASH_COLORSGravatar jesopo2019-11-111-2/+2
* .lower() strings when hash-colorizing themGravatar jesopo2019-11-111-1/+1
* don't use hash() for hashed colorising as it's not stable through restartsGravatar jesopo2019-11-111-1/+1
* add utils.irc.hash_colorize() to color a string by the string's hashGravatar jesopo2019-11-111-0/+5
* don't stop parsing colors at commaGravatar jesopo2019-11-041-1/+1
* `' '` -> `" "`Gravatar jesopo2019-10-311-4/+4
* Fix type errors detected by 'mypy --ignore-missing-imports src'.Gravatar Valentin Lorentz2019-10-302-13/+19
* add utils.date_human() - use it in badges.pyGravatar jesopo2019-10-301-0/+3
* utils.parse doesn't need to import utilsGravatar jesopo2019-10-291-1/+0
* 'from src.utils import' -> 'from . import'Gravatar jesopo2019-10-291-1/+1
* utils.cli shouldn't know about DatabaseGravatar jesopo2019-10-291-3/+3
* utils.irc doesn't need to know about the whole of utilsGravatar jesopo2019-10-291-31/+31
* 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