Advertisement
flypip

ircbot

Jan 7th, 2012
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.65 KB | None | 0 0
  1. #===========================================================================================================================#
  2. sep = "#"*80
  3. print(sep+"\n"+" "*30+"Lancement du bot...\n"+sep)
  4. ident = open("identifiant","r")
  5. ident = ident.read()
  6. ident = ident.split()
  7.  
  8. mot = open("mot","r")
  9. print("\n".join(ident)+"\n")
  10. #===========================================================================================================================#
  11. serveur = ident[0].split(":")[1]
  12. chan = ident[1].split(":")[1]
  13. pseudo = ident[2].split(":")[1]
  14. port = int(ident[3].split(":")[1])
  15. id = ident[4].split(":")[1]
  16. admin = ident[5].split(":")[1]
  17. etat = True
  18. print("Variables: ok")
  19. #===========================================================================================================================#
  20. import socket, urllib, sys
  21. from time import gmtime, strftime, sleep
  22. print("Module: ok")
  23. #===========================================================================================================================#
  24. def join():
  25.     irc.send ("JOIN %s\r\n" %chan)
  26.  
  27. def msg(user, msg):
  28.     irc.send ("PRIVMSG %s :%s\r\n" %(user, msg))
  29.     print("<me>: "+msg)
  30.  
  31. print("Def: ok\n%s" %sep)
  32. #===========================================================================================================================#
  33. irc = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
  34. irc.connect ((serveur, port))
  35. print irc.recv (4096)
  36. irc.send ("NICK %s\r\n" %pseudo)
  37. irc.send ("USER fly fly fly :python bot by flypip/r\n")
  38. irc.send ("MSG NICKSERV IDENTIFY %s\r\n" %id)
  39. irc.send ("JOIN %s\r\n" %chan)
  40. irc.send ("MSG NICKSERV IDENTIFY %s\r\n" %id)
  41. sleep(1)
  42. print ("Connection au serveur: ok")
  43. #===========================================================================================================================#
  44. while True:
  45.    data = irc.recv ( 4096 )
  46.  
  47.    try:
  48.       name = data.split("!")[0]
  49.       name = name.strip(":")
  50.    except:
  51.       print("Erreur lors du name...")
  52.       name = "None"
  53.    try:
  54.       nbr, esc = 0, 0
  55.       for nom in data:
  56.          nbr += 1
  57.          if nom == " ":
  58.             esc +=1
  59.          if esc == 3:
  60.             break
  61.       nbr += 1
  62.       recu = data[nbr:]
  63.       recu = recu.lower()
  64.       recu = recu.strip("\r\n")
  65.    except:
  66.       print("Erreur lors du recu...")
  67.  
  68. #===========================================================================================================================#            
  69.    if name == admin:
  70.                      
  71.       if data.find ("!msg") != -1:
  72.          try:
  73.             recu = recu[5:].split(";")
  74.             msg(recu[0], recu[1])
  75.          except:
  76.             msg(name, "error!")
  77.  
  78.       if data.find ("!say") != -1:
  79.          msg(chan, recu[5:])
  80.  
  81.       if data.find ("!stop") != -1:
  82.          etat = False
  83.          msg(chan, "%s: false" %pseudo)
  84.  
  85.       if data.find ("!start") != -1:
  86.          etat = True
  87.          msg(chan, "%s: true" %pseudo)
  88.  
  89.       if data.find ("!nick") != -1:
  90.          pseudo = recu[5:]
  91.          irc.send ("NICK %s\r\n" %pseudo)            
  92.  
  93.       if data.find ("!chan")!= -1:
  94.          chan = recu[6:]
  95.          join()
  96.      
  97.       if data.find ("!art") != -1 :
  98.          try:
  99.             if recu.find("http://") != -1:
  100.                website = urllib.urlopen(recu[5:])
  101.                for lig in website:
  102.                   msg(chan, lig)
  103.                   sleep(0.5)
  104.             else:
  105.                art = open(recu[5:], "r")
  106.                for lig in art:
  107.                   msg(chan, lig)
  108.                   sleep(0.5)
  109.                art.close()
  110.          except:
  111.             msg(chan, "No found: %s" %recu[5:])
  112.    
  113.    
  114.    if etat == True:
  115.       if data.find ("!time") != -1:
  116.          time = strftime("le %a, %d %b %Y et il est %H:%M:%S +0000", gmtime())
  117.          msg(chan, time)
  118.  
  119.       if data.find ("!help") != -1:
  120.          msg(chan, "admin(%s):!msg, !say, !start, !stop, !nick, !chan, !art - user: !time, !help" %admin )
  121.  
  122.       if data.find ("!etat") != -1:
  123.          msg(chan, "%s: %s"%(pseudo, etat))
  124.    elif etat == False:
  125.       msg(chan, "bot: false!")
  126.          
  127.              
  128. #==========================================================================================================================#  
  129.    if recu == chan:
  130.       print("%s a rejoint la channel: %s" %(name, chan))
  131.  
  132.    if data.find ("PING") != -1:
  133.       irc.send ("PONG"+ data.split()[1]+'\r\n')
  134.  
  135.    if data.find ("KICK") != -1:
  136.       join()
  137.  
  138.    if data.find ("no external messages)") != -1:
  139.       join()
  140.        
  141.  
  142.    print ("<%s>: %s" %(name, recu))
  143.  #===========================================================================================================================#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement