TGadu 1.0

1. W paru sowach co to jest Tgadu
2. Co potrzeba by uruchomi Tgadu
3. Opis funkci
3.a bool CheckVersion()  i bool SetSocket()
3.b bool Connect(int, char [],long int , char [])
3.c void Send(long int , char [])
3.d void ChStatus (int , char [])
3.e AnsiString RecHEADER() 
3.e.1 AnsiString RecMSG (int *)
3.e.2 bool RecACK (int *)
3.f  void Disconnect()
3.g void Ping()
3.h void TokenURLPlease(AnsiString *,AnsiString *)
3.i AnsiString NewAccountPlease(AnsiString,AnsiString,AnsiString,AnsiString)
4. O Autorze i takie tam
5. Do czego to si moe przyda ? 

1.  W paru sowach co to jest Tgadu
Witam wszystkich, 
Tgadu to stworzona przeze mnie biblioteka dziki ktrej nasz program moe:
- poczy si z serverm gadu-gadu po czym zalogowa uytkownika
- odbiera/wysya wiadomoci
- zmienia stan/opis
- tworzy nowego uytkownika
- inne konieczne pierdoy typu rozczanie, ping-pong, pobieranie token_url
To tyle jak na wersje 1.0 by moe w przyszoci dodam kilka funkcji.

2. Co potrzeba by uruchomi Tgadu
Tgadu jest dynamiczn bibliotek (dll). Zaczczamy bibliotek standardowo (patrz cyfbar.republika.pl) natomiast musimy do swojego programu rowniez doczy plik nagwkowy TG.h . Tak zaadowan bibliotek moemy ju uywa, tworzymy wic egzemplarz klasy TGadu (najlepiej globalnie) i moemy zacz si nim posugiwa.

Dla opornych:
-------------------------------------------------
| Tgadu *egzemplarz = new Tgadu; |
-------------------------------------------------
| egzemplarz->funkcja()                     |
------------------------------------------------- 


3.a bool CheckVersion()  i bool SetSocket()
Nie chce mi si pisa do czego one su powiem jedynie e s potrzebne by zainicjalizowa gniazdko (socket)
jesli obydwa zwroc true to wszystko dziala

3.b bool Connect(int, char [],long int , char [])
Funkcja dziki ktrej logujemy si na server, pierwszy argument to stan, drugi opis, numer UIN, haslo
jeli chodzi o stan to mamy:

0x0001 - niedostpny
0x0002 - dostpny
0x0003 - zajty
0x0014 - niewidoczny
0x0015 - niedostpny (z opisem)
0x0004 - dostpny (z opisem)
0x0005 - zajty (z opisem)
0x0016 - niewidoczny (z opisem)

funkcja zwrci true jeli sie uda zalogowac

3.c Send(long int , char [])
Chyba kazdy wie co to robi, pierwszy argument numer adresata drugi tresc wiadomosci (do 499 znakow)

3.d void ChStatus (int , char [])
Zmiana statusu, pierwszy argument to numer stanu (patrz 3.b) drugi to opis

3.e AnsiString RecHEADER() 
Jest to funkcja ktra umieszczamy w jakiejs ptli w osobnym wtku tak by program mogl caly czas odbiera i jednoczenie np wysya :)
I teraz w zalenoci co zwrci to mamy takie nagowki:

msg - dostales wiadomsc
ack - dostales potwierdzenie i ktoras z twoich wiadomosci zostala dostarczona
dsc - zostales rozlaczony
png - pong (pewnie nigdy go nie otrzymasz :D)
000 - wszystko inne czyli nic 

tworzymy sobie szereg ifw (lub 1 case'a jesli "przekonwertujesz" na cyferki) no i w zaleznosci od nagowka
to np dla msg uruchamiamy funkcje RecMSG()  a dla  ack RecACK().
Jesli wci nie rozumierz o co chodzi podejrzyj sobie rda w folderze "Example".

3.e.1 AnsiString RecMSG (int *)
Otrzymae wiadomoc, argument (int) oznacza UIN nadawcy, natomiast funkcja zwraca tre wiadomoci

3.e.2 bool RecACK (int *)
Otrzymale potwierdzenie wysania wiadomoci do kogo, argument to numer UIN
jeli funkcja zwrci true to wiadomosc zostala dostarczona, dla false cos stanelo na przeszkodzie

3.f  void Disconnect()
Uyj jeli chcesz si rozczy. pamitaj jednak e musisz rwniez wstrzymac watek odbioru,
a przy wznowieniu polaczenia znowu zainicjalizuj gniazdko (patrz 3.a)

3.g void Ping()
Raz na 5 min musisz uzyc tej funkcji by dac serverowi znac ze zyjesz. Byc moze dostaniesz ponga albo i nie :D

3.h void TokenURLPlease(AnsiString *,AnsiString *)
Ta funkcja jest niezalezna poniewaz lczy sie z innym serverem, pierwszy argument zwraca specjalny hash 
natomiast drugi to link do tokena (jesli to ci nie wystarcza i chcesz by program sciagnal obrazek z internetu to zajrzyj na strone cyfrowego i poszukaj cos o indy) 

3.i AnsiString NewAccountPlease(AnsiString,AnsiString,AnsiString,AnsiString)
Tworzymy nowego uzytkownika.
pierwszy to haslo drugi mail, trzeci hash zdobyty funkcj TokenURLPlease() a czwarty to wartosc ktr odczytales z tokena
Najlepiej sprawdz co zwrci ci funkcja jesli bedzie to "bad_tokenval" to wiadomo trza do okulisty a jesli "reg_success:UIN" (czy jakos tak :)) to masz nowe konto o numerze UIN (trzeba go jednak samemu wycign z tego stringa[juz mi sie nie chcialo :) ]) 

4. O Autorze i takie tam
Nazywam si Daniel Kwolek <n1x0n> i jestem samodzielnym autorem tej biblioteki.
No wic w razie pyta to moj mail - kulfi@vp.pl TGadu jest freeware'owe ale czy udostpnie rda to jeszcze nie wiem :)
Nie wiem kiedy wyjdzie i czy wogle nastpna wersja wic prosze o to nie pyta. Prosz rwnie nie zmienia treci tego Manuala.   

5. Do czego to si moe przyda ? 
Wyobra sobie e moesz stworzy aplikacje sieciow ktra nie ma ogranicze zwizanych z NATem wystarczy przeciez wysylac odpowiednie polecenia do innego klienta. To wanie umoliwia TGadu nawiasem mwic duo trojanw dziaa w ten sposb ale to juz nie ja powiedzialem :D
