#!/usr/bin/perl
BEGIN{ $| = 1; print "Content-type: text/xml\n\n"; open(STDERR, ">&STDOUT"); }


local @sitemap=();


#---------------------------------------------
#親・複数ディレクトリ
&makeing('./');

#子カテゴリー取得
opendir(DIR, "./");
@dirs=readdir(DIR);
closedir(DIR);

foreach $line ( @dirs ) { 
	if(-f "./$line/sitemap.xml" && $line =~ /[a-z]/){
		&makeing('./'.$line.'/');
	}
}

#ページの取得確認
#--------------------------------------------
sub makeing{
	
	my ($xmldir) = @_;
	
	#----------------------------------------
	#初期ライブラリ読み込み
	$initfile= $xmldir.'cgi/init.cgi';

	if($initfile){
		if(!-e $initfile){
			&error($initfile.'がありません。');
		}
		require "$initfile";
	} 
	
	#----------------------------------------
	#noindex枠
	my %noindex = ();
	#noindex加工
	open FILE,"cgi/log/footer.log" || &error("cgi/log/footer.logが開けません。");
	while(<FILE>){
		$_ =~ s/\n//;
		($no,$fofile,$foname,$foshow,$fokai,$act,$fofoow,$engine)=split(/,/,$_);
		if($engine){
			$noindex{"$fofile\.html"}=1;
		}
	}
	close FILE;
	

	#----------------------------------------
	#メインカテゴリ
	open FILE,$xmldir."cgi/log/category.log" || &error("categorylogが開けません。");
	$hd=<FILE>;
	while(<FILE>){
		($no,$tm,$file_name)=split(/,/,$_);
		if($noindex{"$file_name\.html"}){next;}
		if($file_name eq "index"){
			push(@sitemap,"$site");
		}elsif($file_name){
			push(@sitemap,"$site$file_name.html");
		}
	}
	close FILE;
	open FILE,$xmldir."cgi/log/free.log" || &error("freelogが開けません。");
	$hd=<FILE>;
	while(<FILE>){
		my ($no,$tm,$file_name,$cate_name,$midasi,$msize,$des,$key,$glink,$gwin,$img5,$gtxt,$gname,$blockname,$blockimg,$blockkiji,$show,$waku,$ptitle,$textlink,$motoimg,$motoonm_img,$cate_txt,$syurui,$imghtml1,$imghtml2,$imgset1,$imgset2,$imghtml1src,$imghtml2src,$smart_show,$htmlhead,$htmlbodyup,$htmlbodydw,$catchcopy,$catchcolor,$catchback,$catchcopylcr,$catchsize,$catchffamily,$imgcatch,$imgcatch2,$titletype,$catchcopysp,$catchcolorsp,$catchbacksp,$catchcopylcrsp,$catchsizesp,$catchffamilysp,$imgcatchsp,$imgcatchsp2,$titletypesp,$smart_show_link,$block_show_link,$imgcatch2_name,$imgcatchsp2_name,$freenum,$snsbutton,$snslink)=split(/,/,$_);
		if($noindex{"$file_name\.html"}){next;}
		if($file_name && $smart_show eq 'sp'){
			push(@sitemap,$site."smartphone/$file_name.html");
		}else{
			push(@sitemap,"$site$file_name.html");
		}
	}
	close FILE;

	#----------------------------------------
	#子カテゴリ
	foreach $line ( @CATEGORY ) { 
		$catecnt++;
		my ($name,$clink) = split(/\=\>/,$line);
		if($name eq '基本カテゴリ'){next;}
		$clink =~ s/$site//ig;
		$clink =~ s/\/cgi\/admin\.cgi//ig;
		
	
		#----------------------------------------
		#noindex枠
		my %noindex = ();
		#noindex加工
		open FILE,"$clink/cgi/log/footer.log" || &error("$clink/cgi/log/footer.logが開けません。");
		while(<FILE>){
			$_ =~ s/\n//;
			($no,$fofile,$foname,$foshow,$fokai,$act,$fofoow,$engine)=split(/,/,$_);
			if($engine){
				$noindex{"$fofile\.html"}=1;
			}
		}
		close FILE;
	
		#navi
		open FILE,$xmldir."$clink/cgi/log/category.log" || &error("categorylogが開けません。");
		$hd=<FILE>;
		while(<FILE>){
			my ($no,$tm,$file_name,$cate_name,$cate_img,$cate_txt,$syurui,$midasi,$msize,$onm_img,$onc_img,$nolimg,$des,$key,$glink,$gwin,$img5,$gtxt,$gname,$blockname,$blockimg,$blockkiji,$show,$waku,$ptitle,$textlink,$imghtml1,$imghtml2,$imgset1,$imgset2,$imghtml1src,$imghtml2src,$smart_show,$htmlhead,$htmlbodyup,$htmlbodydw)=split(/,/,$_);
			if($noindex{"$file_name\.html"}){next;}
			if($file_name && $smart_show eq 'sp'){
				if($file_name eq "index"){
					push(@sitemap,$site."smartphone/$clink/");
				}elsif($file_name){
					push(@sitemap,$site."smartphone/$clink/$file_name.html");
				}
			}elsif($file_name){
				if($file_name eq "index"){
					push(@sitemap,"$site$clink/");
				}elsif($file_name){
					push(@sitemap,"$site$clink/$file_name.html");
				}
			}
			
		}
		close FILE;
		#free
		open FILE,$xmldir."$clink/cgi/log/free.log" || &error("freelogが開けません。");
		$hd=<FILE>;
		while(<FILE>){
			my ($no,$tm,$file_name,$cate_name,$midasi,$msize,$des,$key,$glink,$gwin,$img5,$gtxt,$gname,$blockname,$blockimg,$blockkiji,$show,$waku,$ptitle,$textlink,$motoimg,$motoonm_img,$cate_txt,$syurui,$imghtml1,$imghtml2,$imgset1,$imgset2,$imghtml1src,$imghtml2src,$smart_show,$htmlhead,$htmlbodyup,$htmlbodydw,$catchcopy,$catchcolor,$catchback,$catchcopylcr,$catchsize,$catchffamily,$imgcatch,$imgcatch2,$titletype,$catchcopysp,$catchcolorsp,$catchbacksp,$catchcopylcrsp,$catchsizesp,$catchffamilysp,$imgcatchsp,$imgcatchsp2,$titletypesp,$smart_show_link,$block_show_link,$imgcatch2_name,$imgcatchsp2_name,$freenum,$snsbutton,$snslink)=split(/,/,$_);
			if($noindex{"$file_name\.html"}){next;}
			if($file_name && $smart_show eq 'sp'){
				push(@sitemap,$site."smartphone/$clink/$file_name.html");
			}elsif($file_name){
				push(@sitemap,"$site$clink/$file_name.html");
			}
		}
		close FILE;
	}

	#----------------------------------------
	#news
	open FILE,$xmldir."cgi/log/news.log";
	my @news=<FILE>;
	close FILE;

	$newsmax = @news;
	if($newsmax>1){
		push(@sitemap,$site."news.cgi");
	}


	#----------------------------------------
	#blog
	if($linksystem_domain){

		if(-f $xmldir."businessblog"){
			opendir(DIR,'./cgi/log/accessup/comment');
			my @LOGLIST = readdir(DIR);
			closedir(DIR);

			foreach $line(@LOGLIST){
				if (! -f $xmldir."cgi/log/accessup/comment/$line" || $line !~ /log$/ || $line eq 'lot.log'){next;}
				open BLOG,$xmldir."cgi/log/accessup/comment/$line";
				my @commentlog=<BLOG>;
				close BLOG;
				$line =~ s/\.log|\n//ig;
				
				my $parmalink = $commentlog[4];
				$parmalink =~ s/\n//ig;
				if($parmalink){
					push(@sitemap,$site."businessblog/$parmalink");
				}else{
					push(@sitemap,$site."businessblog/$line.html");
				}
				$blogmode=1;
			}

			if($blogmode){
				push(@sitemap,$site."businessblog/");
				push(@sitemap,$site."businessblog/list");
			}
		}

		if($BLOGLIST[1]){
			foreach $line ( @BLOGLIST ) { 
				my ($name,$clink) = split(/\=\>/,$line);
				if($clink eq 'business'){undef $clink;}
				if(!$clink){next;}
				
				my $blogdir = $xmldir."cgi/log/".$clink."blog";
				my $bloguri = $clink."blog";
				
				if(-f "$bloguri"){
				
					opendir(DIR,"$blogdir/comment");
					my @LOGLIST = readdir(DIR);
					closedir(DIR);

					foreach $line(@LOGLIST){
						if (! -f "$blogdir/comment/$line" || $line !~ /log$/ || $line eq 'lot.log'){next;}
						
						open BLOG,"$blogdir/comment/$line";
						my @commentlog=<BLOG>;
						close BLOG;
						$line =~ s/\.log|\n//ig;
						
						my $parmalink = $commentlog[4];
						$parmalink =~ s/\n//ig;
						if($parmalink){
							push(@sitemap,$site."$bloguri/$parmalink");
						}else{
							push(@sitemap,$site."$bloguri/$line.html");
						}
						
						$blogmode=1;
					}

					if($blogmode){
						push(@sitemap,$site."$bloguri/");
						push(@sitemap,$site."$bloguri/list");
					}
				}
			}
		}

	}

}


#----------------------------------------
#展開オープン
$sitemapxml ='<?xml version="1.0" encoding="UTF-8"?>'."\n";
$sitemapxml.='<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" >'."\n";
foreach $line ( @sitemap ) { 
	$sitemapxml.='<url><loc>'.$line.'</loc></url>'."\n";
}
$sitemapxml.='</urlset>'."\n";


print $sitemapxml;
exit;

