From 779694a768bca0d5ea066cc626a8656cd7407bcf Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Mon, 09 Jul 2012 17:50:31 +0000
Subject: [PATCH] Przeportowanie modułu synonimy do nowej wersji API
---
/dev/null | 98 ------------------------
modules/70_synonimy/init.php | 38 +++++++++
modules/70_synonimy/handler.php | 68 +++++++++++++++++
3 files changed, 106 insertions(+), 98 deletions(-)
diff --git a/modules/70_synonimy.php b/modules/70_synonimy.php
deleted file mode 100644
index 59c8d5e..0000000
--- a/modules/70_synonimy.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-class synonimy implements module {
- static function register_cmd() {
- return array(
- 'synonimy' => 'cmd_synonimy',
- 'synonim' => 'cmd_synonimy',
- 'syn' => 'cmd_synonimy',
- 's' => 'cmd_synonimy',
- );
- }
-
- static function help($cmd = NULL) {
- if($cmd === NULL) {
- GGapi::putRichText('synonimy ', TRUE);
- GGapi::putRichText('słowo', FALSE, TRUE);
- GGapi::putRichText("\n".' Synonimy słowa ');
- GGapi::putRichText('słowo'."\n", FALSE, TRUE);
- }
- else
- {
- GGapi::putRichText('synonimy ', TRUE);
- GGapi::putRichText('słowo', FALSE, TRUE);
- GGapi::putRichText(' (aliasy: ');
- GGapi::putRichText('s, syn, synonim', TRUE);
- GGapi::putRichText(')'."\n".' Podaje synonimy słowa ');
- GGapi::putRichText('słowo'."\n\n", FALSE, TRUE);
- GGapi::putRichText('Przykład', FALSE, FALSE, TRUE);
- GGapi::putRichText("\n".'synonimy abecadło'."\n".'synonimy wyspa');
- }
- }
-
- static function cmd_synonimy($nazwa, $args) {
- if(!$args) {
- GGapi::putText('Funkcja ');
- GGapi::putRichText('synonimy', TRUE);
- GGapi::putRichText(' wymaga argumentu ');
- GGapi::putRichText('słowo'."\n\n", FALSE, TRUE);
- GGapi::putRichText('Przykład', FALSE, FALSE, TRUE);
- GGapi::putRichText("\n".'synonimy abecadło'."\n".'synonimy wyspa');
-
- return;
- }
-
- $args = funcs::utfToAscii(trim($args));
-
- $fp = fopen('./data/synonimy/thesaurus.res', 'r');
- list($rows, $len) = explode('x', trim(fgets($fp, 50)));
- $start = ftell($fp);
-
- $l = 0;
- $p = $rows-1;
-
- while($l<$p) {
- //echo 'L: '.$l.' - P: '.$p."\n";
- $s = floor(($l+$p)/2);
-
- $poz = $start + ($s*$len);
- fseek($fp, $poz);
-
- $line = fread($fp, $len);
-
- $word = strtok($line, ';');
- $cmp = strcmp($word, $args);
-
- if($cmp >= 0) {
- //echo 'Right'."\n";
- $p = $s;
- }
- else
- {
- //echo 'Left'."\n";
- $l = $s+1;
- }
- }
-
- $poz = $start + ($l*$len);
- fseek($fp, $poz);
-
- $i = 1;
- $return = '';
- while(TRUE) {
- $line = fread($fp, $len);
- $word = strtok($line, ';');
-
- if($word != $args) break;
- $return .= "\n".($i++).'. '.rtrim(substr(strstr($line, ';'), 1));
- }
-
- if(!empty($return)) {
- GGapi::putText('Znalezione synonimy:'.$return);
- }
- else
- {
- GGapi::putText('Nie znaleziono synonimów podanego słowa');
- }
- }
-}
-?>
\ No newline at end of file
diff --git a/modules/70_synonimy/handler.php b/modules/70_synonimy/handler.php
new file mode 100644
index 0000000..7cbf08b
--- /dev/null
+++ b/modules/70_synonimy/handler.php
@@ -0,0 +1,68 @@
+<?php
+class bot_synonimy_module implements BotModule {
+ function handle($msg, $params) {
+ $args = trim($msg->args);
+
+ if(empty($args)) {
+ return new BotMsg('Funkcja <b>synonimy</b> wymaga argumentu.<br />'
+ . '<br />'."\n"
+ . '<u>Przykład:</u><br />'."\n"
+ . 'synonimy abecadło<br />'."\n"
+ . 'synonimy wyspa');
+ }
+
+ $args = funcs::utfToAscii($args);
+
+ $fp = fopen('./data/synonimy/thesaurus.res', 'r');
+ list($rows, $len) = explode('x', trim(fgets($fp, 50)));
+ $start = ftell($fp);
+
+ $l = 0;
+ $p = $rows-1;
+
+ while($l<$p) {
+ //echo 'L: '.$l.' - P: '.$p."\n";
+ $s = floor(($l+$p)/2);
+
+ $poz = $start + ($s*$len);
+ fseek($fp, $poz);
+
+ $line = fread($fp, $len);
+
+ $word = strtok($line, ';');
+ $cmp = strcmp($word, $args);
+
+ if($cmp >= 0) {
+ //echo 'Right'."\n";
+ $p = $s;
+ }
+ else
+ {
+ //echo 'Left'."\n";
+ $l = $s+1;
+ }
+ }
+
+ $poz = $start + ($l*$len);
+ fseek($fp, $poz);
+
+ $i = 1;
+ $return = '';
+ while(TRUE) {
+ $line = fread($fp, $len);
+ $word = strtok($line, ';');
+
+ if($word != $args) break;
+ $return .= '<br />'."\n".($i++).'. '.rtrim(substr(strstr($line, ';'), 1));
+ }
+
+ if(!empty($return)) {
+ return new BotMsg('Znalezione synonimy:'.$return);
+ }
+ else
+ {
+ return new BotMsg('Nie znaleziono synonimów podanego słowa');
+ }
+ }
+}
+?>
\ No newline at end of file
diff --git a/modules/70_synonimy/init.php b/modules/70_synonimy/init.php
new file mode 100644
index 0000000..15eabc6
--- /dev/null
+++ b/modules/70_synonimy/init.php
@@ -0,0 +1,38 @@
+<?php
+class bot_synonimy_init implements BotModuleInit {
+ function register() {
+ $handler = array(
+ array(
+ 'file' => 'handler.php',
+ 'class' => 'bot_synonimy_module',
+ 'method' => 'handle',
+ )
+ );
+
+ return array(
+ 'synonimy' => $handler,
+ 'synonim' => $handler,
+ 'syn' => $handler,
+ 's' => $handler,
+ );
+ }
+
+ function help($params = NULL) {
+ if($params === NULL) {
+ return new BotMsg('<b>synonimy</b> <i>słowo</i><br />'."\n"
+ . ' Synonimy słowa <i>słowo</i>.<br />'."\n");
+ }
+ else
+ {
+ return new BotMsg('<b>synonimy</b> <i>słowo</i> (aliasy: <b>s, syn, synonim</b>)<br />'."\n"
+ . ' Podaje synonimy słowa <i>słowo</i> (w mianowniku liczby pojedynczej).<br />'."\n"
+ . '<br />'."\n"
+ . '<u>Przykład:</u><br />'."\n"
+ . 'synonimy abecadło<br />'."\n"
+ . 'synonimy wyspa');
+ }
+ }
+}
+
+return 'bot_synonimy_init';
+?>
\ No newline at end of file
--
Gitblit v1.9.1