Вступление
В прошлой серии мы Вам рассказали о том, как собирались “убивать” FineReader. Однако это было далеко не первое начинание нашего дуэта. В этот раз центром нашего повествования станет программа KbashPod. Которая создана для пользователей Linux, постоянно прослушивающих подкасты на своем ПК и мобильных устройствах.
Каждый из авторов программы уделяет некоторое время прослушиванию подкастов. При чем в процессе прослушивания задействованы как мобильные устройства, так и стационарный ПК. А в самом процессе решаются такие задачи как:
- актуализация БД подкастов (добавление новых подкастов или удаление старых);
- загрузка новых подкастов по мере их выхода;
- удаление ранее заруженых подкастов;
- синхронизация подкастов между ПК и мобильным устройством.
Первые три пункта без проблем решаются консольной утилитой podget, последняя rsync. Ну и само собой, все эти задачи решаемые двумя программами, было логично объединить одним скриптом, автором которого является mr-protos.
Статья Mr-Protos о создании BashPod-а
Данная статья предназначена для опытных пользователей Linux и вопросы установки пакетов, создание исполняемого файла и выбора текстового редактора для правки конфигурационных файлов опущены.
И так, начнём
В системе должны быть установлены следующие пакеты:
- libnotify-bin*
- podget
- rsync
Примечание:
Пакет libnotify-bin нужен для всплывающих уведомлений, которые показывают ключевые действия скрипта или сообщают об ошибке. В различных дистрибутивах название этого пакета может отличаться, или он может входить в состав пакета libnotify.
Настройка podget
Запускаем в консоли podget для автоматического создания конфигурационных файлов и прерываем его работу сочетанием Ctrl + C
Редактируем файл ~/.podget/podgetrc (параметры, оставляемые по умолчанию пропущены):
Задаём место загрузки подкастов
dir_library="место на компьютере куда будут загружаться подкасты"
Комментируем строку, т.к. для наших целей нет необходимости в создании плей-листа
#playlist_namebase=New-
Включаем удаление старых подкастов
cleanup=1
Задаём количество дней хранения файлов до очистки
cleanup_days=7
Если используется файловая система FAT32, то следует раскомментировать строчку для удаления символов в названии файлов, запрещённых в данной файловой системе. Рекомендую в любом случае раскомментировать её и добавить туда символ % для более эстетичного сохранения имён файлов (даже если файловая система позволяет использовать такие символы)
filename_badchars=!#$^&=+{}[]:;"'<>?|\
Задаём минимально количество свободного места на диске, при котором загрузка будет остановлена. В данном примере — 600Мб
min_space=614400
Редактируем список адресов подкастов для загрузки (~/.podget/serverlist):
Комментируем все строки этого файла если нас не интересуют подкасты, записанные там по умолчанию.
Добавляем строчки нужных подкастов по принципу:
<ссылка> <Категория> <Имя>
Например:
russianubuntupodcast.rpod.ru/rss_ynq_bbb4.xml Linux_Podcasts Russian Ubuntu Podcast
Примечания:
- символы пробела в URL должны быть заменены на %20;
- название категории не должно содержать пробелов;
- сохраняться в файловой системе подкасты будут по принципу: /Папка_с_подкастами/Категория/Имя/выпуск_1.mp3.
Создание bash-скрипта
Создаём исполняемый bash-скрипт (bashpod.sh) для синхронизации скачаных подкастов с mp3-плеером или телефоном в режиме флешки:
#!/bin/bash
PODDIR="/место на компьютере/куда скачиваются подкасты/"
DEVICEDIR="/директория/куда монтируется устройство/проигрывающее mp3/"
notify-send 'Bashpod' 'Скачивание подкастов' ; podget -s &&
notify-send 'Bashpod' 'Синхронизация с телефоном' ; rsync -ruq --del "$PODDIR" "$DEVICEDIR" && notify-send 'Bashpod' 'Готово' || notify-send 'Bashpod' 'При работе возникли ошибки'
Данный скрипт синхронизирует скачивает подкасты, удаляет старые и синхронизирует их с mp3-плеером. В приведённом скрипте существует возможность выведения малоинформативного сообщения об ошибках, ловить которые следует запуская скрипт из консоли.
Теперь создаём кнопку на панели и пункт меню средствами вашего DE, где прописываем название и путь к скрипту bashpod.sh.
KBashPod
Ну и как водится, захотелось все это вновь завернуть в красивую обвертку с красивым обличием. Так и родилась идея KbashPod для тех кому консоли оказалось мало. И теперь при монтировании носителя Вы сразу можете выбрать одним из действий синхронизацию подкастов, при помощи дружелюбного интерфейса KBashPod.
В GUI доступны основные опции настройки, такие как:
- количество скачиваемых подкастов;
- время жизни старых подкастов;
- критический размер свободного места для остановки скачивания;
- основные пути синхронизации подкастов;
- редактирование библиотеки подкастов.
Кроме того, благодаря доработке кода исходного bash-скрипта, KBashPod имеет собственные файлы конфигурации утилиты podget, размещаемые в директории /.kbashpod. Это позволяет независимо использовать саму утилиту и KBashPod. Также это избавляет от предварительного редактирования файлов ~/.podget/podgetrc и ~/.podget/serverlist, описанного в начале этой статьи.
В новой версии (1.1) программы была добавлена интеграция с KDE Solid и теперь при обнаружении нового съемного носителя информации предлагается запустить KBashPod для синхронизации подкастов. А по умолчанию в программе уже предустановленна ссылка на подкаст от одного из авторов статьи (b0noI), It-sexual о котором можно более подробно узнать на страничке подкаста.
Ссылки
- kde-apps.org
- KBashPod x86 deb
- KBashPod x86 rpm
- KBashPod src tar.gz
- подкаст it-sexual, установленный в программе