From 40d779af57bb7e8e620c93f6d6d250fff54bff17 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Wed, 21 Mar 2012 10:07:29 +0100 Subject: [PATCH] Facebook: detecting of images when exporting --- facebook/facebook.php | 45 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/facebook/facebook.php b/facebook/facebook.php index b2f21b93..ee812d5e 100755 --- a/facebook/facebook.php +++ b/facebook/facebook.php @@ -664,6 +664,7 @@ function facebook_post_hook(&$a,&$b) { */ require_once('include/group.php'); + require_once('include/html2plain.php'); logger('Facebook post'); @@ -784,7 +785,7 @@ function facebook_post_hook(&$a,&$b) { if($b['verb'] == ACTIVITY_DISLIKE) $msg = trim(strip_tags(bbcode($msg))); - $search_str = $a->get_baseurl() . '/search'; + /*$search_str = $a->get_baseurl() . '/search'; if(preg_match("/\[url=(.*?)\](.*?)\[\/url\]/is",$msg,$matches)) { @@ -813,25 +814,51 @@ function facebook_post_hook(&$a,&$b) { if((strpos($link,z_root()) !== false) && (! $image)) $image = $a->get_baseurl() . '/images/friendica-64.jpg'; - $msg = trim(strip_tags(bbcode($msg))); + $msg = trim(strip_tags(bbcode($msg)));*/ + + // Test + + // Looking for images + if(preg_match("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/is",$b['body'],$matches)) + $image = $matches[3]; + + if(preg_match("/\[img\](.*?)\[\/img\]/is",$b['body'],$matches)) + $image = $matches[1]; + + $html = bbcode($b['body']); + $msg = trim($b['title']." \n".html2plain($html, 0, true)); $msg = html_entity_decode($msg,ENT_QUOTES,'UTF-8'); + $toolong = false; + // add any attachments as text urls - $arr = explode(',',$b['attach']); + $arr = explode(',',$b['attach']); - if(count($arr)) { + if(count($arr)) { $msg .= "\n"; - foreach($arr as $r) { - $matches = false; + foreach($arr as $r) { + $matches = false; $cnt = preg_match('|\[attach\]href=\"(.*?)\" size=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches); if($cnt) { - $msg .= $matches[1]; + $msg .= "\n".$matches[1]; } } } - if (strlen($msg) > FACEBOOK_MAXPOSTLEN) { + // To-Do: look for bookmark-bbcode and handle it with priority + + $links = collecturls($html); + if (sizeof($links) > 0) { + reset($links); + $link = current($links); + /*if (strlen($msg."\n".$link) <= FACEBOOK_MAXPOSTLEN) + $msg .= "\n".$link; + else + $toolong = true;*/ + } + + if ((strlen($msg) > FACEBOOK_MAXPOSTLEN) or $toolong) { $shortlink = ""; require_once('library/slinky.php'); @@ -1502,4 +1529,4 @@ function facebook_delete_url($url,$headers = null, &$redirects = 0, $timeout = 0 curl_close($ch); return($body); -}} \ No newline at end of file +}}