diff options
Diffstat (limited to 'contrib/feed-browser/index.php')
-rw-r--r-- | contrib/feed-browser/index.php | 474 |
1 files changed, 1 insertions, 473 deletions
diff --git a/contrib/feed-browser/index.php b/contrib/feed-browser/index.php index 3b1230ce22..b3fb41bcd8 100644 --- a/contrib/feed-browser/index.php +++ b/contrib/feed-browser/index.php @@ -30,9 +30,7 @@ * */ -error_reporting(E_ALL); - -define('DB_FILENAME', './feeds.db'); +require_once 'includes/functions.inc'; check_database(); @@ -69,7 +67,6 @@ switch($action) break; } - ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> @@ -87,472 +84,3 @@ switch($action) </div> </body> </html> -<?php - -function db_table_exists ($db, $mytable) -{ - if($query = sqlite_query ($db, "SELECT name FROM sqlite_master WHERE type='table'")) - { - $tables = sqlite_fetch_all ($query, SQLITE_ASSOC); - - if (!$tables) - { - return FALSE; - } - else - { - foreach ($tables as $table) - { - if ($table['name'] == $mytable) - { - return TRUE; - } - } - } - } - - // function which is expected to return something need to return something always - return FALSE; -} - -function db_query($query) -{ - $result = FALSE; - - if($db_h = sqlite_open(DB_FILENAME)) - { - if($query_h = sqlite_query ($db_h, $query)) - { - $result = sqlite_fetch_all ($query_h, SQLITE_ASSOC); - } - - sqlite_close($db_h); - } - - return ($result); -} - -function test_insert_ipkgs ($db) -{ - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-base', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/base') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-opie', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/opie') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-perl', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/perl') - "); - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-python', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/python') - "); - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-upgrades', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/upgrades') - "); - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-x11', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/x11') - "); - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-machine-c7x0', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/machine/c7x0') - "); - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-machine-spitz', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/machine/spitz') - "); - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-machine-akita', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/machine/akita') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-upgrades-machine-akita', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/upgrades/machine/akita') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-upgrades-machine-c7x0', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/upgrades/machine/c7x0') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-upgrades-machine-spitz', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/upgrades/machine/spitz') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('3541-upgrades-machine-tosa', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/upgrades/machine/tosa') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('354-base', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4/feed/base') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('354-opie', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4/feed/opie') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('354-x11', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4/feed/x11') - "); - - sqlite_query($db, - "INSERT INTO feeds (f_name, f_uri) - VALUES ('354-upgrades', 'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4/feed/upgrades') - "); - -} - -function searchletter($searchletter = '') -{ - $ipkgoutput = "<div id='letters'>"; - $alfabet = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y'); - - foreach($alfabet as $letter) - { - if($letter == $searchletter) - { - $ipkgoutput .= sprintf(" %s |", $letter ); - } - else - { - $ipkgoutput .= sprintf(" <a href='?action=letter&g=%s' title='packages which names begins with \"%s\"'>%s</a> |", $letter, $letter, $letter ); - } - } - - $ipkgoutput .= " <a href='?action=letter&g=z' title='packages which names begins with \"z\"'>z</a></div>"; - - return $ipkgoutput; -} - -function searchpkg ($searchword) -{ - if($result = db_query("SELECT DISTINCT p_name,p_desc,p_section FROM packages WHERE p_name LIKE '$searchword' ORDER BY p_name ASC")) - { - return generate_list_of_packages($result); - } -} - -function generate_list_of_packages($query_result) -{ - $ipkgoutput = "<table>\n"; - $ipkgoutput .="<tr><th>Package</th><th>Section</th><th>Description</th></tr>\n"; - - foreach($query_result as $package) - { - if (!strstr ($package['p_name'], 'locale')) - { - if(strlen($package['p_desc']) > 40) - { - $pos = strpos($package['p_desc'],' ', 40); - - if($pos) - { - $package['p_desc'] = substr($package['p_desc'], 0, $pos) . '...'; - } - } - - $ipkgoutput .= sprintf - ("<tr><td><a href='?action=details&pnm=%s'>%s</a></td><td><a href=\"?action=section&section=%s\">%s</a></td><td> %s</td></tr>\n", - urlencode($package['p_name']), $package['p_name'], $package['p_section'], $package['p_section'], htmlentities($package['p_desc'])); - } - - } - - $ipkgoutput .= '</table>'; - - return $ipkgoutput; -} - -function searchsection($section) -{ - if($result = db_query("SELECT DISTINCT p_name,p_desc,p_section FROM packages WHERE p_section LIKE '$section%' ORDER BY p_section ASC, p_name ASC")) - { - return generate_list_of_packages($result); - } -} - -function pkgdetails ($package) -{ - $result = db_query("SELECT * FROM packages,feeds - WHERE (packages.p_name='$package' OR packages.p_provides='$package') - AND feeds.f_name = packages.p_feed - ORDER BY packages.p_version DESC, feeds.f_name ASC, packages.p_arch DESC "); - - // display first result - - if ($result) - { - $package = $result[0]; - - $details = sprintf("<h1>Package details for %s %s</h1>", $package['packages.p_name'], $package['packages.p_version']); - $details .= sprintf ("<p id='description'>%s</p>", htmlentities($package['packages.p_desc'])); - $details .= "<dl>"; - - $details .= sprintf ("\n<dt>Maintainer:</dt><dd>%s</dd>", str_replace(array('@',', '), array(' at ', '<br />'), htmlentities($package['packages.p_maintainer']))); - - if($package['packages.p_homepage']) - { - $details .= sprintf ("\n<dt>Homepage:</dt><dd>%s</dd>", $package['packages.p_homepage']); - } - - if($package['packages.p_section']) - { - $details .= sprintf ("\n<dt>Section:</dt><dd><a href='?action=section&section=%s'>%s</a></dd>", $package['packages.p_section'],$package['packages.p_section']); - } - - if($package['packages.p_depends']) - { - $details .= sprintf ("\n<dt>Depends:</dt><dd>%s</dd>", addlinks ($package['packages.p_depends'])); - } - - if($package['packages.p_recommends']) - { - $details .= sprintf ("\n<dt>Recommends:</dt><dd>%s</dd>", addlinks ($package['packages.p_recommends'])); - } - - if($package['packages.p_replaces']) - { - $details .= sprintf ("\n<dt>Replaces:</dt><dd>%s</dd>", addlinks ($package['packages.p_replaces'])); - } - - if($package['packages.p_provides']) - { - $details .= sprintf ("\n<dt>Provides:</dt><dd>%s</dd>", addlinks ($package['packages.p_provides'])); - } - - if($package['packages.p_conflicts']) - { - $details .= sprintf ("\n<dt>Conflicts:</dt><dd>%s</dd>", addlinks ($package['packages.p_conflicts'])); - } - - $size = $package['packages.p_size']; - - if(strlen($size) > 6) - { - $size = sprintf("%02.2f Megabytes", $size / (1024 * 1024)); - } - - if(strlen($size) > 3 && strlen($size) < 7) - { - $size = sprintf("%02.2f Kilobytes", $size / (1024 )); - } - - if(strlen($size) < 4) - { - $size = sprintf("%s Bytes", $size); - } - - $details .= sprintf ("\n<dt>Size:</dt><dd>%s</dd></dl>", $size); - - if($package['packages.p_source']) - { - $sourcearray = explode (" ", $package['packages.p_source']); - - $details .= "\n<h2>Source:</h2><ul>"; - - foreach ($sourcearray as $key => $source_url) - { - if (substr ($source_url, 0, 4) == "http" || substr ($source_url, 0, 3) == "ftp") - { - $url_parts = parse_url($source_url); - - $details .= sprintf ("<li><a href='%s'>%s</a></li>", $source_url, array_pop(explode('/', $url_parts['path']))); - } - else - { - $details .= sprintf ("<li>%s</li>", $source_url); - } - } - - $details .= '</ul>'; - - } - - $details .= "\n<h2>Available versions and architectures:</h2><ul id='download'>\n"; - - foreach($result as $packages_a) - { - $details .= sprintf("\n<li><a class='download' href='%s' title='%s %s for %s'>%s %s</a> for %s (%s feed)</li>\n", - $packages_a['feeds.f_uri']."/".$packages_a['packages.p_file'], - $packages_a['packages.p_name'], - $packages_a['packages.p_version'], - $packages_a['packages.p_arch'], - $packages_a['packages.p_name'], - $packages_a['packages.p_version'], - $packages_a['packages.p_arch'], - $packages_a['feeds.f_name'] - ); - } - - $details .= "</ul>\n"; - } - else - { - $details = "<h1>Sorry, package not found\n</h1><a href='./'>return</a>\n"; - } - - return $details; -} - -function addlinks ($input) -{ - // split input elements up - $elements = explode (', ', $input); - - $offset = 0; - - foreach ($elements as $element) - { - // strip version number - $element = ereg_replace('^(.*)( \((.*)\))+$', '\\1', $element); - - // do we have this package in the db? - $result = db_query ("SELECT DISTINCT p_name FROM packages WHERE p_name='{$element}' OR p_provides='{$element}'"); - - if(isset($result[0]['p_name'])) - { - // find position of string in line - $pos = strpos ($input, $element, $offset); - $link = sprintf("<a href=\"?action=details&pnm=%s\">$element</a>", urlencode ($element)); - - // replace element with a link - $input = substr_replace ($input, $link, $pos, strlen ($element)); - - // update offset - $offset = ($pos + strlen ($link)); - } - else - { - $offset += strlen ($element); - } - } - - return $input; -} - -function sectionslist() -{ - $ipkgoutput = ''; - - if($result = db_query ("SELECT DISTINCT p_section FROM packages ORDER BY p_section")) - { - $ipkgoutput = "<ul id='sections'>\n"; - - $section_up = $result[0]['p_section']; - $section_level = FALSE; - $opie_top = FALSE; - - foreach($result as $item) - { - $section_name = $item['p_section']; - - if(0 === strpos($section_name, 'opie') AND !$opie_top) - { - $opie_top = TRUE; - - $section_up = 'opie'; - } - elseif($opie_top AND 0 !== strpos($section_name, 'opie')) - { - $opie_top = FALSE; - } - - if( - strpos($section_name, '/') // subsection - ) - { - if(0 === strpos($section_name, $section_up . '/')) // console/network are not part of console/net - { - if(!$section_level) - { - $ipkgoutput .= '<li><ul class="subsections">'; - } - - $section_name = str_replace($section_up . '/', '', $item['p_section']); - $section_level = TRUE; - } - } - elseif($section_level) - { - $section_up = $section_name; - $ipkgoutput .= '</ul></li>'; - $section_level = FALSE; - } - else - { - $section_up = $section_name; - } - - $ipkgoutput .= sprintf ("<li><a href='?action=section&section=%s' title='%s'>%s</a></li>", - urlencode($item['p_section']), - urlencode($item['p_section']), - $section_name); - } - - if($section_level) - { - $ipkgoutput .= '</ul></li>'; - } - - $ipkgoutput .= "</ul>\n"; - } - - return $ipkgoutput; -} - -function check_database() -{ - if($db = sqlite_open(DB_FILENAME)) - { - //initialize db - if (db_table_exists ($db, 'packages') === FALSE) - { - sqlite_query ($db, "CREATE TABLE packages ( - p_name varchar(50), - p_version varchar(10), - p_arch varchar(12), - p_depends varchar(50), - p_maintainer varchar(50), - p_homepage varchar(100), - p_section varchar(20), - p_replaces varchar(50), - p_provides varchar(50), - p_recommends varchar(50), - p_conflicts varchar(50), - p_size int(10), - p_md5 char(32), - p_source varchar(500), - p_feed varchar(20), - p_file varchar(100), - p_desc varchar(1000))"); - } - - if (db_table_exists ($db, 'feeds') === FALSE) - { - sqlite_query ($db, "CREATE TABLE feeds ( - f_name varchar(20), - f_uri varchar(100), - f_comments varchar(500))"); - - test_insert_ipkgs ($db) ; - } - - sqlite_close($db); - } -} - -?> |