From 54774535fd7e067722a2cacc87faf30214ab9f5e Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 27 Jul 2014 17:46:16 +0200 Subject: Add Packagist parser --- class/Parser.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'class/Parser.php') diff --git a/class/Parser.php b/class/Parser.php index 31a000a..cdb984f 100644 --- a/class/Parser.php +++ b/class/Parser.php @@ -462,6 +462,55 @@ class Parser return $nb; } + /** + * Parse the content of all Packagist repository + * + * @param TableUpstream $uptable the table to write to + * @param TablePackagist $pktable the table to read from + * + * @return integer number of parsed line + */ + static public function readPackagist(TableUpstream $uptable, TablePackagist $pktable) + { + self::log("Packagist search releases"); + $pk = new PackagistClient(); + + $nb = $uptable->delete(array('type'=>'composer', 'channel'=>'packagist')); + self::log("Delete $nb packages"); + + $tot = 0; + foreach($pktable->request(array('ORDER'=>'rpmname')) as $rec) { + if ($rep = $pk->getPackage($rec['pkgname'])) { + $id = false; + if ($rep['stable']) { + $id = $uptable->record( + 'composer', + 'packagist', + $rec['rpmname'], + $rep['stable'], + true + ); + } + if ($rep['unstable']) { + $id = $uptable->record( + 'composer', + 'packagist', + $rec['rpmname'], + $rep['unstable'], + false, + $rep['state'] + ); + } + if ($id) { + $tot++; + } + } + } + self::log("Write $tot packages"); + + return $tot; + } + /** * Parse the content of all PEAR repository * -- cgit