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