From: djmcgrath Date: Sun, 25 Jan 2009 02:05:38 +0000 (+0000) Subject: * Fixed script for importing factpacks X-Git-Url: https://git.donarmstrong.com/?p=infobot.git;a=commitdiff_plain;h=aed1ee654268d3a60382f9ba914ed02665f7c455 * Fixed script for importing factpacks - should now use needed infobot startup code - converts tabs to spaces now - deals with comments and empty lines - rename of insertDB.pl to factpack.pl in next commit git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk@1857 c11ca15a-4712-0410-83d8-924469b57eb5 --- diff --git a/ChangeLog b/ChangeLog index 749fd2d..ff2ced0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 1.5.4 ===== +* scripts/insertDB.pl +- renamed to factpack.pl +- should work properly now (needs testing) + * Updates to DebianExtra.pl: - use soap for bug_info - totally replace do_id with the copy from DebianBugs.pl diff --git a/scripts/insertDB.pl b/scripts/insertDB.pl index 1206414..6bb60d9 100755 --- a/scripts/insertDB.pl +++ b/scripts/insertDB.pl @@ -3,36 +3,81 @@ $| = 1; use strict; +use vars qw($bot_base_dir $bot_src_dir $bot_misc_dir $bot_state_dir + $bot_data_dir $bot_config_dir $bot_log_dir $bot_run_dir + $bot_pid $memusage %param +); -require "src/core.pl"; -require "src/logger.pl"; -require "src/modules.pl"; -require "src/Factoids/DBCommon.pl"; -&loadConfig( $bot_config_dir . "/infobot.config" ); +# Check for arguments +if ( !scalar @ARGV ) { + print "Usage: $0 [ ...]\n"; + print "Example: $0 areacodes.fact usazips.fact\n"; + exit 1; +} + + +# set any $bot_*_dir var's +$bot_base_dir = '.'; +$bot_config_dir = 'files/'; +$bot_data_dir = 'files/'; +$bot_state_dir = 'files/'; +$bot_run_dir = '.'; +$bot_src_dir = "$bot_base_dir/src"; +$bot_log_dir = "$bot_base_dir/log"; +$bot_misc_dir = "$bot_base_dir/files"; +$bot_pid = $$; + +require "$bot_src_dir/logger.pl"; +require "$bot_src_dir/core.pl"; +require "$bot_src_dir/modules.pl"; + +# Initialize enough to get DB access +&setupConfig(); +&loadCoreModules(); &loadDBModules(); +&loadFactoidsModules(); +&setup(); -unless (@_) { - print "hrm.. usage\n"; +if ( !scalar @ARGV ) { + print "Usage: $0 [ ...]\n"; + print "Example: $0 areacodes.fact usazips.fact\n"; exit 0; } -foreach (@_) { +foreach (@ARGV) { next unless ( -f $_ ); + my $file = $_; - open( IN, $_ ) or die "error: cannot open $_\n"; - print "Opened $_ for input...\n"; + open( IN, $file ) or die "error: cannot open $file\n"; + print "Opened $file for input...\n"; print "inserting... "; while () { - next unless (/^(.*?) => (.*)$/); + chomp; + next if /^#/; + next unless (/=>/); + + # Split into "key => value" pairs + my ($key, $value) = split(/=>/,$_,2); + + # Strip extra begin/end whitespace + $key =~ s/^\s*(.*?)\s*$/$1/; + $value =~ s/^\s*(.*?)\s*$/$1/; + + # convert tabs + $key =~ s/\t/ /g; + $value =~ s/\t/ /g; ### TODO: check if it already exists. if so, don't add. - &setFactInfo( $1, "factoid_value", $2 ); - print ":: $1 "; + ### TODO: combine 2 setFactInfo's into single + &setFactInfo( $key, "factoid_value", $value ); + &setFactInfo( $key, "created_by", $file ); + print ":: $key "; } close IN; } +print "...Done!\n"; # vim:ts=4:sw=4:expandtab:tw=80