def make_new_connection(self, name, oauth, can_send_whispers=True): server = random.choice(self.servers_list) ip, port = server.split(':') port = int(port) log.debug('Whispers: Connecting to server {0}'.format(server)) newconn = CustomServerConnection(self.reactor) with self.reactor.mutex: self.reactor.connections.append(newconn) newconn.connect(ip, port, name, oauth, name) newconn.cap('REQ', 'twitch.tv/commands') # For debugging purposes newconn.cap('REQ', 'twitch.tv/membership') newconn.cap('REQ', 'twitch.tv/tags') return WhisperConnection(newconn, name, oauth, can_send_whispers)
class SingleConnectionManager: def __init__(self, reactor, host, relay_password, username, password): self.reactor = reactor self.host = host self.username = username self.password = '******'.format(relay_password, password) # Try to reconnect every 3 seconds self.recon = StaticInterval(3) self.relay_connection = None def start(self): log.info(self.reactor) self.relay_connection = CustomServerConnection(self.reactor) with self.reactor.mutex: self.reactor.connections.append(self.relay_connection) self._connect() def _connect(self): ip, port = self.host.split(':') port = int(port) log.debug('Connecting to relay {}:{}'.format(ip, port)) try: self.relay_connection.connect(ip, port, self.username, self.password, self.username) except irc.client.ServerConnectionError: log.error('Error connecting to {}:{}'.format(ip, port)) self.recon.run(self) def privmsg(self, channel, message): try: return self.relay_connection.privmsg(channel, message) except irc.client.ServerNotConnectedError: log.warning( 'Unable to send message "{}", not connected to the relay.'. format(message)) pass def whisper(self, username, message): return self.relay_connection.privmsg( '#jtv', '/w {0} {1}'.format(username, message)) def on_disconnect(self): self.recon.run(self)
class SingleConnectionManager: def __init__(self, reactor, host, relay_password, username, password): self.reactor = reactor self.host = host self.username = username self.password = '******'.format(relay_password, password) # Try to reconnect every 3 seconds self.recon = StaticInterval(3) self.relay_connection = None def start(self): self.relay_connection = CustomServerConnection(self.reactor) with self.reactor.mutex: self.reactor.connections.append(self.relay_connection) self._connect() def _connect(self): ip, port = self.host.split(':') port = int(port) log.debug('Connecting to relay {}:{}'.format(ip, port)) try: log.debug('1') self.relay_connection.connect(ip, port, self.username, self.password, self.username) log.debug('2') except irc.client.ServerConnectionError: log.error('Error connecting to {}:{}'.format(ip, port)) self.recon.run(self) def privmsg(self, channel, message): try: return self.relay_connection.privmsg(channel, message) except irc.client.ServerNotConnectedError: log.warning('Unable to send message "{}", not connected to the relay.'.format(message)) pass def whisper(self, username, message): return self.relay_connection.privmsg('#jtv', '/w {0} {1}'.format(username, message)) def on_disconnect(self): self.recon.run(self)