From 6cd8d8fa7a0e88cbf52e0ea4901ad9b4b4686cce Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Fri, 25 Aug 2006 09:47:49 +0000 Subject: feed-browser: moved functions to include/functions.inc, updater check/create database now --- contrib/feed-browser/includes/.mtn2git_empty | 0 contrib/feed-browser/includes/functions.inc | 504 +++++++++++++++++++++++++++ 2 files changed, 504 insertions(+) create mode 100644 contrib/feed-browser/includes/.mtn2git_empty create mode 100644 contrib/feed-browser/includes/functions.inc (limited to 'contrib/feed-browser/includes') diff --git a/contrib/feed-browser/includes/.mtn2git_empty b/contrib/feed-browser/includes/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 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 @@ +"; + $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(" %s |", $letter, $letter, $letter ); + } + } + + $ipkgoutput .= " z"; + + 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 = "\n"; + $ipkgoutput .="\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 + ("\n", + urlencode($package['p_name']), $package['p_name'], $package['p_section'], $package['p_section'], htmlentities($package['p_desc'])); + } + + } + + $ipkgoutput .= '
PackageSectionDescription
%s%s %s
'; + + 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("

Package details for %s %s

", $package['packages.p_name'], $package['packages.p_version']); + $details .= sprintf ("

%s

", htmlentities($package['packages.p_desc'])); + $details .= "
"; + + $details .= sprintf ("\n
Maintainer:
%s
", str_replace(array('@',', '), array(' at ', '
'), htmlentities($package['packages.p_maintainer']))); + + if($package['packages.p_homepage']) + { + $details .= sprintf ("\n
Homepage:
%s
", $package['packages.p_homepage']); + } + + if($package['packages.p_section']) + { + $details .= sprintf ("\n
Section:
%s
", $package['packages.p_section'],$package['packages.p_section']); + } + + if($package['packages.p_depends']) + { + $details .= sprintf ("\n
Depends:
%s
", addlinks ($package['packages.p_depends'])); + } + + if($package['packages.p_recommends']) + { + $details .= sprintf ("\n
Recommends:
%s
", addlinks ($package['packages.p_recommends'])); + } + + if($package['packages.p_replaces']) + { + $details .= sprintf ("\n
Replaces:
%s
", addlinks ($package['packages.p_replaces'])); + } + + if($package['packages.p_provides']) + { + $details .= sprintf ("\n
Provides:
%s
", addlinks ($package['packages.p_provides'])); + } + + if($package['packages.p_conflicts']) + { + $details .= sprintf ("\n
Conflicts:
%s
", 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
Size:
%s
", $size); + + if($package['packages.p_source']) + { + $sourcearray = explode (" ", $package['packages.p_source']); + + $details .= "\n

Source:

'; + + } + + $details .= "\n

Available versions and architectures:

\n"; + } + else + { + $details = "

Sorry, package not found\n

