X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=fromgplus%2Ffromgplus.php;h=1c047663fb661557a9e54eba4fa6210b8ab1fc55;hb=6c9b4c598cf057e0c02533c5e375dd583efd58a8;hp=dcfeff86d871baa441d9c3fc68d867f604de1c6e;hpb=004e02c5ca6b7f5bd28d4f9a7056cd775f2c7890;p=friendica-addons.git diff --git a/fromgplus/fromgplus.php b/fromgplus/fromgplus.php index dcfeff86..1c047663 100644 --- a/fromgplus/fromgplus.php +++ b/fromgplus/fromgplus.php @@ -10,15 +10,19 @@ define('FROMGPLUS_DEFAULT_POLL_INTERVAL', 30); // given in minutes function fromgplus_install() { - register_hook('plugin_settings', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings'); - register_hook('plugin_settings_post', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings_post'); + register_hook('connector_settings', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings'); + register_hook('connector_settings_post', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings_post'); register_hook('cron', 'addon/fromgplus/fromgplus.php', 'fromgplus_cron'); } function fromgplus_uninstall() { + unregister_hook('connector_settings', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings'); + unregister_hook('connector_settings_post', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings_post'); + unregister_hook('cron', 'addon/fromgplus/fromgplus.php', 'fromgplus_cron'); + + // Old hooks unregister_hook('plugin_settings', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings'); unregister_hook('plugin_settings_post', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings_post'); - unregister_hook('cron', 'addon/fromgplus/fromgplus.php', 'fromgplus_cron'); } function fromgplus_addon_settings(&$a,&$s) { @@ -29,8 +33,14 @@ function fromgplus_addon_settings(&$a,&$s) { $enable_checked = (intval(get_pconfig(local_user(),'fromgplus','enable')) ? ' checked="checked"' : ''); $account = get_pconfig(local_user(),'fromgplus','account'); - $s .= '
'; + $s .= ''; $s .= '

' . t('Google+ Import Settings').'

'; + $s .= '
'; + $s .= ''; $s .= '
'; return; @@ -97,6 +107,10 @@ function fromgplus_post($a, $uid, $source, $body, $location) { //$uid = 2; + // Don't know what it is. Maybe some trash from the mobile client + $trash = html_entity_decode("", ENT_QUOTES, 'UTF-8'); + $body = str_replace($trash, "", $body); + $body = trim($body); if (substr($body, 0, 3) == "[b]") { @@ -218,9 +232,22 @@ function fromgplus_cleanupgoogleproxy($fullImage, $image) { return($cleaned); } +function fromgplus_cleantext($text) { + + // Don't know what it is. But it is added to the text. + $trash = html_entity_decode("", ENT_QUOTES, 'UTF-8'); + + $text = strip_tags($text); + $text = html_entity_decode($text); + $text = trim($text); + $text = str_replace(array("\n", "\r", " ", $trash), array("", "", "", ""), $text); + return($text); +} + function fromgplus_handleattachments($item, $displaytext) { $post = ""; $quote = ""; + $type = ""; foreach ($item->object->attachments as $attachment) { switch($attachment->objectType) { @@ -236,7 +263,7 @@ function fromgplus_handleattachments($item, $displaytext) { break; case "article": - $post .= "\n\n[bookmark=".$attachment->url."]".fromgplus_html2bbcode($attachment->displayName)."[/bookmark]\n"; + $post .= "\n\n[class=type-link][bookmark=".$attachment->url."]".fromgplus_html2bbcode($attachment->displayName)."[/bookmark]\n"; $images = fromgplus_cleanupgoogleproxy($attachment->fullImage, $attachment->image); //if ($images["preview"] != "") @@ -250,6 +277,8 @@ function fromgplus_handleattachments($item, $displaytext) { $quote = trim(fromgplus_html2bbcode($attachment->content)); if ($quote != "") $quote = "\n[quote]".$quote."[/quote]"; + + $quote .= "[/class]"; break; case "photo": @@ -259,7 +288,7 @@ function fromgplus_handleattachments($item, $displaytext) { elseif ($images["full"] != "") $post .= "\n[img]".$images["full"]."[/img]\n"; - if (($attachment->displayName != "") AND ($attachment->displayName != $displaytext)) + if (($attachment->displayName != "") AND (fromgplus_cleantext($attachment->displayName) != fromgplus_cleantext($displaytext))) $post .= fromgplus_html2bbcode($attachment->displayName)."\n"; break; @@ -296,6 +325,9 @@ function fromgplus_handleattachments($item, $displaytext) { function fromgplus_fetch($a, $uid) { $maxfetch = 20; + // Special blank to identify postings from the googleplus connector + $blank = html_entity_decode(" ", ENT_QUOTES, 'UTF-8'); + $account = get_pconfig($uid,'fromgplus','account'); $key = get_config('fromgplus','key'); @@ -307,6 +339,8 @@ function fromgplus_fetch($a, $uid) { $initiallastdate = get_pconfig($uid,'fromgplus','lastdate'); + $first_time = ($initiallastdate == ""); + $lastdate = 0; if (!is_array($activities->items)) @@ -321,7 +355,19 @@ function fromgplus_fetch($a, $uid) { if ($lastdate < strtotime($item->published)) $lastdate = strtotime($item->published); + if ($first_time) + continue; + if ($item->access->description == "Public") + + // Loop prevention - ignore postings from HootSuite + if ($item->provider->title == "HootSuite") + continue; + + // Loop prevention through the special blank from the googleplus connector + if (strstr($item->object->content, $blank)) + continue; + switch($item->object->objectType) { case "note": $post = fromgplus_html2bbcode($item->object->content); @@ -335,9 +381,7 @@ function fromgplus_fetch($a, $uid) { else $location = ""; - // Loop prevention - should be made better - if ($item->provider->title != "HootSuite") - fromgplus_post($a, $uid, "Google+", $post, $location); + fromgplus_post($a, $uid, "Google+", $post, $location); //fromgplus_post($a, $uid, $item->provider->title, $post, $location); break; @@ -345,7 +389,7 @@ function fromgplus_fetch($a, $uid) { case "activity": $post = fromgplus_html2bbcode($item->annotation)."\n"; - if (intval(get_config('system','new_share'))) { + if (!intval(get_config('system','old_share'))) { $post .= "[share author='".str_replace("'", "'",$item->object->actor->displayName). "' profile='".$item->object->actor->url. "' avatar='".$item->object->actor->image->url. @@ -371,9 +415,7 @@ function fromgplus_fetch($a, $uid) { else $location = ""; - // Loop prevention - should be made better - if ($item->provider->title != "HootSuite") - fromgplus_post($a, $uid, "Google+", $post, $location); + fromgplus_post($a, $uid, "Google+", $post, $location); //fromgplus_post($a, $uid, $item->provider->title, $post, $location); break; }