Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 97340fbd33cb4a90382b9311f74d1b94 > files > 15

ekg-1.8-0.rc2.1mdv2010.0.i586.rpm

Spis tre¶ci:

1. Format listy kontaktów ekg
2. Format konfiguracji ekg
3. Format konfiguracji zapisanej na serwerze
4. Format historii ekg
5. Format emotikon (Adam Osuchowski <adwol@polsl.gliwice.pl>)

* * *

1. Format listy kontaktów ekg

Lista kontaktów z pliku ,,userlist'' jest tego samego formatu co eksportowana
z windowsowego klienta:

    imiê;nazwisko;pseudonim;wy¶wietlana_nazwa;telefon;grupy;numer;email

ekg mo¿e dopisaæ u¿ytkownika do kilku metagrup:

    __blocked - u¿ytkownik blokowany
    __offline - jeste¶my niedostêpni dla u¿ytkownika
    __ignored_<poziom> - u¿ytkownik jest ignorowany z danym poziomem
    __ignored - wszystkie zdarzenia zwi±zane z u¿ytkownikiem s± ignorowane

* * *

2. Format konfiguracji ekg

Plik konfiguracyjny ,,config'' zawiera kolejne wpisy postaci:

	set <zmienna> <warto¶æ>
	bind <klawisz> <komenda>
	alias <nazwa> <komenda>
	on <zdarzenie> <parametry> <komenda>

Je¶li pierwszy wyraz nie jest jednym ze znanych, jest traktowany jako
nazwa zmiennej, po której wystêpuje jej warto¶æ -- chodzi o zachowanie
kompatybilno¶ci z innymi klientami.

Je¶li warto¶æ zmiennej zaczyna siê od znaku o kodzie 1, to nastêpuj±ca
po nim warto¶æ zmiennej jest zakodowana u¿ywaj±c base64.

* * *

3. Format konfiguracji zapisanej na serwerze

Je¶li u¿ytkownik umie¶ci na serwerze równie¿ konfiguracjê, wszystkie zmienne
(oprócz ,,uin'' i ,,password'', bo te nie s± wysy³ane) zostan± zapisane w
skróconej postaci. Ka¿da zmienna jest opisana przez swoj± dwuliterow± nazwê
(nie mo¿na u¿ywaæ cyfr). Je¶li zmienna jest zmienn± liczbow±, zaraz po
nazwie umieszcza siê jej warto¶æ, a za ni± kolejn± zmienn±. Je¶li zmienna
jest tekstowa i jest pusta, po nazwie umieszczany jest minus ,,-'' i za nim
kolejna zmienna. Je¶li pierwszy znak zmiennej tekstowej jest plusem ,,+'',
zawarto¶æ zmiennej zosta³a zakodowana w base64 i koñczy siê znakiem
dwukropka ,,:''. Je¶li pierwszym znakiem nie jest plus, tre¶æ zmiennej
znajduje siê zaraz za nazw± i równie¿ koñczy siê dwukropkiem. Po dwukropku
znajduje siê kolejna zmienna. Widaæ zatem, ¿e zmienne, w których wystêpuje
dwukropek lub ¶rednik, albo zaczynaj± siê od plusa, musz± zostaæ zakodowane
w base64. Oto przyk³ady:

    dc1di127.0.0.1:ts+JUg6JU0gAA==:qr-

    dc (display_color) = 1
    di (dcc_ip) = "127.0.0.1"
    ts (timestamp) = "%H:%M "
    qr (quit_reason) = (brak)

Tak zapisana lista zmiennych jest umieszczana w oddzielnych wpisach listy
kontaktów. Zamiast imienia jest ,,__config<liczba>'', gdzie <liczba> jest
kolejn± liczb±, ale w rzeczywisto¶ci nie ma wiêkszego znaczenia. Lista
zmiennych jest dzielona po 24 znaki i umieszczana w piêciu kolejnych
polach listy kontaktów. w ostatnim polu znajduje siê losowa liczba udaj±ca
numerek osoby.

Przy odbiorze nie ma znaczenia liczba po ,,__config'', nie ma znaczenia
podzia³ na kolejne pola. Wszystko jest i tak sklejane w jeden ci±g znaków
i dopiero potem analizowane.

* * *

