LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Amir Mohammad Saied Date: Mon Aug 21 11:23:39 2006 Subject: cvs: pearbot /modules bugstats.php
amir Mon Aug 21 17:23:39 2006 UTC
Modified files:
/pearbot/modules bugstats.php
Log:
Ratio
http://cvs.php.net/viewvc.cgi/pearbot/modules/bugstats.php?r1=1.11&r2=1.12&diff_format=u
Index: pearbot/modules/bugstats.php
diff -u pearbot/modules/bugstats.php:1.11 pearbot/modules/bugstats.php:1.12
--- pearbot/modules/bugstats.php:1.11 Sun May 7 19:01:48 2006
+++ pearbot/modules/bugstats.php Mon Aug 21 17:23:39 2006
@@ -1,25 +1,27 @@
<?php
/**
- * $Id: bugstats.php,v 1.11 2006/05/07 19:01:48 meebey Exp $
- * $Revision: 1.11 $
- * $Author: meebey $
- * $Date: 2006/05/07 19:01:48 $
+ * $Id: bugstats.php,v 1.12 2006/08/21 17:23:39 amir Exp $
+ * $Revision: 1.12 $
+ * $Author: amir $
+ * $Date: 2006/08/21 17:23:39 $
*
* Copyright (c) 2004 Tobias Schlitt <toby@php.net> & Mirco Bauer <meebey@php.net>
*/
require_once "HTTP/Request.php";
+require_once "PEAR/XMLParser.php";
class Net_SmartIRC_module_bugstats
{
- var $name = 'bugstats';
- var $description = '!bugstats command';
- var $author = 'Tobias Schlitt <toby@php.net> & Mirco Bauer <meebey@php.net>';
- var $version = '$Revision: 1.11 $';
- var $license = 'LGPL';
+ var $name = 'bugstats';
+ var $description = '!bugstats command';
+ var $author = 'Tobias Schlitt <toby@php.net> & Mirco Bauer <meebey@php.net> & Amir Mohammad Saied <amir@php.net>';
+ var $version = '$Revision: 1.12 $';
+ var $license = 'LGPL';
- var $lastCount = 0;
- var $timeout = 900000;
+ var $lastCount = 0;
+ var $lastPackagesCount = 0;
+ var $timeout = 900000;
var $actionids = array();
var $timeids = array();
@@ -40,18 +42,21 @@
function bugstats(&$irc, &$data)
{
- $count = $this->getStats();
+ $count = $this->getStats();
+ $packages = $this->getTotalPackages();
+ $ratio = round($count/$packages, 2);
if (PEAR::isError($count) || !$count) {
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $count->getMessage());
return;
}
- $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': Current bug count is '.$count);
+ $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': Current bug count is '.$count. ' ('.$ratio.' bugs/package)');
$this->updateTopic($irc);
}
function updateTopic(&$irc)
{
- $count = $this->getStats();
+ $count = $this->getStats();
+ $packages = $this->getTotalPackages();
if (PEAR::isError($count) || !$count) {
return $count;
}
@@ -63,10 +68,12 @@
} else {
$oldBugCount = "Sorry, I was not able to determine the old bug count.";
}
- $topic = preg_replace('/[\| ]*[0-9]+ open bugs/isU', '', $topic);
- if ($this->lastCount != $count) {
+ $topic = preg_replace('/[\| ]*[0-9]+ open bugs \([0-9.]+ bugs\/package\)/isU', '', $topic);
+ if ($this->lastCount != $count || $this->lastPackagesCount != $packages) {
$this->lastCount = $count;
- $irc->setTopic('#pear', $topic.' | '.$count.' open bugs');
+ $this->lastPackagesCount = $packages;
+ $ratio = round($count/$packages, 2);
+ $irc->setTopic('#pear', $topic.' | '.$count.' open bugs ('.$ratio.' bugs/package)');
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $oldBugCount);
}
}
@@ -80,5 +87,23 @@
}
return (int)$req->getResponseBody();
}
+
+ function getTotalPackages()
+ {
+ $req =& new HTTP_Request('http://pear.php.net/rest/p/packages.xml');
+ $result = $req->sendRequest();
+ if (PEAR::isError($result)) {
+ return PEAR::raiseError('Error fetching packages XML file: '.$result->getMessage(), 0);
+ }
+ $content = $req->getResponseBody();
+ $parser = new PEAR_XMLParser;
+ $err = $parser->parse($content);
+ if (PEAR::isError($err)) {
+ return PEAR::raiseError('Invalid XML file: '.$err->getMessage(), 0);
+ }
+ $content = $parser->getData();
+
+ return count($content['p']);
+ }
}
?>
| Navigate in group php.pear.bot at sever news.php.net | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by Zareef Ahmed
Powered By PHP Consultants |