vitus_wagner (
vitus_wagner) wrote2020-09-20 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
Разрешения проги не зависят от ее "умности".
Если собрать библиотеки на всех языках мира - можно и в 10 терабайт не влезть. Только зачем?!
А русский плюс английский - примерно в пол-терабайта влезут.
no subject
А инструкция что нужно сделать, чтобы получить сумму объемов где-нибудь есть?
То есть вы мне предлгааете взять исходники той программы, которая меня устраивает, перепилить ее, чтобы она запрашивала нужное разрешение и пересобрать? Задача, конечно, интересная, но заметно более трудоемкая, чем та, которая поставлена в посте. Тем более что там, насколько я помню нужно не просто разрешение запростить, а потом работать с файлами не через нормальное API, которым пользуются программы на C, а через специальные Java-вызовы. И поэтому придется как-то сильно извратиться чтобы нормальные программы под Termux могли этим воспользоваться.