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
Świetna robota! Dzięki. :-)
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.
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.
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.
Nie wiem czy o to Ci dokładnie chodziło:
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:
i zwraca odpowiednio wynik, np:
.pre {name", category", name", category", ... itd}
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ł
Jeszcze tylko parę błędów ;)
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.
Poprawione.