Bot GG na przykładzie EKG
Do zrobienia własnego bota GG działającego na EKG potrzebujemy EKG z obsługa pythona (./configure –with-python) oraz znajomość choćby podstaw pythona. To będzie krótkie How To ogólnie pokazujące co i jak.
Otwieramy dowolny edytor tekstowy (najlepiej aby umiał kolorować składnię pythona - może być Gedit)
W pierwszych liniach powinno znaleźć się:
#!/usr/bin/python # -*- coding: iso-8859-2 -*-
Dzięki nim będziemy mieli możliwość pisania polskich znaków w naszym pliku pythona.
- Następnie musimy zaimportować moduł EKG, w tym celu w następnej linii:
import ekg- Potem tworzymy 2 funkcje:
def init(): ekg.printf("generic","Zaladowano") return 1 def deinit(): ekg.printf("generic","Usunięto") return 1
Dzięki nim będziemy widzieli czy nasz skrypt został załadowany/usunięty
- Następnie tworzymy funkcję:
def handle_msg(uin, name, msgclass, text, time, secure):
Funkcja ta jest w zasadzie najważniejszą częścią “bota”, to ona odpowiada za odbieranie i wysyłanie wiadomości.
- W moim How To umieściłem w tej funkcji:
if user.count(uin)!=0: reply="Wiadomość nr 1" else: reply="Wiadomość nr 2" ekg.command("msg %s %s"%(uin,reply))
Jak widać użyte zostało sprawdzenie listy a więc pod importowanymi modułami dopiszmy:
user=[numergg1, numergg2]
Każdy nowy numer należy oddzielić przecinkiem.
Plik zapisujemy w ~/.gg/scripts jako how_to.py
Uruchamiamy EKG i wpisujemy python load how_to Jeśli wszystko jest dobrze powinniśmy ujżeć napis “Załadowano”
Koniec.
Umieszczam też cały plik:
#!/usr/bin/python # -*- coding: iso-8859-2 -*- import ekg user=[855006, 9571085] def init(): ekg.printf("generic","Zaladowano") return 1 def deinit(): ekg.printf("generic","Usunięto") return 1 def handle_msg(uin, name, msgclass, text, time, secure): if user.count(uin)!=0: reply="Wiadomość nr 1" else: reply="Wiadomość nr 2" ekg.command("msg %s %s"%(uin,reply)) return 1
Jeśli ktoś potrzebuje jakiś szerszych informacji to proszę pisać do mnie
May 3rd, 2007 : 20:21
Jutro albo pojutrze napiszę krótkie How To przedstawiające ten sam problem używając Jabbera i xmpppy.
//edit I tak zrobiłem http://pigmej.eu/index.php/2007/05/04/bot-jabbera-na-przykladzie-xmpppy/
May 22nd, 2007 : 21:14
hej nie wiem czemu ale skrypt ten wywala mi z błędem w linii 17
pythona w ogóle nie kojarzę może jakaś rada ?
May 22nd, 2007 : 21:37
ok już widzę gdzie błąd był
May 22nd, 2007 : 22:13
Czyli gdzie było nie tak?
Może jakieś moje niedopatrzenie podczas przenoszenia na bloga?
May 22nd, 2007 : 22:45
nie nie to byl moj blad, python jest czuly jesli chodzi o wciecia (: Teraz walczy z tym by odpowiadal na wszystkie wiadomosci bez podawania user moze moglbys podac rozwiazanie ?
May 22nd, 2007 : 22:52
jasne:)
usuń: user=[855006, 9571085]
to: if user.count(uin)!=0: reply=”Wiadomość nr 1″ else: reply=”Wiadomość nr 2″
zastąp reply=”treść odpowiedzi” wcięcia jak na poziomie if i else
May 22nd, 2007 : 23:42
super działa, dzięki
a powiedz mi czy jest możliwość taka by jeśli mam rozpoczęto jakąś rozmowę z którąś osobą to nie wykonywał skryptu dla tej osoby, a w innym wypadku go robił
May 22nd, 2007 : 23:44
zagadaj do mnie poza blogiem. Dać się da.
May 28th, 2007 : 19:21
Co to jest ten pyton
May 28th, 2007 : 19:24
Nie pyton a python.
Python na wikipedii
July 29th, 2007 : 13:41
[..]potrzebujemy EKG z obsługa pythona[…] co to jest ?
A edytor tekstowy - moze byc zwykly notatnik ? Wiem e jest trudno tam cos zrobic itd ale czy by mozna było ? Jesli nie to skad sciagnac ten ”Gedit” ?
A pozatym bardzo ladnie i pieknie tlumaczysz. Prosze o pomoc, GG 6626788
July 29th, 2007 : 15:40
Jasne, że może być.
Gedit to jest edytor tekstowy pod Linuxa.
W notatniku możesz zapisać, ale pamiętaj aby zapisać plik jako *.py
July 29th, 2007 : 19:15
Cholera ! Ale szybko odpisales widac ze strona zadbana i wogole. Okej to już będę wiedział ale co to jest to ” EKG z obsługa pythona ”. EKG to ekstremalny klient gg a python to jakiś język ale skąd to sciągnąć?? Kurcze wiesz ja jestem ciemno zielony gosc i nic nie kumam dopóty , dopóki się nei naucze
July 29th, 2007 : 19:24
EKG to komunikator konsolowy sieci GG pod Linuxa (i Unix)
Python to język programowania, dostępny na różne platformy.
A EKG z obsługą pythona to ./configure –with-python podczas kompilacji EKG.
Pod Windowsa EKG nie ma.
Pod Windowsem działać będzie moje inne how to http://pigmej.eu/index.php/2007/05/04/bot-jabbera-na-przykladzie-xmpppy/
Polskie serwery Jabbera w większości obsługują również GG.
August 27th, 2007 : 17:40
Bardzo fajny tutorial.
Jeśli ktoś chciałby wysyłać wiadomości, które zawierają znaki końca linii, wystarczy zrobić to tak:
msg=”Wiersz pierwszy \r\n Wiersz drugi \r\n Wiersz trzeci \r\n”
no i
ekg.command(”msg %s %s”%(uin,msg))
Dziękuję pigmejowi za tą wskazówkę.
August 27th, 2007 : 19:08
Celem uzupełnienia:
Windows jako znaki końca linii uważa \r\n
Linux \n
Dodatkowo Linux “poprawnie” rozpoznaje również \r\n
September 21st, 2007 : 13:51
13:49 ::: Nie znaleziono skryptu bot │ 13:49 ImportError: No module named bot │ 13:49 Error in sys.excepthook: │ 13:49 Traceback (most recent call last): │ 13:49 File “/var/lib/python-support/python2.5/apportpythonhook.py”, line 44, in apport_excepthook │ 13:49 binary = os.path.realpath(os.path.join(os.getcwdu(), sys.argv[0])) │ 13:49 AttributeError: ‘module’ object has no attribute ‘argv’ │ 13:49 │ 13:49 Original exception was: │ 13:49 ImportError: No module named bot
Skrypt zapisalem, bot.py zeby nie bylo
Dlaczego tak sie dzieje?
pzdr
September 22nd, 2007 : 2:15
importujesz z katalogu w ktorym jest plik bot.py?
February 8th, 2008 : 14:48
Traceback (most recent call last): File “./test”, line 4, in ? import ekg ImportError: No module named ekg
Co z tym zrobić dystrybucja Debian,
February 8th, 2008 : 17:16
Zainstalować pythonowy moduł ekg/ekg z obsługą pythona.
March 9th, 2008 : 21:26
Witam! Ja potrzebuje nieco inego skryptu… takiego ktory raz dziennie wysylalby wiadomosc do pewnego bota a nastepnie otrzymana odpowiedz zapisywalby do pliku. Jesli ktos wie jak to zrobic to prosze o wskazowki. Pozdrawiam
April 18th, 2008 : 9:58
Bardzo pilnie potrzebuje skryptu pod EKG który wyciąga opis użytkownika i zapisuje go do pliku. Bardzo proszę o pomoc.
April 19th, 2008 : 7:08
Witam. Mam pytanie czy ktoś podjąłby sie napisania bota pod wykorzystującego protokół gg ? Chodziłoby mi o coś takiego: -Jakiś user który wyk. protokół gg pisze np.: -Witam a bot odpisuje mu wykazem funkcji dostępnych. A w tych funkcjach zależałoby mi na np: kontakt, www, admin, nickusera, dodajdobazydanychmojnumer, usunmojnumer, news. proszę o kontakt. e-mail spevi[at]o2.pl