Arty
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вот конвертация мемберов Код: #!/usr/bin/perl ##################################################### # UBB -> Ikonboard Member convertor # ###################################################### use CGI; use Time::Local; my $query = new CGI; print $query->header; print start_html; ### Enter the path to your UBB members dir, please remember the trailing slash! $UBBmember = "/usr/home/localhost/cgi-bin/bankforum/Members/"; ## Enter the path to the IB members dir, please add the trailing slash! $ikonmember = "/usr/home/localhost/cgi-bin/ikonboard/members/"; ### Being Program $ending = ".cgi"; $membernumber = 00000001; while ($membernumber < 10000){ if ($membernumber < 10) { $membernumber = "0000000$membernumber"; } elsif ($membernumber < 100) { $membernumber = "000000$membernumber"; } elsif ($membernumber < 1000) { $membernumber = "00000$membernumber"; } elsif ($membernumber < 10000) { $membernumber = "0000$membernumber"; } if (open(UBBMEMBERINFO,"$UBBmember$membernumber$ending")){ @ubbmemberinfo = <UBBMEMBERINFO>; print "Opened $UBBmember$membernumber$ending<BR>\n"; close(UBBMEMBERINFO); print "Closed $UBBmember$membernumber$ending<BR>\n"; chop (@ubbmemberinfo[0]); chop (@ubbmemberinfo[1]); chop (@ubbmemberinfo[2]); chop (@ubbmemberinfo[3]); chop (@ubbmemberinfo[4]); chop (@ubbmemberinfo[5]); chop (@ubbmemberinfo[6]); chop (@ubbmemberinfo[7]); chop (@ubbmemberinfo[8]); chop (@ubbmemberinfo[9]); chop (@ubbmemberinfo[10]); chop (@ubbmemberinfo[11]); chop (@ubbmemberinfo[12]); chop (@ubbmemberinfo[13]); chop (@ubbmemberinfo[14]); print "Choped 'em<BR>\n"; $name = "@ubbmemberinfo[0]"; print "$name<BR>\n"; $realname = $name; $name =~ s/ /_/gi; print "$name<BR>\n"; my ($month,$day,$year)=split /-/, @ubbmemberinfo[10]; $month--; unless ($year < 200) {$year-=1900} my $since=timegm(0,0,0,$day,$month,$year); $filetocheck = "$ikonmember" . "$name$ending"; if (-e $filetocheck) { print "Username ($realname) already taken by Ikonboard..."; next; } open(IKONMEMBERINFO,">$ikonmember$name$ending") || die ("opening the Ikonmembers directory failed, please check your paths!"); flock(IKONMEMBERINFO,2); print "@ubbmemberinfo[0]|@ubbmemberinfo[1]|Member|me|@ubbmemberinfo[7]|@ubbmemberinfo[2]|@ubbmemberinfo[11]|127.0.0.0|@ubbmemberinfo[3]||@ubbmemberinfo[13]|@ubbmemberinfo[6]|@ubbmemberinfo[9]|$since|Not Posted|@ubbmemberinfo[12]|| <BR>\n"; print IKONMEMBERINFO "$realname|@ubbmemberinfo[1]|Member|me|@ubbmemberinfo[7]|@ubbmemberinfo[2]|@ubbmemberinfo[11]|127.0.0.1|@ubbmemberinfo[3]||@ubbmemberinfo[13]|@ubbmemberinfo[6]|@ubbmemberinfo[9]|$since|Not Posted|@ubbmemberinfo[12]||\n"; flock(IKONMEMBERINFO,8); close(IKONMEMBERINFO); print "$realname converted to ikonboard successfully!"; } else { print "Member number $UBBmember$membernumber$ending doesn't exist.<BR>\n"; } $membernumber = $membernumber+1; } print " we're done \n"; print end_html; exit; | Добавлено А это конвертация топиков Код: #!/usr/bin/perl ##################################################### # UBB -> Ikonboard Topics convertor # ###################################################### use CGI; use Time::Local; my $query = new CGI; print $query->header; print start_html; $ubb_dir='/usr/home/localhost/htdocs/ubb/Forum1'; $ikon_dir='/usr/home/localhost/cgi-bin/ikonboard/forum1'; opendir(DIR,$ubb_dir); my @dir=readdir(DIR); closedir(DIR); my %postcount; foreach $file (@dir) { if ($file =~ /(\d+)\.cgi$/) { my $id=$1; $id=~s/^0+//; print "Processing $file :: post $id\n"; open(MM,"<$ubb_dir/$file")|| print "Cannot open /$file\n"; my @lines=<MM>; close(MM); my $def=shift(@lines); my @temp1=split /\|\|/, $def; my $title=$temp1[$temp1+4]; print "Processing $title\n"; my $starter=$temp1[3]; my $nb,$nbv,$start_date; chomp $title; my ($last_poster,$last_date); open(UBB,">$ikon_dir/$id.thd")||print "Cannot write to $ikon_dir/$id.thd\n"; for (@lines) { if (($_ eq '')||($_ eq "\n")) {next} my @temp=split(/\|\|/); $nb=$temp[1]; $nb=~s/^0+//; if ($nb eq '') {$nb=0;$nbv=1} else {$nbv=$nb} my ($month,$day,$year)=split /-/, $temp[3]; $month--; unless ($year < 200) {$year-=1900} $_=$temp[4]; /^(\d\d):(\d\d) (AM|PM)$/; my $hour=$1; $hour--; my $min=$2; my $pm=$3; if ($pm eq 'PM') {$hour+=12} my $date=timegm(0,$min,$hour,$day,$month,$year); unless ($start_date) {$start_date=$date} unless ($temp[6] =~ /\n$/) {$temp[6].="\n"} print UBB "$temp[2]\|$title\|\|yes\|no\|$date\|$temp[6]"; $last_poster=$temp[2]; $last_date=$date; $postcount{$temp[2]}|=0; $postcount{$temp[2]}++; } close(UBB); push(@all,"$id\|$title\|\|open\|$nb\|$nbv\|$starter\|$start_date\|$last_poster\|$last_date"); open(UBB,">$ikon_dir/$id.pl")||print "Cannot write to $ikon_dir/$id.pl\n"; print UBB "$id\|$title\|\|open\|$nb\|$nbv\|$starter\|$start_date\|$last_poster\|$last_date"; close(UBB); } } open(UBB,">$ikon_dir/list.cgi")||print "Cannot write to $ikon_dir/list.cgi\n"; for (reverse @all) {print UBB $_} close(UBB); |
| Всего записей: 13 | Зарегистр. 19-11-2001 | Отправлено: 17:43 28-01-2002 | Исправлено: Arty, 09:31 29-01-2002 |
|