Skip to content

Commit 4302744

Browse files
bump version and add queueing
1 parent c0cf178 commit 4302744

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

asyncirc/irc.py

+11-4
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def connection_made(self, transport):
6565
self.old_nickname = None
6666
self.nickname = ""
6767
self.server_supports = collections.defaultdict(lambda *_: None)
68+
self.queue = []
6869
self.caps = set()
6970

7071
signal("connected").send(self)
@@ -87,19 +88,27 @@ def connection_lost(self, exc):
8788

8889
## Core helper functions
8990

91+
def process_queue(self):
92+
if self.queue:
93+
self._writeln(self.queue.pop(0))
94+
loop.call_later(5, self.process_queue)
95+
9096
def on(self, event):
9197
def process(f):
9298
self.logger.debug("Registering function for event {}".format(event))
9399
signal(event).connect(f)
94100
return f
95101
return process
96102

97-
def writeln(self, line):
103+
def _writeln(self, line):
98104
if not isinstance(line, bytes):
99105
line = line.encode()
100106
self.transport.get_extra_info('socket').send(line + b"\r\n")
101107
signal("irc-send").send(line.decode())
102108

109+
def writeln(self, line):
110+
self.queue.append(line)
111+
103112
def register(self, nick, user, realname, mode="+i", password=None):
104113
if password:
105114
self.writeln("PASS {}".format(password))
@@ -161,12 +170,10 @@ def connect(server, port=6697, use_ssl=True):
161170
return protocol.wrapper
162171

163172
def reconnect(client_wrapper):
164-
loop.stop()
165-
connector = loop.create_connection(IRCProtocol, **client.server_info)
173+
connector = loop.create_connection(IRCProtocol, **client_wrapper.server_info)
166174
transport, protocol = loop.run_until_complete(connector)
167175
protocol.logger.critical("Reconnecting...")
168176
client_wrapper.protocol = protocol
169-
loop.run_forever()
170177

171178
signal("connection-lost").connect(reconnect)
172179

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup(
44
name="asyncio-irc",
5-
version="0.2.0",
5+
version="0.2.1",
66
description="irc based on asyncio",
77
author="Fox Wilson",
88
author_email="fwilson@fwilson.me",

0 commit comments

Comments
 (0)