コード例 #1
0
ファイル: test.py プロジェクト: becdot/sockets_irc
 def test_receive_message(self):
     "Message received is the same length as the message sent"
     client = Client()
     fakeincoming = FakeSocket()
     fakeincoming.message = "hello!"
     client.incoming = fakeincoming
     self.assertTrue(client.receive_message())
コード例 #2
0
ファイル: test.py プロジェクト: becdot/sockets_irc
 def test_send_exit(self):
     "An exit message sent from the client shuts down the socket and sets threads = False"
     client = Client()
     fakesock = FakeSocket()
     client.outgoing = fakesock
     client.send_message('exit')
     self.assertTrue(fakesock.shut)
     self.assertFalse(client.threads)
コード例 #3
0
ファイル: test.py プロジェクト: becdot/sockets_irc
 def test_send_message(self):
     "Message is sent from the client to the server and sets threads = True"
     client = Client()
     fakesock = FakeSocket()
     client.outgoing = fakesock
     client.send_message('hello!')
     self.assertTrue(fakesock.did_message_send)
     self.assertTrue(client.threads)
コード例 #4
0
ファイル: main.py プロジェクト: 1r00t/Python-IRC-Client
 def __init__(self, parent=None):
     QtGui.QWidget.__init__(self, parent)
     self.setupUi(self)
     self.actionConnect.triggered.connect(self.open_connect_window)
     self.actionExit.triggered.connect(self.close)
     self.send_btn.clicked.connect(self.send_message)
     self.chat_input.returnPressed.connect(self.send_message)
     self.connect_window = None
     self.irc = Client()
     self.read_thread = self.irc.read_thread
     self.read_thread.new_message_signal.connect(self.add_new_message)
コード例 #5
0
 def setUp(self):
     stream_writer = mock.AsyncMock()
     slack_client = mock.AsyncMock()
     settings = mock.MagicMock()
     settings.silenced_yellers = set()
     settings.provider = Provider.SLACK
     self.client = Client(stream_writer, slack_client, settings)
コード例 #6
0
def client(*args, **kargs):
    # Save PEP 3122!
    if "." in __name__:
        from .irc import Client
    else:
        from irc import Client
    Client(*args, **kargs)
コード例 #7
0
ファイル: test_re.py プロジェクト: genisysram/localslackirc
    def setUp(self):
        class MockClient:
            def __init__(self):
                self.members = set(('0', ))

            async def get_members(self, channels):
                return self.members

            async def get_user_by_name(self, username):
                return User(username, username, None)

            async def get_user(self, id_):
                return User('0', 'LtWorf', None)

        self.mock_client = MockClient()
        self.client = Client(None, self.mock_client, False, True,
                             Provider.SLACK, set())
コード例 #8
0
ファイル: lib.py プロジェクト: Plus3/p3bot
def init():
    global DB, CONN, c, AUTO_JOINS, MODYS
    #try:
    if 1 == 1:
        loadMods()
        DB = database.Database()
        CONN = Connection(Host="irc.GameSurge.net", Nick="PluzB0t").connect(True, debug=False)
        c = Client(CONN)

        for i in MODYS:
            THREADS.append(thread.start_new_thread(i.ready, (c,)))
        
        for chan in AUTO_JOINS:
            c.joinChannel(chan)

        while c.alive:
            c.parse(CONN.read())
コード例 #9
0
ファイル: main.py プロジェクト: 1r00t/Python-IRC-Client
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.actionConnect.triggered.connect(self.open_connect_window)
        self.actionExit.triggered.connect(self.close)
        self.send_btn.clicked.connect(self.send_message)
        self.chat_input.returnPressed.connect(self.send_message)
        self.connect_window = None
        self.irc = Client()
        self.read_thread = self.irc.read_thread
        self.read_thread.new_message_signal.connect(self.add_new_message)

    def open_connect_window(self):
        if not self.connect_window:
            self.connect_window = ConnectWindow()
            self.connect_window.show()

    def add_new_message(self, message):
        message = unicode(message)
        message_dict = self.irc.handle_message(message)
        prefix = message_dict["prefix"]
        command = message_dict["command"]
        parameters = message_dict["parameters"]
        if command == "PRIVMSG":
            user = prefix.split("!")[0]
            print parameters[0]
            self.channel_output.append("<b>{user}</b>: {text}".format(
                user=user, text=parameters[1]))
        else:
            self.server_output.append(message)

    def send_message(self):
        text = unicode(self.chat_input.text())
        if text:
            self.irc.send("PRIVMSG #testtesttest :" + text)
            self.chat_input.setText("")
            self.chat_input.setFocus()

    def closeEvent(self, event):
        if self.irc.connected:
            self.irc.disconnect()
