понедельник, 31 января 2022 г.

Очистка старых файлов из кэша foliate

Установка читалки электронных книг foliate вместо имеющейся в комплекте поставки Linux Mint fbreader обусловлено тем, что на моей системе при использовании fbreader перелистывание страниц можно осуществить только клавишей PageDown вместо предпочитаемой мной широкой Space (пробел).

Установку foliate можно выполнить из PPA:

sudo add-apt-repository -y ppa:apandada1/foliate && sudo apt update && sudo apt install -y foliate

В настройках foliate имеются варианты выбора шрифта, отображения вместо 2 столбцов (как по умолчанию) один, а также выключения автопереноса слов:



Читаемые и прочитанные книги складываются в каталог ~/.cache/com.github.johnfactotum.Foliate в виде файлов png – обложки книг и файлов json, которые содержат сведения о странице, на которой завершилось чтение в прошлый раз, с целью автоматического открытия читаемой книги на том же месте. При прошлом просмотре содержания указанного каталога в нём было найдено более 130 файлов.

Несмотря на наличие в настройках команды чистки кэша (раскройте в настройках пункт "Книга"), в силу "ленивости" возникло желание немного автоматизировать данный процесс. Ко всему прочему "жаба душит" за лишние занимаемые килобайты. 😂

Исходя из того, что читать люблю и читаю много 😀, на чтение книги порядка 400-500 страниц у меня уходит 2-3 дня. Принимая во внимание, что за месяц будет прочитано 10-15 книг, при числе > 10 файлов json к кэше (3 дня на книгу) было принято решение о запуске процедуры поиска и удаления файлов старше 30 суток (можно меньше или больше на ваше усмотрение). 

Описание выполнение условия "если число найденных файлов больше, чем" описано в этой заметке, а найти файлы старше N дней и удалить реализуется через параметры команды find.

➙  Примечание. В используемом мной сценарии (скрипте) применяется протоколирование действий. Узнать такие команды можно по наличию слов day, echo и log. Если такой необходимости нет, то строки их содержащие можно удалить.

#!/bin/bash
day=`date '+%d'`
books=/home/user/.cache/com.github.johnfactotum.Foliate  # вместо user указать своё имя пользователя в системе
log=/home/user/Reports/system/$day.txt
echo "$(date '+%H.%M.%S') – запуск задания foliate" >> $log
find $books -type f -name "*.json" | wc -l > /tmp/foliate.txt
value1=10
value2=`cat /tmp/foliate.txt`
if (( $value2 > $value1 )); then
    echo "            найдено файлов json – $value2" >> $log
    echo "            запуск очистки кэша foliate" >> $log
    find $books -name "*.png" -mtime +30 -delete
    find $books -name "*.json" -mtime +30 -delete
    echo "            старые файлы из кэша foliate удалены" >> $log
  else
    echo "            найдено файлов json – $value2" >> $log
    echo "            файлов кэша для удаления не назначено" >> $log
fi
echo "            завершение задания foliate" >> $log
exit

➙  Пояснение. В строках echo "   ..." число пробелов равно 12-ти. 12 символов как раз и занимает отображение времени плюс тире с пробелами слева и справа от него: 
$(date '+%H.%M.%S') – 

Данный скрипт запускается мной при старте системы.

Ниже приводится пример реального протоколирования 30 января:

17.39.02 -- запуск задания foliate
                   найдено файлов json – 2
                   файлов кэша для удаления не назначено
                   завершение задания foliate

На тот момент в кэше были расположены файлы:

4E957209-CFCE-4BC2-9AF6-595CD61B5DBA.json
4E957209-CFCE-4BC2-9AF6-595CD61B5DBA.png
AB3F1A4D-5B5C-4C66-85D4-EF90A90A8796.json

📌  Дополнение. На форуме дали совет запретить использовать трекер положения файлов (позволяет находить файл книги который был перенесен в другой каталог). Настройка производится через dconf:

sudo dconf write /com/github/johnfactotum/Foliate/library/use-tracker false

Возможно, что для выполнения этого действия необходимо будет установить dconf-editor:

sudo apt install dconf-editor

После этого либо использовать верхнюю команду, либо, запустив графическую оболочку dconf-editor (sudo dconf-editor) отключить use-tracker.



Как поясняют, это позволит избежать возможного падения читалки с ошибкой сегментирования и в целом заставит её работать быстрее.

Комментариев нет:

Отправить комментарий