[aur-dev] [aur-general] Method to get all Packages

Loui Chang louipc.ist at gmail.com
Sun Jan 25 12:19:15 EST 2009


On Sun, Jan 25, 2009 at 06:55:05PM +0100, Lukas Appelhans wrote:
> Okok :) I worked on a patch for that, it's attached...
> I have no clue if it works (or if everything is alright) though, never worked 
> with Sql-Queries :(

Alright this is definitely in the aur-dev realm now. Please send
patches/ideas to aur-dev at archlinux.org.

I still don't understand why you need all packages.
Maybe you can explain that first.

Cheers.

> diff --git a/web/html/rpc.php b/web/html/rpc.php
> index 033cba5..d58a487 100644
> --- a/web/html/rpc.php
> +++ b/web/html/rpc.php
> @@ -19,6 +19,7 @@ if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
>          echo '<ul>';
>          echo '<li>search</li>';
>          echo '<li>info</li>';
> +        echo '<li>all_packages</li>';
>          echo '</ul><br />';
>          echo 'Each method requires the following HTTP GET syntax:<br />';
>          echo '&nbsp;&nbsp; type=<i>methodname</i>&arg=<i>data</i> <br /><br />';
> diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
> index 81c0831..c30eeef 100644
> --- a/web/lib/aurjson.class.php
> +++ b/web/lib/aurjson.class.php
> @@ -21,7 +21,7 @@ if (!extension_loaded('json'))
>   **/
>  class AurJSON {
>      private $dbh = false;
> -    private $exposed_methods = array('search','info');
> +    private $exposed_methods = array('search','info','all_packages');
>      private $fields = array('ID','Name','Version','CategoryID','Description',
>          'URL','URLPath','License','NumVotes','OutOfDate');
>  
> @@ -147,5 +147,28 @@ class AurJSON {
>              return $this->json_error('No result found');
>          }
>      }
> +
> +    /**
> +     * Returns all packages
> +     */
> +    private function all_packages() {
> +        $query = "SELECT " . implode(',', $this->fields) .
> +            " FROM Packages WHERE DummyPkg=0 ";
> +
> +        $result = db_query($query, $this->dbh);
> +
> +        if ( $result && (mysql_num_rows($result) > 0) ) {
> +            $search_data = array();
> +            while ( $row = mysql_fetch_assoc($result) ) {
> +                array_push($search_data, $row);
> +	    }
> +
> +            mysql_free_result($result);
> +            return $this->json_results('all_packages', $search_data);
> +        }
> +        else {
> +            return $this->json_error('No results found');
> +        }
> +    }
>  }
>  



More information about the aur-dev mailing list