Guest User

Untitled

a guest
Jan 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.10 KB | None | 0 0
  1. class pyTrent:
  2.     def __init__(self, server, nick, salon="", port=6667):
  3.         self.appname = "pyTrent"
  4.         self.appversion = "version 0.3, en Python 3 !"
  5.  
  6.         self.connectionData = {
  7.             "server": server
  8.             ,"salon": salon
  9.             ,"nick": nick
  10.             ,"port": port
  11.             }
  12.         self.log = bytes()
  13.  
  14.         self._irc_connect()
  15.         if salon != "":
  16.             self._send("JOIN %s" % salon)
  17.  
  18.         self._ecoute()
  19.  
  20.     def _irc_connect(self):
  21.         import socket
  22.         server, nick, port = (
  23.             self.connectionData["server"]
  24.             ,self.connectionData["nick"]
  25.             ,self.connectionData["port"]
  26.             )
  27.  
  28.         self.socket = socket.socket()
  29.         self.socket.connect((server, port))
  30.         self._send("NICK %s" % nick)
  31.         self._send("USER %s %s bla :%s" % (nick, server, nick))
  32.  
  33.     def _send(self, content):
  34.         if self.socket:
  35.             self.socket.send(bytes(content+"\r\n", "utf-8"))
  36.  
  37.     def _is(self, content, search, retour=bool()):
  38.         if content.find(search, 0, len(search)) != -1:
  39.             if retour == str():
  40.                 return content[len(search):]
  41.             else:
  42.                 return True
  43.         else:
  44.             return False
  45.  
  46.     def _ecoute(self):
  47.         import re
  48.         salon = self.connectionData["salon"]
  49.  
  50.         while True:
  51.             try:
  52.                 try:
  53.                     recv = str(self.socket.recv(1024), "utf-8")
  54.                 except:
  55.                     recv = str(self.socket.recv(1024))
  56.                 recv = recv.split("\r\n")
  57.                 m = re.search("^\:([a-zA-Z\-]+)!([a-zA-Z_]+)@.+PRIVMSG\s(#[a-zA-Z-]+)\s?:(.+)$", recv[0])
  58.  
  59.                 if type(m) != type(None):
  60.                     response = m.group(4)
  61.                     print("> %s a dit: %s" % (m.group(1), response))
  62.                     if response == "!stop":
  63.                         self._send("QUIT Adieu.")
  64.                         import sys
  65.                         sys.exit()
  66.                     elif response == "!ping":
  67.                         self._send("PRIVMSG %s PONG" % salon)
  68.                     elif response == "!version":
  69.                         self._send("PRIVMSG %s Je suis %s %s" % (salon, self.appname, self.appversion))
  70.                 else:
  71.                     if recv[0].find("PING", 0, 4) != -1:
  72.                         print("> PING")
  73.                         self._send("PING")
  74.                     else:
  75.                         print ("? "+recv[0])
  76.  
  77.             except KeyboardInterrupt:
  78.                 print("Interruption clavier.")
  79.                 try:
  80.                     rep = input("Que voulez-vous faire ?\n")
  81.                     rep = self._is(rep, "!addmsg ", str())
  82.                     if rep:
  83.                         self._send("PRIVMSG %s %s" % (self.connectionData["salon"], rep))
  84.                 except KeyboardInterrupt:
  85.                     print("STOOOOOOOOOOOOP")
  86.                     import sys
  87.                     sys.exit()
  88.                     break
  89.  
  90. instance = pyTrent("irc.opera.com", "PyTrent", "#opera-fr")
Add Comment
Please, Sign In to add comment