From 09ac53ee541b28ef9cd04f04174f59fe7bfe100b Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sun, 12 Aug 2012 13:39:13 +0000
Subject: [PATCH] Użycie funkcji http_build_query do tworzenia zapytań do botmastera w klasie BotAPIGG.
---
modules/80_lang/handler.php | 47 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 44 insertions(+), 3 deletions(-)
diff --git a/modules/80_lang/handler.php b/modules/80_lang/handler.php
index 15bd3b0..4ba21ea 100644
--- a/modules/80_lang/handler.php
+++ b/modules/80_lang/handler.php
@@ -1,5 +1,46 @@
<?php
-require_once(dirname(__FILE__).'/msapi.php');
+require_once(dirname(__FILE__).'/msapi_config.php');
+
+class msapi extends msapi_config {
+ public $url;
+
+ function __construct($url) {
+ $this->url = $url;
+ }
+
+ function execute($params) {
+ if(!is_array($params)) {
+ throw new Exception('Przekazany parametr nie jest tablicą');
+ }
+
+ foreach($params as $name => &$param) {
+ if(substr($name, 0, 1)!='$' && is_string($param)) {
+ $param = '\''.strtr($param, array('\'' => '\'\'')).'\'';
+ }
+ }
+ unset($param);
+ $params['$format'] = 'json';
+
+ $context = stream_context_create(array(
+ 'http' => array(
+ 'request_fulluri' => TRUE,
+ 'header' => 'Authorization: Basic '.base64_encode(':'.$this->accountKey)
+ ),
+ ));
+
+ $content = file_get_contents($this->url.'?'.http_build_query($params, '', '&'), FALSE, $context);
+ if(!$content) {
+ return FALSE;
+ }
+
+ $content = json_decode($content, TRUE);
+ if(!$content) {
+ return FALSE;
+ }
+
+ return $content;
+ }
+}
class bot_lang_module implements BotModule {
function handle($msg, $params) {
@@ -23,7 +64,7 @@
$data = jsarray::parse($data);
if(!$data OR count($data)==0 OR count($data[1])==0) {
- $api = new msapi('https://api.datamarket.azure.com/Bing/MicrosoftTranslator/');
+ $api = new msapi('https://api.datamarket.azure.com/Bing/MicrosoftTranslator/Translate');
$data = $api->execute(array(
'From' => $params[0],
'To' => $params[1],
@@ -58,7 +99,7 @@
return new BotMsg('Wybrana komenda nie istnieje. Prawdopodobnie chodziło ci o jedną z komend językowych, których nazwy zapisywane są <b>bez</b> spacji pomiędzy spacji pomiędzy kodami języków (angpol, a nie: ang pol).<br /><br />'."\n\n"
. '<u>Spróbuj:</u><br />'."\n"
- . $msg->command.ltrim($msg->args));
+ . $msg->command.htmlspecialchars(ltrim($msg->args)));
}
}
?>
--
Gitblit v1.9.1