Pytanko nt. skryptu


(Jasko Rusz) #1

Witam,

mam pytanie, co do tego skryptu (bot odpisuje aż 5 razy na GG na daną komendę) - co w tym jest nie tak?

import ekg

import string

import os

#from time import sleep


wersja="0.75"

baza=os.path.expanduser('~')+"/.gg/scripts/data.bot"


#Gdy ladujemy skrypciora

def init():

    ekg.printf("generic","Zaladowano skrypt UsterBot'a w wersji %s"%wersja)

    return 1


#Gdy wywalamy skrypciora

def deinit():

    ekg.printf("generic","Wywalono UsterBot'a ")    

    return 1


#nadchodzi wiadomosc, wkraczamy do akcji!

def handle_msg (uin, name, msgclass, text, time, secure):

    #ladujemy plik

    wejsc= open ('%s'%baza)

    file = wejsc.readlines()

    wejsc.close()

    #liczymy dlugosc

    dl=len(file)

    odpowiedz=False

    #szukamy http (trzeba rozbudowac)

    if string.find(string.lower(text),"http://") != -1:

    	url=string.split(text)

	for x in url:

	    if string.find(x,"http://") != -1:

	        ekg.command("^alias -d zakladka")

		ekg.command("^alias -a zakladka ^exec firefox -remote 'openURL(%s,new-tab)'"%x)

		ekg.command("^alias -A zakladka echo Jesli posiadasz firefox'a, powinna wyswietlic sie strona w nowej zakladce")

		ekg.printf("generic","Wykryto URL przeslany przez %s (%s)."%(name,uin))

		ekg.printf("generic","Stworzono alias 'zakladka' z adresem: %s"%x)

    #Linijka po linijce przegladamy plik (a raczej juz zaladowana tablice)

    for linia in range(0,int(dl)):

        #%ciag staje sie tablica (delimiter to ^)

        ciag = string.split(file[linia],'^',1)

	#szukamy naszych slow klucowych

        if string.find(string.lower(text),string.lower(ciag[0])) != -1 and odpowiedz != True:

	    #jesli sie znajda przeprowadzamy akcje i podstawiamy pod %zwrot:

	    zwrot = os.popen("%s"%ciag[1]).read()

	    #znaleziono odpowiedz

	    odpowiedz=True

	    #osoba na ktora nie dziala bot (opcja do rozbudowania)

	    if name == "ktos_tam":

		ekg.command("echo %s"%zwrot)

	    #reszta dostaje msg

	    else: 

		ekg.command ("msg %s %s"%(uin,zwrot))

    return 1

Z góry dziękuję za odpowiedź.


(somekind) #2

Jeśli to jest, dajmy na to skrypt w Pythonie, to należy napisać w temacie, że chodzi o skrypt w tym języku.

Większe szanse, że ktoś zajrzy, bo ten temat nic nie mówi.