lunabot's Introduction
lunabot's People
lunabot's Issues
Log what's going on with the attempting of different TLS versions
Handlers might try to send messages after the connection starts going down
Say that during the handling of one line, Luna decides she should disconnect and sends QUIT
. It is possible for a later handler (or a handler for a subsequent line) to attempt to send a further message, by which time the IRC server may already be tearing down the TLS and TCP connections.
Possible solutions:
- Make
Connection.send_raw()
raise an exception if this happens- Every handler that sends a message would have to handle that exception, though.
- Make the
Connection.send_*()
s returnTrue
orFalse
to indicate whether the message was actually sent- This just feels wrong.
- Drop messages silently during disconnects
- No way. This would make the API unreliable.
Any other ideas?
Detect changes to allowed TLS versions in between connection attempts and act accordingly
Detect when IPv4 or IPv6 connectivity is broken and fall back to the other one
We have no documentation and no tests
A good project should have docs and tests, right? Right? >.>
The way TLS versions are serialized is hacky and bad
Connection.connect(): actually handle exceptions raised by socket.getaddrinfo()
Give the Connection class a `status` attribute instead of just a boolean `connected` attribute
Actually load plugins, somehow
Handle password-protected client certificates
Provide hooks for plugins to request IRC CAPs
Notify the user if TLS certificate verification fails
Make IP version preference a config option
The default configuration containers are mutable
Since Python doesn't have a frozendict
or anything, maybe we should roll our own?
Connection.connect(): handle the case where none of the calls to socket.getaddrinfo() return anything
The configuration lock isn't a readers-writers lock
Make Connection not a subclass of Thread
Or at least explain why the heck it is a subclass of Thread
in the first place.
Read lines from the socket properly
Reading one character at a time is very much improper.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.