Commit graph

118 commits

Author SHA1 Message Date
jesopo
7cb2457136 add util functions to join a channel and whois a user 2020-04-12 13:54:27 +01:00
jesopo
a44d77af6d update ircstates to 0.8.8 2020-04-12 13:54:10 +01:00
jesopo
d571ad7ff9 self.recv() can return an empty array 2020-04-12 13:53:39 +01:00
jesopo
923809ab43 add async_stagger reference for backported happy eyeballs open_connection 2020-04-11 11:33:53 +01:00
jesopo
c4009e1c07 on ERR_SASLFAIL, pop from matches 2020-04-10 21:37:26 +01:00
jesopo
3700ba4ab6 on RPL_SASLMECHS, we should still wait_for the ERR_SASLFAIL after it 2020-04-10 21:36:17 +01:00
jesopo
5da82e7d66 check for PLAIN should use match[0] not match 2020-04-10 21:36:03 +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
jesopo
9f832df2f1 allow Numerics() with params use NUMERICS list from ircstates 2020-04-09 11:09:15 +01:00
jesopo
9265fd0c48 remove py3.6 .travis.yml target - i think we'll be 3.7-or-above 2020-04-06 13:33:00 +01:00
jesopo
985e95c37d remove duplicate "Server" in examples/sasl.py 2020-04-06 13:28:16 +01:00
jesopo
fb99d97bca add anyio to requirements.txt 2020-04-06 13:24:38 +01:00
jesopo
179a2ca93a refactor TCP logic in to ITCPTransport (we can mock this for unittests) 2020-04-06 13:22:17 +01:00
jesopo
750fbd8acc comment about why server CAP/USER/NICK send() calls are not awaited 2020-04-05 23:57:02 +01:00
jesopo
730fef38f3 server.send() should be sync and return a Future - no nead for double await 2020-04-05 23:54:57 +01:00
jesopo
899d4821f0 add asyncs.MaybeAwait() - optionally awaitable coroutines 2020-04-05 23:37:54 +01:00
jesopo
72dc3ebd04 Bot does not have line_read()/line_send() any more 2020-04-05 17:47:02 +01:00
jesopo
84b374f43d FoldString -> ParamFolded 2020-04-05 17:40:22 +01:00
jesopo
d837529698 next_line() doesn't need wait_for param 2020-04-05 17:22:33 +01:00
jesopo
423623fec1 add a Response subclass just to take RPL_/ERR_ names along with params 2020-04-05 17:16:19 +01:00
jesopo
0829fd9499 refactor and simplify normal reading vs wait_for 2020-04-05 17:11:04 +01:00
jesopo
b8ddc6883d oops; add missing return statement from server.send 2020-04-05 13:19:19 +01:00
jesopo
1c7caf9039 use Server.registerd to detect handshake CAP LS; handle non-handshake CAP LS 2020-04-05 13:18:23 +01:00
jesopo
2a9d658207 return Future from async send() to *optionally* wait for it to hit the wire 2020-04-05 13:17:53 +01:00
jesopo
e470d57780 pass IServer to Response so we can have FoldString (match with casefold rules) 2020-04-05 13:00:13 +01:00
jesopo
f70932ac44 move more CAP related stuff to CAPContext 2020-04-05 12:48:29 +01:00
jesopo
afe9ec359d update ircstates to 0.8.2 2020-04-05 12:47:19 +01:00
jesopo
404154e6a2 add __repr__ for matching.py objects 2020-04-03 13:05:38 +01:00
jesopo
688418df04 dont tg.spawn() for each message, allow wait_for to read 2020-04-03 13:04:02 +01:00
jesopo
45ac3be550 ssl/ssl_verify -> tls/tls_verify 2020-04-03 09:50:30 +01:00
jesopo
2d93e27feb maybe_sasl() -> sasl_auth(SASLParms) 2020-04-03 09:49:46 +01:00
jesopo
8cc3db5e58 ensure server nonce .startswith() our nonce 2020-04-03 00:07:48 +01:00
jesopo
99d55de170 fix JOIN emit typehint issue (emit.channel may be None) 2020-04-02 23:53:47 +01:00
jesopo
b34e4fcc22 await server.send() should block until it hits the wire 2020-04-02 23:53:32 +01:00
jesopo
8dde7b7216 codestyle in ircv3.py 2020-04-02 23:07:09 +01:00
jesopo
5b4714ca1e query channel MODEs on-JOIN 2020-04-02 22:57:22 +01:00
jesopo
63fa470a3f add ConnectionParams.ssl_verify 2020-04-02 22:43:34 +01:00
jesopo
331cadfb39 use ConnectionParams.bindhost 2020-04-02 22:39:03 +01:00
jesopo
94c501d4de do CAP LS 302 (not just CAP LS) 2020-04-02 22:38:02 +01:00
jesopo
60e601aa81 implement SASL SCRAM 2020-04-02 22:37:51 +01:00
jesopo
a4f5d8045f add numerics.py to translate names, remove Response(errors=) 2020-04-02 20:55:01 +01:00
jesopo
06a4d20fc8 make handshake CAP dance happen in one async task. move to ircv3.py 2020-04-02 20:16:07 +01:00
jesopo
1b3c537e0a only try SASL on CAP NEW when one of the new CAPs is SASL 2020-04-02 18:43:59 +01:00
jesopo
61f1cdba9d don't try SASL twice, try SASL on CAP NEW 2020-04-02 18:38:37 +01:00
jesopo
c139879670 add a matching Not() type - to invert other criteria 2020-04-02 18:38:28 +01:00
jesopo
f7ad037934 add .travis.yml 2020-04-02 18:18:41 +01:00
jesopo
6c14fed785 improve examples/simple.py, add examples/sasl.py 2020-04-02 18:17:17 +01:00
jesopo
d310dad471 add SALContext().from_params() 2020-04-02 18:17:00 +01:00
jesopo
0dd7121469 add some useful imports to ircrobots/__init__.py 2020-04-02 18:16:29 +01:00