From 6645846ad30ed0689d5e2848f9ae337bf8f28219 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 20 Jul 2015 02:04:51 -0700 Subject: allow per-connection content filter to specify a detected language to include/exclude (in addition to text, tags, and regexes) --- include/items.php | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include/items.php') diff --git a/include/items.php b/include/items.php index 054008d58..a460c8fd2 100755 --- a/include/items.php +++ b/include/items.php @@ -3381,6 +3381,8 @@ function post_is_importable($item,$abook) { $text = prepare_text($item['body'],$item['mimetype']); $text = html2plain($text); + $lang = detect_language($text); + $tags = ((count($item['term'])) ? $item['term'] : false); // exclude always has priority @@ -3397,6 +3399,8 @@ function post_is_importable($item,$abook) { } elseif((strpos($word,'/') === 0) && preg_match($word,$body)) return false; + elseif((strpos($word,'lang=') === 0) && ($lang) && (stricmp($lang,trim(substr($word,5))) == 0)) + return false; elseif(stristr($text,$word) !== false) return false; } @@ -3414,6 +3418,8 @@ function post_is_importable($item,$abook) { } elseif((strpos($word,'/') === 0) && preg_match($word,$body)) return true; + elseif((strpos($word,'lang=') === 0) && ($lang) && (stricmp($lang,trim(substr($word,5))) == 0)) + return true; elseif(stristr($text,$word) !== false) return true; } -- cgit v1.2.3 From d87c7ceeb03a348526cd2f8bb5643b13a1860b40 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 20 Jul 2015 19:33:42 -0700 Subject: there is no stricmp() in php, use strcasecmp() - also only detect language if we plan to use it. --- include/items.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'include/items.php') diff --git a/include/items.php b/include/items.php index a460c8fd2..5e84944a4 100755 --- a/include/items.php +++ b/include/items.php @@ -3381,7 +3381,10 @@ function post_is_importable($item,$abook) { $text = prepare_text($item['body'],$item['mimetype']); $text = html2plain($text); - $lang = detect_language($text); + $lang = null; + + if((strpos($abook['abook_incl'],'lang=') !== false) || (strpos($abook['abook_incl'],'lang=') !== false)) + $lang = detect_language($text); $tags = ((count($item['term'])) ? $item['term'] : false); @@ -3399,7 +3402,7 @@ function post_is_importable($item,$abook) { } elseif((strpos($word,'/') === 0) && preg_match($word,$body)) return false; - elseif((strpos($word,'lang=') === 0) && ($lang) && (stricmp($lang,trim(substr($word,5))) == 0)) + elseif((strpos($word,'lang=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,5))) == 0)) return false; elseif(stristr($text,$word) !== false) return false; @@ -3418,7 +3421,7 @@ function post_is_importable($item,$abook) { } elseif((strpos($word,'/') === 0) && preg_match($word,$body)) return true; - elseif((strpos($word,'lang=') === 0) && ($lang) && (stricmp($lang,trim(substr($word,5))) == 0)) + elseif((strpos($word,'lang=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,5))) == 0)) return true; elseif(stristr($text,$word) !== false) return true; -- cgit v1.2.3