Wstępna propozycja
Zdarzenia zachodzące w Kadu zapisują się w pliku
$HOME/.gg/history/all.dat
Plik zawiera jako pierwsze 4 bajty identyfikator w formacie ASCII:
KADU
Format zdarzenia:
type - 32-bity typ
zdarzenia
time - 32-bity czas zajścia
zdarzenia
uin - 32-bity uin
nadawcy
nicklen - 32-bity długość
nicku nadawcy
len - 32-bity długość
frazy związanej ze zdarzeniem
mobilelen - 32-bity długość
numeru komórki odbiorcy
filler - 8 bajtów wypełnienia
zarezerwowane do wykorzystania w przyszłości
nick - nicklen bajtów z nickiem
nadawcy
text - len bajtów z frazą
mobile - mobilelen bajtów z
numerem telefonu komórkowego odbiorcy
Powyższy plik zawiera opis wszystkich zdarzeń zachodzących w Kadu w
porządku chronologicznym.
Możliwe typy zdarzeń (pole type)
bit31 = 1 - zdarzenie zaznaczone do skasowania;
bit30 = 1 - zdarzenie wygenerowane przez nas; bit30 = 0 - zdarzenie
wygenerowane przez kogoś;
bit29 = 1 - zdarzenie wygenerowane przez osobę ignorowaną przez nas;
bit28 = 1 - zmiana statusu;
bit27 = 1 - status z opisem;
bit3 - bit0 - numer statusu:
0 - "dostępny"
1 - "zaraz wracam"
2 - "ukryty"
3 - "niedostępny"
4 - 7 - niewykorzystane
bit26 = 1 - wiadomość;
bit7 - bit4 - typ wiadomości:
0 - "message"
1 - "chat"
2 - 6 - niewykorzystane
7 - "sms"
Dla każdej grupy użytkowników [uin1,uin2,....,uinN] tworzony jest plik
o nazwie:
uin1_uin2_..._uinN.idx
zawierający zbiór 32-bitowych offsetów zdarzeń z pliku all.dat.
Offsety są zapisane w ten sposób, że odczytywane za ich pomocą
zdarzenia są uporządkowane ze względu na czas (porządek chronologiczny).
Offset równy 0 oznacza skasowane zdarzenie.
Dla każdego numeru telefonu komórkowego na który został wysłany
jakikolwiek sms tworzony jest plik o nazwie:
mNUMER.idx
zawierający zbiór 32-bitowych offsetów zdarzeń z pliku all.dat.
Offsety są zapisane podobnie jak dla wcześniejszego typu pliku.
Co o tym myślicie?