Esempio n. 1
0
function doInit()
{
    if (Config::$pass == null) {
        Config::$pass = trim(file_get_contents(getenv("HOME") . '/.cluebotng.password.only'));
    }
    API::init();
    API::$a->login(Config::$user, Config::$pass);
    Globals::$mysql = false;
    checkMySQL();
    Globals::$tfas = 0;
    Globals::$stdin = fopen('php://stdin', 'r');
    Globals::$run = API::$q->getpage('User:'******'/Run');
    Globals::$wl = API::$q->getpage('Wikipedia:Huggle/Whitelist');
    Globals::$optin = API::$q->getpage('User:'******'/Optin');
    Globals::$aoptin = API::$q->getpage('User:'******'/AngryOptin');
    Globals::$stalk = array();
    Globals::$edit = array();
    $tmp = explode("\n", API::$q->getpage('User:'******'/CBAutostalk.js'));
    foreach ($tmp as $tmp2) {
        if (substr($tmp2, 0, 1) != '#') {
            $tmp3 = explode('|', $tmp2, 2);
            Globals::$stalk[$tmp3[0]] = trim($tmp3[1]);
        }
    }
    $tmp = explode("\n", API::$q->getpage('User:'******'/CBAutoedit.js'));
    foreach ($tmp as $tmp2) {
        if (substr($tmp2, 0, 1) != '#') {
            $tmp3 = explode('|', $tmp2, 2);
            Globals::$edit[$tmp3[0]] = trim($tmp3[1]);
        }
    }
}
Esempio n. 2
0
function doInit()
{
    if (Config::$pass == null) {
        Config::$pass = trim(file_get_contents(getenv('HOME') . '/.cluebotng.password.only'));
    }
    Api::init();
    Api::$a->login(Config::$user, Config::$pass);
    Globals::$tfas = 0;
    Globals::$stdin = fopen('php://stdin', 'r');
    Globals::$run = Api::$q->getpage('User:'******'/Run');
    Globals::$wl = Api::$q->getpage('Wikipedia:Huggle/Whitelist');
    Globals::$optin = Api::$q->getpage('User:'******'/Optin');
    Globals::$aoptin = Api::$q->getpage('User:'******'/AngryOptin');
    Globals::$stalk = array();
    Globals::$edit = array();
    $tmp = explode("\n", Api::$q->getpage('User:'******'/CBAutostalk.js'));
    foreach ($tmp as $tmp2) {
        if (strlen($tmp2) > 0 && substr($tmp2, 0, 1) != '#') {
            $tmp3 = explode('|', $tmp2, 2);
            if (count($tmp3) == 2) {
                Globals::$stalk[$tmp3[0]] = trim($tmp3[1]);
            } else {
                print "Skipping auto stalk entry: {$tmp2}\n";
            }
        }
    }
    $tmp = explode("\n", Api::$q->getpage('User:'******'/CBAutoedit.js'));
    foreach ($tmp as $tmp2) {
        if (strlen($tmp2) > 0 && substr($tmp2, 0, 1) != '#') {
            $tmp3 = explode('|', $tmp2, 2);
            if (count($tmp3) == 2) {
                Globals::$edit[$tmp3[0]] = trim($tmp3[1]);
            } else {
                print "Skipping auto edit entry: {$tmp2}\n";
            }
        }
    }
}
Esempio n. 3
0
 private static function loop($line)
 {
     $d = IRC::split($line);
     if ($d === null) {
         return;
     }
     if ($d['type'] == 'direct') {
         switch ($d['command']) {
             case 'ping':
                 self::send('PONG :' . $d['pieces'][0]);
                 break;
         }
     } else {
         switch ($d['command']) {
             case '376':
             case '422':
                 self::send('JOIN ' . self::$channel);
                 break;
             case 'privmsg':
                 if (strtolower($d['target']) == self::$channel) {
                     $rawmessage = $d['pieces'][0];
                     $message = str_replace("", '', $rawmessage);
                     $message = preg_replace('/\\003(\\d\\d?(,\\d\\d?)?)?/', '', $message);
                     $data = parseFeed($message);
                     if ($data === false) {
                         return;
                     }
                     $data['line'] = $message;
                     $data['rawline'] = $rawmessage;
                     if (stripos('N', $data['flags']) !== false) {
                         self::bail($data, 'New article');
                         return;
                     }
                     $stalkchannel = array();
                     foreach (Globals::$stalk as $key => $value) {
                         if (myfnmatch(str_replace('_', ' ', $key), str_replace('_', ' ', $data['user']))) {
                             $stalkchannel = array_merge($stalkchannel, explode(',', $value));
                         }
                     }
                     foreach (Globals::$edit as $key => $value) {
                         if (myfnmatch(str_replace('_', ' ', $key), str_replace('_', ' ', ($data['namespace'] == 'Main:' ? '' : $data['namespace']) . $data['title']))) {
                             $stalkchannel = array_merge($stalkchannel, explode(',', $value));
                         }
                     }
                     $stalkchannel = array_unique($stalkchannel);
                     foreach ($stalkchannel as $chan) {
                         IRC::say($chan, 'New edit: [[' . ($data['namespace'] == 'Main:' ? '' : $data['namespace']) . $data['title'] . ']] https://en.wikipedia.org/w/index.php?title=' . urlencode($data['namespace'] . $data['title']) . '&diff=prev&oldid=' . urlencode($data['revid']) . ' * ' . $data['user'] . ' * ' . $data['comment']);
                     }
                     switch ($data['namespace'] . $data['title']) {
                         case 'User:'******'/Run':
                             Globals::$run = Api::$q->getpage('User:'******'/Run');
                             break;
                         case 'Wikipedia:Huggle/Whitelist':
                             Globals::$wl = Api::$q->getpage('Wikipedia:Huggle/Whitelist');
                             break;
                         case 'User:'******'/Optin':
                             Globals::$optin = Api::$q->getpage('User:'******'/Optin');
                             break;
                         case 'User:'******'/AngryOptin':
                             Globals::$aoptin = Api::$q->getpage('User:'******'/AngryOptin');
                             break;
                     }
                     if ($data['namespace'] != 'Main:' and !preg_match('/\\* \\[\\[(' . preg_quote($data['namespace'] . $data['title'], '/') . ')\\]\\] \\- .*/i', Globals::$optin)) {
                         self::bail($data, 'Outside of valid namespaces');
                         return;
                     }
                     echo 'Processing: ' . $message . "\n";
                     Process::processEdit($data);
                 }
                 break;
         }
     }
 }