summaryrefslogtreecommitdiff
path: root/build_playlists.plx
diff options
context:
space:
mode:
Diffstat (limited to 'build_playlists.plx')
-rwxr-xr-xbuild_playlists.plx39
1 files changed, 39 insertions, 0 deletions
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";
+}