From bc3f3685c81b2ce62ac8e0e35f5fb5e22e318b94 Mon Sep 17 00:00:00 2001 From: alec Date: Mon, 30 May 2011 15:08:26 +0000 Subject: - Provided rcube_spellchecker class, simplified code in utils task (less spell* files) git-svn-id: https://svn.roundcube.net/trunk@4815 208e9e7b-5314-0410-a742-e7e81cd9613c --- .../program/steps/utils/spell_html_googie.inc | 110 --------------------- 1 file changed, 110 deletions(-) delete mode 100644 roundcubemail/program/steps/utils/spell_html_googie.inc (limited to 'roundcubemail/program/steps/utils/spell_html_googie.inc') diff --git a/roundcubemail/program/steps/utils/spell_html_googie.inc b/roundcubemail/program/steps/utils/spell_html_googie.inc deleted file mode 100644 index ceda62687..000000000 --- a/roundcubemail/program/steps/utils/spell_html_googie.inc +++ /dev/null @@ -1,110 +0,0 @@ - | - +-----------------------------------------------------------------------+ - - $Id: spell_googie.inc 3780 2010-06-23 09:55:08Z alec $ - -*/ - -function json_error($str) -{ - echo '{"error":{"errstr":"' . addslashes($str) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}'; - exit; -} - -function googie_get($host, $port, $path, $data) -{ - $store = ''; - if ($fp = fsockopen($host, $port, $errno, $errstr, 30)) { - $out = "POST $path HTTP/1.0\r\n"; - $out .= "Host: " . str_replace('ssl://', '', $host) . "\r\n"; - $out .= "Content-Length: " . strlen($data) . "\r\n"; - $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $out .= "Connection: Close\r\n\r\n"; - $out .= $data; - fwrite($fp, $out); - - while (!feof($fp)) - $store .= fgets($fp, 128); - fclose($fp); - } - - if (!$store) { - json_error("Empty result from spelling engine"); - } - - $matches = array(); - preg_match_all('/([^<]*)<\/c>/', $store, $matches, PREG_SET_ORDER); - - return $matches; -} - -$REMOTE_REQUEST = TRUE; - -// read input -$data = file_get_contents('php://input'); - -// Decode JSON input -$request = json_decode($data, true); -$result = array(); - -$lang = $request['params'][0]; -$data = $request['params'][1]; -$result['id'] = $request['id']; - -// default settings -$host = "ssl://www.google.com"; -$port = 443; -$path = "/tbproxy/spell?lang=$lang"; - -// spell check uri is configured -if (!empty($CONFIG['spellcheck_uri'])) - { - $a_uri = parse_url($CONFIG['spellcheck_uri']); - $ssl = ($a_uri['scheme']=='https' || $a_uri['scheme']=='ssl'); - $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80); - $host = ($ssl ? 'ssl://' : '') . $a_uri['host']; - $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $lang; - } - -$wordstr = implode("\n", (array) $data); -$data = '' - .'' - .'' . $wordstr . '' - .''; -$matches = googie_get($host, $port, $path, $data); - -if ($request['method'] == 'checkWords') { - $result['result'] = array(); - for ($i=0, $len=count($matches); $i<$len; $i++) - $result['result'][] = mb_substr($wordstr, $matches[$i][1], $matches[$i][2], RCMAIL_CHARSET); -} -else if ($request['method'] == 'getSuggestions') { - if ($matches[0][4]) { - $suggestions = explode("\t", $matches[0][4]); - if (sizeof($suggestions)>MAX_SUGGESTIONS) - $suggestions = array_slice($suggestions, 0, MAX_SUGGESTIONS); - $result['result'] = $suggestions; - } - else - $result['result'] = array(); -} - -// send output -header("Content-Type: text/xml; charset=".RCMAIL_CHARSET); -echo json_encode($result); -exit; - -- cgit v1.2.3