]> git.donarmstrong.com Git - infobot.git/blobdiff - scripts/dbm2mysql.pl
* Rebranding from blootbot to infobot
[infobot.git] / scripts / dbm2mysql.pl
index b2c86774e67cc4decbdbaee9f59d42bf346f73b8..48825b041ad9325a46f40783c487db501eb49abf 100755 (executable)
@@ -2,17 +2,18 @@
 # by the xk.
 ###
 
-require "src/logger.pl";
 require "src/core.pl";
+require "src/logger.pl";
+require "src/modules.pl";
 
 require "src/Misc.pl";
 require "src/Files.pl";
-package MYSQL;
-require "src/Factoids/db_mysql.pl";
-package DBM;
-require "src/Factoids/db_dbm.pl";
+&loadDBModules();
+require "src/dbi.pl";
 package main;
 
+# todo: main()
+
 if (!scalar @ARGV) {
     print "Usage: dbm2mysql <whatever dbm>\n";
     print "Example: dbm2mysql.pl apt\n";
@@ -24,28 +25,34 @@ my $dbfile = shift;
 my $key;
 my %db;
 
-### open all the data...
-&loadConfig("files/infobot.config");
-$dbname = $param{'DBFile'};
-my $dbh_mysql = MYSQL::openDB();
-DBM::openDB();
+# open dbm.
+if (!dbmopen(%db, $dbfile, 0666)) {
+    &ERROR("Failed open to dbm file ($dbfile).");
+    exit 1;
+}
+&status("::: opening dbm file: $dbfile");
 
-print "scalar db == '". scalar(keys %db) ."'.\n";
+# open all the data...
+&loadConfig("files/infobot.config");
+$dbname = $param{'DBName'};
+my $dbh_mysql = sqlOpenDB($param{'DBName'},
+       $param{'DBType'}, $param{'SQLUser'}, $param{'SQLPass'});
+print "DEBUG: scalar db == '". scalar(keys %db) ."'.\n";
 
-my ($ndef, $i) = (1,1);
 my $factoid;
+my $ndef = 1;
+my $i = 1;
 foreach $factoid (keys %db) {
-    foreach (@DBM::extra_format) {
-       my $val = &DBM::getFactInfo($key, $_, $db{$key});
-       if (!defined $val) {
-           $ndef++;
-           next;
-       }
-       &MYSQL::setFactInfo($key, $_, $val); # fact, type, what
-    }
+    &sqlReplace("factoids", {
+       factoid_key     => $_,
+       factoid_value   => $db{$_},
+    } );
+
     $i++;
     print "i=$i... " if ($i % 100 == 0);
     print "ndef=$ndef... " if ($ndef % 1000 == 0);
 }
 
 print "Done.\n";
+&closeDB();
+dbmclose(%db);