4. Format historii ekg

W zale¿no¶ci od ustawienia klienta, historia mo¿e byæ umieszczona
w pojedynczym pliku (domy¶lnie ~/.gg/history) lub w osobnych plikach,
po ka¿dym na osobny numerek rozmówcy (domy¶lnie ~/.gg/history/<numer>).

Pliki mog± byæ skompresowane za pomoc± gzip -- w takim wypadku maj±
rozszerzenie ,,.gz''.

Wpisy s± w formacie CSV, tj. ka¿dy wpis znajduje siê w oddzielnej linii,
a jego poszczególne kolumny s± oddzielone przecinkami. Je¿eli która¶
kolumna zawiera znak przecinka, nowej linii, cudzys³ów, backslash, to
ca³a zawarto¶æ kolumny zostaje ujêta w cudzys³ów i zapisana jak ci±g
znaków jêzyka C.

Mo¿liwe wpisy to:

- wysy³ana wiadomo¶æ lub rozmowa:

	chatsend,<numer>,<nick>,<czas>,<tre¶æ>
	msgsend,<numer>,<nick>,<czas>,<tre¶æ>

- odebrana wiadomo¶æ lub rozmowa:

	chatrecv,<numer>,<nick>,<czas_otrzymania>,<czas_nadania>,<tre¶æ>
	msgrecv,<numer>,<nick>,<czas_otrzymania>,<czas_nadania>,<tre¶æ>

- ignorowana wiadomo¶æ lub rozmowa, gdy w³±czono opcjê log_ignored:

	chatrecvign,<numer>,<nick>,<czas_otrzymania>,<czas_nadania>,<tre¶æ>
	msgrecvign,<numer>,<nick>,<czas_otrzymania>,<czas_nadania>,<tre¶æ>

- zmiana stanu:

	status,<numer>,<nick>,<adres_ip>[:port],<czas>,<stan>
	status,<numer>,<nick>,<adres_ip>[:port],<czas>,<stan>,<opis>

gdzie:
- <numer> - numer nadawcy, odbiorcy lub osoby zmieniaj±cej stan,
- <nick> - pseudonim osoby,
- <czas> - domy¶lnie ilo¶æ sekund od 1 stycznia 1970r. UTC, ale u¿ytkownik
           mo¿e zmieniæ format tego pola za pomoc± zmiennej log_timestamp,
- <adres_ip> - je¶li jest nieznany, zapisuje siê ,,0.0.0.0'',
- <stan> - jeden z ,,avail'', ,,busy'', ,,invisble'' i ,,notavail''.

* * *

5. Format emotikon (Adam Osuchowski <adwol@polsl.gliwice.pl>)

Za pomoc± oryginalnego klienta GG mo¿na wys³aæ sekwencje znakowe, które bêd±
siê zamieniaæ na odpowiednie ikony. Z oczywistych wzglêdów w ekg wykonaæ siê
tego nie da (mo¿e kto¶ kiedy¶ zrobi wsparcie dla aaliba ;))). Sekwencje te,
zamieniane s± wiêc na inne sekwencje. Np. sekwencja:

<cmok>

mo¿e byæ zamieniona na:

:-*

lub podobn±, wedle uznania u¿ytkownika.

Aby skorzystaæ z mo¿liwo¶ci rozwijania tego typu makr w otrzymywanych
wiadomo¶ciach, nale¿y je sobie wcze¶niej zdefiniowaæ. Robi siê to w pliku
~/.gg/emoticons. Ka¿da linia tego pliku definiuje jedno makro, a jej format
jest nastêpuj±cy:

<makro><tabulatory><rozwiniecie>

Nale¿y zwróciæ uwagê na to, ¿e do oddzielenia emoticonu od jego rozwiniêcia
s³u¿± tylko i wy³±cznie tabulatory (jeden lub wiêcej). Spowodowane jest to
wystêpowaniem spacji w oryginalnych GG-owych emoticonach.

Przyk³adowy zestaw definicji mo¿na znale¼æ w docs/emoticons.sample. Nie
zawiera on wszystkich definicji, bo nie mia³em na tyle inwencji, ¿eby je
powymy¶laæ. :))


$Id: files.txt 2068 2003-06-21 13:03:05Z wojtekka $