GeinMedlem sedan sep. 20005 700 inlägg jag är ute efter ett litet program som körs på en linux-server som ska logga allt som sägs i en viss irc-kanal. Min polare tyckte att jag skulle skriva en egen i Python, det skulle tydligen vara väldigt enkelt och inte ta så mycket kod.
Är lite sugen på att prova själv, man lär sej ju alltid nånting, och undrar om någon här har erfarenhet av det? Det handlar egentligen inte om någon klient i den bemärkelse att den ska kunna prata eller så, utan bara sitta i en kanal o logga allting. Hur är pyhon? Är det svårt/enkelt? :q
spangoMedlem sedan juni 20008 205 inlägg Python är dödsenkelt! Dessutom är det ett snyggt och allmänt mysigt språk som alla borde kunna. Hur IRC-protokollet är funtat är jag inte bekant med, men det kan inte vara så svårt.
GeinMedlem sedan sep. 20005 700 inlägg Det säger du? Blir riktigt nyfiken nu, får nog ta o ge mej in i det där så fort jag har lite tid över! Någon som har en bra sida om Python? Gärna om nätverksprogrammering och varför inte mot irc-nät också om det finns. Tankar, idéer och länkar till webbsidor om detta uppskattas! :)
psMedlem sedan juni 2000841 inlägg Hålle rmed spango mycket lätt och framförallt trevligt/kul språk att koda...
Du får hjälp att indentera rätt om inte annat ;)
http://www.python.org/
http://www.python.org/doc/current/tut/tut.html
spangoMedlem sedan juni 20008 205 inlägg Om IRC (efter en 20-sekunders googling ;) ): http://www.irchelp.org/irchelp/rfc/
GeinMedlem sedan sep. 20005 700 inlägg Den där RFC hade jag redan fått tag i, tack ändå! :)
GeinMedlem sedan sep. 20005 700 inlägg Jag måste få verifiera att python va ett alldeles underbart språk! Mitt lilla program som sitter i en irc-kanal o loggar blev precis funktionsdugligt :) Ska bearbeta programmet en hel del och lägga till massa features.. e ju inte så snyggt skrivet just nu.. men det funkar klocka! :e
spangoMedlem sedan juni 20008 205 inlägg Coolt! Får man ta en flukt på den?
GeinMedlem sedan sep. 20005 700 inlägg självklart, som sagt, e ju inte så optimalt skrivet men:
som det ser ut just nu, håller på att bearbeta det hela tiden.
#! /bin/python
import socket, time, string, sys
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect(('se.quakenet.org', 6667))
for arg in sys.argv:
arg + "\n"
errormsg = ""
print "\nSending USER and NICK\n"
user = "USER knivbot hostname server.org :Knivbot\n"
sock.send(user)
nick = "NICK knivbot\n"
sock.send(nick)
while 1:
data = sock.recv(1024)
if not data: break
##print data
lines = string.split(data, "\n")
for line in lines:
##print line
parts = string.split(line, ":")
if len(parts) < 1: continue
if parts[0] == "ERROR":
errmsg = parts[1]
if len(parts) > 2:
if parts[2][:12] == "End of /MOTD":
print "Successfully registered @ qnet"
print "Joining #knivsta"
sock.send("JOIN #knivsta\n")
fileobj = open("public_html/logs/#knivsta.log", "a")
fileobj.write("\nSession Start: " + time.strftime("%a, %d %b %Y %H:%M:%S") + ", #knivsta\n")
fileobj.flush()
fileobj.close
else:
msgsplit = string.split(parts[1], " ")
if len(msgsplit) == 4 and msgsplit[1] == "PRIVMSG":
msgSaveTo = msgsplit[2]
msgfrom = string.split(msgsplit[0], "!")
msgFromNick = msgfrom[0]
msgFromAddr = msgfrom[1]
i = 0
msgText = ""
del parts[0:2]
msgText = string.join(parts, ":")
print "(" + msgSaveTo + ")[" + time.strftime("%H:%M:%S") + "]<" + msgFromNick + "> " + msgText
fileobj = open("public_html/logs/" + msgSaveTo + ".log", "a")
fileobj.write("[" + time.strftime("%H:%M:%S") + "]<" + msgFromNick + "> " + msgText +"\n")
fileobj.flush()
fileobj.close
elif len(msgsplit) == 3 and msgsplit[1] == "NICK":
msgSaveTo = "All"
msgfrom = string.split(msgsplit[0], "!")
msgFromNick = msgfrom[0]
msgFromAddr = msgfrom[1]
msgNewNick = parts[2]
print "[" + time.strftime("%H:%M:%S") + "]*** " + msgFromNick + " is now known as " + msgNewNick
if parts[0] == "PING ": ## Ping event
sock.send("PONG :" + parts[1] + "\n")
##print "PONG :" + parts[1] + "\n"
sock.close()
print "Error occured:\n"
print errmsg
spangoMedlem sedan juni 20008 205 inlägg Asså... typ... "najs". Du vet. Vanlig svenska som man talar den i civilisationens hjärta (Nacka/Älta). :D
GeinMedlem sedan sep. 20005 700 inlägg man lär sej så länge man lever :)