Example #1
0
 /**
  * Output info about errorneous ircd message.
  */
 public static function debugMessage()
 {
     $msg = DOG::getIRCMsg();
     echo '=============================================' . PHP_EOL;
     self::warn("Unknown event: {$msg->getEvent()}");
     echo $msg->getRaw() . PHP_EOL;
     echo 'EVNT: ' . $msg->getEvent() . PHP_EOL;
     echo 'FROM: ' . $msg->getFrom() . PHP_EOL;
     echo 'ARGS: ' . implode(',', $msg->getArgs()) . PHP_EOL;
     echo '=============================================' . PHP_EOL;
 }
Example #2
0
function dog_svn_info($key, $repo, $user = '', $pass = '', $displayurl = '', $channels = array())
{
    $keyshort = $key;
    $key = 'DOG_SVNINFO_REVISION_' . $key;
    $svninfo = new GWF_SvnInfo();
    $svninfo->setRepository($repo, $user, $pass);
    if (0 == ($currentRevision = $svninfo->getCurrentRevision())) {
        return Dog_Log::debug('Fetching current revision failed.');
    }
    $lastRevision = GWF_Settings::getSetting($key, $currentRevision);
    if ($currentRevision <= $lastRevision) {
        GWF_Settings::setSetting($key, $currentRevision);
        return;
    }
    $svnlog = $svninfo->getLog($lastRevision + 1, $currentRevision);
    foreach ($svnlog as $entry) {
        $msg = sprintf('[%s] New revision %s by %s: %s', $keyshort, $entry['version-name'], $entry['creator-displayname'], html_entity_decode($entry['comment']));
        if ($displayurl != '') {
            $msg .= ' ( ' . str_replace('%REV%', $entry['version-name'], $displayurl) . ' )';
        }
        if (count($channels) === 0) {
            # To all servers in the main channel
            foreach (DOG::getServers() as $server) {
                $server instanceof Dog_Server;
                $channels = $server->getChannels();
                if (count($channels) > 0) {
                    $channel = array_shift($channels);
                    $channel = $channel->getVar('chan_name');
                    $server->sendPRIVMSG($channel, $msg);
                }
            }
        } else {
            # To all servers in matching channels
            foreach (DOG::getServers() as $server) {
                $server instanceof Dog_Server;
                $channels_now = $server->getChannels();
                foreach ($channels_now as $channel) {
                    $channel instanceof Dog_Channel;
                    $channel = $channel->getName();
                    foreach ($channels as $c) {
                        if (!strcasecmp($c, $channel)) {
                            $server->sendPRIVMSG($channel, $msg);
                        }
                    }
                }
            }
        }
    }
    GWF_Settings::setSetting($key, $currentRevision);
}
Example #3
0
$serv = Dog::getServer();
$plugin = Dog::getPlugin();
$message = $plugin->argv();
if (count($message) < 2) {
    return $plugin->showHelp();
}
$arg = array_shift($message);
$message = implode(' ', $message);
# Admin
if (Dog::hasPermission($serv, false, $user, 'a')) {
    if (false !== ($channel = Dog::getChannelByArg($arg))) {
        return $channel->sendAction($message);
    } elseif (false !== ($tuser = Dog::getUserByArg($arg))) {
        return $tuser->sendAction($message);
    }
} elseif (DOG::hasPermission($serv, false, $user, 's')) {
    if (false !== ($channel = $serv->getChannelByName($arg))) {
        return $channel->sendAction($message);
    } elseif (false !== ($tuser = $serv->getUserByName($arg))) {
        return $tuser->sendAction($message);
    }
} else {
    if (false !== ($channel = $serv->getChannelByName($arg))) {
        return $channel->sendAction($message);
    }
}
# Errors
if (false !== ($channel = Dog::getChannelByArg($arg)) || false !== ($tuser = Dog::getUserByArg($arg))) {
    return Dog::noPermission('a');
} else {
    return Dog::rply('err_target');