Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. import socket, string, datetime, random, mysql.connector as mariadb, os
  2.  
  3. # some user data, change as per your taste
  4. # SERVER = 'chat.freenode.net'
  5. SERVER = 'irc.swiftirc.net'
  6. PORT = 6667
  7. NICKNAME = 'geszt'
  8. PASS = 'f'
  9. # CHANNEL = '##linux'
  10. CHANNEL = '#unmod'
  11.  
  12. # open a socket to handle the connection
  13. IRC = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  14.  
  15. # open a connection with the server
  16. def irc_conn():
  17. IRC.connect((SERVER, PORT))
  18.  
  19. # simple function to send data through the socket
  20. def send_data(command):
  21. IRC.send(command + '\n')
  22.  
  23. # join the channel
  24. def join(channel):
  25. send_data("JOIN %s" % channel)
  26.  
  27. # send login data (customizable)
  28. def login(nickname, username='tezsting', password = PASS, realname='madison', hostname='testifng', servername='teszting'):
  29. send_data("USER %s %s %s %s" % (username, hostname, servername, realname))
  30. send_data("NICK " + nickname)
  31.  
  32. irc_conn()
  33. login(NICKNAME)
  34. join(CHANNEL)
  35.  
  36. x = 0
  37.  
  38. # MariaDB variables
  39. mdbDatabase = 'orgdata'
  40. mdbUser = 'orgbot'
  41. mdbPass = 'botpass'
  42. mdbTable = 'logs'
  43. mdbR1 = 'irc_user'
  44. mdbR2 = 'log_text'
  45. mdbIP = '10.0.100.27'
  46. mdbPort = '3306'
  47.  
  48. # Connecting to mariadb
  49. dbconnect = mariadb.connect(user=mdbUser, password=mdbPass, database=mdbDatabase, host=mdbIP, port=mdbPort)
  50. dbcursor = dbconnect.cursor(buffered=True)
  51.  
  52. while (1):
  53. buffer = IRC.recv(1024)
  54. msg = string.split(buffer)
  55. if msg[0] == "PING": #check if server have sent ping command
  56. send_data("PONG %s" % msg[1]) #answer with pong as per RFC 1459
  57. if msg[1] == 'PRIVMSG':
  58. sep = '!'
  59. nickstart = msg[0].split(sep, 1)[0]
  60. nick = nickstart[1:]
  61. time = datetime.datetime.now()
  62. del msg[:3]
  63. msg[0] = msg[0][1:]
  64. msgstr = " ".join(str(e) for e in msg)
  65. print 'At', time, ',', nick, 'said:', msgstr
  66.  
  67. decider = random.randrange(1, 10)
  68.  
  69. if decider > 3:
  70. #subprocess.call(['powershell.exe', 'C:\Scripts\orgmail.ps1', '-ircuser', nick, '-ircmessage', msgstr])
  71. print "I'm totally emailing right now"
  72. cmdtext = ('C:\\Scripts\\orgmail.ps1 -ircuser %s -ircmessage %s') % (nick, msgstr)
  73. os.system(cmdtext)
  74.  
  75. elif decider > 2:
  76. print "Writing to database"
  77. writestring = ("INSERT INTO %s (%s, %s) VALUES (\"%s\", \"%s\");") % (mdbTable, mdbR1, mdbR2, nick, msgstr)
  78. print writestring
  79. dbcursor.execute(writestring)
  80. dbconnect.commit()
  81.  
  82. else:
  83. print "Reading from database"
  84. readstring = ("select * from %s;") % (mdbTable)
  85. dbcursor.execute(readstring)
  86. dbconnect.commit()
  87.  
  88.  
  89.  
  90. # f = open('msg.txt', 'a+')
  91. # filetxt = open('msg.txt', 'a+') #open an arbitrary file to store the messages
  92. # nick_name = msg[0][:string.find(msg[0],"!")] #if a private message is sent to you catch it
  93. # message = ' '.join(msg[3:])
  94. # filetxt.write(string.lstrip(nick_name, ':') + ' -> ' + string.lstrip(message, ':') + '\n') #write to the file
  95. # filetxt.flush() #don't wait for next message, write it now!
  96. # filetxt.close()
  97. # print '\n\n\nfile close\n\n\n\n'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement