OStatus conversation: Prevent posting loops
This commit is contained in:
parent
05597b564d
commit
00888a73bb
1 changed files with 15 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
define('OSTATUS_DEFAULT_POLL_INTERVAL', 30); // given in minutes
|
||||
define('OSTATUS_DEFAULT_POLL_TIMEFRAME', 1440); // given in minutes
|
||||
|
||||
function check_conversations() {
|
||||
$last = get_config('system','ostatus_last_poll');
|
||||
|
@ -8,17 +9,25 @@ function check_conversations() {
|
|||
if(! $poll_interval)
|
||||
$poll_interval = OSTATUS_DEFAULT_POLL_INTERVAL;
|
||||
|
||||
// Don't poll if the interval is set negative
|
||||
if ($poll_interval < 0)
|
||||
return;
|
||||
|
||||
$poll_timeframe = intval(get_config('system','ostatus_poll_timeframe'));
|
||||
if(! $poll_timeframe)
|
||||
$poll_timeframe = OSTATUS_DEFAULT_POLL_TIMEFRAME;
|
||||
|
||||
if($last) {
|
||||
$next = $last + ($poll_interval * 60);
|
||||
if($next > time()) {
|
||||
logger('complete_conversation: poll intervall not reached');
|
||||
logger('complete_conversation: poll interval not reached');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
logger('complete_conversation: cron_start');
|
||||
|
||||
$start = date("Y-m-d H:i:s", time() - 86400);
|
||||
$start = date("Y-m-d H:i:s", time() - ($poll_timeframe * 60));
|
||||
$conversations = q("SELECT * FROM `term` WHERE `type` = 7 AND `term` > '%s'",
|
||||
dbesc($start));
|
||||
foreach ($conversations AS $conversation) {
|
||||
|
@ -100,18 +109,18 @@ function complete_conversation($itemid, $conversation_url, $only_add_conversatio
|
|||
else
|
||||
$parent_uri = $parent["uri"];
|
||||
|
||||
if ($parent["id"] != 0) {
|
||||
$message_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
|
||||
$message_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
|
||||
intval($message["uid"]), dbesc($single_conv->id));
|
||||
if ($message_exists) {
|
||||
if ($message_exists) {
|
||||
if ($parent["id"] != 0) {
|
||||
$existing_message = $message_exists[0];
|
||||
$r = q("UPDATE `item` SET `parent` = %d, `parent-uri` = '%s', `thr-parent` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
intval($parent["id"]),
|
||||
dbesc($parent["uri"]),
|
||||
dbesc($parent_uri),
|
||||
intval($existing_message["id"]));
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
$arr = array();
|
||||
|
|
Loading…
Reference in a new issue