Zacząłem katalogować paczki do MaSzyny. Na początek poszły paczki z
Archiwum. Do tego dorzuciłem jeszcze takie pościągane z różnych miejsc. Na razie na serwerze mam skatalogowane około 120 paczek, został mi jeszcze cały 2007 rok.
Dorzucę te 50 paczek, które mam i będę miał do Was prośbę, abyście przejrzeli posiadane paczki w celu ich skatalogowania. Nie interesują mnie paczki z plikami niedokończonymi i testowymi - tylko takie, które można (było) oficjalnie ściągnąć. Nie interesują mnie również paczki "całościowe", przekraczające objętością 200MB. Również nie będą mi potrzebne paczki nie związane w żaden sposób z MaSzyną.
Jak to działa? Wskazujemy katalog, gdzie są paczki. Program tworzy ich listę, uwzględniając pliki .RAR, .ZIP oraz .EXE. Po wybraniu paczki z listy uruchamiany jest program 7zip, który kataloguje jej zawartość (trwa to do kilkunastu sekund). Tak uzyskany plik jest przetwarzany, aby zostały tylko nazwy plików, ich długości, CRC i daty. Plik ten jest następnie wysyłany na serwer.
Aby serwer przyjął plik, należy mieć założone na nim konto (jak to zrobić, opisałem w innym wątku). Jeśli paczka już jest zarejestrowana, serwer poinformuje o tym. Jeśli nie była, a konto zostanie prawidłowo autoryzowane, serwer doda opis paczki do spisu paczek. Dodatkowo można zmienić datę paczki na datę najnowszego pliku, jaki się w niej znajduje (daty katalogów nie są uwzględniane) oraz będzie można zdjąć flagę A, żeby zaznaczyć, że została już przetworzona.
Musiałem się nieźle nagimnastykować, żeby plikom w niektórych paczkach zostały przypisane odpowiednie katalogi. Najgorsze, co do tej pory znalazłem, to taka struktura katalogów:
Dynamic\SM31-165\
Dynamic\sounds\oraz paczka
edek-fizyka_pop.zip, której sensu trzeba dochodzić po zawartości plików. Bardzo bym prosił o większą dbałość i przynajmniej odwzorowanie struktury katalogów Symka.
Do czego to się przyda? Po skatalogowaniu większości dostępnych paczek będę zbierał linki do nich. Będzie można wpisać nazwę pliku i zostanie wyświetlona lista znanych wersji tego pliku oraz nazwy pierwszej i najnowszej paczki, w jakiej każda z wersji się znajduje. Korzystając z bazy linków będzie można pobrać potrzebną paczkę.
Linki na serwerach będą sprawdzane cyklicznie. Jeśli link przestanie być aktywny, nie będzie się wyświetlał, ale nadal będzie w bazie. W ten sposób będzie można znaleźć aktywny link do szukanego pliku, podając stary.
Potem jeszcze trochę pracy będzie wymagało opisanie poszczególnych paczek i stworzenie listy zależności. Wtedy będzie można już zrobić instalator.
Do poprawienia mam jeszcze parę rzeczy. Problemem na razie jest odczekanie na zakończenie działania 7zip oraz przesyłanie więcej niż 7kB przez HTTP POST (biblioteka
NMFast40 ma z tym problemy). Nowa wersja będzie, jak się z tym uporam, chyba że znajdę i poprawię jakiś poważny błąd w działaniu dotychczasowych funkcji.
Ps. Od niedawna tworzony jest opis korzystania z mojego programu pod adresem
http://eu07.rainsted.com/wczytanie.html. Autorem większości jest mój brat, za co mu dziękuję.