W ostatnim czasie ćwiczę się coraz bardziej w pisaniu różnych wprawek literackich i postanowiłem przejrzeć sobie również gotowe teksty ze strony fantastyka.pl, ale... nie są one dostępne w łatwej do czytania na komórce formie.
W tym momencie postanowiłem zaprząc do roboty szare komórki i w trakcie wolnego czasu napisać krótki skrypt, który pobrałby zawartość wspomnianej strony (a konkretnie biblioteki, w której przynajmniej w teorii umieszczone są specjalnie wyselekcjonowane utwory) i stworzył mi małego, ślicznego i łatwego do czytania EPUB-a.
Podobne zabawy robiłem przez lata - konwertowałem sobie np. różne strony i artykuły do plików CHM, formatowałem ustawy z PDF do plików HTML wymaganych przez engine "Przepisów drogowych", zrobiłem wyszukiwarkę ebooków "przeglądającą" najpopularniejsze serwisy (aplikacja "Poczytaj mi tato"), itp.
Jak postanowiłem, tak zrobiłem...
Skrypt został udostępniony pod adresem https://github.com/marcinwiacek/fantastyka - sprawdziłem go pod Ubuntu z doinstalowanym PHP.
Uruchamiamy go po prostu wpisując z linii komend "php nazwa_skryptu" - pobiera strony, przekształca ich treść w XHTML, dodaje m.in. spis treści, kopiuje plik z okładką i pakuje wszystko do ZIP-a, któremu następnie zmienia rozszerzenie na EPUB.
Z plików pobieram info o autorze, tagi, notki, itp., zaś zamiast obrazków podaję linki (plik z nimi miał bodajże coś koło 200 MB)
Pliku wynikowego celowo nie dodałem do repozytorium - nie chcę, żeby ktoś mnie ciągał o prawa autorskie.
Jeżeli chodzi o czytniki:
- PocketBook na Androida - czyta plik OK, jest szybki, nie pokazywał mi poszczególnych rozdziałów, gdy pliki XHTML miały błędy
- Lithium na Androida - czyta plik OK, jest szybki, pokazywał błędy w rozdziałach (gdy jeszcze były)
- Calibre na Windows - czyta plik OK, średnio szybki
- csBooks na Ubuntu - czyta plik OK, jest szybki, pokazywał błędy w rozdziałach (gdy jeszcze były)
- Okular na Ubuntu - czyta plik OK, koszmarnie wolny, można zapomnieć
Dziękuję za uwagę.
PS. Nie zależy mi na chwaleniu się, jakość kodu skryptu też jest wystarczająca dla moich celów (jeżeli ktoś chce poprawić, proszę o commita).
Update 16.2: dodałem skrypt pobierający pliki EPUB z fantastykapolska.pl
Update 17.2: pewna dyskusja została otwarta pod adresem https://www.fantastyka.pl/hydepark/pokaz/23925 (a ja również w międzyczasie dodałem opcję wznawiania pobierania, obsługi archiwum i poczekalni i zrobiłem dużo poprawek zarówno w skrypcie dotyczącym fantastyka.pl jak i fantastykapolska.pl)
Update 19.2: skrypty dotyczące fantastyka.pl jak i fantastykapolska.pl są praktycznie gotowe - w pierwszym wypadku
mamy obsługę biblioteki/archiwum/poczekalni, wznawianie sesji (jeśli artykuły są pobrane, skrypt nie pobiera ich ponownie),
itp., w drugim pobieranie plików EPUB i łączenie jedno-rozdziałowych plików w jeden EPUB (do zrobienia jest jeszcze
obróbka niektórych rozdziałów, które oryginalnie zostały bardzo słabo przygotowane).
Update 22.3: Wątek na fantastyka.pl: link