Search
Write a publication
Pull to refresh

Скрипт копирования Любимых песен из Banshee

Reading time2 min
Views606
Долго мучаясь и пытаясь придумать/найти как скопировать любимую музыку из плеера Banshee на usb носитель — плюнул на всё и быстренько написал простой скрипт на php для копирования музыки с рейтингом выше 0 в определенную папку.

<?
// определяем пользователя
$user_name=str_replace(array("\n","\r"),"",shell_exec ("whoami"));
// путь к SQLite3 базе Banshee
$db="/home/".$user_name."/.config/banshee-1/banshee.db";
// папка фонотеки
$file_start="/home/".$user_name."/Музыка/";
// узнаем куда копировать
$copy_to=$_SERVER['argv'][1];

print "| Banshee-1 | Copy favorite music to folder | SovGVD@gmail.com (2009) | v0.1 |\n";
print "------------------------------------------------------------------------------\n";

if ($copy_to=='') die ("ERROR: false destination\nuse: php script_name.php path_to_folder\n");
$db = new SQLite3($db);
$result = $db->query('select Uri from CoreTracks where rating>0');
$arr=array();
while($tmp=$result->fetchArray()) {
   if (!stristr($tmp['Uri'],'file://')) {
      $arr[]=$tmp['Uri'];
   }
}
$db->close();

reset ($arr);
while (list($key,$val)=each($arr)) {
   $tmp_file=$file_start.$val;
   print $val." ";
   if (@copy($tmp_file, $copy_to.basename($val))) {
      print " [ok]";
   } else {
      print " [false]";
   }
   print "\n";
}
?>


Требует:
      php и php-SQLite3
Запуск:
      php script_name.php /media/disk/audio/
где /media/disk/audio/ — куда мы будем копировать (слеш в начале и конце обязательны)

PS: надеюсь кто нибудь перепишет это с GUI =)
PPS: попозже сделаю версию чтобы в папку копировались файлы не с оригинальным названием файла, а %альбом% — %исполнитель% — %название% — как выяснилось в коллекции много TrackXX.mp3
Tags:
Hubs:
Total votes 10: ↑8 and ↓2+6
Comments7

Articles