mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2024-11-25 08:03:41 +00:00
Improved loop detection for Google+, Pump.io, Twitter and GNU Social
This commit is contained in:
parent
ad1afc33d0
commit
584f58e573
5 changed files with 32 additions and 16 deletions
|
@ -416,6 +416,7 @@ function fromgplus_fetch($a, $uid) {
|
||||||
$reversed = array_reverse($activities->items);
|
$reversed = array_reverse($activities->items);
|
||||||
|
|
||||||
foreach($reversed as $item) {
|
foreach($reversed as $item) {
|
||||||
|
|
||||||
if (strtotime($item->published) <= $initiallastdate)
|
if (strtotime($item->published) <= $initiallastdate)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -431,14 +432,11 @@ function fromgplus_fetch($a, $uid) {
|
||||||
if ($first_time)
|
if ($first_time)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ($item->access->description == "Public")
|
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
|
// Loop prevention through the special blank from the googleplus connector
|
||||||
if (strstr($item->object->content, $blank))
|
//if (strstr($item->object->content, $blank))
|
||||||
|
if (strrpos($item->object->content, $blank) >= strlen($item->object->content) - 5)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch($item->object->objectType) {
|
switch($item->object->objectType) {
|
||||||
|
@ -454,8 +452,8 @@ function fromgplus_fetch($a, $uid) {
|
||||||
else
|
else
|
||||||
$location = "";
|
$location = "";
|
||||||
|
|
||||||
fromgplus_post($a, $uid, "Google+", $post, $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);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -488,11 +486,12 @@ function fromgplus_fetch($a, $uid) {
|
||||||
else
|
else
|
||||||
$location = "";
|
$location = "";
|
||||||
|
|
||||||
fromgplus_post($a, $uid, "Google+", $post, $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);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if ($lastdate != 0)
|
if ($lastdate != 0)
|
||||||
set_pconfig($uid,'fromgplus','lastdate', $lastdate);
|
set_pconfig($uid,'fromgplus','lastdate', $lastdate);
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,7 +230,7 @@ function gpluspost_send(&$a,&$b) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// if post comes from Google+ don't send it back
|
// if post comes from Google+ don't send it back
|
||||||
if (!get_pconfig($b["uid"],'gpluspost','no_loop_prevention') and ($b['app'] == "Google+"))
|
if (!get_pconfig($b["uid"],'gpluspost','no_loop_prevention') and (($b['app'] == "Google+") OR ($b["extid"] == NETWORK_GPLUS)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!gpluspost_nextscripts()) {
|
if (!gpluspost_nextscripts()) {
|
||||||
|
|
|
@ -433,9 +433,6 @@ function pumpio_send(&$a,&$b) {
|
||||||
|
|
||||||
$title = trim($b['title']);
|
$title = trim($b['title']);
|
||||||
|
|
||||||
//if ($title != '')
|
|
||||||
// $title = "<h4>".$title."</h4>";
|
|
||||||
|
|
||||||
$content = bbcode($b['body'], false, false, 4);
|
$content = bbcode($b['body'], false, false, 4);
|
||||||
|
|
||||||
// Enhance the way, videos are displayed
|
// Enhance the way, videos are displayed
|
||||||
|
@ -502,6 +499,10 @@ function pumpio_send(&$a,&$b) {
|
||||||
$success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
|
$success = $client->CallAPI($url, 'POST', $params, array('FailOnAccessError'=>true, 'RequestContentType'=>'application/json'), $user);
|
||||||
|
|
||||||
if($success) {
|
if($success) {
|
||||||
|
|
||||||
|
if ($user->generator->displayName)
|
||||||
|
set_pconfig($b["uid"], "pumpio", "application_name", $user->generator->displayName);
|
||||||
|
|
||||||
$post_id = $user->object->id;
|
$post_id = $user->object->id;
|
||||||
logger('pumpio_send '.$username.': success '.$post_id);
|
logger('pumpio_send '.$username.': success '.$post_id);
|
||||||
if($post_id AND $iscomment) {
|
if($post_id AND $iscomment) {
|
||||||
|
@ -672,8 +673,12 @@ function pumpio_fetchtimeline(&$a, $uid) {
|
||||||
$hostname = get_pconfig($uid, 'pumpio','host');
|
$hostname = get_pconfig($uid, 'pumpio','host');
|
||||||
$username = get_pconfig($uid, "pumpio", "user");
|
$username = get_pconfig($uid, "pumpio", "user");
|
||||||
|
|
||||||
|
// get the application name for the pump.io app
|
||||||
|
// 1st try personal config, then system config and fallback to the
|
||||||
|
// hostname of the node if neither one is set.
|
||||||
|
$application_name = get_pconfig( $uid, 'pumpio', 'application_name');
|
||||||
|
if ($application_name == "")
|
||||||
$application_name = get_config('pumpio', 'application_name');
|
$application_name = get_config('pumpio', 'application_name');
|
||||||
|
|
||||||
if ($application_name == "")
|
if ($application_name == "")
|
||||||
$application_name = $a->get_hostname();
|
$application_name = $a->get_hostname();
|
||||||
|
|
||||||
|
|
|
@ -606,6 +606,10 @@ function statusnet_post_hook(&$a,&$b) {
|
||||||
//$result = $dent->post('statuses/update', $postdata);
|
//$result = $dent->post('statuses/update', $postdata);
|
||||||
logger('statusnet_post send, result: ' . print_r($result, true).
|
logger('statusnet_post send, result: ' . print_r($result, true).
|
||||||
"\nmessage: ".$msg, LOGGER_DEBUG."\nOriginal post: ".print_r($b, true)."\nPost Data: ".print_r($postdata, true));
|
"\nmessage: ".$msg, LOGGER_DEBUG."\nOriginal post: ".print_r($b, true)."\nPost Data: ".print_r($postdata, true));
|
||||||
|
|
||||||
|
if ($result->source)
|
||||||
|
set_pconfig($b["uid"], "statusnet", "application_name", strip_tags($result->source));
|
||||||
|
|
||||||
if ($result->error) {
|
if ($result->error) {
|
||||||
logger('Send to StatusNet failed: "'.$result->error.'"');
|
logger('Send to StatusNet failed: "'.$result->error.'"');
|
||||||
} elseif ($iscomment) {
|
} elseif ($iscomment) {
|
||||||
|
|
|
@ -506,6 +506,10 @@ function twitter_post_hook(&$a,&$b) {
|
||||||
unlink($tempfile);
|
unlink($tempfile);
|
||||||
|
|
||||||
logger('twitter_post_with_media send, result: ' . print_r($result, true), LOGGER_DEBUG);
|
logger('twitter_post_with_media send, result: ' . print_r($result, true), LOGGER_DEBUG);
|
||||||
|
|
||||||
|
if ($result->source)
|
||||||
|
set_config("twitter", "application_name", strip_tags($result->source));
|
||||||
|
|
||||||
if ($result->errors OR $result->error) {
|
if ($result->errors OR $result->error) {
|
||||||
logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
|
logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
|
||||||
|
|
||||||
|
@ -531,6 +535,10 @@ function twitter_post_hook(&$a,&$b) {
|
||||||
|
|
||||||
$result = $tweet->post($url, $post);
|
$result = $tweet->post($url, $post);
|
||||||
logger('twitter_post send, result: ' . print_r($result, true), LOGGER_DEBUG);
|
logger('twitter_post send, result: ' . print_r($result, true), LOGGER_DEBUG);
|
||||||
|
|
||||||
|
if ($result->source)
|
||||||
|
set_config("twitter", "application_name", strip_tags($result->source));
|
||||||
|
|
||||||
if ($result->errors) {
|
if ($result->errors) {
|
||||||
logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
|
logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue