Seite 1 von 2

bot

Verfasst: Sonntag 2. Juli 2006, 18:29
von snakebyte
ich habe ein problem

Code: Alles auswählen

import socket,string
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("tux.german-freakz.net",6667))
s.send("NICK mingo\r\n" +"PASS mingo\r\n"+"USER mingo is now here\r\n"+"JOIN #c++\r\n")
while True:
	byte=1024
	msg = string.split(s.recv(byte))
	if msg[0] == "PING":
		s.send("PONG %s\n\r" % msg[1][1:])
while True:
elif splitted[3] == ':#info':
                infomsg  = "I'm an IRC-Bot written by Cube " 
                infomsg += "and I'm located at the german-freakz network!" 
                sendit(infomsg)
wo ist da der fehler

Verfasst: Sonntag 2. Juli 2006, 18:52
von murph
das frage ich mich auch...kannste den auch hinzufügen?
die fehlermeldung hilft immer ungemein viel ;)

Verfasst: Sonntag 2. Juli 2006, 19:01
von snakebyte
keine fehler meldung er bricht einfach ab

Verfasst: Sonntag 2. Juli 2006, 19:06
von murph
und wenn du regelmäßig irgendetwas printest?
setze doch mal nach jedem/jedem zweiten befehl ein print ein...
das hilft ungemein beim debuggen!

Verfasst: Sonntag 2. Juli 2006, 19:08
von snakebyte
das vertsehe ich jetzt nicht

Verfasst: Sonntag 2. Juli 2006, 19:17
von murph
also etwa so:

Code: Alles auswählen

import socket,string
print "alles importiert!"
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("tux.german-freakz.net",6667))
print "ich bin eigeloggt"
s.send("NICK mingo\r\n" +"PASS mingo\r\n"+"USER mingo is now here\r\n"+"JOIN #c++\r\n")
print "ich habe die informationen gesendet"
while True:
    byte=1024
    msg = string.split(s.recv(byte))
    if msg[0] == "PING":
        s.send("PONG %s\n\r" % msg[1][1:])
    elif splitted[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)
aber wo ich mir das so ansehe: wie soll er je in die zweite entlosschleife kommen?
dafür brauchst schon threats. außerdem fängst du an einer stelle sofort mit einem elif an!

Verfasst: Sonntag 2. Juli 2006, 19:54
von snakebyte
also verbinden kan ich aber nac h einer seknude is er wieder raus komisch oder

Verfasst: Sonntag 2. Juli 2006, 19:57
von DatenMetzgerX
Was für eine Funktion ist sendit?

Verfasst: Sonntag 2. Juli 2006, 20:00
von snakebyte

Verfasst: Sonntag 2. Juli 2006, 20:07
von CrackPod
die Fehlermeldung spricht doch für sich:wink:
Du hast die variable splitted nich definiert..

Verfasst: Sonntag 2. Juli 2006, 20:10
von snakebyte
und wie mach ich das

Verfasst: Sonntag 2. Juli 2006, 20:13
von CrackPod
kanns sein, dass du nur das script kopiert hast - eventuell sogar unvollständig - und gar kein Python kannst? Wenns ncih so sein sollte, sry!
Da ich nich weiß, was in splitted drinnen stehen soll bzw was alles drinnen stehen kann, kann ich dir nich sagen, wie du es definierst.

Verfasst: Sonntag 2. Juli 2006, 20:16
von snakebyte
variable = None richtig

Verfasst: Sonntag 2. Juli 2006, 20:22
von CrackPod
snakebyte hat geschrieben:variable = None richtig
Was :?:

Verfasst: Sonntag 2. Juli 2006, 20:47
von snakebyte
ok ich gebe zu ich kann erst seit heute python och bin bereit mir nen book zu schnapen was ich auch schon getan habe,ich habe mir a byte oh python bestellt.blos ich muss heute einen bot zusammen bekommen der zu server verbindet und den einfachen behfl befolgt man schreibt !wetter er sagt 2 grat oki wie es in dem http://nopaste.php-q.net/223151 auch is blos das mit der varrible defieniren bkomme ich nicht hin bitte hlf mir jemand ist echt wichtig.
mfg

:?:

Verfasst: Sonntag 2. Juli 2006, 20:49
von DatenMetzgerX
splitted == irgendwas

Verfasst: Sonntag 2. Juli 2006, 21:01
von CrackPod
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

Verfasst: Sonntag 2. Juli 2006, 21:40
von Python 47
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.

Verfasst: Sonntag 2. Juli 2006, 21:42
von CrackPod
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

Verfasst: Sonntag 2. Juli 2006, 23:24
von 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. ;-)