Adding updater for new pf_memory field
[lhc/web/wiklou.git] / maintenance / refreshLinks.php
index 6fdae4c..3b4780e 100644 (file)
@@ -1,40 +1,52 @@
 <?php
-define( "REPORTING_INTERVAL", 500 );
-
-include_once( "commandLine.inc" );
-
-if ($argv[2]) {
-       $start = (int)$argv[2];
-} else {
-       $start = 1;
+/**
+ * @addtogroup Maintenance
+ */
+
+/** */
+$optionsWithArgs = array( 'm', 'e' );
+
+require_once( "commandLine.inc" );
+require_once( "refreshLinks.inc" );
+
+if( isset( $options['help'] ) ) {
+       echo <<<TEXT
+Usage:
+    php refreshLinks.php --help
+    php refreshLinks.php [<start>] [-e <end>] [-m <maxlag>] [--dfn-only]
+                         [--new-only] [--redirects-only]
+    php refreshLinks.php [<start>] [-e <end>] [-m <maxlag>] --old-redirects-only
+
+    --help               : This help message
+    --dfn-only           : Delete links from nonexistent articles only
+    --new-only           : Only affect articles with just a single edit
+    --redirects-only     : Only fix redirects, not all links
+    --old-redirects-only : Only fix redirects with no redirect table entry
+    -m <number>          : Maximum replication lag
+    <start>              : First page id to refresh
+    -e <number>          : Last page id to refresh
+
+TEXT;
+       exit(0);
 }
 
-$res = wfQuery("SELECT max(cur_id) as m FROM cur", DB_READ);
-$row = wfFetchObject( $res );
-$end = $row->m;
-
-print("Refreshing link table. Starting from cur_id $start of $end.\n");
+error_reporting( E_ALL & (~E_NOTICE) );
 
-for ($id = start; $id <= $end; $id++) {
-       if ( !($id % REPORTING_INTERVAL) ) {
-               print $id;
+if ( !$options['dfn-only'] ) {
+       if ( isset( $args[0] ) ) {
+               $start = (int)$args[0];
+       } else {
+               $start = 1;
        }
-       
-       $wgTitle = Title::newFromID( $id );
-       if ( $wgTitle == NULL ) {
-               continue;
-       }
-       
-       $wgLinkCache = new LinkCache;
-       $wgArticle = new Article( $wgTitle );
-       $text = $wgArticle->getContent( true );
-       $wgOut->addWikiText( $text );
-       
-       $linksUpdate = new LinksUpdate( $id, $wgTitle );
-       $linksUpdate->doDumbUpdate();
+
+       refreshLinks( $start, $options['new-only'], $options['m'], $options['e'], $options['redirects-only'], $options['old-redirects-only'] );
 }
+// this bit's bad for replication: disabling temporarily
+// --brion 2005-07-16
+//deleteLinksFromNonexistent();
 
+if ( $options['globals'] ) {
+       print_r( $GLOBALS );
+}
 
-exit();
 
-?>