bot
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
splitted == irgendwas
Mit Variable definieren war nicht gemeint, das Du dafür sorgst, dass es den Namen `splitted` gibt, sondern dass der auch an etwas gebunden ist was in dem Skript einen Sinn ergibt. `None` wird nicht funktionieren weil in dem Zweig auf das vierte Element von `splitted` zugegriffen wird.
Also nicht brauchbar. Wenn ich mal raten müsste, dann wird `splitted` wohl besser `msg` heissen.
Ansonsten lern mal Python, für diesen kleinen Schnipsel reicht fast das Tutorial aus der Doku, und ein wenig Orthographie. So ein dummer Computer ist da nämlich nicht so nachsichtig wie wir was Tippfehler angeht.
Code: Alles auswählen
In [55]: splitted = None
In [56]: splitted[3]
---------------------------------------------------------------------------
exceptions.TypeError Traceback (most recent call last)
/home/marc/<ipython console>
TypeError: unsubscriptable object
Ansonsten lern mal Python, für diesen kleinen Schnipsel reicht fast das Tutorial aus der Doku, und ein wenig Orthographie. So ein dummer Computer ist da nämlich nicht so nachsichtig wie wir was Tippfehler angeht.
oki danke aber ich habe es gestern schon rausbekommen habe die variable splittet mit der variable msg ausgetauscht blos jetzt ahbe ich folgendes problem wie defieniere ich sendit(infomsg) wist ihr ds thx schonmal.
greeeetz
snakebyte
Code: Alles auswählen
elif msg[3] == ':#info':#zweites while entfernt...
infomsg = "I'm an IRC-Bot written by Cube "
infomsg += "and I'm located at the german-freakz network!"
sendit(infomsg)
greeeetz
snakebyte
so ich habe ihn verändert würde der so gehen:
das heist einfache farge antowort system habe nun kein python! aber ich denke das müste klapen
Code: Alles auswählen
import socket,string
print "geschaft!"
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("tux.german-freakz.net",6667))
print "drin"
s.send("NICK mingo\r\n" +"PASS mingo\r\n"+"USER mingo is now here\r\n"+"JOIN #c++\r\n")
print "ende"
while True:
byte=1024
msg = string.split(s.recv(byte))
if msg[0] == "PING":
s.send("PONG %s\n\r" % msg[1][1:])
if incoming_text.startswith('!'):
# Befehl erkennen und entsprechend antworten
if incoming_text == "!hallo":
#Mach was mit Befehl
print "Grüß dich"
elif incoming_text == "!ciao":
#Mach was mit Befehl
print "Auf wiedersehen!"
elif incoming_text == "!test":
#Mach was mit Befehl
print "TEST"
else: print "Diesen Befehl kenne ich nicht"
Nein tut es nicht. Es ist nicht richtig eingerückt und nun hast Du `incoming_text`, das Du benutzt bevor du es an einen Wert bindest. Woher soll der Computer wissen was das ist? Ich kann mir denken was es bedeuten soll, aber für den Rechner ist das einfach nur ein Name ohne Bedeutung. Da könnte auch `hurbelschnulz` stehen. Du musst dem Rechner sagen was das ist bevor er damit etwas machen kann.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wundert mich, dass noch niemand die Python-IRClib vorgeschlagen hat, die definiert gleich schone event-aktionen die man nur überschreiben muss und seinen eigenen Code reinschreiben kann.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
So, ich jetz auch ma wider
So, jetz is richtig eingerückt, nur weiß ich nich ob das incomming_msg
Code: Alles auswählen
import socket,string
print "geschaft!"
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("tux.german-freakz.net",6667))
print "drin"
s.send("NICK mingo\r\n" +"PASS mingo\r\n"+"USER mingo is now here\r\n"+"JOIN #c++\r\n")
print "ende"
while True:
byte=1024
msg = string.split(s.recv(byte))
if msg[0] == "PING":
s.send("PONG %s\n\r" % msg[1][1:])
incomming_text = raw_input('gib die anfrage ein')
if incoming_text.startswith('!'):
# Befehl erkennen und entsprechend antworten
if incoming_text == "!hallo":
#Mach was mit Befehl
print "Grüß dich"
elif incoming_text == "!ciao":
#Mach was mit Befehl
print "Auf wiedersehen!"
elif incoming_text == "!test":
#Mach was mit Befehl
print "TEST"
else:
print "Diesen Befehl kenne ich nicht"
- an der richtigen Stelle is
- bei Irc bots funktionert
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, ist es nicht. Die erste zweile ist 0 Leerzeichen eingerückt, die zweite (und folgende) 1 Leerzeichen, obwohl sie keinen Block darstellen.CrackPod hat geschrieben:So, jetz is richtig eingerückt
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Klar:snakebyte hat geschrieben:kannst du das mal aufzeigen
Wenn ich Zeit finde, bau ich kurz eine Python-IRClib version davon.CrackPod hat geschrieben:Code: Alles auswählen
import socket,string print "geschaft!"
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice