From 5a7abb3ffd54d7c0abd2df9db532d36f98f2d5e1 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Mon, 1 Dec 2014 22:31:29 +0100 Subject: [PATCH] buffer/fromgplus: Some more loop prevention --- buffer/buffer.php | 27 ++++++++++++++++++++++----- fromgplus/fromgplus.php | 14 ++++++++------ 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/buffer/buffer.php b/buffer/buffer.php index 595dba43..90a79758 100644 --- a/buffer/buffer.php +++ b/buffer/buffer.php @@ -234,8 +234,6 @@ function buffer_send(&$a,&$b) { if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) return; - logger("buffer_send: parameter ".print_r($b, true), LOGGER_DATA); - if(! strstr($b['postopts'],'buffer')) return; @@ -243,8 +241,8 @@ function buffer_send(&$a,&$b) { return; // if post comes from buffer don't send it back - if($b['app'] == "Buffer") - return; + //if($b['app'] == "Buffer") + // return; $client_id = get_config("buffer", "client_id"); $client_secret = get_config("buffer", "client_secret"); @@ -258,38 +256,55 @@ function buffer_send(&$a,&$b) { $profiles = $buffer->go('/profiles'); if (is_array($profiles)) { + logger("Will send these parameter ".print_r($b, true), LOGGER_DEBUG); + foreach ($profiles as $profile) { if (!$profile->default) continue; + $send = false; + switch ($profile->service) { case 'appdotnet': + $send = ($b["extid"] != NETWORK_APPNET); $limit = 256; $markup = false; $includedlinks = true; + $htmlmode = 6; break; case 'facebook': + $send = ($b["extid"] != NETWORK_FACEBOOK); $limit = 0; $markup = false; $includedlinks = false; + $htmlmode = 9; break; case 'google': + $send = ($b["extid"] != NETWORK_GPLUS); $limit = 0; $markup = true; $includedlinks = false; + $htmlmode = 9; break; case 'twitter': + $send = ($b["extid"] != NETWORK_TWITTER); $limit = 140; $markup = false; $includedlinks = true; + $htmlmode = 8; break; case 'linkedin': + $send = ($b["extid"] != NETWORK_LINKEDIN); $limit = 700; $markup = false; $includedlinks = true; + $htmlmode = 2; break; } + if (!$send) + continue; + $item = $b; // Markup for Google+ @@ -302,7 +317,7 @@ function buffer_send(&$a,&$b) { $item["body"] = preg_replace("(\[s\](.*?)\[\/s\])ism",'-$1-',$item["body"]); } - $post = plaintext($a, $item, $limit, $includedlinks); + $post = plaintext($a, $item, $limit, $includedlinks, $htmlmode); logger("buffer_send: converted message ".$b["id"]." result: ".print_r($post, true), LOGGER_DEBUG); // The image proxy is used as a sanitizer. Buffer seems to be really picky about pictures @@ -334,6 +349,8 @@ function buffer_send(&$a,&$b) { $post["text"] .= "\n[".$post["title"]."](".$post["url"].")"; } elseif (($profile->service == "appdotnet") AND isset($post["url"])) $post["text"] .= " ".$post["url"]; + elseif ($profile->service == "google") + $post["text"] .= html_entity_decode(" ", ENT_QUOTES, 'UTF-8'); // Send a special blank to identify the post through the "fromgplus" addon $message = array(); $message["text"] = $post["text"]; diff --git a/fromgplus/fromgplus.php b/fromgplus/fromgplus.php index a80bf7e1..17300ae8 100644 --- a/fromgplus/fromgplus.php +++ b/fromgplus/fromgplus.php @@ -138,6 +138,7 @@ function fromgplus_post($a, $uid, $source, $body, $location) { $_REQUEST['profile_uid'] = $uid; $_REQUEST['source'] = $source; + $_REQUEST['extid'] = NETWORK_GPLUS; // $_REQUEST['verb'] // $_REQUEST['parent'] @@ -276,6 +277,7 @@ function fromgplus_cleantext($text) { function fromgplus_handleattachments($a, $uid, $item, $displaytext, $shared) { require_once("include/Photo.php"); require_once("include/items.php"); + require_once("include/network.php"); $post = ""; $quote = ""; @@ -286,13 +288,13 @@ function fromgplus_handleattachments($a, $uid, $item, $displaytext, $shared) { switch($attachment->objectType) { case "video": $pagedata["type"] = "video"; - $pagedata["url"] = $attachment->url; + $pagedata["url"] = original_url($attachment->url); $pagedata["title"] = fromgplus_html2bbcode($attachment->displayName); break; case "article": $pagedata["type"] = "link"; - $pagedata["url"] = $attachment->url; + $pagedata["url"] = original_url($attachment->url); $pagedata["title"] = fromgplus_html2bbcode($attachment->displayName); $images = fromgplus_cleanupgoogleproxy($attachment->fullImage, $attachment->image); @@ -336,9 +338,9 @@ function fromgplus_handleattachments($a, $uid, $item, $displaytext, $shared) { break; case "photo-album": - $pagedata["url"] = $attachment->url; + $pagedata["url"] = original_url($attachment->url); $pagedata["title"] = fromgplus_html2bbcode($attachment->displayName); - $post .= "\n\n[bookmark=".$attachment->url."]".fromgplus_html2bbcode($attachment->displayName)."[/bookmark]\n"; + $post .= "\n\n[bookmark=".$pagedata["url"]."]".$pagedata["title"]."[/bookmark]\n"; $images = fromgplus_cleanupgoogleproxy($attachment->fullImage, $attachment->image); @@ -357,7 +359,7 @@ function fromgplus_handleattachments($a, $uid, $item, $displaytext, $shared) { case "album": $pagedata["type"] = "link"; - $pagedata["url"] = $attachment->url; + $pagedata["url"] = original_url($attachment->url); $pagedata["title"] = fromgplus_html2bbcode($attachment->displayName); $thumb = $attachment->thumbnails[0]; @@ -370,7 +372,7 @@ function fromgplus_handleattachments($a, $uid, $item, $displaytext, $shared) { break; case "audio": - $pagedata["url"] = $attachment->url; + $pagedata["url"] = original_url($attachment->url); $pagedata["title"] = fromgplus_html2bbcode($attachment->displayName); $post .= "\n\n[bookmark=".$pagedata["url"]."]".$pagedata["title"]."[/bookmark]\n"; break;