jesopo
|
3dc56da30e
|
add RPL_MONONLINE to numerics.py
|
2022-05-23 23:29:57 +00:00 |
jesopo
|
c21545e2c2
|
extraneous space
|
2022-01-29 21:19:43 +00:00 |
jesopo
|
275b2c7f3d
|
slightly neater casemap.py
|
2022-01-29 21:19:31 +00:00 |
jesopo
|
ea9c0c2d1f
|
str.maketrans is a much faster casefold; make casemaps an Enum
|
2022-01-07 18:59:37 +00:00 |
jesopo
|
e3884c7505
|
put a cachetools LRUCache on casefold()
|
2022-01-07 11:27:01 +00:00 |
jesopo
|
3a95bf4bca
|
add RPL_YOUREOPER, RPL_RSACHALLENGE2, RPL_ENDOFRSACHALLENGE2
|
2021-09-18 16:47:28 +00:00 |
jesopo
|
e5a7871fd9
|
record when we first saw a user in a channel and optionally when they JOINed
|
2021-09-06 03:10:25 +00:00 |
jesopo
|
3565259791
|
only make a new channel_user on NAMES when we don't have one
|
2021-09-06 03:04:49 +00:00 |
jesopo
|
d865ea3253
|
server.modes and channel_user.modes should be sets
|
2021-08-16 20:21:09 +00:00 |
jesopo
|
ddcacabfda
|
parse NICKLEN from ISUPPORT
|
2021-04-10 13:47:44 +00:00 |
jesopo
|
cb8aa4495a
|
implement \xHH (hex) escapes in ISUPPORT token values
|
2021-02-28 15:27:22 +00:00 |
jesopo
|
3136d2b85c
|
add missing return on RENAME handler
|
2021-02-18 14:58:14 +00:00 |
jesopo
|
4d14d67d4b
|
support RENAME
closes #4
|
2021-02-16 22:10:10 +00:00 |
jesopo
|
566b8ec8cd
|
unknown account status is None, known not-logged-in is empty string
|
2021-01-08 16:50:55 +00:00 |
jesopo
|
a69fd01766
|
add RPL_LOGOFF (WATCH) and RPL_MONOFFLINE (MONITOR)
|
2020-12-20 00:15:03 +00:00 |
jesopo
|
1f8dfe700f
|
add RPL_ENDOFMOTD and RPL_NOMOTD
|
2020-12-20 00:14:48 +00:00 |
jesopo
|
f44bbe41e4
|
don't try to parse info from :source-less PRIVMSG/NOTICE/TAGMSG
|
2020-11-08 20:02:34 +00:00 |
jesopo
|
5a85e53485
|
channel.list_modes should always have keys, even if empty
closes #1
|
2020-09-29 11:55:15 +00:00 |
jesopo
|
07ed0bf13c
|
WHOX IP must parse correctly (and we'll compress them)
|
2020-09-29 11:02:07 +00:00 |
jesopo
|
66d6bba298
|
RFC2812 says []\~ is lower of {}|^, irc2 disagrees on ~ vs ^
|
2020-08-17 16:56:05 +00:00 |
jesopo
|
dabb59d05f
|
fix recv() typehinting
|
2020-08-07 14:53:12 +00:00 |
jesopo
|
bf0f2fdc9f
|
recv() doesn't call parse_tokens anymore - batch lines change state
|
2020-08-07 14:49:20 +00:00 |
jesopo
|
2c1468295e
|
simplify parsing channel MODE & RPL_CHANNELMODEIS
|
2020-08-03 21:03:45 +00:00 |
jesopo
|
c27c48af54
|
IPs are a static connection property, dont overwrite if gone
|
2020-07-14 12:16:43 +00:00 |
jesopo
|
8a31f0190d
|
save numeric ip result from WHOX
|
2020-07-12 23:16:33 +01:00 |
jesopo
|
2fb81e7aef
|
parse out RPL_BANLIST and RPL_QUIETLIST
|
2020-07-11 15:36:21 +01:00 |
jesopo
|
9806a6407b
|
pull server from WHO and WHOX
|
2020-07-09 11:04:44 +01:00 |
jesopo
|
50a63ce12c
|
parse out RPL_AWAY
|
2020-07-07 14:27:40 +01:00 |
jesopo
|
74490f616a
|
pull away state out of WHO/WHOX
|
2020-07-06 20:53:09 +01:00 |
jesopo
|
adacb19c77
|
use line.source, that's what str(hostmask) does, null source throws on hostmask
|
2020-07-03 23:15:39 +01:00 |
jesopo
|
d76f50dac0
|
update irctokens to v1.1.0
|
2020-07-03 23:13:20 +01:00 |
jesopo
|
7a87b7b448
|
add ChannelUser.__repr__
|
2020-06-21 22:04:26 +01:00 |
jesopo
|
c32b4bdd62
|
python3.6 doesn't have native dataclasses!
|
2020-06-21 18:47:45 +01:00 |
jesopo
|
83b31b6b2b
|
add missing names.py file
|
2020-06-21 18:45:46 +01:00 |
jesopo
|
ea421f09af
|
pass around nickname/channelname as Name objects, give to ChannelUser
|
2020-06-21 18:43:55 +01:00 |
jesopo
|
8b91dc09e3
|
slightly more efficient casefolding
|
2020-06-21 18:23:18 +01:00 |
jesopo
|
37227b6463
|
remove Named, give (nick)name/_lower to User/Channel ctors
|
2020-06-21 18:12:37 +01:00 |
jesopo
|
40ec25de2b
|
don't casefold twice for self NICK
|
2020-06-21 00:24:45 +01:00 |
jesopo
|
e1286f16c6
|
python 3.6 doesn't have native dataclasses
|
2020-06-21 00:12:37 +01:00 |
jesopo
|
fdcf216255
|
rename isupport.chanmodes groups
|
2020-06-21 00:08:43 +01:00 |
jesopo
|
46a1d2bda8
|
ISupport.tokens(List[str]) -> ISupport.from_tokens(List[str])
|
2020-06-21 00:08:22 +01:00 |
jesopo
|
c75a62f5d8
|
refactor CHANMODES logic. less redundant bool checking
|
2020-06-21 00:01:03 +01:00 |
jesopo
|
85794909d0
|
fix usermode change iterate typehints
|
2020-06-14 19:51:19 +01:00 |
jesopo
|
40839c1755
|
change how channel mode emit.tokens works ("+b" -> "+b mask")
|
2020-06-14 19:47:52 +01:00 |
jesopo
|
122fe23da6
|
add ERR_NOSUCHSERVER
|
2020-06-07 20:39:11 +01:00 |
jesopo
|
80ef9a9edb
|
add RPL_ENDOFWHOWAS
|
2020-06-07 17:51:57 +01:00 |
jesopo
|
191e8fdba3
|
add RPL_WHOWASUSER
|
2020-06-07 17:34:49 +01:00 |
jesopo
|
274b76ba56
|
add ERR_NOSUCHNICK
|
2020-06-05 13:09:13 +01:00 |
jesopo
|
bd3fd12a84
|
user.hostmask() will never be None
|
2020-06-04 00:14:46 +01:00 |
jesopo
|
e7d14e6f67
|
add user.hostmask():str and user.userhost():Optional[str]
|
2020-06-03 21:30:05 +01:00 |