http://www.mediawiki.org/wiki/Special:Code/MediaWiki/65294

Revision: 65294
Author:   tstarling
Date:     2010-04-20 10:20:06 +0000 (Tue, 20 Apr 2010)

Log Message:
-----------
Active task force list as requested by Eugene, see 
http://strategy.wikimedia.org/wiki/Proposal:Activity_bot_for_strategy_proposals,_task_forces

Added Paths:
-----------
    trunk/extensions/StrategyWiki/
    trunk/extensions/StrategyWiki/ActiveTaskForces/
    trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php
    trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php
    trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php
    trunk/extensions/StrategyWiki/README

Added: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php
===================================================================
--- trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php    
                        (rev 0)
+++ trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php    
2010-04-20 10:20:06 UTC (rev 65294)
@@ -0,0 +1,7 @@
+<?php
+
+$messages = array();
+$messages['en'] = array(
+       'activetaskforces' => 'Active task forces',
+       'active-task-forces-intro' => 'Number of edits to task force pages in 
the last $1 days.',
+);


Property changes on: 
trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.i18n.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php
===================================================================
--- trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php         
                (rev 0)
+++ trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php 
2010-04-20 10:20:06 UTC (rev 65294)
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Period for edit counts, in seconds
+ */
+$wgActiveTaskForcesPeriod = 7 * 86400;
+
+
+/* Registration */
+$wgHooks['wgQueryPages'][] = 'wfActiveTaskForcesRegister';
+$wgSpecialPages['ActiveTaskForces'] = 'ActiveTaskForcesSP';
+$wgExtensionMessagesFiles['ActiveTaskForces'] = dirname( __FILE__ ) 
.'/ActiveTaskForces.i18n.php';
+$wgAutoloadClasses['ActiveTaskForcesSP'] 
+       = $wgAutoloadClasses['ActiveTaskForcesQP']
+       = dirname( __FILE__ ) .'/ActiveTaskForces_body.php';
+
+function wfActiveTaskForcesRegister( &$pages ) {
+       $pages[] = array( 'ActiveTaskForcesQP', 'ActiveTaskForces' );
+       return true;
+}


Property changes on: 
trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php
===================================================================
--- trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php    
                        (rev 0)
+++ trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php    
2010-04-20 10:20:06 UTC (rev 65294)
@@ -0,0 +1,76 @@
+<?php
+
+class ActiveTaskForcesSP extends SpecialPage {
+       function __construct() {
+               parent::__construct( 'ActiveTaskForces' );
+       }
+
+       function execute() {
+               global $wgOut, $wgLang, $wgActiveTaskForcesPeriod;
+               $this->setHeaders();
+               $wgOut->addWikiMsg( 'active-task-forces-intro', 
+                       $wgLang->formatNum( round( $wgActiveTaskForcesPeriod / 
86400, 1 ) ) );
+               $qp = new ActiveTaskForcesQP;
+               list( $limit, $offset ) = wfCheckLimits();
+               $qp->doQuery( $offset, $limit );
+       }
+}
+
+class ActiveTaskForcesQP extends QueryPage {
+       function getName() {
+               return 'ActiveTaskForces';
+       }
+
+       function isExpensive() {
+               return true;
+       }
+
+       function isSyndicated() {
+               return false;
+       }
+
+       function getSQL() {
+               global $wgActiveTaskForcesPeriod;
+
+               $dbr = wfGetDB( DB_SLAVE );
+               $revisionTable = $dbr->tableName( 'revision' );
+               $pageTable = $dbr->tableName( 'page' );
+               $start = time() - $wgActiveTaskForcesPeriod;
+               $encPeriodStart = $dbr->addQuotes( $dbr->timestamp( $start ) );
+
+               $sql = <<<SQL
+                       SELECT 
+                               'ActiveTaskForces' AS type,
+                               page_namespace AS namespace,
+                               page_title AS title, 
+                               COUNT(*) AS value
+                       FROM $revisionTable
+                       JOIN $pageTable ON page_id = rev_page
+                       WHERE 
+                               page_namespace = 0 AND 
+                               page_title LIKE 'Task_force/%' AND
+                               rev_timestamp > $encPeriodStart
+                       GROUP BY page_namespace, page_title
+SQL;
+               $sql = strtr( $sql, "\r\n\t", '   ' );
+               return $sql;
+       }
+
+       function formatResult( $skin, $result ) {
+               global $wgContLang, $wgLang;
+
+               $title = Title::makeTitle( $result->namespace, $result->title );
+               $text = $wgContLang->convert( $title->getPrefixedText() );
+               $pageLink = $skin->linkKnown( $title, $text );
+
+               $numberLink = $skin->linkKnown(
+                       $title,
+                       wfMsgExt( 'nrevisions', array( 'parsemag', 'escape' ),
+                               $wgLang->formatNum( $result->value ),
+                       array(),
+                       array( 'action' => 'history' )
+               ) );
+               return wfSpecialList( $pageLink, $numberLink );
+       }
+}
+


Property changes on: 
trunk/extensions/StrategyWiki/ActiveTaskForces/ActiveTaskForces_body.php
___________________________________________________________________
Added: svn:eol-style
   + native

Added: trunk/extensions/StrategyWiki/README
===================================================================
--- trunk/extensions/StrategyWiki/README                                (rev 0)
+++ trunk/extensions/StrategyWiki/README        2010-04-20 10:20:06 UTC (rev 
65294)
@@ -0,0 +1 @@
+Extensions for strategy.wikimedia.org



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to