Skrypt do zapisywania zmian statusu gg

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
patryk007@vp.pl

Skrypt do zapisywania zmian statusu gg

Post autor: patryk007@vp.pl »

Chciałbym napisać skrypt/program, który by działał na moim koncie shellowym non-stop. Miałby on za zadanie zapisywanie wszystkich zmian statusów gg danego numeru. Ma ktoś jakiś pomysł, bo nie mam kompletnie pomysłu jak zacząć...
Macok
Sędziwy Jeż
Sędziwy Jeż
Posty: 85
Rejestracja: 12 sty 2008, 13:40
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: Macok »

Tutaj jest opis protokołu GG:
http://toxygen.net/libgadu/protocol/#ch1.5

Załóż sobie nowe konto, na którym program będzie działał.
Potem musisz się zalogować, wysłać serwerowi listę kontaktów (najlepiej jak będzie na niej tylko ten 1 numer, który chcesz "śledzić").

Kiedy ten numer zmieni status serwer poinformuje Cię o tym, tak jak jest to opisane tutaj:
http://toxygen.net/libgadu/protocol/#ch1.5
patryk007@vp.pl

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: patryk007@vp.pl »

Nie bawiłem się nigdy protokołami w C++. Chyba czas zacząć. Dzięki za stronę.

Z czystej ciekawości: jak to można by zrobić w skrypcie? Jakim językiem?
Macok
Sędziwy Jeż
Sędziwy Jeż
Posty: 85
Rejestracja: 12 sty 2008, 13:40
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: Macok »

Np. w perlu
patryk007@vp.pl

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: patryk007@vp.pl »

No dobra, z tego co widzę na stronie Net::Gadu (Interfejs do biblioteki libgadu.so dla protokołu komunikatora Gadu-Gadu) to potrzebuję biblioteki libgadu.so, która jest w repo o nazwie libgadu.
Niestety na SSH nie ma jej zainstalowanej. Da radę jakoś zaincludować bibliotekę w perlu?
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: beluosus »

Może łatwiej ekg i jakaś wtyczka chyba, że sam w sobie loguje zmiany (nie wiem, nie korzystałem wiele).
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
patryk007@vp.pl

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: patryk007@vp.pl »

Ta, też myślałem nad EKG i screen'em/nohup'em (na serwie jest tylko nohup). Popróbuję ale chciałbym też pobawić się w perlu. Może ktoś wie co z tymi bibliotekami.

__
Jak coś skombinuje z tym EKG to dam znać, powinno dać radę.
Awatar użytkownika
NoName_1990
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 28 lut 2007, 18:01
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: NoName_1990 »

ekg skompilowane z obsługą pythona i skrypt w pythonie

Kod: Zaznacz cały

#!/usr/bin/python
# -*- coding: iso-8859-2 -*-
import ekg

watch_uins = [ 1234567890, 0987654321 ]
filename = "statusy.txt"

def init():
    # gdy skrypt jest ładowany. jeśli ta funkcja zwróci 0, skrypt nie zostanie załadowany.
    ekg.printf("generic","Załadowano.")
    return 1

def deinit():
    # gdy skrypt jest usuwany z pamięci.
    ekg.printf("generic","Usunięto.")
    return 1

def handle_status(uin, name, status, descr):
    # gdy ktoś zmienia stan. nazwy parametrów powinny być zrozumiałe. jeśli zwróci 0, zmiana stanu zostanie zignorowana. jeśli zwróci 2, zmiana stanu nie będzie ignorowana, ale nie zostanie wyświetlona. jeśli zwróci krotkę o takich samych argumentach jak funkcja, dane zostaną zmienione.
    if uin in watch_uins:
        file = open(filename, 'a')
        file.write("Numerek: "+str(uin)+" zmienił status na \'"+status+"\'. \""+descr+"\"" )
        file.close()
        return 0 #skoro juz zapisalismy stan do pliku, nie musimy go wyswietlac w oknie ekg
    return 1
Umieszczamy skrypt w ~/.gg/scripts/<nazwa>.py lub ~/.gg/<user>/scripts/<nazwa>.py (jeśli z ekg korzysta więcej niż jedna osoba :P), a później już tylko w ekg:

Kod: Zaznacz cały

python load <nazwa>

EDIT: albo po prostu set log_status 1 w ekg. I po problemie :P
patryk007@vp.pl

Odp: Skrypt do zapisywania zmian statusu gg

Post autor: patryk007@vp.pl »

Mega! Wielkie dzięki. O to chodziło! Polać mu! Thx.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości