#!/usr/bin/perl
#------------------------------------------------------------------------------
# Copyright (C) 2001 Thomax Kaulmann
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.



use DBI;
use OMA;



                  ##                       ##              ###
                  ##                                        ##
 ## ##    ####   #####   ####             ###   ## ###   #####    ####  ##   ##
#######  ##  ##   ##        ##             ##    ##  ## ##  ##   ##  ##  ## ##
## # ##  ######   ##     #####             ##    ##  ## ##  ##   ######   ###
## # ##  ##       ## ## ##  ##             ##    ##  ## ##  ##   ##      ## ##
##   ##   ####     ###   ### ##           ####   ##  ##  ### ##   ####  ##   ##
                                ########
sub meta_index {
  my $node = shift;
  my @row;
  my $st;
  my $ret;
    
  $st = $db->prepare(" 
    SELECT item.sid, item.description, item.link_item
    FROM  item
    WHERE item.node_sid = $node
    AND   item.type='meta'
    ORDER BY item.description
  ");
  $st->execute();
  while(@row=$st->fetchrow()) {
		$file="$row[0].html";
		$file=~s/\ /%20/g;
    $ret .= "
<a href=$file>$row[1]</a><p>
";
  }
  $st->finish();
  return($ret);
}



                                   ##              ###
                                                    ##
  ####   ##  ##  ####             ###   ## ###   #####    ####  ##   ##
 ##  ##  ##  ##     ##             ##    ##  ## ##  ##   ##  ##  ## ##
 ##  ##  ##  ##  #####             ##    ##  ## ##  ##   ######   ###
 ##  ##   ####  ##  ##             ##    ##  ## ##  ##   ##      ## ##
  ####     ##    ### ##           ####   ##  ##  ### ##   ####  ##   ##
                        ########
sub ova_index {
  my $node = shift;
  my @row;
  my $st;
  my $ret;
    
  $st = $db->prepare(" 
    SELECT item.sid, item.description, item.link_item,
            ova_page.dc__title,
            ova_page.dc__description__abstract
    FROM  item, ova_conn, ova_page
    WHERE item.node_sid = $node
    AND   item.type='ova'
    AND   item.sid = ova_conn.item_sid
    AND   ova_conn.ova_page = ova_page.id
    AND   ova_conn.location = ova_page.location
    ORDER BY item.description, ova_page.dc__title
  ");
  $st->execute();
  while(@row=$st->fetchrow()) {
		$file="$row[0].html";
		$file=~s/\ /%20/g;
		$row[4] =~ s/<(.)*>//g;
		$row[4] = substr($row[4],0,197) ."..." if(length($row[4]) > 197);
		$desc="";
		$desc = "$row[3]<br>" if($row[1] ne $row[3]);
    $ret .= "
<a href=$file>$row[1]</a><font size=-1>
<i>director:</i> $row[4]
<i>author:</i> $row[5]<br>
$desc
$row[4]</font><p>
";
  }
  $st->finish();
  return($ret);
}


                                   ##              ###
                                                    ##
  ####  ## ###   ####             ###   ## ###   #####    ####  ##   ##
 ##  ##  ### ##     ##             ##    ##  ## ##  ##   ##  ##  ## ##
 ##  ##  ##      #####             ##    ##  ## ##  ##   ######   ###
 ##  ##  ##     ##  ##             ##    ##  ## ##  ##   ##      ## ##
  ####  ####     ### ##           ####   ##  ##  ### ##   ####  ##   ##
                        ########
sub ora_index {
	my $node = shift;
  my @row;
  my $st;
  my $ret;
	
  $st = $db->prepare("
    SELECT item.sid, item.description, item.link_item,
            ora_page.dc__title,
            ora_page.dc__description__abstract
    FROM  item, ora_conn, ora_page
    WHERE item.node_sid = $node
    AND   item.type='ora'
    AND   item.sid = ora_conn.item_sid
    AND   ora_conn.ora_page = ora_page.id
    AND   ora_conn.location = ora_page.location
    ORDER BY item.description, ora_page.dc__title
  ");
  $st->execute();
	while(@row=$st->fetchrow()) {
		$file="$row[0].html";
		$file=~s/\ /%20/g;
		$row[4] =~ s/<(.)*>//g;
		$row[4] = substr($row[4],0,197) ."..." if(length($row[4]) > 197);
		$desc="";
		$desc = "$row[3]<br>" if($row[1] ne $row[3]);
    $ret .= "
<a href=$file>$row[1]</a><font size=-1>
<i>interpret:</i> $row[4]
<i>author:</i> $row[5]<br>
$desc
$row[4]</font><p>
";
	}
	$st->finish();
	return($ret);
}



                                   ##              ###
                                                    ##
  ####  ## ###   ####             ###   ## ###   #####    ####  ##   ##
 ##  ##  ##  ##     ##             ##    ##  ## ##  ##   ##  ##  ## ##
 ##  ##  ##  ##  #####             ##    ##  ## ##  ##   ######   ###
 ##  ##  #####  ##  ##             ##    ##  ## ##  ##   ##      ## ##
  ####   ##      ### ##           ####   ##  ##  ### ##   ####  ##   ##
        ####            ########
sub opa_index {
	my $node = shift;
  my @row;
  my $st;
  my $ret;
	
  $st = $db->prepare("
    SELECT item.sid, item.description, item.link_item,
            opa_page.dc__title,
            opa_page.dc__description__abstract
    FROM  item, opa_conn, opa_page
    WHERE item.node_sid = $node
    AND   item.type='opa'
    AND   item.sid = opa_conn.item_sid
    AND   opa_conn.opa_page = opa_page.id
    AND   opa_conn.location = opa_page.location
    ORDER BY item.description, opa_page.dc__title
  ");
  $st->execute();
	while(@row=$st->fetchrow()) {
		$file="$row[0].html";
		$file=~s/\ /%20/g;
		$row[4] =~ s/<(.)*>//g;
		$row[4] = substr($row[4],0,197) ."..." if(length($row[4]) > 197);
		$desc="";
		$desc = "$row[3]<br>" if($row[1] ne $row[3]);
    $ret .= "
<a href=$file>$row[1]</a><font size=-1>
<i>Author:</i> $row[5]
<i>Agency:</i> $row[4]<br>
$desc
$row[4]</font><p>
";
	}
	$st->finish();
	return($ret);
}



          ##                       ##              ###
          ##                                        ##
  ####   #####   ####             ###   ## ###   #####    ####  ##   ##
 ##  ##   ##        ##             ##    ##  ## ##  ##   ##  ##  ## ##
 ##  ##   ##     #####             ##    ##  ## ##  ##   ######   ###
 ##  ##   ## ## ##  ##             ##    ##  ## ##  ##   ##      ## ##
  ####     ###   ### ##           ####   ##  ##  ### ##   ####  ##   ##
                        ########
sub ota_index {
	my $node = shift;
  my @row;
  my $st;
  my $ret;
	
  $st = $db->prepare("
    SELECT item.sid, item.description, item.link_item,
            ota_page.dc__title,
            ota_page.dc__description__abstract
    FROM  item, ota_conn, ota_page
    WHERE item.node_sid = $node
    AND   item.type='ota'
    AND   item.sid = ota_conn.item_sid
    AND   ota_conn.ota_page = ota_page.id
    AND   ota_conn.location = ota_page.location
    ORDER BY item.description, ota_page.dc__title
  ");
  $st->execute();
	while(@row=$st->fetchrow()) {
		$file="$row[0].html";
		$file=~s/\ /%20/g;
		$row[4] =~ s/<(.)*>//g;
		$row[4] = substr($row[4],0,197) ."..." if(length($row[4]) > 197);
		$desc="";
		$desc = "$row[3]<br>" if($row[1] ne $row[3]);
    $ret .= "
<a href=$file>$row[1]</a><font size=-1>
<i>Author:</i> $row[5]
<i>Intro:</i> $row[4]<br>
$desc
$row[4]</font><p>
";
	}
	$st->finish();
	return($ret);
}



                                                          ##               ##
                                                          ##
## ###    ####  ##   ##  ####     ####    ####    ####   #####            ###
 ##  ##  ##  ## ## # ##     ##   ##      ##      ##  ##   ##               ##
 ##  ##  ###### ## # ##  #####    ####    ####   ######   ##               ##
 ##  ##  ##     ####### ##  ##       ##      ##  ##       ## ##            ##
 ##  ##   ####   ## ##   ### ##  #####   #####    ####     ###            ####
                                                                ########
           ###
            ##
## ###   #####    ####  ##   ##
 ##  ## ##  ##   ##  ##  ## ##
 ##  ## ##  ##   ######   ###
 ##  ## ##  ##   ##      ## ##
 ##  ##  ### ##   ####  ##   ##

sub newasset_index {
#    my $node = shift;
#  my @row;
#  my $st;
#  my $ret;
#   
#  $st = $db->prepare("
#    SELECT item.sid, item.description, item.link_item,
#            newasset_page.dc__title
#    FROM  item, newasset_conn, newasset_page
#    WHERE item.node_sid = $node
#    AND   item.type='newasset'
#    AND   item.sid = newasset_conn.item_sid
#    AND   newasset_conn.newasset_page = newasset_page.id
#    AND   newasset_conn.location = newasset_page.location
#    ORDER BY item.description, newasset_page.dc__title
#  ");
#  $st->execute();
#    while(@row=$st->fetchrow()) {
#        $file="$row[0].html";
#        $file=~s/\ /%20/g;
#        $row[6] =~ s/<(.)*>//g;
#        $row[6] = substr($row[6],0,197) ."..." if(length($row[6]) > 197);
#        $desc="";
#        $desc = "$row[3]<br>" if($row[1] ne $row[3]);
#    $ret .= "
#<a href=$file>$row[1]</a><font size=-1>
#<i>interpret:</i> $row[4]
#<i>author:</i> $row[5]<br>
#$desc
#$row[6]</font><p>
#";
#    }
#    $st->finish();
#    return($ret);
}




                ###                       ##
                 ##                       ##
## ###    ####   #####    ####    ####   #####
 ### ##  ##  ##  ##  ##  ##  ##  ##  ##   ##
 ##      ######  ##  ##  ##  ##  ##  ##   ##
 ##      ##      ##  ##  ##  ##  ##  ##   ## ##
####      ####  ## ###    ####    ####     ###
                                                ########
   ##              ###
                    ##
  ###   ## ###   #####    ####  ##   ##
   ##    ##  ## ##  ##   ##  ##  ## ##
   ##    ##  ## ##  ##   ######   ###
   ##    ##  ## ##  ##   ##      ## ##
  ####   ##  ##  ### ##   ####  ##   ##

sub reboot_index {
    my $node = shift;
  my @row;
  my $st;
  my $ret;
   
  $st = $db->prepare("
    SELECT item.sid, item.description, item.link_item,
            reboot_page.dc__title
    FROM  item, reboot_conn, reboot_page
    WHERE item.node_sid = $node
    AND   item.type='reboot'
    AND   item.sid = reboot_conn.item_sid
    AND   reboot_conn.reboot_page = reboot_page.id
    AND   reboot_conn.location = reboot_page.location
    ORDER BY item.description, reboot_page.dc__title
  ");
  $st->execute();
    while(@row=$st->fetchrow()) {
print "$row[0]\n";
        $file="$row[0].html";
        $file=~s/\ /%20/g;
        $row[6] =~ s/<(.)*>//g;
        $row[6] = substr($row[6],0,197) ."..." if(length($row[6]) > 197);
        $desc="";
        $desc = "$row[3]<br>" if($row[1] ne $row[3]);
    $ret .= "
<a href=$file>$row[1]</a><font size=-1>
<i>interpret:</i> $row[4]
<i>author:</i> $row[5]<br>
$desc
$row[6]</font><p>
";
    }
    $st->finish();
    return($ret);
}


##   ##            ##            ######         ##   ##
### ###           ####             ##           ###  ##
#######          ##  ##            ##           #### ##
#######          ##  ##            ##           ## ####
## # ##          ######            ##           ##  ###
##   ##          ##  ##            ##           ##   ##
##   ##          ##  ##          ######         ##   ##


$db = OMA::opendb();

$st=$db->prepare("SELECT * FROM node");
$st->execute();
while(@row=$st->fetchrow()) {

	($path,$path2,$opts) = OMA::pathandoptsbynode($row[0]);

	$meta_list = meta_index($row[0]);
	$meta_list = "<b>[Meta]</b><br>$meta_list<br><br>" if(length($meta_list)>1);

	$ova_list = ova_index($row[0]);
	$ova_list = "<b>[Film]</b><br>$ova_list<br><br>" if(length($ova_list)>1);

	$ora_list = ora_index($row[0]);
	$ora_list = "<b>[Audio]</b><br>$ora_list<br><br>" if(length($ora_list)>1);

	$opa_list = opa_index($row[0]);
	$opa_list = "<b>[Picture]</b><br>$opa_list<br><br>" if(length($opa_list)>1);

	$ota_list = ota_index($row[0]);
	$ota_list = "<b>[Text]</b><br>$ota_list<br><br>" if(length($ota_list)>1);

	$newasset_list = newasset_index($row[0]);
	$newasset_list = "<b>[Audio]</b><br>$newasset_list<br><br>" if(length($newasset_list)>1);

	$reboot_list = reboot_index($row[0]);
	$reboot_list = "<b>[reboot]</b><br>$reboot_list<br><br>" if(length($reboot_list)>1);

	if(!-d "$OMA::BASEPATH/$path") {
		system("mkdir -p \"$OMA::BASEPATH/$path\"");
		print("mkdir -p \"$OMA::BASEPATH/$path\"\n");
	}

	open(F,"> $OMA::BASEPATH/$path/index.html");
	print F "<body bgcolor=#ccffcc link=#cc66aa vlink=#bb5599 alink=#ffddee text=#555555>";


	print F "
<form method=post action=$OMA::OMABIN/usearch>
<table width=100% cellspacing=10 border=0>
<tr>

<td valign=top>
$path2
</td>

<td rowspan=2 align=right valign=top>
<img src=/oma/omasmart.png><br>
<font size=-1>
Search <input name=qstring size=10>
<input type=hidden name=conj value=AND>
</td>

</tr>
<tr>

<td valign=top>
$opts
</td>

</tr>
</table>
</form>

<center>
<table width=70% border=0>
<tr><td colspan=2>
<br>
<br>
$meta_list
$ova_list
$ora_list
$opa_list
$ota_list
$newasset_list
$reboot_list
</td></tr>
</table>
</center>
";
	close(F);

}
$st->finish();

