#-*-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)