Commit Graph

85 Commits

Author SHA1 Message Date
jesopo db851e0ba2 whois.idle is an int, change whois.channels to ChannelUser objects (modes!) 2020-06-12 14:23:04 +01:00
jesopo 8f552a7d6f update ircstates to v0.9.18, catch ERR_NOSUCHSERVER (remote whois) 2020-06-07 20:46:05 +01:00
jesopo 544d5de023 again, ERR_NOSUCHUSER -> ERR_NOSUCHNICK 2020-06-07 20:31:07 +01:00
jesopo 2245ba23a2 ERR_NOSUCHUSER -> ERR_NOSUCHNICK 2020-06-07 19:41:26 +01:00
jesopo 06afec2738 WHOIS should have nick, user/host/real are required, handle NOSUCHUSER 2020-06-07 17:46:38 +01:00
jesopo 97c4a616c9 `channels` needs to be a list and needs enumerate() 2020-06-01 11:04:22 +01:00
jesopo 33bcba8001 add basic code for using labeled-responses as wait_for matches 2020-05-24 01:05:51 +01:00
jesopo fae9acb288 parse out RPL_WHOISCHANNELS when available (send_whois()) 2020-05-01 15:30:10 +01:00
jesopo bc70afe04b move setting wait_for_fut result to WaitFor await in case it isn't awaited 2020-04-30 11:22:47 +01:00
jesopo e4af62a30c make wait_reads a deque instead of a list 2020-04-29 14:52:22 +01:00
jesopo 8f0a3045c5 self._wait_for is no longer used 2020-04-29 14:31:41 +01:00
jesopo 6d4222b4c1 minor refactor of how we call _next_line() 2020-04-29 12:23:11 +01:00
jesopo 51cfd0f36b rewrite how wait_for works - only one at a time now 2020-04-29 12:13:06 +01:00
jesopo 04354c7d36 add send_message() - optionally await echo 2020-04-28 01:41:20 +01:00
jesopo 9d4572edcc handle failure in send_joins() 2020-04-28 01:41:05 +01:00
jesopo 20290807d9 Self -> MaskSelf, add Self for param 2020-04-28 01:40:13 +01:00
jesopo 6b2b3d71c8 add send_nick() - optionally await success 2020-04-28 00:35:32 +01:00
jesopo 22b549708d add matching Hostmask type for Self, Nickname->Nick 2020-04-27 23:27:24 +01:00
jesopo 0921cb8086 allow ResponseOr to be shorthanded as a Set[IMatchResponse] 2020-04-27 01:28:46 +01:00
jesopo e26190c283 rectify TimeoutError namespace 2020-04-26 15:17:08 +01:00
jesopo 60dfda48e0 ping_sent doesn't have to be global 2020-04-26 15:14:13 +01:00
jesopo ba57d06a56 implement client-to-server read timeout PINGs 2020-04-26 15:07:05 +01:00
jesopo 15b97ab3da implement draft/resume-0.5 2020-04-25 19:30:36 +01:00
jesopo 064c786db7 minor codestyling 2020-04-23 15:30:33 +01:00
jesopo 955c284282 object-ify WaitFor future stuff 2020-04-23 15:22:30 +01:00
jesopo f48aaded5a _line_or_await *after* checking wait_fors so we don't match current line 2020-04-23 14:53:28 +01:00
jesopo 45269a98a9 change wait_for to not spin up nested next_line() loops 2020-04-23 14:42:42 +01:00
jesopo d51fcf0987 update ircstates, now only one (maybe Optional) Emit 2020-04-22 18:05:23 +01:00
jesopo 89c7ac15dd rename some matching Params, restructure matching 2020-04-21 21:40:46 +01:00
jesopo a425077c29 put overriddable methods in Server not just IServer 2020-04-21 16:24:18 +01:00
jesopo 5892c9ff45 add Server.send_part() that optionally awaits PART confirmation 2020-04-20 16:53:49 +01:00
jesopo 3208ee738c don't catch and "handle" server disconnect. throw up to bot.py 2020-04-20 12:04:01 +01:00
jesopo feb71d5b14 STS transmuting doesn't need the context of a server object 2020-04-19 23:19:23 +01:00
jesopo ae01201d39 support requested disconnects, support STS connection transmutations 2020-04-19 23:04:56 +01:00
jesopo 1bfe06d2ea implement STS policies; we're not parsing them yet though 2020-04-19 21:51:33 +01:00
jesopo c4019e6242 set future on awaited self.send() after we've processed for session state 2020-04-19 13:11:06 +01:00
jesopo ebef439e0a grab WHO on JOIN but make sure we only do one at once 2020-04-19 02:19:19 +01:00
jesopo d15e9ee361 `Numeric` doesn't exist anymore 2020-04-19 01:32:55 +01:00
jesopo a48a0dedd9 add missing Responses import on server.py 2020-04-19 00:56:01 +01:00
jesopo 7232876a75 update ircstates to v0.9.0, use const RPL/ERR vars 2020-04-17 21:06:20 +01:00
jesopo 0e2a2bcd00 create a fake echo-message when we have not CAP negotiated echo-message 2020-04-15 21:10:24 +01:00
jesopo b88fa51907 should be checking `self.hostname`, not `self.hostmask` (func pointer!) 2020-04-15 21:10:02 +01:00
jesopo 68054eacd5 support PASS from ConnectionParams 2020-04-13 19:10:02 +01:00
jesopo 8656f63d09 support labeled-response (but don't REQ it yet) 2020-04-13 18:23:05 +01:00
jesopo bd424d11ff Future[Line], not Awaitable[Line] in self._wait_for 2020-04-13 17:32:39 +01:00
jesopo cb3439e674 also match wait_fors that were in progress when a new one was triggered 2020-04-13 17:30:14 +01:00
jesopo 7cb2457136 add util functions to join a channel and whois a user 2020-04-12 13:54:27 +01:00
jesopo d571ad7ff9 self.recv() can return an empty array 2020-04-12 13:53:39 +01:00
jesopo a546a468b7 remove premature import for future work 2020-04-09 11:12:02 +01:00
jesopo 85ee8e95e0 WHO ourselves on 001 to get our realname 2020-04-09 11:09:44 +01:00