TechLife devBlog

Pacnet - aktualizacja

Internet 16th Jun 2008

Semestr już prawie się skończył, nareszcie mam trochę więcej czasu, wiec zabrałem się dzisiaj za aktualizację pacnetu. Z pomocą oczywiście przyszedł mi Python, dzięki któremu napisałem ładny skrypt, porównujący obecną bazę ze stanem repozytoriów i na tej podstawie dokonujący aktualizacji.

Na czerwono zaznaczane są nowe pakiety, które można przeglądać również na odpowiedniej podstronie.

Wreszcie dodałem możliwość wrzucania zrzutów ekranów, czyli najprzyjemniejszej funkcjonalności. Niestety nie dysponuję odpowiednim serwerem do przetrzymywania tej całej grafiki, więc całe wrzucanie ogranicza się do podania adresu miniaturki i dużej grafiki.

Ponieważ wiem, że pakietów jest sporo a zrzuty będą przybywały raczej w wolnym tempie więc dodałem automatyczne wyszukiwanie zrzutów w Googlu. Co prawda nie zawsze wyszukuje to co trzeba, ale w większości przypadków sprawuje się całkiem dobrze i od razu widać z jaką aplikacją mamy do czynienia. Poniżej zrzuty z Battle of Wesnoth.

Ostanie 20 zrzutów będzie wyświetlane na odpowiedniej podstronie.

Komentarze z jogger.pl

Michał _kUtek_ Kuciński 16.06.2008 / 16:15

Świetna robota! Dzięki. :-)

Husio 16.06.2008 / 16:45

A jak ten skrypt komunikuje się z bazą z bazą danych pacnetu? Chętnie dodałbym tą funkcjonalność aushella , ale udawanie przeglądarki jest zbyt niewygodne.

trójkąt 16.06.2008 / 17:29

Dokładniej to komunikuje się z moją lokalną bazą, która jest kopią tej na serwerze. Cały skrypt w rezultacie generuje plik SQL zawierający inserty i update’y, które później wrzucam na serwer.

Jeżeli chodzi Ci o dowołanie się w celu uzyskania kategorii w jakiej jest pakiet, to można zrobić jakiś XML-owe czy nawet tekstowe API typu /pl/xml/gajim i w odpowiedzi uzyskasz nazwę kategorii. Ale bez wywołania odpowiedniego url-a raczej się nie obędzie.

Husio 16.06.2008 / 17:33

Wszystko jedno, byle był jakiś ładny interfejs. Z racji tego że w AUR jest JSON , nie ukrywam, że fajnie gdyby właśnie to było dostępne. Nie musiałbym umieszczać w zależnościach dodatkowych bibliotek.

trójkąt 17.06.2008 / 00:15

Nie wiem czy o to Ci dokładnie chodziło:

http://pacnet.karbownicki.com/pl/szukaj-kategorii/json/gajim
{"category":"net-im"}
http://pacnet.karbownicki.com/en/find-category/text/frozen-bubble
games-arcade

Husio 17.06.2008 / 19:07

Właśnie coś takiego miałem na myśli. Jednak o wiele lepiej, gdyby serwer mógł wyszukiwać pakietu po nazwie, nie podając kompletnej nazwy. Jeśli indeksem w bazie jest nazwa, to nie powinno to być żadnym problemem.
Np:

http://pacnet.karbownicki.com/pl/szukaj-kategorii/json/aur

i zwraca odpowiednio wynik, np:

.pre {name", category", name", category", ... itd}

trójkąt 17.06.2008 / 20:55

http://pacnet.karbownicki.com/pl/szukaj/json/?search=<pakiet>

Darek 18.06.2008 / 11:16

O coś takiego mi chodziło. Niestety repo Archa jest mało wygodne, trzeba po omacku szukać pakietów które są potrzebne (jeśli nie zna się ich nazw), lub szukać po forach. Dobra robota, na pewno będę korzystał

Husio 19.06.2008 / 10:31

Jeszcze tylko parę błędów ;)

http://pacnet.karbownicki.com/pl/szukaj/json/?search=nieistniejacypakiet

powinno zwracać pusty obiekt lub jakąś informacje (np {} albo error bla”}) , a nie NULL. O wiele łatwiej wtedy cokolwiek powiedzieć użytkownikowi.

.bc [name X pacman game”, category”:„games-arcade”}]

wartość category zamyka nawias którego nie otworzono i cały obiekt jest niepoprawny.

trójkąt 19.06.2008 / 12:32

Poprawione.



Komentarze