Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python ja IRC

Sivun loppuun

Lotto [02.01.2010 23:38:52]

#

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")

Claw [03.01.2010 00:17:08]

#

Tarjoaako irc.send CR ja/tai LF:ää tuonne loppuun?

Kokeile lisätä itse tuonne irc.send metodien loppuun '\n'.

Metabolix [03.01.2010 00:26:44]

#

Protokollan mukaan kunkin rivin maksimipituus on 512 tavua ja sen pitää loppua rivinvaihtomerkkeihin "\r\n".

Lotto [03.01.2010 00:57:25]

#

Noniin! Kiitoksia paljon! Tuo \r\n tepsi ongelmaan

Lotto [03.01.2010 13:10:47]

#

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.

jlaire [03.01.2010 13:12:17]

#

Ainakin merkit ovat väärässä järjestyksessä: '\n\r' --> '\r\n'.

Lotto [03.01.2010 13:28:06]

#

Sen siitä saa kun puoliunessa koodailee... Ongelma ei kuitenkaan tuosta muuttunut :S

Chiman [03.01.2010 13:35:32]

#

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ä.

Lotto [03.01.2010 14:50:16]

#

USER -rivi menee kuten ensimmäisessä viestissäni kirjoitin

Lotto [03.01.2010 16:09:42]

#

Okei! Sain toimimaan, vaihdoin Nick- ja USER rivien paikkaa niin että useri menee ensin, nyt toimii :)

Sahrah [03.01.2010 16:14:56]

#

Mikä sensuuri täällä valiitsee?

hunajavohveli [03.01.2010 19:20:12]

#

Sahrah kirjoitti:

Mikä sensuuri täällä valiitsee?

Mitä tarkoitat?

jlaire [03.01.2010 19:22:23]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta