Masowe pobieranie i wysyłanie plików na Chomikuj.pl

Chomikuj.pl to jedno z ciekawszych archiwów polskiego Internetu. Można tam znaleźć rzeczy, które dawno zniknęły z innych miejsc, od PDFów studentów po zarchiwizowane słuchowiska. Rok temu opisywałem mały pomocniczy skrypt do masowego pobierania. Teraz przepaliłem trochę tokenów, żeby zrobić z niego pełniejsze narzędzie. To jeden plik Pythona, który potrafi zarówno pobierać, jak i wysyłać całe foldery na Chomikuj.pl.

Chomyk jest dostępny na GitHubie.

Co potrafi

Najważniejsza zmiana jest prosta: nie trzeba już wybierać między pojedynczym plikiem a ręcznym przeklikiwaniem całej struktury folderów. Skrypt pobiera foldery w całości i zachowuje ich układ na dysku. Przy wysyłaniu robi to samo w drugą stronę.

Do tego dochodzi kilka praktycznych drobiazgów:

  • można uruchomić kilka transferów naraz;
  • przerwane pobieranie lub wysyłanie można wznowić;
  • podczas wysyłania skrypt sprawdza sumę CRC32, dzięki czemu nie przesyła ponownie plików, które już są na serwerze;
  • w konsoli pokazuje postęp, aktualną prędkość i przewidywany czas zakończenia.

Pierwsze uruchomienie

Potrzebny jest Python 3 oraz biblioteki requests i urllib3. Po pobraniu repozytorium wystarczy uruchomić:

python3 chomyk.py

Przy pierwszym starcie program poprosi o login i hasło, a następnie może zapisać je w pliku config.json. To wygodne, ale warto pamiętać, że są tam zapisane zwykłym tekstem. Bez parametrów otworzy się proste menu: pobieranie plików z listy linków list.txt, pobieranie folderu na podstawie wklejonego w konsoli linka lub wysyłanie pliku lub folderu.