summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xbuild_db.plx2
-rwxr-xr-xbuild_playlists.plx39
3 files changed, 41 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index aa349a0..3eef9b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,5 @@
!.gitignore
!build_db.plx
+!build_playlists.plx
!shared.pl
diff --git a/build_db.plx b/build_db.plx
index e98423a..7d2cf04 100755
--- a/build_db.plx
+++ b/build_db.plx
@@ -237,7 +237,7 @@ if (!$options{append}){
else {
for my $i (sort(keys %columns)){
$statement = "SELECT COUNT(*) AS CNTREC FROM pragma_table_info('$table_name') WHERE name='$i';";
- if (db_cmd($dbh, $statement) == 0){
+ if (!db_cmd($dbh, $statement)){
$statement = "ALTER TABLE $table_name ADD COLUMN \"$i\";";
db_cmd($dbh, $statement);
}
diff --git a/build_playlists.plx b/build_playlists.plx
new file mode 100755
index 0000000..433c0a1
--- /dev/null
+++ b/build_playlists.plx
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use DBI;
+use File::HomeDir;
+
+require "./shared.pl";
+
+# Variables to be set by the user
+our $dbname = File::HomeDir->my_home . "/Music/library.db";
+our $output_dir; # By default, output in current directory
+our $table_name = "LIBRARY";
+
+my $statement; #Hold statements for sqlite
+
+
+# Write to an m3u file to create a playlist
+# @_[0] -> m3u file path
+# @_[1] -> array of file paths
+sub append_to_m3u {
+ open FH, ">> $_[0]" or die $!;
+
+ for my $line ($_[1]){
+ print FH $line;
+ }
+
+ close FH;
+}
+
+my $dbh = DBI->connect("DBI:SQLite:dbname=$dbname", "", "", { RaiseError => 1}) or die $DBI::errstr;
+# DEBUG
+print "Opened database successfully\n";
+
+# Check that table exists
+$statement = "SELECT count(*) FROM sqlite_master WHERE type='table' AND name='$table_name';";
+if (!db_cmd($dbh, $statement)){
+ die "Error: table \"$table_name\" does not exist in $dbname";
+}