Hei!
Opettelin pythonia tästä ohjelmointiputkan hienosta uudesta oppaasta ja ajattelin että väännämpä kasaan pienimuotoisen IRC-bottisoftan. Nyt kuitenkin probleemakseni on muodostunut että mokoma ei halua mennä IRC-verkkoon sisään vaan jumittuu kohtaan:
NOTICE AUTH :*** Looking up your hostname NOTICE AUTH :*** Checking Ident NOTICE AUTH :*** Found your hostname NOTICE AUTH :*** No ident response NOTICE AUTH :*** No ident response ERROR :Closing Link: by multiplay.uk.quakenet.org (Registration Timeout)
En voi ymmärtää mikä vialla; googlen kanssa olen viettänyt aikaa.
Itse koodi:
# -*- coding: latin-1 -*- import socket def irkki(serveri, portti, nick, kayttajanimi, oikeanimi, kanava, isanta): irc = socket.socket() irc.connect((serveri, int(portti))) irc.send('NICK ' + nick) irc.send('USER ' + kayttajanimi + ' ' + nick + ' ' + serveri + ' :' + oikeanimi) while 1: teksti = str(irc.recv(4096)) print(teksti) if teksti == "": break if teksti.find("Message of the Day"): irc.send('JOIN ' + kanava) if teksti.find("PING") != -1: irc.send('PONG ' + teksti.split() [ 1 ]) if teksti.find(isanta) and teksti.find("!poistu"): irc.send("QUIT") irkki("irc.quakenet.org", "6667", "HerraPy", "kayttaja", "kayttaja", "#kanava", "isanta")
Tarjoaako irc.send CR ja/tai LF:ää tuonne loppuun?
Kokeile lisätä itse tuonne irc.send metodien loppuun '\n'.
Protokollan mukaan kunkin rivin maksimipituus on 512 tavua ja sen pitää loppua rivinvaihtomerkkeihin "\r\n".
Noniin! Kiitoksia paljon! Tuo \r\n tepsi ongelmaan
Jaa ei mun ropleemani ollukkaa vielä tässä. PONG-vastauksessa on vielä jotain häikkää mutten ymmärrä mitä :S Koodin nykyinen PING-PONG osa näyttää tältä:
if teksti[0:4] == "PING": irc.send('PONG ' + teksti.split() [ 1 ] + '\n\r')
Ja sillä saamme aikaan tulostuksen:
NOTICE AUTH :*** Looking up your hostname NOTICE AUTH :*** Checking Ident PING :3413561410 NOTICE AUTH :*** Found your hostname :wineasy1.se.quakenet.org 451 HerraPy HerraPy :Register first.
Ainakin merkit ovat väärässä järjestyksessä: '\n\r'
--> '\r\n'
.
Sen siitä saa kun puoliunessa koodailee... Ongelma ei kuitenkaan tuosta muuttunut :S
Googletus IRC ":register first" löysi tällaisen:
http://www.mail-archive.com/coder-com@undernet.org/msg02900.html
Eli ilmeisesti et ole lähettänyt USER-riviä.
USER -rivi menee kuten ensimmäisessä viestissäni kirjoitin
Okei! Sain toimimaan, vaihdoin Nick- ja USER rivien paikkaa niin että useri menee ensin, nyt toimii :)
Mikä sensuuri täällä valiitsee?
Sahrah kirjoitti:
Mikä sensuuri täällä valiitsee?
Mitä tarkoitat?
hunajavohveli kirjoitti:
Sahrah kirjoitti:
Mikä sensuuri täällä valiitsee?
Mitä tarkoitat?
Kaksi Sahrahin omituista ja sisällötöntä viestiä on poistettu tästä ketjusta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.