Google Summer of Code – podsumowanie

Google Summer of Code właśnie się zakończył, więc warto się pokusić o małe podsumowanie. Komunikator Pidgin został zaakceptowany wraz z czterema projektami, z których trzy (ten również) zakończyły się sukcesem. Mój projekt trochę się zmienił od czasu zaakceptowania, ale wciąż jestem zadowolony z postępów – możecie to sami ocenić czytając ten post. Niektóre obiecane funkcje nie zostały jeszcze ukończone, głównie z powodu konieczności zmian w libgadu. One kiedyś zostaną zrobione, ale to wymaga czasu: dyskusji, implementacji libgadu, wydania libgadu, aktualizacji libgadu w Pidginie, implementacji w Pidginie i w końcu wydania Pidgina.

Jednak projekt nie był tylko okrajany. Pojawiły się poprawki, które nie były planowane, ale okazały się istotne dla wprowadzenia lepszej jakości obsługi protokołu Gadu-Gadu. To jest miejsce, w którym korzystamy z przejścia na wersję 3.0.0 – mogłem zmieniać co mi się tylko podobało w API libpurple. To również miejsce, w którym zyskują inne protokoły. Czytaj dalej

Finisz GSoC: nowe funkcje, więcej poprawionego kodu

Wczoraj minął ostateczny termin ukończenia projektów. To znaczy, że ta paczka poprawek jest ostatnią przygotowaną w ramach tegorocznego GSoC. Nie jest jednak ostatnią rozwijającą wtyczkę Gadu-Gadu – mam zamiar kontynuować moją pracę w międzyczasie, aby komunikator Pidgin posiadał możliwie aktualne wsparcie dla tego protokołu.

Największą funkcją wykonaną w tym tygodniu jest przeglądanie i edycja danych w katalogu publicznym, z użyciem protokołu GG10.5. Niestety, podobnie jak w przypadku innych funkcji, nie ma w tej chwili możliwości użycia aktualnego protokołu GG11, ponieważ ta usługa wymaga wartości IMToken (niedostępnej w bieżącym libgadu) do uwierzytelniania. Czytaj dalej

Możliwości Libpurple rozszerzone dla lepszej obsługi Gadu-Gadu

Libpurple jest biblioteką z bardzo stabilnym API. Jest to z jednej strony wygodne, ponieważ nawet stare pluginy działają z nowymi wersjami Pidgina. Z drugiej strony krępuje to możliwości rozwoju, dostosowania biblioteki do nowych funkcji obsługiwanych protokołów. Na szczęście, pracujemy nad Pidginem/Libpurple 3.0.0, co oznacza, że można zmieniać API na tyle, ile tylko potrzeba.

W związku z tym, skupiłem się ostatnio na przystosowaniu Libpurple do poprawnej obsługi Gadu-Gadu, tam, gdzie mogło by to nie być możliwe po wydaniu wersji 3.0.0. Na przykład, zaimplementowałem sprawdzanie poprawności nazw użytkownika: GG używa tylko numerów jako identyfikatorów, podczas gdy Pidgin pozwalał na podawanie czegokolwiek. Teraz, dialogi takie jak dodawanie użytkowników, lub konfiguracji konta nie pozwolą na wprowadzenie nieprawidłowego ciągu jako numeru GG. Czytaj dalej

Nowy protokół wysyłania plików odkryty

Udało mi się odkryć protokół wysyłania plików w GG11. Dobra wiadomość jest taka, że zaimplementowałem własnego klienta wysyłającego plik. Zła jest taka, że do autoryzacji potrzebuje on tokenu, który jest wysyłany przez serwer Gadu-Gadu po udanym logowaniu w protokole GG11.

Oznacza to, że Pidgin (a także Kadu) będzie mógł wspierać nową metodę transferu plików dopiero, gdy libgadu będzie obsługiwał protokół GG11. Z kolei implementacja starego protokołu połączeń bezpośrednich przedstawia wątpliwą wartość, skoro producent oryginalnego klienta się z niego wycofuje. Czytaj dalej

Nowa funkcja: synchronizacja listy kontaktów

Ostatnio pracowałem nad nową funkcją: synchronizacją listy kontaktów (#9463). Sieć Gadu-Gadu wspiera ją już od jakiegoś czasu – działa to podobnie, jak w protokole xmpp. Zmiany były dość rozległe, więc nie wszystko może na razie działać idealnie. W związku z tym, przydał by się ktoś, kto by pomógł to testować (w tej chwili da się uruchomić ten kod tylko na systemie Linux). Możecie pytać mnie bezpośrednio o źródła do kompilacji, lub samemu pobrać je bezpośrednio z repozytorium. Jednak przez następny tydzień mogę mieć utrudniony dostęp do internetu, więc ta druga opcja może być rozsądniejsza. Czytaj dalej

Lepsze wsparcie dla przesyłania obrazków i zarządzania kontem

Tym razem skupiłem się na poprawie jakości kodu, co przyniosło poprawki drobnych błędów oraz opisane niżej ulepszenia.

Naprawiłem odbieranie przesyłanych obrazków, które przestało działać po zmianach w API nowego libpurple. Poza tym jest jeszcze jeden problem związany z API: wysyłane obrazki nie wyświetlają się w oknie rozmowy. Nie dotyczy on jednak wtyczki protokołu Gadu-Gadu, a samego komunikatora Pidgin.

Dodana została nowa funkcja: powiadomienia o statusie wysyłania obrazków. Czytaj dalej