X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=fbpost%2Ffbpost.php;h=ab49c30336c3d5992c376fff76bd1ca4e162a902;hb=9c00bd1608cea9aa86fd00691c23d838758607bc;hp=c564269e8e0aff9df49226cca5da61c107839e33;hpb=f9c2e64c8f23a0c2cd74c8435d4f69ae1c723a14;p=friendica-addons.git diff --git a/fbpost/fbpost.php b/fbpost/fbpost.php index c564269e..ab49c303 100644 --- a/fbpost/fbpost.php +++ b/fbpost/fbpost.php @@ -239,7 +239,7 @@ function fbpost_content(&$a) { $page_access_token = get_pconfig(local_user(),'facebook','page_access_token'); $fb_token = get_pconfig($a->user['uid'],'facebook','access_token'); $url = 'https://graph.facebook.com/me/accounts'; - $x = file_get_contents($url."?access_token=".$fb_token); + $x = fetch_url($url."?access_token=".$fb_token); $accounts = json_decode($x); $o .= t("Post to page/group:")." ' - . t('Post to Facebook') . ''; + . t('Post to Facebook') . ''; } } +function fbpost_ShareAttributes($match) { + + $attributes = $match[1]; + + $author = ""; + preg_match("/author='(.*?)'/ism", $attributes, $matches); + if ($matches[1] != "") + $author = $matches[1]; + + preg_match('/author="(.*?)"/ism', $attributes, $matches); + if ($matches[1] != "") + $author = $matches[1]; + + $headline = '
'; + + $headline .= sprintf(t('%s:'), $author); + + $headline .= "
"; + + //$text = "
".$headline."
".$match[2]."
"; + $text = "\n\t".$match[2].":\t"; + + return($text); +} + /** * @param App $a @@ -553,11 +578,43 @@ function fbpost_post_hook(&$a,&$b) { $body = $body1.$body2; } + // Convert recycle signs + $body = str_replace("\t", " ", $body); + // recycle 1 + $recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8'); + $body = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', "\n\t$2:\t", $body); + // recycle 2 (Test) + $recycle = html_entity_decode("◌ ", ENT_QUOTES, 'UTF-8'); + $body = preg_replace( '/'.$recycle.'\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', "\n\t$2:\t", $body); + + // share element + $body = preg_replace_callback("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]/ism","fbpost_ShareAttributes", $body); + + $bodyparts = explode("\t", $body); + // Doesn't help with multiple repeats - the problem has to be solved later + if (sizeof($bodyparts) == 3) { + $html = bbcode($bodyparts[2], false, false); + $test = trim(html2plain($html, 0, true)); + + if (trim($bodyparts[0]) == "") + $body = trim($bodyparts[2]); + else if (trim($test) == "") + $body = trim($bodyparts[0]); + else + $body = trim($bodyparts[0])."\n\n".trim($bodyparts[1])."[quote]".trim($bodyparts[2])."[/quote]"; + } else + $body = str_replace("\t", "", $body); + // At first convert the text to html $html = bbcode($body, false, false); // Then convert it to plain text $msg = trim($b['title']." \n\n".html2plain($html, 0, true)); + + // Removing useless spaces + if (substr($msg, -2) == "«") + $msg = trim(substr($msg, 0, -2))."«"; + $msg = html_entity_decode($msg,ENT_QUOTES,'UTF-8'); // Removing multiple newlines @@ -621,13 +678,19 @@ function fbpost_post_hook(&$a,&$b) { $postvars = array('access_token' => $fb_token); } else { // message, picture, link, name, caption, description, source, place, tags + if(trim($link) != "") + if (@exif_imagetype($link) != 0) { + $image = $link; + $link = ""; + } + $postvars = array( 'access_token' => $fb_token, 'message' => $msg ); - if(trim($image) != "") { + if(trim($image) != "") $postvars['picture'] = $image; - } + if(trim($link) != "") { $postvars['link'] = $link; @@ -658,11 +721,14 @@ function fbpost_post_hook(&$a,&$b) { if($reply) { $url = 'https://graph.facebook.com/' . $reply . '/' . (($likes) ? 'likes' : 'comments'); - } else if (($video != "")) { - // If it is a link to a video then post it as a link + } else if (($video != "") or (($image == "") and ($link != ""))) { + // If it is a link to a video or a link without a preview picture then post it as a link + if ($video != "") + $link = $video; + $postvars = array( 'access_token' => $fb_token, - 'link' => $video, + 'link' => $link, ); if ($msg != $video) $postvars['message'] = $msg; @@ -678,7 +744,7 @@ function fbpost_post_hook(&$a,&$b) { $postvars['message'] = $msg; $url = 'https://graph.facebook.com/'.$target.'/photos'; - } else if (($link != "") or ($image != "") or ($b['title'] == '') or (strlen($msg) < 500) or ($target != "me")) { + } else if (($link != "") or ($image != "") or ($b['title'] == '') or (strlen($msg) < 500)) { $url = 'https://graph.facebook.com/'.$target.'/feed'; if (!get_pconfig($b['uid'],'facebook','suppress_view_on_friendica') and $b['plink']) $postvars['actions'] = '{"name": "' . t('View on Friendica') . '", "link": "' . $b['plink'] . '"}'; @@ -689,7 +755,7 @@ function fbpost_post_hook(&$a,&$b) { 'message' => bbcode($b['body'], false, false), 'subject' => $b['title'], ); - $url = 'https://graph.facebook.com/me/notes'; + $url = 'https://graph.facebook.com/'.$target.'/notes'; } // Post to page?