Commit Graph

438 Commits

Author SHA1 Message Date
Shiz f151c1ba30 Move handling of a single message to Client.handle_single(). 2014-02-05 17:20:22 +01:00
Shiz a6a2da28b6 Fix broken source parsing. 2014-02-05 12:15:43 +01:00
Shiz 1a17db9794 Add tls_client_cert_password option for TLS keyfile password. 2014-02-05 12:07:12 +01:00
Shiz 62298e7a44 Remove channel information after being kicked or parting.
Also fixed _destroy_channel() to remove any users not in common anymore as a result of leaving the channel.
2014-02-05 11:15:24 +01:00
Shiz 2d337a935c Merge pull request #7 from rfw/master
TLS fixes.
2014-02-05 10:26:59 +01:00
Tony Young 66f0f0c9f7 Rename pem_password to tls_certificate_password 2014-02-05 04:25:08 -05:00
Tony Young f8cff52b52 Sets flags to 0 for recv() if the socket is an SSL socket.
SSLSocket doesn't support flags on recv().
2014-02-05 02:57:47 -05:00
Tony Young e3b13b6c75 Alow passing a PEM password to the connection. 2014-02-05 02:32:08 -05:00
Tony Young a33eca803f Fix typo in SSLContext.load_verify_locations.
ca_path= should be capath=
2014-02-05 02:26:37 -05:00
Shiz c8b083b663 Merge pull request #6 from rfw/master
Don't throw an exception if we attempt to message a channel we're not in.
2014-02-04 15:44:18 -08:00
Tony Young db39414c9c Don't throw an exception if we attempt to message a channel we're not in.
If the channel isn't +n, outside messages are allowed.
2014-02-04 18:32:00 -05:00
Shiz b7dc08ae25 Neatify parts handling in message parsing. 2014-02-04 21:37:23 +01:00
Shiz 146d4d9b65 Refactor parts handling in message parsing. 2014-02-04 21:35:54 +01:00
Shiz f3603c9bf6 Merge pull request #5 from rfw/master
Parse parameters as parameter* and not parameter+.
2014-02-04 12:32:18 -08:00
Tony Young f452dd20f7 Parse parameters as parameter* and not parameter+.
Some IRC commands have no parameters and this accomodates for them.
2014-02-04 14:35:26 -05:00
Shiz 8926db46b7 Make exception handling on sockets more robust. 2014-02-04 12:25:59 +01:00
Shiz 92f558fbba Merge pull request #4 from rfw/master
Also catch socket.error on TLS teardown.
2014-02-04 03:17:41 -08:00
Tony Young ea83e56f4b Also catch socket.error on TLS teardown. 2014-02-04 06:03:10 -05:00
Shiz 00587532f1 Merge pull request #3 from rfw/master
Fix error behaviour and edge cases.
2014-02-04 02:11:33 -08:00
Tony Young e92a981f1a Fix typo (_construct_message -> _create_message). 2014-02-04 02:53:03 -05:00
Tony Young 38ca472ff1 Run on_connect tasks when code 422 is received.
Code 422 is sent if there is no MOTD set on the server but the connection
completes.
2014-02-04 02:52:14 -05:00
Tony Young a20491d084 Don't throw KeyError if we can't format a hostmask for a nickname.
Some IRCds send weird commands at odd times (e.g. PING before NICK),
and sometimes user information isn't always available (e.g. out of channel
messages).
2014-02-04 02:50:24 -05:00
Shiz 302b446920 Loosen message parsing requirements and log invalid messages. 2014-02-02 18:27:32 +01:00
Shiz 87719e4cf0 Add message tag feature. 2014-02-02 17:33:21 +01:00
Shiz ae9d2bad8a Refactor IRC message parsing into extensible architecture.
Instead of having a single monolithic function in the pydle.protocol
module parse messages, there will now be a protocol.Message class
features can extend from to add functionality to the parser.
Consequently, all internal callbacks have been changed to take messages
as arguments instead of a collection of metadata about the messages.

A message object should provide the following API:
- __init__(command, parameters, **kwargs): create a message.
- (static) parse(line, encoding='utf-8'): parse a line into a message.
  Should return a message instance or raise protocol.ProtocolViolation
  on error.
- construct(): turn message into a raw IRC line ready to send to the
  server.

pydle.Connection has new APIs to deal with differing message classes.
2014-02-02 16:26:03 +01:00
Shiz db2a2ddd6f pydle v0.7.1 2014-01-30 14:05:52 +01:00
Shiz c941d2b5e1 Add multiline support to client.message()/client.notice(). 2014-01-30 10:11:20 +01:00
Shiz c2e27a4a0f Add message sending throttling. 2014-01-30 09:15:26 +01:00
Shiz 89bcc077d5 Add more robust connectivity checking. 2014-01-30 09:00:57 +01:00
Shiz c22cc437df Made client.message() and client.notice() chunk input if it will not fit into a single message. 2014-01-30 08:54:33 +01:00
Shiz 14fef8bb99 pydle v0.7.0 2014-01-30 03:53:44 +01:00
Shiz db2b883a6d Don't bother waiting for messages if we already have one in queue. 2014-01-30 02:55:09 +01:00
Shiz 6a3b63a825 Add default value for ConnectionPool constructor. 2014-01-30 02:29:16 +01:00
Shiz 05030707b6 Fix bug where ClientPool would fail to handle any messages. 2014-01-30 02:24:57 +01:00
Shiz f859455d55 Add documentation for pydle.featurize. 2014-01-23 03:00:16 +01:00
Shiz 31f6b2d93a Fix misformatted license. 2014-01-23 02:51:08 +01:00
Shiz d09e466861 Fix outdated README statements. 2014-01-23 02:50:52 +01:00
Shiz 0fc2391f7a Initial import. 2014-01-23 02:44:19 +01:00