Quantcast
Channel: Programming Help Forums / Other Languages / Python
Viewing all articles
Browse latest Browse all 11

IRC skeleton

$
0
0
[code]#!/usr/bin/env python

import socket, re, threading, thread, time, random
class IRC (object):
def __init__(self):
self.ip = "irc........com"
self.port = 6667
self.chan = "#test"
self.nick = "PXD"+str(random.randint(100000,999999))
self.symbol = '>'
self.owner = "owner"
self.host = "host.com"
def IRC_Connect(self):
time.sleep(3)
print ("Connecting...")
try:
self.irc_sock = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
except:
print("[SK]FATAL: Could not create connection socket...")
self.IRC_Connect()
if not self.ip:
print("[SK]FATAL: IP (ip) setting not found...")
self.IRC_Connect()
if not self.port:
print("[SK]FATAL: Port (port) setting not found...")
self.IRC_Connect()
try:
self.irc_sock.connect ((self.ip, int(self.port)))
except:
print("[SK]FATAL: Could not connect to IRC...")
self.IRC_Connect()
self.IRC_Start()
def IRC_Start(self):
self.irc_sock.send (( "NICK %s \r") % (self.nick))
self.irc_sock.send (( "USER %s 8 * :X\r" ) % (self.nick))
self.irc_sock.send (( "JOIN %s \r" ) % (self.chan))
self.IRC_MainLoop()
def IRC_MainLoop(self):
try:
while True:
self.recv = self.irc_sock.recv( 4096 )
if self.recv.find ( 'PING' ) != -1:
self.irc_sock.send(( "PONG %s \r" ) % (self.recv.split() [ 1 ]))
if self.recv.find('PRIVMSG') != -1:
thread.start_new_thread(self.IRC_Parse, ())
except Exception, e:
print e
self.IRC_Connect()
def IRC_Parse(self):
self.irc_nick = self.recv.split ( '!' ) [ 0 ] . replace ( ':', '' )
self.irc_host = self.recv.split ( '@' ) [ 1 ] . split ( ' ' ) [ 0 ]
self.irc_message = ':'.join ( self.recv.split ( ':' ) [ 2: ] ) . replace( '\r', '' )
print "NewThread"
print ( "%s %s %s" ) % (self.irc_nick, self.irc_host, self.irc_message)
if re.compile('^'+self.symbol).match(self.irc_message) and self.irc_host == self.host and self.irc_nick == self.owner:
self.query = self.symbol.join(self.irc_message.split(self.symbol)[1:]).split(" ")
print self.query
irc = IRC()
irc.IRC_Connect()[/code]

Viewing all articles
Browse latest Browse all 11

Trending Articles