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) { $args = trim($msg->args); if(empty($args)) { return BotMsg('Podaj tekst do przetłumaczenia!'); } $url = 'http://translate.google.com/translate_a/t?client=t&text='.urlencode($args).'&sl='.$params[0].'&tl='.$params[1].'&hl=pl&ie=utf-8&oe=utf-8'; $data = @file_get_contents($url, 0, stream_context_create(array( 'http' => array( 'method' => 'GET', ), ))); if(!$data) { return new BotMsg('Błąd podczas pobierania danych ze słownika. Przepraszamy.'); } $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/Translate'); $data = $api->execute(array( 'From' => $params[0], 'To' => $params[1], 'Text' => $args, '$skip' => 0, '$top' => 1 )); if(!$data || !isset($data['d']['results'][0]['Text'])) { return new BotMsg('Błąd podczas pobierania danych z tłumacza. Przepraszamy.'); } $data = $data['d']['results'][0]['Text']; return new BotMsg('Tłumaczenie (by Microsoft Translator):
'."\n".htmlspecialchars($data)); } else { $html = 'Słownik (by Google):'; foreach($data[1] as $przyp) { $html .= '
'."\n".''.htmlspecialchars($przyp[0]).''; foreach($przyp[1] as $term) { $html .= '
'."\n".'- '.htmlspecialchars($term); } } return new BotMsg($html); } } function typo($msg, $params) { return new BotMsg('Wybrana komenda nie istnieje. Prawdopodobnie chodziło ci o jedną z komend językowych, których nazwy zapisywane są bez spacji pomiędzy spacji pomiędzy kodami języków (angpol, a nie: ang pol).

'."\n\n" . 'Spróbuj:
'."\n" . $msg->command.htmlspecialchars(ltrim($msg->args))); } } ?>