Zmiany w Microsoft Translator, tj:
- przeniesienie systemu do Azure Datamarket,
- zmiany w API,
- nowy klucz, tzw. Account Key.
4 files modified
2 files added
| | |
| | | * wykonuj za pomocą crona polecenie `/sciezka/do/bota/data/update.sh` ok. |
| | | 20 minut po każdej pełnej godzinie |
| | | * uruchom /data/update_all.sh (będąc w katalogu ./data) od razu po instalacji |
| | | * pobierz Application ID ze strony http://www.bing.com/developers/appids.aspx |
| | | (wymaga identyfikatora Windows Live ID), a następnie wpisz go w pliku |
| | | ./modules/80_lang/handler.php w miejsu: |
| | | * pobierz Account Key ze strony https://datamarket.azure.com/ |
| | | (wymaga identyfikatora Windows Live ID), uzyskaj subskrybcję Microsoft Translator: |
| | | https://datamarket.azure.com/dataset/1899a118-d202-492c-aa16-ba21c33c06cb |
| | | a następnie Account Key w pliku ./modules/80_lang/msapi_config.php w miejscu: |
| | | |
| | | class bot_lang_module implements BotModule { |
| | | private $APPID = ''; |
| | | class msapi_config { |
| | | protected $accountKey = ''; |
| | | |
| | | które po edycji ma wyglądać tak: |
| | | |
| | | class bot_lang_module implements BotModule { |
| | | private $APPID = 'A123BC9238...ADD'; |
| | | class msapi_config { |
| | | protected $accountKey = 'A123BC9238...ADD'; |
| | | |
| | | |
| | | ------------ |
| | |
| | | =========================== |
| | | AKTUALIZACJA Z WERSJI 2.2 |
| | | =========================== |
| | | |
| | | * usuń zawartość katalogu ./modules/80_lang |
| | | * wgraj ./module/80_lang z paczki |
| | | * uzyskaj Azure Datamarket acoount key ze strony: |
| | | https://datamarket.azure.com/ |
| | | oraz uzyskaj jakąkolwiek subskrypcję Microsoft Translator pod adresem: |
| | | https://datamarket.azure.com/dataset/1899a118-d202-492c-aa16-ba21c33c06cb |
| | | * Account Key wpisz w przewidzianym miejscu w pliku |
| | | ./modules/80_lang/msapi_config.php |
| | | * zastąp plik ./class/legacy/main.php |
| | | |
| | | =========================== |
| | | AKTUALIZACJA Z WERSJI 2.1 |
| | | =========================== |
| | | |
| | |
| | | <?php |
| | | require_once(dirname(__FILE__).'/msapi.php'); |
| | | |
| | | class bot_lang_module implements BotModule { |
| | | private $APPID = ''; |
| | | |
| | | 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/'); |
| | | $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 |
| | | { |
New file |
| | |
| | | <?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 = '\''.$param.'\''; |
| | | } |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | | ?> |
New file |
| | |
| | | <?php |
| | | class msapi_config { |
| | | protected $accountKey = ''; |
| | | } |
| | | ?> |