return\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("$element", 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 = "'; + } + + $ipkgoutput .= "\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); + } +} + + + +?> -- cgit v1.2.3 From a4d66865597b43a26875dd649bedf0ca25099e8f Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Fri, 25 Aug 2006 10:20:16 +0000 Subject: feed-browser: feeds adding improved, updater more silent - includes/config.inc contain array with all feeds - check_database() adds feeds if they are not present - updater does not show feed URL --- contrib/feed-browser/includes/config.inc | 118 ++++++++++++++++++++++++++++ contrib/feed-browser/includes/functions.inc | 101 ++++-------------------- 2 files changed, 135 insertions(+), 84 deletions(-) create mode 100644 contrib/feed-browser/includes/config.inc (limited to 'contrib/feed-browser/includes') diff --git a/contrib/feed-browser/includes/config.inc b/contrib/feed-browser/includes/config.inc new file mode 100644 index 0000000000..1397d2c947 --- /dev/null +++ b/contrib/feed-browser/includes/config.inc @@ -0,0 +1,118 @@ +'OpenZaurus', + 'distro_version'=>'3.5.4', + 'feed_base_url'=>'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4/feed/', + 'feeds'=>array( + array( + 'name'=>'base', + 'url'=>'base', + ), + array( + 'name'=>'opie', + 'url'=>'opie', + ), + array( + 'name'=>'x11', + 'url'=>'x11', + ), + array( + 'name'=>'upgrades', + 'url'=>'upgrades', + ), + array( + 'name'=>'perl', + 'url'=>'perl', + ), + array( + 'name'=>'python', + 'url'=>'python', + ), + array( + 'name'=>'Collie upgrades', + 'url'=>'upgrades/machine/collie', + ), + array( + 'name'=>'Tosa upgrades', + 'url'=>'upgrades/machine/tosa', + ), + array( + 'name'=>'Poodle upgrades', + 'url'=>'upgrades/machine/poodle', + ), + array( + 'name'=>'Poodle', + 'url'=>'machine/poodle', + ), + array( + 'name'=>'Collie', + 'url'=>'machine/collie', + ), + array( + 'name'=>'Tosa', + 'url'=>'machine/tosa', + ) + ) + ), + array( + 'distro_name'=>'OpenZaurus', + 'distro_version'=>'3.5.4.1', + 'feed_base_url'=>'http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4.1/feed/', + 'feeds'=>array( + array( + 'name'=>'base', + 'url'=>'base', + ), + array( + 'name'=>'opie', + 'url'=>'opie', + ), + array( + 'name'=>'perl', + 'url'=>'perl', + ), + array( + 'name'=>'python', + 'url'=>'python', + ), + array( + 'name'=>'upgrades', + 'url'=>'upgrades', + ), + array( + 'name'=>'x11', + 'url'=>'x11', + ), + array( + 'name'=>'C7x0', + 'url'=>'machine/c7x0', + ), + array( + 'name'=>'Spitz', + 'url'=>'machine/spitz', + ), + array( + 'name'=>'Akita', + 'url'=>'machine/akita', + ), + array( + 'name'=>'Akita upgrades', + 'url'=>'upgrades/machine/akita', + ), + array( + 'name'=>'C7x0 upgrades', + 'url'=>'upgrades/machine/c7x0', + ), + array( + 'name'=>'Spitz upgrades', + 'url'=>'upgrades/machine/spitz', + ) + ) + ) +); + +?> diff --git a/contrib/feed-browser/includes/functions.inc b/contrib/feed-browser/includes/functions.inc index d18b129650..4edf3f4369 100644 --- a/contrib/feed-browser/includes/functions.inc +++ b/contrib/feed-browser/includes/functions.inc @@ -20,8 +20,6 @@ error_reporting(E_ALL); -define('DB_FILENAME', './feeds.db'); - function db_query($query) { $result = FALSE; @@ -36,7 +34,6 @@ function db_query($query) return $result; } - function db_query_n($query) { $result = FALSE; @@ -76,88 +73,24 @@ function db_table_exists ($db, $mytable) return FALSE; } -function test_insert_ipkgs ($db) +function insert_feeds ($db) { + global $feeds; - 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') - "); - + if(isset($feeds)) + { + foreach($feeds as $distro) + { + foreach($distro['feeds'] as $feed) + { + sqlite_query($db, "INSERT INTO feeds (f_name, f_uri) VALUES + ( + '{$distro['distro_name']} {$distro['distro_version']} {$feed['name']}', + '{$distro['feed_base_url']}{$feed['url']}' + )"); + } + } + } } function searchletter($searchletter = '') @@ -492,7 +425,7 @@ function check_database() f_uri varchar(100), f_comments varchar(500))"); - test_insert_ipkgs ($db) ; + insert_feeds ($db) ; } sqlite_close($db); -- cgit v1.2.3 From 15fe10f53b83794d42ff5d59b9006e21cc3f7652 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Fri, 25 Aug 2006 10:45:56 +0000 Subject: feed-browser: FIX: feed structure was changed - database NEED to be rebuilt - package.p_feed is now int -> feeds.f_id --- contrib/feed-browser/includes/config.inc | 2 +- contrib/feed-browser/includes/functions.inc | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'contrib/feed-browser/includes') diff --git a/contrib/feed-browser/includes/config.inc b/contrib/feed-browser/includes/config.inc index 1397d2c947..0a270a8eb0 100644 --- a/contrib/feed-browser/includes/config.inc +++ b/contrib/feed-browser/includes/config.inc @@ -1,6 +1,6 @@ Date: Fri, 25 Aug 2006 11:11:23 +0000 Subject: feed-browser: forgotten structure change --- contrib/feed-browser/includes/functions.inc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'contrib/feed-browser/includes') diff --git a/contrib/feed-browser/includes/functions.inc b/contrib/feed-browser/includes/functions.inc index 77afca6f5e..4b0b898118 100644 --- a/contrib/feed-browser/includes/functions.inc +++ b/contrib/feed-browser/includes/functions.inc @@ -426,9 +426,10 @@ function check_database() if (db_table_exists ($db, 'feeds') === FALSE) { sqlite_query ($db, "CREATE TABLE feeds ( - f_name varchar(20), + f_id int(8), + f_name varchar(32), f_uri varchar(100), - f_comments varchar(500))"); + f_comments varchar(500))"); insert_feeds ($db) ; } -- cgit v1.2.3 From 4b0d1a5487be990fcb99badadb8068283b9e1a06 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Fri, 25 Aug 2006 15:29:19 +0000 Subject: feed-browser: much better sectionlist (rewrite to be recursive anyone?) --- contrib/feed-browser/includes/functions.inc | 94 ++++++++++++++++------------- 1 file changed, 53 insertions(+), 41 deletions(-) (limited to 'contrib/feed-browser/includes') diff --git a/contrib/feed-browser/includes/functions.inc b/contrib/feed-browser/includes/functions.inc index 4b0b898118..4745c75910 100644 --- a/contrib/feed-browser/includes/functions.inc +++ b/contrib/feed-browser/includes/functions.inc @@ -332,68 +332,80 @@ function sectionslist() if($result = db_query ("SELECT DISTINCT p_section FROM packages ORDER BY p_section")) { - $ipkgoutput = "
    \n"; + $section_up = ''; - $section_up = $result[0]['p_section']; - $section_level = FALSE; - $opie_top = FALSE; + $sections = array(); - foreach($result as $item) + foreach($result as $package) { - $section_name = $item['p_section']; + $section_split = explode('/', $package['p_section']); - if(0 === strpos($section_name, 'opie') AND !$opie_top) + if($section_up != $section_split[0]) { - $opie_top = TRUE; - - $section_up = 'opie'; + $section_up = $section_split[0]; } - elseif($opie_top AND 0 !== strpos($section_name, 'opie')) + + if(isset($section_split[1])) // x11/gnome/libs { - $opie_top = FALSE; + $sections[$section_up][$section_split[1]] = $section_split[1]; + + if(isset($section_split[2])) // x11/gnome/libs + { + $sections[ $section_up ][ $section_split[1] ] = array($section_split[2]=>$section_split[2]); + } } + } + + $output = "
      \n"; - if( - strpos($section_name, '/') // subsection - ) + foreach($sections as $section_name1=>$item) + { + $output .= sprintf ("
    • %s", + urlencode($section_name1), + urlencode($section_name1), + $section_name1); + + if(is_array($item)) { - if(0 === strpos($section_name, $section_up . '/')) // console/network are not part of console/net + $output .= '
        '; + + foreach($item as $section_name2=>$subitem) { - if(!$section_level) + $section_name = "{$section_name1}/{$section_name2}"; + $output .= sprintf ("
      • %s", + urlencode($section_name), + urlencode($section_name), + $section_name2); + + if(is_array($subitem)) { - $ipkgoutput .= '
        • '; + $output .= '
            '; + + foreach($subitem as $section_name3=>$subitem2) + { + $section_name = "{$section_name1}/{$section_name2}/{$section_name3}"; + $output .= sprintf ("
          • %s
          • ", + urlencode($section_name), + urlencode($section_name), + $section_name3); + } + + $output .= '
          '; } - $section_name = str_replace($section_up . '/', '', $item['p_section']); - $section_level = TRUE; + $output .= ''; } - } - elseif($section_level) - { - $section_up = $section_name; - $ipkgoutput .= '
      • '; - $section_level = FALSE; - } - else - { - $section_up = $section_name; + + $output .= '
      '; } - $ipkgoutput .= sprintf ("
    • %s
    • ", - urlencode($item['p_section']), - urlencode($item['p_section']), - $section_name); + $output .= ''; } - if($section_level) - { - $ipkgoutput .= '
    '; - } - - $ipkgoutput .= "
\n"; + $output .= "\n"; } - return $ipkgoutput; + return $output; } function check_database() -- cgit v1.2.3