Facebook: Removing useless content when posting to facebook. Now content on facebook really looks great.

This commit is contained in:
Michael Vogel 2012-03-31 17:42:17 +02:00
parent 5e9405e9dc
commit 97bbcad0f5

View file

@ -796,6 +796,7 @@ function facebook_post_hook(&$a,&$b) {
if($b['verb'] == ACTIVITY_DISLIKE) if($b['verb'] == ACTIVITY_DISLIKE)
$msg = trim(strip_tags(bbcode($msg))); $msg = trim(strip_tags(bbcode($msg)));
// Old code
/*$search_str = $a->get_baseurl() . '/search'; /*$search_str = $a->get_baseurl() . '/search';
if(preg_match("/\[url=(.*?)\](.*?)\[\/url\]/is",$msg,$matches)) { if(preg_match("/\[url=(.*?)\](.*?)\[\/url\]/is",$msg,$matches)) {
@ -827,26 +828,47 @@ function facebook_post_hook(&$a,&$b) {
$msg = trim(strip_tags(bbcode($msg)));*/ $msg = trim(strip_tags(bbcode($msg)));*/
// Test // New code
// Looking for images // Looking for the first image
$image = '';
if(preg_match("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/is",$b['body'],$matches)) if(preg_match("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/is",$b['body'],$matches))
$image = $matches[3]; $image = $matches[3];
if ($image != '')
if(preg_match("/\[img\](.*?)\[\/img\]/is",$b['body'],$matches)) if(preg_match("/\[img\](.*?)\[\/img\]/is",$b['body'],$matches))
$image = $matches[1]; $image = $matches[1];
// Replace bookmark with url // Checking for a bookmark element
$body = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'[url=$1]$2[/url]',$b['body']); $body = $b['body'];
if (strpos($body, "[bookmark") !== false) {
// splitting the text in two parts:
// before and after the bookmark
$pos = strpos($body, "[bookmark");
$body1 = substr($body, 0, $pos);
$body2 = substr($body, $pos);
// Removing the bookmark and all quotes after the bookmark
// they are mostly only the content after the bookmark.
$body2 = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'',$body2);
$body2 = preg_replace("/\[quote\=([^\]]*)\](.*?)\[\/quote\]/ism",'',$body2);
$body2 = preg_replace("/\[quote\](.*?)\[\/quote\]/ism",'',$body2);
$body = $body1.$body2;
}
// At first convert the text to html
$html = bbcode($body); $html = bbcode($body);
$msg = trim($b['title']." \n".html2plain($html, 0, true));
// Then convert it to plain text
$msg = trim($b['title']." \n\n".html2plain($html, 0, true));
$msg = html_entity_decode($msg,ENT_QUOTES,'UTF-8'); $msg = html_entity_decode($msg,ENT_QUOTES,'UTF-8');
$toolong = false; // Removing multiple newlines
while (strpos($msg, "\n\n\n") !== false)
$msg = str_replace("\n\n\n", "\n\n", $msg);
// add any attachments as text urls // add any attachments as text urls
$arr = explode(',',$b['attach']); $arr = explode(',',$b['attach']);
if(count($arr)) { if(count($arr)) {
@ -865,19 +887,19 @@ function facebook_post_hook(&$a,&$b) {
if(preg_match("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/is",$b['body'],$matches)) if(preg_match("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/is",$b['body'],$matches))
$link = $matches[1]; $link = $matches[1];
// If there is no bookmark element then take the first link
if ($link == '') { if ($link == '') {
$links = collecturls($html); $links = collecturls($html);
if (sizeof($links) > 0) { if (sizeof($links) > 0) {
reset($links); reset($links);
$link = current($links); $link = current($links);
/*if (strlen($msg."\n".$link) <= FACEBOOK_MAXPOSTLEN) /*if (strlen($msg."\n".$link) <= FACEBOOK_MAXPOSTLEN)
$msg .= "\n".$link; $msg .= "\n".$link;*/
else
$toolong = true;*/
} }
} }
if ((strlen($msg) > FACEBOOK_MAXPOSTLEN) or $toolong) { // Since facebook increased the maxpostlen massively this never should happen again :)
if (strlen($msg) > FACEBOOK_MAXPOSTLEN) {
$shortlink = ""; $shortlink = "";
require_once('library/slinky.php'); require_once('library/slinky.php');