mwiacek.com | ColorColor | Mobile |
English
App - APN App - Gammu App - Gammu+ » Gammu+ internals App - ISTQB Glossary App - MyGnokii App - Sobieski App - True Fenix
Facebook (priv)
Chrome code (new/Gerrit)
Firefox Preview c/i Polski App - APN App - Bryły App - Historia polska App - Poczytaj mi tato App - Przepisy drogowe App - Słownik ISTQB App - Sobieski App - Straż
Artykuły i pliki
Praca dyplomowa
App Store Categories Acer (4) AMD (13) Android (84) APN (5) Apple (28) App Store (6) benchmark.pl (19) chip.pl (7) CHM (5) Chrome (5) dobreprogramy.pl (95) drogowe (40) English (130) English article (23) English blog (99) EPUB (7) Firefox OS (3) Fizyka (4) Gammu (62) Gammu+ (49) GSM (151) Hyperbook (10) ISTQB (3) jQuery (3) jQuery Mobile (3) książka 1 (6) książka 4 (97) License (4) Linux (33) Linux+ (1) MyGnokii (6) Nokia (30) NTFS (2) OS (41) PDF (5) poczytaj (1) poem (3) Polski (233) polski (239) Polski artykuł (58) polski blog (238) Polski blog (176) rysunki (2) S.F. (14) salon24.pl (180) Sobieski (8) Spider's Web (17) Straż (7) Tizen (5) TrueFenix (4) Ubuntu (5) Vista (5) WAT (1) wiersz (94) Windows (61) Windows 7 (11) x86 (115) Top 10 N82 review (2008) (201320) Przepisy drogowe (2012-2021) (153239) English articles and files (148873) Polskie artykuły i pliki (145474) Timeline 2024-08 (1) 2024-01 (1) 2023-12 (1) 2023-11 (1) 2023-03 (5) 2023-02 (1) 2023-01 (13) 2022-12 (9) 2022-11 (10) 2022-10 (12) 2022-09 (14) 2022-08 (4) 2022-07 (3) 2022-06 (4) 2022-05 (3) 2022-04 (9) 2022-03 (11) 2022-02 (9) 2022-01 (5) 2021-12 (6) 2021-11 (13) 2021-10 (11) 2021-09 (11) 2021-08 (4) 2021-07 (5) 2021-06 (12) 2021-05 (3) 2021-04 (4) 2021-03 (4) 2021-02 (5) 2021-01 (4) 2020-12 (4) 2020-11 (5) 2020-10 (1) 2020-09 (9) 2020-08 (5) 2020-07 (2) 2020-06 (1) 2020-05 (6) 2020-04 (3) 2020-03 (2) 2020-02 (2) 2020-01 (8) 2019-12 (2) 2019-11 (11) 2019-10 (1) 2019-09 (3) 2019-06 (1) 2019-05 (1) 2017-12 (2) 2017-11 (2) 2017-10 (2) 2016-01 (1) 2015-09 (2) 2015-08 (1) 2015-06 (1) 2015-05 (1) 2015-04 (1) 2015-03 (2) 2015-01 (1) 2014-10 (1) 2014-09 (2) 2014-07 (2) 2014-06 (5) 2014-05 (7) 2014-04 (3) 2014-03 (9) 2014-02 (5) 2014-01 (8) 2013-12 (7) 2013-11 (4) 2013-10 (10) 2013-09 (5) 2013-08 (9) 2013-07 (5) 2013-06 (1) 2013-05 (2) 2013-04 (3) 2013-02 (3) 2013-01 (7) 2012-12 (5) 2012-11 (5) 2012-10 (7) 2012-09 (2) 2012-08 (2) 2012-07 (2) 2012-06 (1) 2012-05 (2) 2012-04 (4) 2012-03 (6) 2012-02 (2) 2012-01 (3) 2011-12 (1) 2011-11 (1) 2011-04 (2) 2011-02 (2) 2011-01 (3) 2010-12 (5) 2010-11 (1) 2010-10 (2) 2010-08 (1) 2010-07 (2) 2010-06 (3) 2010-05 (9) 2010-04 (11) 2010-03 (14) 2009-12 (4) 2009-11 (2) 2009-10 (2) 2009-05 (1) 2009-03 (1) 2009-02 (1) 2009-01 (1) 2008-07 (1) 2008-05 (1) 2008-04 (1) 2007-12 (3) 2007-11 (2) 2007-10 (2) 2007-09 (3) 2007-08 (1) 2007-07 (2) 2007-06 (4) 2007-05 (4) 2007-04 (2) 2007-03 (5) 2007-02 (3) 2007-01 (6) 2006-12 (5) 2006-11 (5) 2006-10 (4) 2006-09 (2) 2006-08 (1) 2006-07 (6) 2006-06 (3) 2006-05 (2) 2006-04 (5) 2006-02 (1) 2006-01 (2) 2005-12 (1) 2005-09 (1) 2005-07 (1) 2003-11 (1) 2003-09 (5) 2002-11 (2) 2002-10 (14) 2001-07 (1) 2001-05 (2) 2001-01 (1) 2000-10 (1) 2000-07 (1) 2000-06 (1) 2000-03 (1) 1999-06 (2) 1999-04 (2) | Nie da się? Czyli jak z przeglądarki zapisać 14639 tekstów z fantastyka.pl w plikach EPUB (2020) polski polski blog dobreprogramy.pl S.F. Artykuł został opublikowany w serwisie dobreprogramy.pl Kilka miesięcy temu zachciało mi się przejrzeć teksty z fantastyka.pl, ale... strona nie ma wersji mobilnej. Czytanie na telefonie z przeglądarki nie wchodziło w grę, więc zrobiłem dwie rzeczy:
Konwerter spotkał się raczej ze średnim przyjęciem, ale uaktualniałem go o kolejne opcje i dodałem podobną funkcjonalność dla fantastykapolska.pl. Na chwilę obecną całość sprawdza się całkiem nieźle i pozwala chociażby na szybkie uaktualnianie plików, które mamy na dysku. Wersja z github "z pudełka" jest przystosowana do Linuxa (operuje w /tmp i zawiera takie komendy jak "rm"). Przyszedł sierpień i zauważyłem taką bibliotekę jak JSZip. Czy kod w JavaScript może mieć taką samą funkcjonalność jak konwerter w PHP? Pytanie to nie dawało mi spokoju przez kilka nocy, więc usiadłem i napisałem co potrzeba. Jak tego użyć?
Od strony technicznej:
Co poszło nie tak? Z pełną premedytacją napisałem kod, który nie obciąża fantastyka.pl i robi rzeczy sekwencyjnie. Wiąże się to z tym, że kod w wątku przeglądarki działa poniekąd tak długo, że przeglądarka "zauważa", że ten się zawiesił (stąd też informacje o stanie podaję w tytule strony - w Chromium DOM nie jest wystarczająco szybko odświeżany). Mógłbym oczywiście użyć Web Workera i przetwarzanie robić w jednym wątku, a wyświetlanie stanu w drugim... ale wtedy strona nie mogłaby być używana lokalnie z dysku. Kolejną ciekawostką tutaj jest, że strony musiałem czytać przez serwis zewnętrzny. A sam JSZip? Powiedziałbym, że pewne rzeczy nie są do końca intuicyjne (przykładowo nie znalazłem synchronicznej metody do czytania zawartości pliku wewnątrz skompresowanego pliku), ale całość daje radę. Swoją drogą widać, jaką drogę przeszedł JavaScript - z prostego narzędzia do wyświetlania okienek dialogowych i wyniku 2+2 (przypominają mi się książki Heliona i czerwone papierowe Chipy z okolic 1997) doszliśmy do tego, że do języka przemycana jest wielowątkowość i wiele konstrukcji z innych języków. Bardzo mi to przypomina historię Basica - z prostego z numerowanymi liniami, przechodził poprzez QBasic, Visual Basic, VBA i wersje .NET, aż w końcu został odsunięty na boczny tor. Niezależnie jednak od wszystkiego - całość działa wystarczająco dobrze, a ja pewnie będę sukcesywnie dodawał nowe funkcjonalności czy usuwał ewentualne usterki. Miłego czytania! PS. Nie planuję tego dodać na stronę domową mwiacek.com - chcę uniknąć sytuacji, że jakaś mądra duszyczka przyjdzie i zacznie się czepiać o to, że przechowuję pirackie pliki. |