jesopo
|
792a42be6e
|
Implement utils.irc.hostmask_match() as regex
|
2019-06-20 14:10:10 +01:00 |
|
jesopo
|
9457430c15
|
Add MessageTag.present, to see if a tag is present (even without value)
|
2019-06-19 22:36:42 +01:00 |
|
jesopo
|
ced59a0f74
|
Allow channel-access and channel-mode check for channels people are not in
|
2019-06-16 20:48:31 +01:00 |
|
jesopo
|
919a488e86
|
Implement client-to-server BATCHes
|
2019-06-16 09:52:54 +01:00 |
|
jesopo
|
8ab4880c5c
|
Change from yield checks to a func in events that pass up EventErrors
|
2019-06-15 18:42:14 +01:00 |
|
jesopo
|
e0d99fe8b1
|
Fix utils.Check args type hinting
|
2019-06-14 12:12:38 +01:00 |
|
jesopo
|
f05fc209b0
|
Add a way to __or__ utils.Check s, as a "if one of these passes" thing
|
2019-06-14 12:01:55 +01:00 |
|
jesopo
|
d7fa2cfa24
|
Catch yield s in command callbacks for e.g. permission checks
|
2019-06-14 11:42:12 +01:00 |
|
jesopo
|
6c5dc958d0
|
Add .assure() to ParsedLine, to make it immune from .valid()
|
2019-06-10 10:45:02 +01:00 |
|
jesopo
|
2d46fe0cbf
|
labels: Use BatchType to match, pass lines not line , batch ID isn't a label,
fire event on label response
|
2019-06-04 17:54:19 +01:00 |
|
jesopo
|
2470c1ec03
|
Add new BatchType object, to match like how Capability and MessageTag do
|
2019-06-04 17:51:55 +01:00 |
|
jesopo
|
a802e66dcf
|
Defer decoding http payload bytestring until after checking ContentType
|
2019-06-04 13:47:03 +01:00 |
|
jesopo
|
ef221f4165
|
v1.8.0 release
|
2019-06-03 13:30:39 +01:00 |
|
jesopo
|
c212d70b68
|
Hold on to BATCH args, allow event hooks to manipulate batches
|
2019-06-02 15:18:36 +01:00 |
|
jesopo
|
5204ac3300
|
fix some CAP related type hints
|
2019-06-02 10:14:09 +01:00 |
|
jesopo
|
f9f637e084
|
Remove IRCSendBatch, fix some batch-related type hints
|
2019-06-02 10:13:51 +01:00 |
|
jesopo
|
367eb1c60e
|
Make labeled-resposnes it's own module, tag and track every sent line
|
2019-05-30 15:36:10 +01:00 |
|
jesopo
|
0be9046669
|
Pass str object to BeautifulSoup, not bytes. closes #56
|
2019-05-28 10:22:35 +01:00 |
|
jesopo
|
eeee2458d3
|
Fix utils.parse.hashflags type hints
|
2019-05-25 21:42:42 +01:00 |
|
jesopo
|
d0634bb54e
|
Don't store hashflags as a dict before returning them - allow duplicate keys
|
2019-05-25 12:58:07 +01:00 |
|
jesopo
|
ab1074cf4d
|
Remove mention of ipv4 - detect address family automatically
|
2019-05-21 10:11:09 +01:00 |
|
jesopo
|
db33e12c8c
|
Remove Capability.enabled() - it's unused
|
2019-05-20 16:36:02 +01:00 |
|
jesopo
|
b12c38c326
|
typing.List -> typing.Sequence
|
2019-05-20 16:35:50 +01:00 |
|
jesopo
|
e752b60f6c
|
use fnmatchcase( so the strings are not case-"normalised"
|
2019-05-19 16:28:46 +01:00 |
|
jesopo
|
c607a0e67c
|
Implement utils.irc.hostmask_match for glob-like hostmask matching
|
2019-05-19 16:24:38 +01:00 |
|
jesopo
|
58d6b16744
|
Remove _name and _draft_name (unused) and add Capability.copy()
|
2019-05-19 11:00:58 +01:00 |
|
jesopo
|
eccd43d357
|
Add a way to not put spaces between docstring lines when stripping \n
|
2019-05-18 18:34:27 +01:00 |
|
jesopo
|
38ba656bda
|
Add type hints to utils.irc.MessageTag
|
2019-05-14 23:07:42 +01:00 |
|
jesopo
|
421d9c10c7
|
Add utils.irc.MessageTag and use it for both draft and ratified msgid
|
2019-05-14 13:02:45 +01:00 |
|
jesopo
|
d291cd5063
|
Revamp how CAPs are tracked through REQ and ACK/NAK etc
|
2019-05-11 18:22:40 +01:00 |
|
jesopo
|
295f7a751c
|
Refactor CAPs in to objects
|
2019-05-11 15:11:09 +01:00 |
|
Patrick Nappa
|
2c344c9ddd
|
forgot the beautiful %
|
2019-05-03 13:50:51 +10:00 |
|
Patrick Nappa
|
471c11e229
|
ensure that non-url characters not separated by whitespace aren't consumed
|
2019-05-03 13:43:08 +10:00 |
|
jesopo
|
0afe798b83
|
Support parsing iso8601 with microseconds
|
2019-04-28 12:11:48 +01:00 |
|
jesopo
|
bdcb4b5db2
|
Add missing ":"
|
2019-04-25 17:50:41 +01:00 |
|
jesopo
|
1240b154cb
|
Support interfaces that don't have AF_INET and/or AF_INET6
|
2019-04-25 17:48:51 +01:00 |
|
jesopo
|
7643a962bd
|
Refuse to get the title for any url that points locall
|
2019-04-25 15:58:58 +01:00 |
|
jesopo
|
dffee4d223
|
Move REGEX_URL out of isgd.py and title.py in to utils.http
|
2019-04-24 15:46:54 +01:00 |
|
jesopo
|
e095c56f77
|
Record and show when a !to was created
|
2019-04-24 14:32:56 +01:00 |
|
jesopo
|
032f6fbc3b
|
IRCServer.alias is no longer optional
|
2019-04-24 11:45:21 +01:00 |
|
jesopo
|
87340bcbf9
|
change utils.iso8601_format to default to no milliseconds, switch to using
utils.iso8601 functions in badges.py
|
2019-04-23 21:27:43 +01:00 |
|
jesopo
|
0eaeca8f83
|
Put spaces between units in output from utils.to_pretty_time
|
2019-03-21 17:59:42 +00:00 |
|
jesopo
|
5d7f017c9c
|
Enum values shouldn't be all upper case
|
2019-03-10 13:14:25 +00:00 |
|
jesopo
|
6b59830a6e
|
Only print ANSI reset characters when appropriate
|
2019-03-06 21:48:31 +00:00 |
|
jesopo
|
197ae2e053
|
Raise a specific exception in utils.http.request for "wrong content type"
|
2019-02-28 23:28:45 +00:00 |
|
jesopo
|
9335ca5d16
|
Treat both a and a= as None for message-tags
|
2019-02-27 22:20:01 +00:00 |
|
jesopo
|
846b881e52
|
Throw ValueError when utils.http.request tries to soup non-html/xml data
|
2019-02-27 15:16:08 +00:00 |
|
jesopo
|
cfaf6864fc
|
Don't try to parse non-html/xml stuff with BeautifulSoup
|
2019-02-26 11:18:50 +00:00 |
|
jesopo
|
d627ed49e2
|
Pull "is main thread" logic out to utils, force Database to be accessed on main
thread
|
2019-02-25 10:36:17 +00:00 |
|
jesopo
|
8c94bcf6ca
|
Move utils.irc.IRCParsedLine to IRCLine.ParsedLine, improve truncation
mechanism, don't convert sent line from ParsedLine to text to ParsedLine for
line_handler handling
|
2019-02-23 21:33:04 +00:00 |
|
jesopo
|
c6699c509e
|
.upper() command in IRCParsedLine.format()
|
2019-02-23 16:11:26 +00:00 |
|
jesopo
|
54218b747f
|
Only allow the last arg of a formatted line to be :trailing
|
2019-02-23 16:07:20 +00:00 |
|
jesopo
|
47c2cbb0fa
|
Split line_handler.py out in to different files for different categories
|
2019-02-22 11:23:36 +00:00 |
|
jesopo
|
62eab40968
|
Revert "Treat both a and a= as having a value of None in message-tags (utils.irc)"
This reverts commit e7ec4b5716 .
|
2019-02-21 07:29:19 +00:00 |
|
jesopo
|
e7ec4b5716
|
Treat both a and a= as having a value of None in message-tags (utils.irc)
|
2019-02-20 22:26:31 +00:00 |
|
jesopo
|
ddb69685d3
|
again, r"\" isn't valid.
|
2019-02-20 16:53:40 +00:00 |
|
jesopo
|
98215f66eb
|
r"\" isn't valid - use "\\" (utils.irc)
|
2019-02-20 16:52:14 +00:00 |
|
jesopo
|
c1881fbafb
|
Remove '\' from post-unescaped message-tags
|
2019-02-20 16:34:14 +00:00 |
|
jesopo
|
47841ed154
|
don't replace '\\' with '\\' with message-tag unescape
|
2019-02-20 16:33:48 +00:00 |
|
jesopo
|
81d82413d4
|
draft/message-tags-0.3 (JSON tags) was rejected
|
2019-02-20 14:46:40 +00:00 |
|
jesopo
|
577fae7cea
|
Don't pass None around as tag default, fix some missing return type args
|
2019-02-19 15:57:00 +00:00 |
|
jesopo
|
3f8ac871ed
|
typo, 'utls' -> 'utils' (utils.irc)
|
2019-02-19 15:44:23 +00:00 |
|
jesopo
|
114d1054a5
|
Add .message( and .notice( to IRCSendBatch
|
2019-02-19 15:41:17 +00:00 |
|
jesopo
|
bc772ef5cc
|
Default IRCParsedLine.tags to empty dict, not None
|
2019-02-19 15:40:56 +00:00 |
|
jesopo
|
53e5a7fe7e
|
contextualise JOIN key check, otherwise it doesn't send channel_name
|
2019-02-19 09:32:17 +00:00 |
|
jesopo
|
9f946e236d
|
copy paste fail, batch end should be "-" not "+"
|
2019-02-19 08:25:25 +00:00 |
|
jesopo
|
b76b153672
|
Add batch_start and batch_end to utils.irc.protocol
|
2019-02-18 23:11:36 +00:00 |
|
jesopo
|
509a7ff42e
|
Default tags to null for utils.irc.protocol's message and notice
|
2019-02-18 23:06:41 +00:00 |
|
jesopo
|
07cb14d98c
|
utils.irc.protocol.join()'s keys param should be typing.Optional
|
2019-02-18 23:03:21 +00:00 |
|
jesopo
|
3bb917b619
|
Add src/utils/irc/__init__.py that should have been added some commits ago
|
2019-02-18 23:00:50 +00:00 |
|
jesopo
|
cd97a653cc
|
Don't try to use keys if we try to join a channel without any keys
|
2019-02-18 15:00:05 +00:00 |
|
jesopo
|
186b6b82a2
|
Shift formatting protocol data to it's own file: utils.irc.protocol
|
2019-02-18 14:58:27 +00:00 |
|
jesopo
|
d937145f93
|
Add missing :
|
2019-02-18 13:54:09 +00:00 |
|
jesopo
|
6da35a899b
|
don't pass around has_arbitrary - we don't need it.
|
2019-02-18 12:42:52 +00:00 |
|
jesopo
|
cb0314da67
|
Put a helper function in utils to do iso8601 formatting. change IRCServer's
last-read setting to use it.
|
2019-02-17 14:15:40 +00:00 |
|
jesopo
|
1136162057
|
Fix 'Optional[str]!=str' type hinting issue in utils.irc line parsing
|
2019-02-13 11:00:22 +00:00 |
|
jesopo
|
e1de8cd9be
|
We were just checking if arbitrary was falsey, thus losing empty trailing args
(' :' with nothing after it) (utils.irc)
|
2019-02-12 20:42:09 +00:00 |
|
jesopo
|
b4092a14ca
|
Also strip \x01 off the start of CTCP commands, if it's there (utils.irc)
|
2019-02-12 16:49:24 +00:00 |
|
jesopo
|
86bc49a0a1
|
Only put a ":" on trailing args when it's required
|
2019-02-12 13:55:57 +00:00 |
|
jesopo
|
01a7c05687
|
Change arg types of constant_time_compare to typing.AnyStr (utils.security)
|
2019-02-12 11:59:55 +00:00 |
|
jesopo
|
9667b8a6e0
|
Move constant-time compare function to utils.security
|
2019-02-12 11:57:49 +00:00 |
|
jesopo
|
8c9626f0a9
|
Put an strf format for ISO8601 in utils
|
2019-02-12 11:08:24 +00:00 |
|
jesopo
|
2f5a232c4e
|
Hold on to tags and type for BATCHes
|
2019-02-11 22:15:12 +00:00 |
|
jesopo
|
bd9eaad0b2
|
Return truncted data from encode_truncate and hold it in IRCLine.Line
|
2019-02-10 18:16:19 +00:00 |
|
jesopo
|
f2c762a2d0
|
add utils.truncate_encode , to encode and truncate a string while respecting utf8 multi-byte encoding
|
2019-02-10 16:41:56 +00:00 |
|
jesopo
|
7f7941f564
|
rename, 'IRCLine' -> 'IRCParsedLine' (utils.irc)
|
2019-02-10 14:08:59 +00:00 |
|
jesopo
|
e558a7676b
|
Abstract ssl socket wrapping away so we can reuse it
|
2019-02-10 12:36:52 +00:00 |
|
jesopo
|
d86a0fc55c
|
Return "0s" from utils.to_pretty_time when given 0 seconds
|
2019-02-07 22:47:03 +00:00 |
|
jesopo
|
1895ac34d7
|
If a server has a hostname that's not an IP, use it as SNI server name
|
2019-02-06 18:11:19 +00:00 |
|
jesopo
|
d10a6d94c1
|
Add a way to force success and force failure of a command permission check
(commands.py)
|
2019-01-28 23:29:52 +00:00 |
|
jesopo
|
4c5af0845c
|
output of len() needs to have a -1 on it when matching it against indexes
within the given string (src/utils/irc.py)
|
2019-01-16 12:42:45 +00:00 |
|
jesopo
|
2331205368
|
Don't ignore a color code when it's right at the end of a message
(src/utils/irc.py)
|
2019-01-16 12:41:41 +00:00 |
|
jesopo
|
8ed89b3f31
|
Add src/utils/_consts_256_color.py that should have been added 2 commits ago
|
2019-01-16 11:25:40 +00:00 |
|
jesopo
|
3b75519fb0
|
Fix regression that caused only foreground to be parsed if there's foreground
AND background formatting (src.utils.irc)
|
2019-01-16 11:24:47 +00:00 |
|
jesopo
|
8f4312d002
|
Support IRC colors 16 through 98
|
2019-01-16 11:18:51 +00:00 |
|
jesopo
|
598fcb80b9
|
'to_ansi_colors(' -> 'parse_format(' as it's become a lot more than just colors.
strip \x08 (in case hexchat users paste it) (print_activity.py, src.utils.irc)
|
2019-01-13 21:56:36 +00:00 |
|
jesopo
|
97b7249989
|
don't consume 3 digits for a colour code when the first char is 0 and the second
two chars make up a valid colour code (src.utils.irc)
|
2019-01-13 01:54:02 +00:00 |
|
jesopo
|
9944f08acf
|
Typo, '=' -> '==' (utils.irc)
|
2018-12-12 11:50:59 +00:00 |
|
jesopo
|
d5467aefe9
|
Support '99' as a 'transparent' irc color code
|
2018-12-12 11:49:42 +00:00 |
|
jesopo
|
2d3bb2b5e8
|
Typo in utils.http.request, 'response_heders' -> 'response_headers'
|
2018-12-11 22:31:14 +00:00 |
|
jesopo
|
5b59740043
|
Pass a dict to utils.CaseInsensitiveDict, not a MutableMapping
|
2018-12-11 22:30:57 +00:00 |
|
jesopo
|
d373edfaae
|
Add missing utils import in utils.http
|
2018-12-11 22:30:05 +00:00 |
|
jesopo
|
793d234a0b
|
'utils.http.get_url' -> 'utils.http.request', return a Response object from
utils.http.request
|
2018-12-11 22:26:38 +00:00 |
|
jesopo
|
1c546a8244
|
Add typing hints to CaseInsensitiveDict, fix it's __setitem__ signature, call
.items() on `other` in ctor
|
2018-12-08 09:13:01 +00:00 |
|
jesopo
|
9bef4b7df1
|
Switch to using a case insensitive dictionary for headers instead of doing
.title() on each header key
|
2018-12-08 09:00:12 +00:00 |
|
jesopo
|
50149523dd
|
re-add check in utils.irc.parse_line that prevents us having an empty string as
an arg when there's no non-arbitrary args
|
2018-12-03 18:25:57 +00:00 |
|
jesopo
|
08bd31f150
|
A couple of tweaks to clarify some type hints
|
2018-12-02 09:56:57 +00:00 |
|
jesopo
|
cdfe6d2959
|
'uderline' -> 'underline' typo in utils.irc
|
2018-11-30 16:32:18 +00:00 |
|
jesopo
|
4dfb2ffeaa
|
Support ANSI underline
|
2018-11-30 16:30:56 +00:00 |
|
jesopo
|
fba1dd2271
|
Nope, just combine previous color-char and current color-char and see if it's
less than or equal to 15 (utils.irc)
|
2018-11-26 17:34:27 +00:00 |
|
jesopo
|
9a614846b0
|
Don't reject 6-9 (inclusive) when it's prepended by 0 (src/utils/irc.py)
|
2018-11-26 17:31:56 +00:00 |
|
jesopo
|
f93e3f927f
|
If a color code is double-digit, make sure it's 0-15, not just 0-20
|
2018-11-26 17:23:11 +00:00 |
|
jesopo
|
5b70f37796
|
also support zero-padded color codes
|
2018-11-25 13:32:57 +00:00 |
|
jesopo
|
6d2c15ed2c
|
Don't eat numbers after color formatting if they'd end up making the color code
`20` or more
|
2018-11-25 13:23:00 +00:00 |
|
jesopo
|
60acf02cee
|
prefix should be a Optional[IRCHostmask], we shouldn't use Optional[] as a
compile-time object (utils.irc)
|
2018-11-20 17:23:47 +00:00 |
|
jesopo
|
f46015d9d8
|
Minor code styling change in urils.irc
|
2018-11-17 12:48:56 +00:00 |
|
jesopo
|
756c543c32
|
Typo in utils.__init__, 'number' -> 'number_str'
|
2018-11-16 17:45:40 +00:00 |
|
jesopo
|
1297901dca
|
We do indeed need to see "\x03" even when there's no foreground/background
(color reset)
|
2018-11-14 22:50:04 +00:00 |
|
jesopo
|
2fc948ab24
|
Don't eat commas when there's no background color or when a comma directly
follows a background color
|
2018-11-14 22:35:13 +00:00 |
|
jesopo
|
81e1f11872
|
Missed a 'message' -> 'ctcp_message'
|
2018-11-14 22:13:31 +00:00 |
|
jesopo
|
1380f6c534
|
Typo in utils.irc, 'message' -> 'ctcp_message'
|
2018-11-14 22:10:45 +00:00 |
|
jesopo
|
19b195eb1d
|
Stop supporting using ansi bold for brightening colors, support ansi background
colors
|
2018-11-14 22:07:34 +00:00 |
|
jesopo
|
378f4b1f93
|
Better parsing of CTCP messages, support raw.send.privmsg/raw.send.notice in
modules/line_handler.py
|
2018-11-14 21:28:27 +00:00 |
|
jesopo
|
f7872fac43
|
Typo in src/utils/irc.py, 'resplace' -> 'replace'
|
2018-11-14 13:16:11 +00:00 |
|
jesopo
|
76d9face44
|
You can join color and bold in to one \033 ansi sequence
|
2018-11-14 12:19:31 +00:00 |
|
jesopo
|
0e499a4078
|
Support irc format full reset (\x0F) as ansi reset (\033[0m)
|
2018-11-14 12:13:08 +00:00 |
|
jesopo
|
bbcde2d1d5
|
Use extended ANSI colors to avoid using bold to make colors lighter
|
2018-11-14 11:47:15 +00:00 |
|
jesopo
|
2fcde64bfd
|
'ANSI_RESET' -> 'ANSI_BOLD_RESET' typo, 'ansi_bold' -> 'color_bold'
clarification, fix issue in color tokenizing that caused bolds to be put in the
wrong place
|
2018-11-14 11:44:56 +00:00 |
|
jesopo
|
bcdbb3640c
|
Add type annotions to irc->ansi color functions
|
2018-11-14 10:28:38 +00:00 |
|
jesopo
|
00eb4027ec
|
Only reset ansi bolding when both color-bold and bold are false
|
2018-11-14 08:09:01 +00:00 |
|
jesopo
|
e5f068f660
|
Bold reset is 22, not 21
|
2018-11-13 18:19:37 +00:00 |
|
jesopo
|
5c6aa87470
|
Fix bolding/unbolding code in utils.irc
|
2018-11-13 18:05:25 +00:00 |
|
jesopo
|
d18d28f0a2
|
Apparently '39' is 'font reset' for ansi colors
|
2018-11-13 17:53:37 +00:00 |
|
jesopo
|
f1b54efe77
|
Visual tweak; align "="s in utils.consts
|
2018-11-13 17:43:00 +00:00 |
|
jesopo
|
765ae0fcf9
|
Add code to tokenize and ansi-replace IRC colors; use this in
modules/print_activity.py
|
2018-11-13 17:23:28 +00:00 |
|
jesopo
|
7918f9cc4e
|
Better constifying of COLORs
|
2018-11-13 17:23:18 +00:00 |
|
jesopo
|
8b9062b942
|
Better constifying of color/font chars
|
2018-11-13 16:02:26 +00:00 |
|
jesopo
|
16c4e1bfc6
|
I was accidentally removing two characters from the start of :nick!user@host
|
2018-11-13 15:04:11 +00:00 |
|
jesopo
|
36048be2fb
|
That shouldn't be there
|
2018-11-13 11:36:28 +00:00 |
|
jesopo
|
66643a1bd8
|
Return new user's id in Database.users.add
|
2018-11-13 11:19:43 +00:00 |
|
jesopo
|
8fc7a7652a
|
Return new server_id from Database.servers.add
|
2018-11-13 11:13:04 +00:00 |
|
jesopo
|
73c0c911d4
|
Move logic for adding a server to the database out to utils.cli and add a
--add-server flag for start.py, to add new server
|
2018-11-13 10:40:49 +00:00 |
|
jesopo
|
20b1e8b800
|
Remove unneeded const
|
2018-11-12 17:14:38 +00:00 |
|
jesopo
|
2747999ca6
|
We don't need utils.irc.remove_colon anymore!
|
2018-11-12 17:13:49 +00:00 |
|
jesopo
|
0f53d2e828
|
Fix type annotations for utils.parse.keyvalue
|
2018-11-11 14:43:31 +00:00 |
|
jesopo
|
a2292eb439
|
Filter out empty items in utils.parse.keyvalue
|
2018-11-08 22:41:30 +00:00 |
|
jesopo
|
3ff68dc427
|
Support passing unrestricted args between connections
|
2018-11-08 17:09:07 +00:00 |
|
jesopo
|
03cae696c1
|
Technically, we only need to unescape non-json message-tag *values*
|
2018-11-08 11:52:53 +00:00 |
|
jesopo
|
0c6d54f5fd
|
Only mesage-tag unescape non-json tags after we split on ";"
|
2018-11-08 11:43:32 +00:00 |
|
jesopo
|
729d1424ed
|
Unescape message-tags as per spec Escaping Rules
|
2018-11-08 11:37:23 +00:00 |
|