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. Cały kod dotyczący katalogu publicznego został przepisany od podstaw, więc błędy (#14951) występujące w starym kodzie nie powinny już istnieć. Takie podejście pozwoliło także na wykonanie kolejnej funkcji: użycia publicznego aliasu użytkownika do nazywania nowo dodanych kontaktów (#2188). Aby to wypróbować, wystarczy dodać nowego użytkownika do listy kontaktów, bez wypełniania pola etykiety. Jest już także możliwe wypełnianie własnego profilu w katalogu publicznym (#6918). Przy okazji przechodzenia na nowy protokół, obsługa OAuth została rozszerzona, więc będzie możliwe wspieranie kolejnych usług.
Innym komponentem, który został przepisany (tym razem bez wprowadzania tylu nowych funkcji) jest obsługa statusów. Przy okazji zostało poprawionych parę błędów, takich jak te dotyczące długich statusów, lub tych zawierających znaki UTF-8.
API libpurple nie zostało pominięte i tym razem: dodana została możliwość podłączenia listy podpowiedzi do pól tekstowych w oknie edycji konta. Może to być na przykład użyte w protokołach, które pozwalają na konfigurowanie niestandardowych kodowań znaków (np. IRC).
Powyższa funkcja pozwoliła także na zaimplementowanie nowej, związanej z Gadu-Gadu: zapisywania historii serwerów GG (#11693). Po każdym pomyślnym połączeniu się z siecią GG, serwer połączenia zostaje dodany do listy ostatnio używanych, aby później być dostępnym w oknie konfiguracji konta.
Trwają jeszcze dyskusje, głównie dotyczące zmian w API libpurple:
- potwierdzenia dostarczenia wiadomości: żaden z głównych programistów Pidgina nie odpowiedział, być może dlatego, że ta funkcja po prostu powinna być zaimplementowana;
- specjalne etykiety nazw użytkownika wyświetlane w kontekście wybranych protokołów (np. „Numer GG” zamiast „Nazwa użytkownika”): dyskusja utknęła;
- nowa obsługa http, oparta o bibliotekę taką jak curl lub libsoup: przede wszystkim trzeba jakąś wybrać;
- nowy status podstawowy – „chętny do rozmowy”: to wymaga więcej pracy, niż na to wygląda;
- funkcje do nawiązywania połączeń w libgadu (potrzebne do obsługi proxy): dyskusja dotycząca implementacji jest chwilowo wstrzymana;
- pobieranie publicznego aliasu użytkownika przed dodaniem go do listy kontaktów: nikt jeszcze nie odpowiedział.
W ciągu następnych kilku dni mam zamiar jeszcze opublikować podsumowanie mojego całego projektu GSoC.