2013-05-11 23:03:00 +00:00
#!/usr/bin/perl
# A simple tool for importing PtokaX (< 0.5.0.0) users to uhub sqlite database.
# Userlist MUST be in xml format.
#
# Usage: ./px2uh_regimport.pl <ptokax_userlist.xml> <uhub_database.db>
#
# Note: uhub database has to be created before running this script.
use XML::Simple ;
use DBI ;
# create xml object
my $ xml = new XML:: Simple ;
# read XML file
my $ regdata = $ xml - > XMLin ( $ ARGV [ 0 ] , ForceArray = > [ 'RegisteredUser' ] ) ;
my $ dbfile = $ ARGV [ 1 ] ;
my @ pxaccounts = @ { $ regdata - > { 'RegisteredUser' } } ;
sub convertprofile
{
$ pxprofile = $ _ [ 0 ] ;
if ( $ pxprofile == 2 || $ pxprofile == 3 )
{
return 'user' ;
}
elsif ( $ pxprofile == 1 )
{
return 'operator' ;
}
elsif ( $ pxprofile == 0 )
{
return 'admin' ;
}
return 'unknown' ;
}
sub dbimport
{
my @ arr = @ _ ;
my $ db = DBI - > connect ( "dbi:SQLite:dbname=$dbfile" , "" , "" , { RaiseError = > 1 , AutoCommit = > 1 } ) ;
for my $ import ( @ arr )
{
if ( $ import - > { 'credentials' } ne 'unknown' )
{
$ db - > do ( "INSERT OR IGNORE INTO users (nickname,password,credentials) VALUES('$import->{'Nick'}','$import->{'Password'}','$import->{'credentials'}');" ) ;
}
}
$ db - > disconnect ( ) ;
}
for my $ account ( @ pxaccounts )
{
$ account - > { 'credentials' } = convertprofile $ account - > { 'Profile' } ;
}
2013-05-11 23:23:46 +00:00
dbimport @ pxaccounts ;