From 9a299920ebfe28f9ab17737c3e741d39156a5c08 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 11 Jul 2012 22:45:14 -0700 Subject: [PATCH] language detection - result is stored in item['postopts'] --- boot.php | 1 + include/items.php | 6 ++++++ mod/item.php | 12 +++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/boot.php b/boot.php index 63a2ad3385..3d81c3c391 100644 --- a/boot.php +++ b/boot.php @@ -413,6 +413,7 @@ if(! class_exists('App')) { . 'include' . PATH_SEPARATOR . 'library' . PATH_SEPARATOR . 'library/phpsec' . PATH_SEPARATOR + . 'library/langdet' . PATH_SEPARATOR . '.' ); if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") { diff --git a/include/items.php b/include/items.php index a88246cd6b..388b27a196 100755 --- a/include/items.php +++ b/include/items.php @@ -816,6 +816,12 @@ function item_store($arr,$force_parent = false) { if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false)) $arr['body'] = strip_tags($arr['body']); + require_once('Text/LanguageDetect.php'); + $naked_body = preg_replace('/\[(.+?)\]/','',$arr['body']); + $l = new Text_LanguageDetect; + $lng = $l->detectConfidence($naked_body); + $arr['postopts'] = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : ''); + $arr['wall'] = ((x($arr,'wall')) ? intval($arr['wall']) : 0); $arr['uri'] = ((x($arr,'uri')) ? notags(trim($arr['uri'])) : random_string()); diff --git a/mod/item.php b/mod/item.php index da9185cb8e..b4e894337e 100644 --- a/mod/item.php +++ b/mod/item.php @@ -18,6 +18,7 @@ require_once('include/crypto.php'); require_once('include/enotify.php'); require_once('include/email.php'); +require_once('Text/LanguageDetect.php'); function item_post(&$a) { @@ -216,6 +217,15 @@ function item_post(&$a) { $emailcc = notags(trim($_REQUEST['emailcc'])); $body = escape_tags(trim($_REQUEST['body'])); + + $naked_body = preg_replace('/\[(.+?)\]/','',$body); + $l = new Text_LanguageDetect; + $lng = $l->detectConfidence($naked_body); + + $postopts = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : ''); + + logger('mod_item: detect language' . print_r($lng,true) . $naked_body, LOGGER_DATA); + $private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0); // If this is a comment, set the permissions from the parent. @@ -561,7 +571,7 @@ function item_post(&$a) { $datarray['attach'] = $attachments; $datarray['bookmark'] = intval($bookmark); $datarray['thr-parent'] = $thr_parent; - $datarray['postopts'] = ''; + $datarray['postopts'] = $postopts; $datarray['origin'] = $origin; $datarray['moderated'] = $allow_moderated; -- 2.39.5