Changeset 234

Show
Ignore:
Timestamp:
08/31/05 18:13:11 (3 years ago)
Author:
josef
Message:

- more or less complete feed generation

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/hotstuff/src/hotstuff-stuff.pl

    r231 r234  
    2222$conn || die DBI::errstr; 
    2323 
    24 my $query = "SELECT name, category, author FROM directory WHERE (validity IS NULL OR validity = '')"; 
     24my $query = "SELECT name, category, author, licence, rating, downloads, version, release, releasedate, " . 
     25        "summary_ref, preview_ref, payload_ref, name_ref " . 
     26        "FROM directory WHERE (validity IS NULL OR validity = '')"; 
    2527if($params::category ne ""){ 
    2628        $query = "$query AND category = '$params::category'"; 
     
    2830 
    2931my %results; 
    30 my ($name, $category, $author); 
    31 my $res2 = $conn->prepare($query); 
    32 $res2->execute(); 
    33 $res2->bind_columns(\$name, \$category, \$author); 
    34 while($res2->fetch()){ 
    35         my @res = ($name, $category, $author); 
    36         $results{$name} = \@res; 
     32my ($name, $category, $author, $licence, $rating, $downloads, $version, $release, $releasedate); 
     33my ($summary_ref, $preview_ref, $payload_ref, $name_ref); 
     34my $res = $conn->prepare($query); 
     35$res->execute(); 
     36$res->bind_columns(\$name, \$category, \$author, \$licence, \$rating, \$downloads, \$version, \$release, \$releasedate, 
     37        \$summary_ref, \$preview_ref, \$payload_ref, \$name_ref); 
     38while($res->fetch()){ 
     39        my ($email, $im, $realname); 
     40        my $res2 = $conn->prepare("SELECT email, im, realname FROM authors WHERE name = '$author'"); 
     41        $res2->execute(); 
     42        $res2->bind_columns(\$email, \$im, \$realname); 
     43        $res2->fetch(); 
     44 
     45        my ($licencename, $licenceurl); 
     46        my $res2 = $conn->prepare("SELECT name, url FROM licences WHERE licence = '$licence'"); 
     47        $res2->execute(); 
     48        $res2->bind_columns(\$licencename, \$licenceurl); 
     49        $res2->fetch(); 
     50 
     51        my ($summary, $preview, $payload); 
     52        my $res2 = $conn->prepare("SELECT content FROM contents WHERE index = '$summary_ref' AND type = 'summary'"); 
     53        $res2->execute(); 
     54        $res2->bind_columns(\$summary); 
     55        $res2->fetch(); 
     56        $res2->finish(); 
     57        my $res2 = $conn->prepare("SELECT content FROM contents WHERE index = '$preview_ref' AND type = 'preview'"); 
     58        $res2->execute(); 
     59        $res2->bind_columns(\$preview); 
     60        $res2->fetch(); 
     61        $res2->finish(); 
     62        my $res2 = $conn->prepare("SELECT content FROM contents WHERE index = '$payload_ref' AND type = 'payload'"); 
     63        $res2->execute(); 
     64        $res2->bind_columns(\$payload); 
     65        $res2->fetch(); 
     66        $res2->finish(); 
     67 
     68        my @result = ($name, $category, $author, $email, $im, $realname, $licence, $licencename, $licenceurl, $rating, 
     69                $downloads, $version, $release, $releasedate, $summary, $preview, $payload); 
     70        $results{$name} = \@result; 
    3771} 
    3872 
     
    4680foreach my $resultkey(keys(%results)){ 
    4781        my $resref = $results{$resultkey}; 
    48         my @res = @$resref; 
    49         my ($name, $category, $author) = @res; 
     82        my @result = @$resref; 
     83        my ($name, $category, $author, $email, $im, $realname, $licence, $licencename, $licenceurl, $rating, 
     84                $downloads, $version, $release, $releasedate, $summary, $preview, $payload) = @result; 
     85 
     86        if($realname){ 
     87                $author = $realname; 
     88        } 
     89        my %authorinfo = (); 
     90        if($email ne ""){ 
     91                $authorinfo{"email"} = $email; 
     92        } 
     93        if($im ne ""){ 
     94                $authorinfo{"im"} = $im; 
     95        } 
     96 
     97        my %licenceinfo = (); 
     98        if($licencename ne ""){ 
     99                $licenceinfo{"name"} = $licencename; 
     100        } 
     101        if($licenceurl ne ""){ 
     102                $licenceinfo{"url"} = $licenceurl; 
     103        } 
    50104 
    51105        $writer->startTag("stuff", "category" => $category); 
    52106        $writer->dataElement("name", $name); 
    53         $writer->dataElement("author", $author); 
     107        $writer->dataElement("author", $author, %authorinfo); 
     108        $writer->dataElement("licence", $licence, %licenceinfo); 
     109        $writer->dataElement("rating", $rating); 
     110        $writer->dataElement("downloads", $downloads); 
     111        $writer->dataElement("version", $version); 
     112        $writer->dataElement("release", $release); 
     113        $writer->dataElement("releasedate", $releasedate); 
     114        #$writer->dataElement("", $); 
     115        $writer->dataElement("summary", $summary); 
     116        $writer->dataElement("preview", $preview); 
     117        $writer->dataElement("payload", $payload); 
    54118        $writer->endTag("stuff"); 
    55119}