| | |
| | | <?php |
| | | class bot_lang_module implements BotModule { |
| | | private $APPID = ''; |
| | | 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) { |
| | | $args = trim($msg->args); |
| | | |
| | |
| | | $data = jsarray::parse($data); |
| | | |
| | | if(!$data OR count($data)==0 OR count($data[1])==0) { |
| | | $data = file_get_contents('http://api.microsofttranslator.com/v2/Http.svc/Translate?appId='.urlencode($this->APPID).'&text='.urlencode($args).'&from='.$params[0].'&to='.$params[1]); |
| | | $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) { |
| | | return new BotMsg('Błąd podczas pobierania danych ze słownika. Przepraszamy.'); |
| | | if(!$data || !isset($data['d']['results'][0]['Text'])) { |
| | | return new BotMsg('Błąd podczas pobierania danych z tłumacza. Przepraszamy.'); |
| | | } |
| | | |
| | | return new BotMsg('<u>Tłumaczenie (by Microsoft Translator):</u><br />'."\n".strip_tags($data)); |
| | | $data = $data['d']['results'][0]['Text']; |
| | | |
| | | return new BotMsg('<u>Tłumaczenie (by Microsoft Translator):</u><br />'."\n".htmlspecialchars($data)); |
| | | } |
| | | else |
| | | { |
| | |
| | | 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))); |
| | | } |
| | | } |
| | | ?> |