コード例 #10
0
ファイル: main.py プロジェクト: 1r00t/Python-IRC-Client
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.actionConnect.triggered.connect(self.open_connect_window)
        self.actionExit.triggered.connect(self.close)
        self.send_btn.clicked.connect(self.send_message)
        self.chat_input.returnPressed.connect(self.send_message)
        self.connect_window = None
        self.irc = Client()
        self.read_thread = self.irc.read_thread
        self.read_thread.new_message_signal.connect(self.add_new_message)

    def open_connect_window(self):
        if not self.connect_window:
            self.connect_window = ConnectWindow()
            self.connect_window.show()

    def add_new_message(self, message):
        message = unicode(message)
        message_dict = self.irc.handle_message(message)
        prefix = message_dict["prefix"]
        command = message_dict["command"]
        parameters = message_dict["parameters"]
        if command == "PRIVMSG":
            user = prefix.split("!")[0]
            print parameters[0]
            self.channel_output.append("<b>{user}</b>: {text}".format(
                user=user, text=parameters[1]))
        else:
            self.server_output.append(message)

    def send_message(self):
        text = unicode(self.chat_input.text())
        if text:
            self.irc.send("PRIVMSG #testtesttest :" + text)
            self.chat_input.setText("")
            self.chat_input.setFocus()

    def closeEvent(self, event):
        if self.irc.connected:
            self.irc.disconnect()
コード例 #11
0
ファイル: main.py プロジェクト: 1r00t/Python-IRC-Client
 def __init__(self, parent=None):
     QtGui.QWidget.__init__(self, parent)
     self.setupUi(self)
     self.actionConnect.triggered.connect(self.open_connect_window)
     self.actionExit.triggered.connect(self.close)
     self.send_btn.clicked.connect(self.send_message)
     self.chat_input.returnPressed.connect(self.send_message)
     self.connect_window = None
     self.irc = Client()
     self.read_thread = self.irc.read_thread
     self.read_thread.new_message_signal.connect(self.add_new_message)
コード例 #12
0
class TestMagic(unittest.TestCase):
    def setUp(self):
        class MockClient:
            def __init__(self):
                self.members = set(('0', ))

            async def get_members(self, channels):
                return self.members

            async def get_user_by_name(self, username):
                return User(username, username, None)

            async def get_user(self, id_):
                return User('0', 'LtWorf', None)

        self.mock_client = MockClient()
        settings = ClientSettings(
            False,
            True,
            Provider.SLACK,
            set(),
            Path('/tmp'),
        )
        self.client = Client(None, self.mock_client, settings)

    def test_no_replace(self):
        '''
        Check that no substitutions are done on regular strings and nickname in url
        '''
        cases = [
            'ciao',
            'http://LtWorf/',
            'ciao https://link.com/LtWorf',
            'ciao https://link.com/LtWorf?param',
        ]
        dest = Channel('0', '0', None, None)
        for i in cases:
            assert asyncio.run(self.client._addmagic(i, dest)) == i

    def test_escapes(self):
        dest = User('0', 'LtWorf', None)
        assert asyncio.run(self.client._addmagic('<', dest)) == '&lt;'
        assert asyncio.run(self.client._addmagic('>ciao', dest)) == '&gt;ciao'

    def test_annoyiances(self):
        dest = User('0', 'LtWorf', None)
        asyncio.run(self.client._addmagic('ciao @here',
                                          dest)) == 'ciao <!here>'
        asyncio.run(self.client._addmagic('ciao @channel',
                                          dest)) == 'ciao <!channel>'
        asyncio.run(self.client._addmagic('ciao @everyone </',
                                          dest)) == 'ciao <!everyone> &lt;/'

    def test_mentions(self):
        dest = Channel('0', '0', None, None)
        assert asyncio.run(self.client._addmagic('ciao LtWorf',
                                                 dest)) == 'ciao <@LtWorf>'
        assert asyncio.run(self.client._addmagic('LtWorf: ciao',
                                                 dest)) == '<@LtWorf>: ciao'
        assert asyncio.run(self.client._addmagic(
            'LtWorf: ciao LtWorf', dest)) == '<@LtWorf>: ciao <@LtWorf>'
        assert asyncio.run(self.client._addmagic('_LtWorf', dest)) == '_LtWorf'
        assert asyncio.run(
            self.client._addmagic(
                'LtWorf: http://link/user=LtWorf',
                dest)) == '<@LtWorf>: http://link/user=LtWorf'
コード例 #13
0
ファイル: main.py プロジェクト: nathantouze/IRC_client-CLI-
from irc import Client
import select
import time
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-ip", help="Adresse of the IRC server")
parser.add_argument("-port", type=int, help="Port of the IRC server (\"6667\" by default)", default=6667)
parser.add_argument("-n", "--nickname", help="Nickname (\"Guest\" by default)", default="Guest")
parser.add_argument("-f", "--fullname", help="Fullname (\"John Doe\" by default)", default="John Doe")
parser.add_argument("-p", "--password", help="Password (empty by default)", default="")
parser.add_argument("--noarg", help="Do not enter information via arguments but inside the program.", action="store_true")
args = parser.parse_args()

server = Client(args.ip, int(args.port), args.nickname, args.fullname, args.password)
if args.noarg is True:
    server.ask_config()
server.connect()

msg = ""

while server.connected is True:
    try:
        readable, writeable, xset = select.select([server.socket], [server.socket], [], 0.1)
    except select.error:
        pass
    for socket in readable:
        data = socket.recv(8192)
        print(data.decode())
        if server.is_disconnected(data) is True:
            break