Merge pull request #382 from annando/1603-fromgplus-keywords

Google+/Twitter/GNU Social: Prevent posting loops when mirroring posts
This commit is contained in:
Tobias Diekershoff 2016-11-12 18:56:41 +01:00 committed by GitHub
commit 24638894a6
5 changed files with 59 additions and 24 deletions

View File

@ -10,6 +10,7 @@
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');
@ -38,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 .= '<span id="settings_fromgplus_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_fromgplus_expanded\'); openClose(\'settings_fromgplus_inflated\');">';
@ -56,6 +58,9 @@ function fromgplus_addon_settings(&$a,&$s) {
$s .= '<label id="fromgplus-label" for="fromgplus-account">'.t('Google Account ID').' </label>';
$s .= '<input id="fromgplus-account" type="text" name="fromgplus-account" value="'.$account.'" />';
$s .= '</div><div class="clear"></div>';
$s .= '<label id="fromgplus-keywords-label" for="fromgplus-keywords">'.t('Add keywords to post').'</label>';
$s .= '<input id="fromgplus-keywords" type="checkbox" name="fromgplus-keywords" value="1"'.$keywords_checked.' />';
$s .= '<div class="clear"></div>';
$s .= '<div class="settings-submit-wrapper" ><input type="submit" id="fromgplus-submit" name="fromgplus-submit"
class="settings-submit" value="' . t('Save Settings') . '" /></div>';
@ -73,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');
@ -129,7 +136,7 @@ function fromgplus_cron($a,$b) {
set_config('fromgplus','last_poll', time());
}
function fromgplus_post($a, $uid, $source, $body, $location, $coord) {
function fromgplus_post($a, $uid, $source, $body, $location, $coord, $id) {
//$uid = 2;
@ -157,6 +164,9 @@ function fromgplus_post($a, $uid, $source, $body, $location, $coord) {
$_REQUEST['source'] = $source;
$_REQUEST['extid'] = NETWORK_GPLUS;
if (isset($id))
$_REQUEST['message_id'] = NETWORK_GPLUS.":".$id;
// $_REQUEST['verb']
// $_REQUEST['parent']
// $_REQUEST['parent_uri']
@ -324,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":
@ -446,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;
@ -479,7 +496,7 @@ function fromgplus_fetch($a, $uid) {
} elseif (isset($item->address))
$location = $item->address;
fromgplus_post($a, $uid, $item->provider->title, $post, $location, $coord);
fromgplus_post($a, $uid, $item->provider->title, $post, $location, $coord, $item->id);
break;
@ -530,7 +547,7 @@ function fromgplus_fetch($a, $uid) {
} elseif (isset($item->address))
$location = $item->address;
fromgplus_post($a, $uid, $item->provider->title, $post, $location, $coord);
fromgplus_post($a, $uid, $item->provider->title, $post, $location, $coord, $item->id);
break;
}
}

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
"POT-Creation-Date: 2016-11-12 16:52+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,22 +17,34 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: fromgplus.php:33
msgid "Google+ Import Settings"
#: fromgplus.php:46 fromgplus.php:50
msgid "Google+ Mirror"
msgstr ""
#: fromgplus.php:36
#: fromgplus.php:55
msgid "Enable Google+ Import"
msgstr ""
#: fromgplus.php:39
#: fromgplus.php:58
msgid "Google Account ID"
msgstr ""
#: fromgplus.php:44
msgid "Submit"
#: fromgplus.php:61
msgid "Add keywords to post"
msgstr ""
#: fromgplus.php:59
#: fromgplus.php:66 fromgplus.php:95
msgid "Save Settings"
msgstr ""
#: fromgplus.php:87
msgid "Google+ Import Settings saved."
msgstr ""
#: fromgplus.php:96
msgid "Key"
msgstr ""
#: fromgplus.php:103
msgid "Settings updated."
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-06-23 14:44+0200\n"
"POT-Creation-Date: 2016-11-12 16:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,50 +17,50 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: gpluspost.php:38
#: gpluspost.php:39
msgid "Post to Google+"
msgstr ""
#: gpluspost.php:93
#: gpluspost.php:94
msgid "Enable Google+ Post Plugin"
msgstr ""
#: gpluspost.php:108
#: gpluspost.php:109
msgid "Google+ username"
msgstr ""
#: gpluspost.php:113
#: gpluspost.php:114
msgid "Google+ password"
msgstr ""
#: gpluspost.php:118
#: gpluspost.php:119
msgid "Google+ page number"
msgstr ""
#: gpluspost.php:124
#: gpluspost.php:125
msgid "Post to Google+ by default"
msgstr ""
#: gpluspost.php:129
#: gpluspost.php:130
msgid "Do not prevent posting loops"
msgstr ""
#: gpluspost.php:135
#: gpluspost.php:136
msgid "Skip messages without links"
msgstr ""
#: gpluspost.php:142
#: gpluspost.php:143
msgid "Mirror all public posts"
msgstr ""
#: gpluspost.php:146
#: gpluspost.php:147
msgid "Mirror Google Account ID"
msgstr ""
#: gpluspost.php:153
#: gpluspost.php:154
msgid "Save Settings"
msgstr ""
#: gpluspost.php:308
#: gpluspost.php:310
msgid "Google+ post failed. Queued for retry."
msgstr ""

View File

@ -872,6 +872,9 @@ function statusnet_fetchtimeline($a, $uid) {
$_REQUEST["source"] = $post->source;
$_REQUEST["extid"] = NETWORK_STATUSNET;
if (isset($post->id))
$_REQUEST['message_id'] = NETWORK_STATUSNET.":".$post->id;
//$_REQUEST["date"] = $post->created_at;
$_REQUEST["title"] = "";

View File

@ -791,6 +791,9 @@ function twitter_fetchtimeline($a, $uid) {
$_REQUEST["source"] = $post->source;
$_REQUEST["extid"] = NETWORK_TWITTER;
if (isset($post->id))
$_REQUEST['message_id'] = NETWORK_TWITTER.":".$post->id;
//$_REQUEST["date"] = $post->created_at;
$_REQUEST["title"] = "";