Pull to refresh

Podget + rsync + BashPod + GUI = KBashPod для подкастофилов

Reading time4 min
Views992

Вступление


В прошлой серии мы Вам рассказали о том, как собирались “убивать” 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 о котором можно более подробно узнать на страничке подкаста.

Ссылки



Авторы

Tags:
Hubs:
Total votes 14: ↑10 and ↓4+6
Comments10

Articles