Jacek Kowalski
2012-07-09 c57393b1cab86602943ae4d18a15476c9d95a0dd
Przeportowanie modułu ort do nowej wersji API
2 files added
1 files deleted
170 ■■■■■ changed files
modules/70_ort.php 76 ●●●●● patch | view | raw | blame | history
modules/70_ort/handler.php 58 ●●●●● patch | view | raw | blame | history
modules/70_ort/init.php 36 ●●●●● patch | view | raw | blame | history
modules/70_ort.php
File was deleted
modules/70_ort/handler.php
New file
@@ -0,0 +1,58 @@
<?php
class bot_ort_module implements BotModule {
    function handle($msg, $params) {
        $args = trim($msg->args);
        if(empty($args)) {
            return new BotMsg('Funkcja <b>ort</b> wymaga argumentu.<br />'
                    . '<br />'."\n"
                    . '<u>Przykład:</u><br />'."\n"
                    . 'ort grzegżółka<br />'."\n"
                    . 'ort warsawa');
        }
        $args = strtr($args, array("\r\n" => ' ', "\r" => ' ', "\n" => ' '));
        $proc = proc_open('aspell --lang=pl --encoding=utf-8 --ignore-case=true pipe', array(array('pipe', 'r'), array('pipe', 'w'), array('file', '/dev/null', 'w')), $pipe);
        fwrite($pipe[0], $args."\n");
        fclose($pipe[0]);
        do {
            usleep(1);
            $status = proc_get_status($proc);
        } while($status['running']);
        fgets($pipe[1], 1024);
        $spell = fgets($pipe[1], 4096);
        fclose($pipe[1]);
        proc_close($proc);
        if(empty($spell)) {
            return new BotMsg('Błąd podczas sprawdzania słowa w słowniku. Przepraszamy.');
        }
        elseif(substr($spell, 0, 1)=='*') {
            return new BotMsg('<span style="color:#060;">Pisownia poprawna.</span>');
        }
        elseif(substr($spell, 0, 1)=='#') {
            return new BotMsg('Brak propozycji poprawnej pisowni.');
        }
        else
        {
            $spell = explode(': ', $spell, 2);
            $spell = explode(',', $spell[1]);
            $txt = '<p>Prawdopobnie chodziło ci o:</p>'."\n"
                . '<ul>'."\n";
            foreach($spell as $val) {
                $txt .= '<li>'.htmlspecialchars(trim($val)).'</li>'."\n";
            }
            $txt .= '</ul>';
            return new BotMsg($txt);
        }
    }
}
?>
modules/70_ort/init.php
New file
@@ -0,0 +1,36 @@
<?php
class bot_ort_init implements BotModuleInit {
    function register() {
        $handler = array(
            array(
                'file' => 'handler.php',
                'class' => 'bot_ort_module',
                'method' => 'handle',
            )
        );
        return array(
            'ort' => $handler,
            'o' => $handler,
        );
    }
    function help($params = NULL) {
        if($params === NULL) {
            return new BotMsg('<b>ort</b> <i>słowo</i><br />'."\n"
                . '   Słownik ortograficzny.<br />'."\n");
        }
        else
        {
            return new BotMsg('<b>ort</b> <i>słowo</i> (alias: <b>o</b>)<br />'."\n"
                . '   Sprawdza <i>słowo</i> w słowniku ortograficznym. W przypadku jego nie odnalezienia zwraca propozycje poprawnej pisowni.<br />'."\n"
                . '<br />'."\n"
                . '<u>Przykład:</u><br />'."\n"
                . 'ort grzegżółka<br />'."\n"
                . 'ort warsawa');
        }
    }
}
return 'bot_ort_init';
?>