Ужать библиотеку
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-21 04:52 am (UTC)А инструкция что нужно сделать, чтобы получить сумму объемов где-нибудь есть?
То есть вы мне предлгааете взять исходники той программы, которая меня устраивает, перепилить ее, чтобы она запрашивала нужное разрешение и пересобрать? Задача, конечно, интересная, но заметно более трудоемкая, чем та, которая поставлена в посте. Тем более что там, насколько я помню нужно не просто разрешение запростить, а потом работать с файлами не через нормальное API, которым пользуются программы на C, а через специальные Java-вызовы. И поэтому придется как-то сильно извратиться чтобы нормальные программы под Termux могли этим воспользоваться.