X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=fromgplus%2Ffromgplus.php;h=4c96892c662d94efd9ff9cdee6ee5742bc3c94d9;hb=5fb7ef40fd9861a8011cfb01dc0dbd4d1d6046f6;hp=e0725a46df22a295d529653db453358be85be6c3;hpb=c892e56a905062c83095fa852c5628a8cb08f26f;p=friendica-addons.git diff --git a/fromgplus/fromgplus.php b/fromgplus/fromgplus.php index e0725a46..4c96892c 100644 --- a/fromgplus/fromgplus.php +++ b/fromgplus/fromgplus.php @@ -9,6 +9,9 @@ define('FROMGPLUS_DEFAULT_POLL_INTERVAL', 30); // given in minutes +require_once('mod/share.php'); +require_once('mod/parse_url.php'); + function fromgplus_install() { register_hook('connector_settings', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings'); register_hook('connector_settings_post', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings_post'); @@ -36,6 +39,7 @@ function fromgplus_addon_settings(&$a,&$s) { return; $enable_checked = (intval(get_pconfig(local_user(),'fromgplus','enable')) ? ' checked="checked"' : ''); + $keywords_checked = (intval(get_pconfig(local_user(), 'fromgplus', 'keywords')) ? ' checked="checked"' : ''); $account = get_pconfig(local_user(),'fromgplus','account'); $s .= ''; @@ -54,6 +58,9 @@ function fromgplus_addon_settings(&$a,&$s) { $s .= ''; $s .= ''; $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; $s .= '
'; @@ -71,6 +78,8 @@ function fromgplus_addon_settings_post(&$a,&$b) { set_pconfig(local_user(),'fromgplus','account',trim($_POST['fromgplus-account'])); $enable = ((x($_POST,'fromgplus-enable')) ? intval($_POST['fromgplus-enable']) : 0); set_pconfig(local_user(),'fromgplus','enable', $enable); + $keywords = ((x($_POST, 'fromgplus-keywords')) ? intval($_POST['fromgplus-keywords']) : 0); + set_pconfig(local_user(),'fromgplus', 'keywords', $keywords); if (!$enable) del_pconfig(local_user(),'fromgplus','lastdate'); @@ -79,6 +88,21 @@ function fromgplus_addon_settings_post(&$a,&$b) { } } +function fromgplus_plugin_admin(&$a, &$o){ + $t = get_markup_template("admin.tpl", "addon/fromgplus/"); + + $o = replace_macros($t, array( + '$submit' => t('Save Settings'), + '$key' => array('key', t('Key'), trim(get_config('fromgplus', 'key')), t('')), + )); +} + +function fromgplus_plugin_admin_post(&$a){ + $key = ((x($_POST,'key')) ? trim($_POST['key']) : ''); + set_config('fromgplus','key',$key); + info( t('Settings updated.'). EOL ); +} + function fromgplus_cron($a,$b) { $last = get_config('fromgplus','last_poll'); @@ -112,7 +136,7 @@ function fromgplus_cron($a,$b) { set_config('fromgplus','last_poll', time()); } -function fromgplus_post($a, $uid, $source, $body, $location) { +function fromgplus_post($a, $uid, $source, $body, $location, $coord, $id) { //$uid = 2; @@ -140,6 +164,9 @@ function fromgplus_post($a, $uid, $source, $body, $location) { $_REQUEST['source'] = $source; $_REQUEST['extid'] = NETWORK_GPLUS; + if (isset($id)) + $_REQUEST['message_id'] = NETWORK_GPLUS.":".$id; + // $_REQUEST['verb'] // $_REQUEST['parent'] // $_REQUEST['parent_uri'] @@ -147,6 +174,7 @@ function fromgplus_post($a, $uid, $source, $body, $location) { $_REQUEST['title'] = $title; $_REQUEST['body'] = $body; $_REQUEST['location'] = $location; + $_REQUEST['coord'] = $coord; if (($_REQUEST['title'] == "") AND ($_REQUEST['body'] == "")) { logger('fromgplus: empty post for user '.$uid." ".print_r($_REQUEST, true)); @@ -306,6 +334,11 @@ function fromgplus_handleattachments($a, $uid, $item, $displaytext, $shared) { if ($quote != "") $pagedata["text"] = $quote; + // Add Keywords to page link + $data = parseurl_getsiteinfo_cached($pagedata["url"], true); + if (isset($data["keywords"]) AND get_pconfig($uid, 'fromgplus', 'keywords')) { + $pagedata["keywords"] = $data["keywords"]; + } break; case "photo": @@ -399,7 +432,6 @@ function fromgplus_fetch($a, $uid) { $result = fetch_url("https://www.googleapis.com/plus/v1/people/".$account."/activities/public?alt=json&pp=1&key=".$key."&maxResults=".$maxfetch); //$result = file_get_contents("google.txt"); - //$result = file_get_contents("addon/fromgplus/album.txt"); //file_put_contents("google.txt", $result); $activities = json_decode($result); @@ -429,6 +461,8 @@ function fromgplus_fetch($a, $uid) { if ($lastdate < strtotime($item->published)) $lastdate = strtotime($item->published); + set_pconfig($uid,'fromgplus','lastdate', $lastdate); + if ($first_time) continue; @@ -446,14 +480,23 @@ function fromgplus_fetch($a, $uid) { if (is_array($item->object->attachments)) $post .= fromgplus_handleattachments($a, $uid, $item, $item->object->content, false); - // geocode, placeName - if (isset($item->address)) + $coord = ""; + $location = ""; + if (isset($item->location)) { + if (isset($item->location->address->formatted)) + $location = $item->location->address->formatted; + + if (isset($item->location->displayName)) + $location = $item->location->displayName; + + if (isset($item->location->position->latitude) AND + isset($item->location->position->longitude)) + $coord = $item->location->position->latitude." ".$item->location->position->longitude; + + } elseif (isset($item->address)) $location = $item->address; - else - $location = ""; - //fromgplus_post($a, $uid, "Google+", $post, $location); - fromgplus_post($a, $uid, $item->provider->title, $post, $location); + fromgplus_post($a, $uid, $item->provider->title, $post, $location, $coord, $item->id); break; @@ -461,10 +504,17 @@ function fromgplus_fetch($a, $uid) { $post = fromgplus_html2bbcode($item->annotation)."\n"; 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. - "' link='".$item->object->url."']"; + + if (function_exists("share_header")) + $post .= share_header($item->object->actor->displayName, $item->object->actor->url, + $item->object->actor->image->url, "", + datetime_convert('UTC','UTC',$item->object->published),$item->object->url); + else + $post .= "[share author='".str_replace("'", "'",$item->object->actor->displayName). + "' profile='".$item->object->actor->url. + "' avatar='".$item->object->actor->image->url. + "' posted='".datetime_convert('UTC','UTC',$item->object->published). + "' link='".$item->object->url."']"; $post .= fromgplus_html2bbcode($item->object->content); @@ -481,13 +531,23 @@ function fromgplus_fetch($a, $uid) { $post .= "\n".trim(fromgplus_handleattachments($a, $uid, $item, $item->object->content, true)); } - if (isset($item->address)) + $coord = ""; + $location = ""; + if (isset($item->location)) { + if (isset($item->location->address->formatted)) + $location = $item->location->address->formatted; + + if (isset($item->location->displayName)) + $location = $item->location->displayName; + + if (isset($item->location->position->latitude) AND + isset($item->location->position->longitude)) + $coord = $item->location->position->latitude." ".$item->location->position->longitude; + + } elseif (isset($item->address)) $location = $item->address; - else - $location = ""; - //fromgplus_post($a, $uid, "Google+", $post, $location); - fromgplus_post($a, $uid, $item->provider->title, $post, $location); + fromgplus_post($a, $uid, $item->provider->title, $post, $location, $coord, $item->id); break; } }