Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

ircbot.py

#-*-coding:utf8;-*-
#qpy:3

import socket
import re


HOST = 'irc.freenode.net'
PORT = 6665
NICK = 'qwefgjut'
USERNAME = 'megadeath'
REALNAME = 'little pony'
CHANNEL = NICK


irc = socket.socket()

# CONNECT TO THE SERVER.
irc.connect((HOST, PORT))

def join(irc, chan):
msg_fs = 'JOIN {chan} \r\n'
irc.send(msg_fs.format(chan=chan).encode())

def auth(irc, nick, usr, chan):
nick_fs= str('NICK {nick} \r\n')
nickname = nick_fs.format(nick=nick)
username_fs = ('USER {usr} {usr} {usr} : \r\n')
username = username_fs.format(usr=usr)
irc.send(nick.encode())
irc.send(username.encode())
join(irc, chan)

def pong(irc, message):
irc.send(str('PONG ' + message.split(':')[1] + '\r\n').encode())
print('SENT PONG')

def is_ping(message):
return message.find('PING') != -1

def handle_ping(irc, message):
if message:
if is_ping(message):
pong(irc, message)

def parse_message(message):
if not message:
return {}

prefix = ''
tralling = []

if message[0] == ':':
prefix, message = message[1:].split(' ', 1)

if message.find(' :') != -1:
message, trailing = message.split(' :', 1)
args = message.split()
args.append(trailing)

else:
args = message.split()

command = args.pop(0)
return prefix, command, args

def get_message(irc):
return irc.recv(65535).decode()

auth(irc, NICK, USERNAME, CHANNEL)

while 1:
message = get_message(irc)
if message:
prefix, command, args = parse_message(message)
if command == 'PING':
pong(irc, message)
print(message)



This post first appeared on Ricky's Python Notes, please read the originial post: here

Share the post

ircbot.py

×

Subscribe to Ricky's Python Notes

Get updates delivered right to your inbox!

Thank you for your subscription

×