Python i xmpppy
Ostatnio dość intensywnie interesuję się wykorzystaniem Pythona do “zadań specjalnych”, których realizacja wiąże się z użyciem protokółów Gadu-Gadu i Jabber. Poznałem sposoby działania kilku botów, sekretarek i autoresponderów (typu infobot) i doszedłem do wniosku, że warto stworzyć coś na własny użytek.
Dla Pythona rozwiązań pojawiło się niewiele. Przygodę rozpocząłem od biblioteki Jakuba Kosińskiego – pygglib. Początkowo prezentowała się całkiem nieźle. Prosta w obsłudze, z większą częścią zaimplementowanego protokołu Gadu-Gadu, przykuła moja uwagę na kilka nocy. Niestety jednak z tego projektu (przynajmniej w tym momencie) nie polecam korzystać, ze względu na ciągłe zmiany jakie zachodzą w protokole GG. Biblioteka jest już nieaktualna i nie nadaje się do większych programów, gdzie żywotność sesji jest dla nas rzeczą priorytetową. Warto dodać, że autorzy zachęcają do dalszego rozwoju pygglib!
W związku z tym rzuciłem się na EKG. Jeżeli chodzi ten typ rozwiązania, dużo w tej chwili powiedzieć nie mogę. Po przejrzeniu dokumentacji i analizie napotkanych źródeł uważam, że jest w stanie dostarczyć mi tego, czego potrzebuję. Chociaż przywykłem do pełnej mobilności i zabawa z ładowaniem pluginów Pythona jednak nie umożliwia mi tworzenia w pełni wieloplatformowych programów. Cygwin (w przypadku Windowsa) nie wchodzi w grę.
W takim razie pozostało ostatnie znane mi rozwiązanie: Jabber z transportem Gadu-Gadu. I tutaj pojawił się złoty środek, mianowicie biblioteka xmpppy, służąca do łatwego wykorzystywania protokołu Jabber, w Pythonie. xmpppy to zlepek kilku innych bibliotek, o podobnym zastosowaniu. Niestety dokumentacja jest jeszcze uboga (biblioteka korzysta z modułów uznanych w Pythonie 2.6 jako “deprecated”) i w trakcie intensywnego rozwoju, ale na podstawie dostępnych przykładów w sieci można już dużo wynieś.
W następnym wpisie pokażę w jaki sposób logować się do serwera, wysyłać wiadomości (o różnym typie), odbierać wiadomości, a także ubiegać się o subskrypcje u naszych odbiorców.