summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem.moulin@ens-lyon.org>2011-08-08 15:56:36 +0200
committerGuilhem Moulin <guilhem.moulin@ens-lyon.org>2011-08-08 15:56:36 +0200
commitef0fd3acd538e3ccd51502ed1482342771046fdf (patch)
treec353719bfa6ef7a57b25683c34ab2b854946e8fc
update db
-rwxr-xr-xvideomv.pl69
1 files changed, 69 insertions, 0 deletions
diff --git a/videomv.pl b/videomv.pl
new file mode 100755
index 0000000..cc894f2
--- /dev/null
+++ b/videomv.pl
@@ -0,0 +1,69 @@
+#! /usr/bin/perl -w
+
+# This program is free software. It comes without any warranty, to the
+# extent permitted by applicable law. You can redistribute it and/or
+# modify it under the terms of the Do What The Fuck You Want To Public
+# License, Version 2, as published by Sam Hocevar.
+# See http://sam.zoy.org/wtfpl/COPYING for more details.
+
+use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat
+ bundling auto_version auto_help);
+use DBI;
+use strict;
+
+
+# Database
+my $driver = "mysql";
+my $database = "videodb";
+my $hostname = "127.0.0.1";
+my $user = "videodb";
+my $port = 3306;
+my $password = "videodb";
+my $videodata = "videodb_videodata";
+
+################################################################################
+
+# Connect to database
+my $dsn = "DBI:$driver:database=$database;host=$hostname;port=$port";
+my $dbh = DBI->connect($dsn, $user, $password)
+ or die "Failed to connect; have you tried `mktunnel --sql' first?";
+
+# Use utf8
+$dbh->do( "set names utf8" ) or die;
+
+
+my ($from, $to) = @ARGV;
+
+
+my $RES =
+ $dbh->selectall_hashref ( "SELECT id,title,director FROM $videodata
+ WHERE filename = ?",
+ 'id', undef, $from
+ )
+ or die "Can't select: " . $dbh->errstr;
+
+my $nRES = scalar (keys %$RES);
+
+if ($nRES == 0) {
+ print STDERR "No entry found in the database: nothing to update there.\n";
+}
+elsif ($nRES > 1) {
+ print STDERR "$nRES > 1 entries found in the database: dunno what to update there.\n";
+}
+else {
+ my ($id,$v) = each %$RES;
+ print STDERR "Update filename for " . $v->{director} .
+ " - " . $v->{title} . ":\n";
+ print STDERR "`" . $from . "' -> `" . $to, "'\n";
+
+
+ $dbh->do ( "UPDATE $videodata SET filename = ? WHERE id = ?",
+ undef, $to, $id
+ )
+ or die "Can't update: " . $dbh->errstr;
+}
+
+
+
+# Disconnect
+$dbh->disconnect();