notes/Basic IRC Bot-acsPLU21.py
#!/usr/bin/python


# Import some necessary libraries.

import socket, ssl

version = 0.1
# Some basic variables used to configure the bot        

server = "irc.freenode.net" # Server

port = 7000 # Port

channel = "#menlug" # Channel

botnick = "LOLBOTmenlug" # Your bots nick


def ping(): # This is our first function! It will respond to server Pings.

  ircsock.send("PONG :pingis\n")  

def sendmsg(chan , msg): # This is the send message function, it simply sends messages to the channel.

  ircsock.send("PRIVMSG "+ chan +" :"+ msg +"\n") 

def joinchan(chan): # This function is used to join channels.

  ircsock.send("JOIN "+ chan +"\n")


def hello(): # This function responds to a user that inputs "Hello Mybot"

  ircsock.send("PRIVMSG "+ channel +" :Hello!\n")

def info():
  ircsock.send("PRIVMSG "+ channel +" :I am a bot made by Metalx1000! I am Version "+ str(version) +"\n")

def welcome(msg):
  name = msg.split("!")
  name2 = name[0].split(":")
  ircsock.send("PRIVMSG "+ channel +" :" + name2[1]  + ", Welcome!!!\n")

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((server, port)) # Here we connect to the server using the port 6667

ircsock = ssl.wrap_socket(s)
ircsock.send("USER "+ botnick +" "+ botnick +" "+ botnick +" :This bot is a result of a tutoral covered on http://shellium.org/wiki.\n") # user authentication

ircsock.send("NICK "+ botnick +"\n") # here we actually assign the nick to the bot


joinchan(channel) # Join the channel using the functions we previously defined


while 1: # Be careful with these! it might send you to an infinite loop

  ircmsg = ircsock.recv(2048) # receive data from the server

  ircmsg = ircmsg.strip('\n\r') # removing any unnecessary linebreaks.

  print(ircmsg) # Here we print what's coming from the server



  if ircmsg.find("Hello "+ botnick) != -1: # If we can find "Hello Mybot" it will call the function hello()

    hello()
  
  if ircmsg.find("#botinfo") != -1: # If we can find "Hello Mybot" it will call the function hello()

    info()

  if ircmsg.find("PING :") != -1: # if the server pings us then we've got to respond!

    ping()

  if ircmsg.find(" JOIN " + channel) != -1:
    welcome(ircmsg)

syntax highlighted by Code2HTML, v. 0.9.1