]> git.donarmstrong.com Git - infobot.git/blob - scripts/dbm2mysql.pl
Initial revision
[infobot.git] / scripts / dbm2mysql.pl
1 #!/usr/bin/perl
2 # by the xk.
3 ###
4
5 require "src/logger.pl";
6 require "src/core.pl";
7
8 require "src/Misc.pl";
9 require "src/Files.pl";
10 package MYSQL;
11 require "src/Factoids/db_mysql.pl";
12 package DBM;
13 require "src/Factoids/db_dbm.pl";
14 package main;
15
16 if (!scalar @ARGV) {
17     print "Usage: dbm2mysql <whatever dbm>\n";
18     print "Example: dbm2mysql.pl apt\n";
19     print "NOTE: suffix '-is' and '-extra' are used.\n";
20     exit 0;
21 }
22
23 my $dbfile = shift;
24 my $key;
25 my %db;
26
27 ### open all the data...
28 &loadConfig("files/infobot.config");
29 $dbname = $param{'DBFile'};
30 my $dbh_mysql = MYSQL::openDB();
31 DBM::openDB();
32
33 print "scalar db == '". scalar(keys %db) ."'.\n";
34
35 my ($ndef, $i) = (1,1);
36 my $factoid;
37 foreach $factoid (keys %db) {
38     foreach (@DBM::extra_format) {
39         my $val = &DBM::getFactInfo($key, $_, $db{$key});
40         if (!defined $val) {
41             $ndef++;
42             next;
43         }
44         &MYSQL::setFactInfo($key, $_, $val); # fact, type, what
45     }
46     $i++;
47     print "i=$i... " if ($i % 100 == 0);
48     print "ndef=$ndef... " if ($ndef % 1000 == 0);
49 }
50
51 print "Done.\n";