From f766f742fc51cb0c49d6181d1b41ad32d39ced97 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Mon, 15 Apr 2019 14:34:54 +0200 Subject: [PATCH 1/1] --- README.rst | 5 ++ fill-cddb-template-from-rip.php | 83 +++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 README.rst create mode 100644 fill-cddb-template-from-rip.php diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..e023e44 --- /dev/null +++ b/README.rst @@ -0,0 +1,5 @@ +Usage:: + + $ cddb-tool template `cd-discid`\ + | ./fill-cddb-template-from-rip.php Musicalbumfolder > cdinfo.cddb + $ cddb-tool send cdinfo.cddb freedb-submit@freedb.org \ No newline at end of file diff --git a/fill-cddb-template-from-rip.php b/fill-cddb-template-from-rip.php new file mode 100644 index 0000000..fdea0c7 --- /dev/null +++ b/fill-cddb-template-from-rip.php @@ -0,0 +1,83 @@ +#!/usr/bin/env php + 'rock', + 'Rock' => 'rock', +]; +foreach ($files as $file) { + $info = shell_exec( + 'vorbiscomment' + . ' ' . escapeshellarg($file) + ); + $lines = explode("\n", $info); + + $data = []; + foreach ($lines as $line) { + $line = trim($line); + if ($line === '') { + continue; + } + $parts = explode('=', $line, 2); + if (count($parts) == 2) { + $data[$parts[0]] = $parts[1]; + } + } + + if (!isset($data['album']) + || !isset($data['artist']) + || !isset($data['title']) + || !isset($data['genre']) + || !isset($data['date']) + || !isset($data['tracknumber']) + ) { + echo "Meta data missing in $file:\n"; + var_dump($data); + exit(); + } + + $template = preg_replace( + "#DTITLE=.+\n#", + 'DTITLE=' + . $data['artist'] . ' / ' . $data['album'] + . "\n", + $template + ); + + $template = preg_replace( + "#DYEAR=\n#", + 'DYEAR=' . $data['date'] . "\n", + $template + ); + + $template = preg_replace( + "#DGENRE=\n#", + 'DGENRE=' . $data['genre'] . "\n", + $template + ); + + if (isset($genreCategoryMap[$data['genre']])) { + $template = preg_replace( + "|#CATEGORY=.+\n|", + 'CATEGORY=' . $genreCategoryMap[$data['genre']] . "\n", + $template + ); + } + + $track = intval($data['tracknumber']) - 1; + $template = preg_replace( + "#TTITLE" . $track . "=.+\n#", + 'TTITLE' . $track . '=' . $data['title'] . "\n", + $template + ); + + //var_dump($info, $data); + //die(); +} + +echo $template; +?> -- 2.30.2