Home  |  Linux  | Mysql  | PHP  | XML
From:Mirco 'meebey' Bauer Date:Sat Jul 26 05:00:16 2003
Subject:cvs: pearbot /modules pearcmds.php
meebey		Sat Jul 26 07:00:16 2003 EDT

  Added files:                 
    /pearbot/modules	pearcmds.php 
  Log:
  - first import (written by nicos@php.net)
  
  

Index: pearbot/modules/pearcmds.php
+++ pearbot/modules/pearcmds.php
<?php
/**
 * $Id: pearcmds.php,v 1.1 2003/07/26 11:00:16 meebey Exp $
 * $Revision: 1.1 $
 * $Author: meebey $
 * $Date: 2003/07/26 11:00:16 $
 *
 * Copyright (c) 2003 Nicolas CHAILLAN <nicos@php.net>
*/
 
class Net_SmartIRC_module_pearcmds
{
    var $name = 'pearcmds';
    var $description = '!pear* commands';
    var $author = 'Nicolas CHAILLAN <nicos@php.net>';
    var $license = 'LGPL';
    var $pear_binary = '/usr/local/bin/pear';
    
    var $actionids = array();
    
    function module_init(&$irc)
    {
        $this->actionids[] = $irc->registerActionhandler(SMARTIRC_TYPE_QUERY|SMARTIRC_TYPE_NOTICE, '^!pear', $this, 'pear');
    }
    
    function module_exit(&$irc)
    {
        foreach ($this->actionids as $value) {
            $irc->unregisterActionid($value);
        }
    }

    /* !pear command */
    
    function pear(&$irc, &$data) 
    {
        $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'Helping '.$data->nick.' in private...'); 
        if (!isset($data->messageex[1])) {
            $print = $this->pear_help();
        }
        else {
            switch ($data->messageex[1]) {
            case 'info':
            case 'remote-info':
                if (!isset($data->messageex[2]) || empty($data->messageex[2])) {
                    $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': syntax: !pear info package'); 
                    return;
                }
                $print = $this->pear_info($data->messageex[2]);
                break;
                
            case 'list':
            case 'lists':
            case 'list-all':
            case 'remote-list':
                $print = $this->pear_listing();
                break;
                
            case 'search':
            case 'find':
                if (!isset($data->messageex[2]) || empty($data->messageex[2])) {
                    $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': syntax: !pear search search_for'); 
                    return;
                }
                $print = $this->pear_search($data->messageex[2]);
                break;
                
            case 'help':
            default:
                $print = $this->pear_help();
                break;
                
            }
        }
        $irc->message(SMARTIRC_TYPE_QUERY, $data->nick, $print); 
    }
    
    function pear_info($package) 
    {
        passthru($this->pear_binary.' remote-info '.$package, $buf);
        $buf = 'This is the PEARbot:\n\nHere are the informations for '.$package.':\n\n'.$buf;
        return $buf;
    }
    
    function pear_listing() 
    {
        passthru($this->pear_binary.' remote-list', $buf);
        $buf = 'This is the PEARbot:\n\nHere are the PEAR\'s packages:\n\n'.$buf;
        return $buf;
    }
    
    function pear_search($search_for) 
    {
        passthru($this->pear_binary.' search '.$search_for, $buf);
        $buf = 'This is the PEARbot:\n\nHere are the PEAR\'s packages that match '.$search_for.':\n\n'.$buf;
        return $buf;
    }
    
    function pear_help() 
    {
        return 'This is the PEARbot:\n.
        PEAR Helps commands:\n
        Every commands start with !pear\n
            -help: gives this information
            -info package: gives the info of a PEAR package
            -list: list all packages
            -search search_for: searchs all packages that contain search_for.';
    }
}
?>

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