Ужать библиотеку
Sep. 20th, 2020 05:32 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Обнаружил вот, что моя избранная коллекция электронных книг вот-вот перестанет умещаться в телефон. А все потому, что я тут недавно решил синхронизировать эту коллекцию не только между телефоном и компьютером, но и с ридером на электронных чернилах. А тот глупый, зазипованных fb2 не понимает.
Сейчас у меня в библиотеке имеется 97 epub примрено на четверть гига, 31 pdf, на полгига 14 djvu тоже на четверть гига и почти на три гига незапакованных fb2(2817 штук).
Очевидно, что запакуй я эти fb, объем библиотеки суммарно снизится весьма заметно.
Вопрос в том, как после этого синхронизировать.
- На компьютере лишних пару гигов не жалко.
- Если на компьютере держать файлы в распакованном виде, это упрощает правку метаинформации, опечаток и всего прочего. Но некритично. Пару макросов в vimrc написать и будет прозрачно.
- На ридере файлы должны быть распакованы
- На телефоне файлы должны быть запакованы.
- Ридер для синхронизации монтируется как локальная файловая система
- Синхронизация с телефоном производится по wifi rsync-ом c ssh-транспортом.
- У телефона в /storage/emulated/0 файловая система с сильно урезанной функциональностью, но все же не FAT
- У ридера FAT, с атрибутами и таймштампами которой rsync работает крайне хреново.
- На компьютере есть кроме избранной библиотеки есть еще большая библиотека. А вот ее хранить в незапакованном виде - и правда тяжеловато.
В результате получается следующая картина -
- fb2-файлы в библиотеке надо хранить все же в зазипованном виде (для чего слегка доработать booksort )
- Для синхронизации по сети (десктопа, ноутбука и телефона) - использовать rsync
- Для синхронизации с ридером - написать свою синхронизилку, которая при сканировании мастер копии библиотеки будет уметь читать таймштампы и crc32 из заголовков zip-файла и, соответственно, использовать эту информацию, для того, чтобы не переписывать неизмененные файлы на ридере.
no subject
Date: 2020-09-20 07:33 pm (UTC)Кстати, файловые менеджеры прекрасно бродят во всему диску, как по внутренней флешке, так и по SD карте, с правами RW. Так что, наверное, правильно прописанные права доступа решают проблему для любой проги.
А порыться можно только в тех книгах, название и примерное содержание которых неплохо помнишь. Вряд ли таких книг несколько тысяч.
Ну и на терабайтный диск влезает порядка 100.000 книг, если хранить их так расточительно, что средний размер книги 10 мегабайт. Это уже точно вне человеческих возможностей, не говоря уже о том, что непонятно, где столько взять: вся флибуста меньше занимает.
no subject
Date: 2020-09-20 07:59 pm (UTC)Вы пробовали прописывать SD-карточку как внутреннюю память? Или "вроде бы"? Я пробовал. Она у меня при это не дополнила встроенную память, а заменила. Это соответственно, порождает другие проблемы. Когда я не могу сам решать, что на какую память писать, это неудобно.
Файловые менеджеры обладают фатальным недостатком - они требуют чтобы пользователь с ними взаимодействовал на телефоне. Очевидно, что при синхронизации телефона с компьютером пользвоатель должен работать с компьютером - он эргономичнее.
Кроме того файловые менеджеры программы тупые и автоматически разбираться что копировать, а что не копировать - не умеют.
Естественно, книги не лежат сплошным списокм. Они групиируются в серии, по авторам, по жанрам и т.д. fb2 это все замечательно поддерживает. Авторы - по странам, эпохам, художественным стилям.
С нехудожественной литературой там все сложнее - тематического и регионального каталого в fbreader-е нету.
Нехудожественная литература, кстати обычно в pdf или djvu.
Ну и еще авторы книг любят ссылаться на другие книги и статьи в журналах. Иногда явно, иногда неявно, цитатами.
Вообще-то кроме флибусты есть еще library genesis. Вот там десятки терабайт. Кроме того я читаю не только на русском, но и на английском. А англоязычных книг в интернете на порядок больше, чем русскоязычных.
Плюс еще на том терабайтном диске у меня подшивки нескольких российских журналов. "Морской Сборник", например, аж с Крымской Войны начиная.
no subject
Date: 2020-09-20 08:16 pm (UTC)Разрешения проги не зависят от ее "умности".
Если собрать библиотеки на всех языках мира - можно и в 10 терабайт не влезть. Только зачем?!
А русский плюс английский - примерно в пол-терабайта влезут.
no subject
Date: 2020-09-21 04:52 am (UTC)А инструкция что нужно сделать, чтобы получить сумму объемов где-нибудь есть?
То есть вы мне предлгааете взять исходники той программы, которая меня устраивает, перепилить ее, чтобы она запрашивала нужное разрешение и пересобрать? Задача, конечно, интересная, но заметно более трудоемкая, чем та, которая поставлена в посте. Тем более что там, насколько я помню нужно не просто разрешение запростить, а потом работать с файлами не через нормальное API, которым пользуются программы на C, а через специальные Java-вызовы. И поэтому придется как-то сильно извратиться чтобы нормальные программы под Termux могли этим воспользоваться.