X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FdumpCategoriesAsRdf.php;h=e4bd7564a62125634a1eb28f519bf92111181cb9;hb=3ea30167fbbcb684370eb436a017cd42cc092fad;hp=ff50498f0a30aab28de4f539e9327235b89bc71d;hpb=32199ac8bc293efc5cbd41c3af7fe1055d04d11c;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/dumpCategoriesAsRdf.php b/maintenance/dumpCategoriesAsRdf.php index ff50498f0a..e4bd7564a6 100644 --- a/maintenance/dumpCategoriesAsRdf.php +++ b/maintenance/dumpCategoriesAsRdf.php @@ -58,14 +58,32 @@ class DumpCategoriesAsRdf extends Maintenance { public function getCategoryIterator( IDatabase $dbr ) { $it = new BatchRowIterator( $dbr, - 'page', + [ 'page', 'page_props', 'category' ], [ 'page_title' ], - $this->mBatchSize + $this->getBatchSize() ); $it->addConditions( [ 'page_namespace' => NS_CATEGORY, ] ); - $it->setFetchColumns( [ 'page_title', 'page_id' ] ); + $it->setFetchColumns( [ + 'page_title', + 'page_id', + 'pp_propname', + 'cat_pages', + 'cat_subcats', + 'cat_files' + ] ); + $it->addJoinConditions( + [ + 'page_props' => [ + 'LEFT JOIN', [ 'pp_propname' => 'hiddencat', 'pp_page = page_id' ] + ], + 'category' => [ + 'LEFT JOIN', [ 'cat_title = page_title' ] + ] + ] + + ); return $it; } @@ -80,7 +98,7 @@ class DumpCategoriesAsRdf extends Maintenance { $dbr, 'categorylinks', [ 'cl_from', 'cl_to' ], - $this->mBatchSize + $this->getBatchSize() ); $it->addConditions( [ 'cl_type' => 'subcat', @@ -90,13 +108,16 @@ class DumpCategoriesAsRdf extends Maintenance { return new RecursiveIteratorIterator( $it ); } + /** + * @param int $timestamp + */ public function addDumpHeader( $timestamp ) { global $wgRightsUrl; $licenseUrl = $wgRightsUrl; if ( substr( $licenseUrl, 0, 2 ) == '//' ) { $licenseUrl = 'https:' . $licenseUrl; } - $this->rdfWriter->about( wfExpandUrl( '/categoriesDump', PROTO_CANONICAL ) ) + $this->rdfWriter->about( $this->categoriesRdf->getDumpURI() ) ->a( 'schema', 'Dataset' ) ->a( 'owl', 'Ontology' ) ->say( 'cc', 'license' )->is( $licenseUrl ) @@ -129,7 +150,12 @@ class DumpCategoriesAsRdf extends Maintenance { foreach ( $this->getCategoryIterator( $dbr ) as $batch ) { $pages = []; foreach ( $batch as $row ) { - $this->categoriesRdf->writeCategoryData( $row->page_title ); + $this->categoriesRdf->writeCategoryData( + $row->page_title, + $row->pp_propname === 'hiddencat', + (int)$row->cat_pages - (int)$row->cat_subcats - (int)$row->cat_files, + (int)$row->cat_subcats + ); $pages[$row->page_id] = $row->page_title; } @@ -154,5 +180,5 @@ class DumpCategoriesAsRdf extends Maintenance { } } -$maintClass = "DumpCategoriesAsRdf"; +$maintClass = DumpCategoriesAsRdf::class; require_once RUN_MAINTENANCE_IF_MAIN;