Eranroz has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/257684

Change subject: Guess parameters when templatedata is missing
......................................................................

Guess parameters when templatedata is missing

TemplateData guess the parameters from template wikitext when TemplateData is 
missing.
This doesn't guaranteed to work everywhere, but in most cases it should work.

Bug: T54581
Change-Id: Id3b7d83e68087090c1454d213453e4f5fb6e9630
---
M api/ApiTemplateData.php
1 file changed, 20 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/TemplateData 
refs/changes/84/257684/1

diff --git a/api/ApiTemplateData.php b/api/ApiTemplateData.php
index 2292bc8..169f26d 100644
--- a/api/ApiTemplateData.php
+++ b/api/ApiTemplateData.php
@@ -69,7 +69,6 @@
                        __METHOD__,
                        array( 'ORDER BY', 'pp_page' )
                );
-
                $resp = array();
 
                foreach ( $res as $row ) {
@@ -104,6 +103,26 @@
                        ) + (array) $data;
                }
 
+               // fill with heuristic templatedata for pages missing 
templatedata
+               $missingTemplateData = array_diff_key( $titles, $resp );
+               foreach ( $missingTemplateData as $missA => &$missB ) {
+                   $page = WikiPage::factory( Title::newFromID( $missA ) );
+                       $templateWikitext = $page->getContent()->serialize();
+
+                       if ( preg_match_all('/\{{3,}(.*?)[<|}]/', 
$templateWikitext, $paramNames ) ){
+                               $data = array('params' => array() );
+                               foreach ( $paramNames[1] as $paramName ) {
+                                       $data['params'][$paramName] = array( 
'description' => '' );
+                               }
+
+                               $resp[$missA] = array(
+                                       'title' => strval( $missB ),
+                               ) + (array) $data;
+
+                               $this->setWarning( "$missB doesn't have 
templatedata" );
+                       }
+               }
+
                // Set top level element
                $result->addValue( null, 'pages', (object) $resp );
 

-- 
To view, visit https://gerrit.wikimedia.org/r/257684
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id3b7d83e68087090c1454d213453e4f5fb6e9630
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/TemplateData
Gerrit-Branch: master
Gerrit-Owner: Eranroz <eranro...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to