Commit Graph

147 Commits

Author SHA1 Message Date
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