summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/feed-browser/includes/.mtn2git_empty0
-rw-r--r--contrib/feed-browser/includes/functions.inc504
-rw-r--r--contrib/feed-browser/index.php474
-rw-r--r--contrib/feed-browser/update.php36
4 files changed, 507 insertions, 507 deletions
diff --git a/contrib/feed-browser/includes/.mtn2git_empty b/contrib/feed-browser/includes/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/contrib/feed-browser/includes/.mtn2git_empty
diff --git a/contrib/feed-browser/includes/functions.inc b/contrib/feed-browser/includes/functions.inc
new file mode 100644
index 0000000000..d18b129650
--- /dev/null
+++ b/contrib/feed-browser/includes/functions.inc
@@ -0,0 +1,504 @@
+<?php
+/*
+ * (c) Koen Kooi 2006
+ * (c) Marcin Juszkiewicz 2006
+ *
+ * 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 of the License.
+ *
+ * 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 Library General Public License along
+ * with this library; see the file COPYING.LIB. If not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * USA.
+ *
+ */
+
+error_reporting(E_ALL);
+
+define('DB_FILENAME', './feeds.db');
+
+function db_query($query)
+{
+ $result = FALSE;
+
+ if($db_h = sqlite_open(DB_FILENAME))
+ {
+ $query_h = sqlite_query ($db_h, $query);
+ $result = sqlite_fetch_all ($query_h, SQLITE_ASSOC);
+ sqlite_close($db_h);
+ }
+
+ return $result;
+}
+
+
+function db_query_n($query)
+{
+ $result = FALSE;
+
+ if($db_h = sqlite_open(DB_FILENAME))
+ {
+ $query_h = sqlite_query ($db_h, $query);
+ sqlite_close($db_h);
+ }
+
+ return $result;
+}
+
+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 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&amp;g=%s' title='packages which names begins with \"%s\"'>%s</a> |", $letter, $letter, $letter );
+ }
+ }
+
+ $ipkgoutput .= " <a href='?action=letter&amp;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&amp;pnm=%s'>%s</a></td><td><a href=\"?action=section&amp;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&amp;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&amp;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&amp;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);
+ }
+}
+
+
+
+?>
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&amp;g=%s' title='packages which names begins with \"%s\"'>%s</a> |", $letter, $letter, $letter );
- }
- }
-
- $ipkgoutput .= " <a href='?action=letter&amp;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&amp;pnm=%s'>%s</a></td><td><a href=\"?action=section&amp;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&amp;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&amp;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&amp;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);
- }
-}
-
-?>
diff --git a/contrib/feed-browser/update.php b/contrib/feed-browser/update.php
index 2e12a0481c..ed7d6e47ef 100644
--- a/contrib/feed-browser/update.php
+++ b/contrib/feed-browser/update.php
@@ -16,6 +16,7 @@
*
*/
+require_once 'includes/functions.inc';
/*
A package entry looks like this:
@@ -35,13 +36,11 @@
Description: IPv4 link-local address allocator
*/
-error_reporting(E_ALL);
+check_database();
$start = time();
$p_count = 0;
-define('DB_FILENAME', './feeds.db');
-
$feeds = db_query("SELECT f_name, f_uri FROM feeds");
foreach($feeds as $feed)
@@ -172,35 +171,4 @@ function insert_ipkgs(&$package_info)
)");
}
-
-function db_query($query)
-{
- $result = FALSE;
-
- if($db_h = sqlite_open(DB_FILENAME))
- {
- $query_h = sqlite_query ($db_h, $query);
- $result = sqlite_fetch_all ($query_h, SQLITE_ASSOC);
- sqlite_close($db_h);
- }
-
- return $result;
-}
-
-
-function db_query_n($query)
-{
- $result = FALSE;
-
- if($db_h = sqlite_open(DB_FILENAME))
- {
- $query_h = sqlite_query ($db_h, $query);
- sqlite_close($db_h);
- }
-
- return $result;
-}
-
-
-
?>