bot

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

splitted == irgendwas
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

DatenMetzgerX hat geschrieben:splitted == irgendwas
soll heisen, wir können dir nich sagen, was drin steht.
Eine Variable is ja dafür da, dass alles drinstehen kann. Und so können wirs dir nich sagen
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

1.Sieht man eigentlich, dass es nicht sein Skript ist(Zeile 12)
2.Zeile 11 ist falsch eingerückt
3.Ja die Variable kann alles sein. Vielleicht wäre es hilfreich das ganze Skript zu posten.
mfg

Thomas :-)
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

naja zu 1: man kann viele nicknames haben, wobeis unrealistisch is, weil er ja schon gesagt hat, er hat sich python gestern oder so zum 1. mal angeschaut :D
BlackJack

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.

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
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. ;-)
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

oki danke aber ich habe es gestern schon rausbekommen habe die variable splittet mit der variable msg ausgetauscht blos jetzt ahbe ich folgendes problem

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)
wie defieniere ich sendit(infomsg) wist ihr ds thx schonmal.


greeeetz

snakebyte
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

so ich habe ihn verändert würde der so gehen:

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" 
das heist einfache farge antowort system habe nun kein python! aber ich denke das müste klapen
BlackJack

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.
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

könnte ich für in comming text auch msg benutzen.
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Und nach der if Anweisung in zeile 13 muss auch ein Körper in Zeile 14 stehen. 8)
mfg

Thomas :-)
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

wie naochmal das habe ich net verstanden
Leonidas
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
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

Du schon wieder :P :P
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

So, ich jetz auch ma wider :D

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"
So, jetz is richtig eingerückt, nur weiß ich nich ob das incomming_msg
  • an der richtigen Stelle is
  • bei Irc bots funktionert
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

geht immer noch nciht :cry: :cry: :cry: :cry:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

CrackPod hat geschrieben:So, jetz is richtig eingerückt
Nein, ist es nicht. Die erste zweile ist 0 Leerzeichen eingerückt, die zweite (und folgende) 1 Leerzeichen, obwohl sie keinen Block darstellen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

kannst du das mal aufzeigen
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

snakebyte hat geschrieben:kannst du das mal aufzeigen
Klar:
CrackPod hat geschrieben:

Code: Alles auswählen

import socket,string 
 print "geschaft!"
Wenn ich Zeit finde, bau ich kurz eine Python-IRClib version davon.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

mir is nur das mit den if aufgefallen :oops: das die 1. zeile kein leerzeichen hat, is mir nuch aufgefallen...
snakebyte
User
Beiträge: 28
Registriert: Donnerstag 15. Juni 2006, 13:48

jaaaaa bitte das is mir echt wichtig :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:
Antworten