OStatus conversation are now checked every 30 minutes for new answers.
This commit is contained in:
parent
2350aa54eb
commit
c9307eb96a
3 changed files with 60 additions and 20 deletions
|
@ -1,9 +1,39 @@
|
||||||
<?php
|
<?php
|
||||||
function complete_conversation($itemid, $conversation_url) {
|
define('OSTATUS_DEFAULT_POLL_INTERVAL', 30); // given in minutes
|
||||||
global $a;
|
|
||||||
|
|
||||||
require_once('include/html2bbcode.php');
|
function check_conversations() {
|
||||||
require_once('include/items.php');
|
$last = get_config('system','ostatus_last_poll');
|
||||||
|
|
||||||
|
$poll_interval = intval(get_config('system','ostatus_poll_interval'));
|
||||||
|
if(! $poll_interval)
|
||||||
|
$poll_interval = OSTATUS_DEFAULT_POLL_INTERVAL;
|
||||||
|
|
||||||
|
if($last) {
|
||||||
|
$next = $last + ($poll_interval * 60);
|
||||||
|
if($next > time()) {
|
||||||
|
logger('complete_conversation: poll intervall not reached');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
logger('complete_conversation: cron_start');
|
||||||
|
|
||||||
|
$start = date("Y-m-d H:i:s", time() - 86400);
|
||||||
|
$conversations = q("SELECT * FROM `term` WHERE `type` = 7 AND `term` > '%s'",
|
||||||
|
dbesc($start));
|
||||||
|
foreach ($conversations AS $conversation) {
|
||||||
|
$id = $conversation['oid'];
|
||||||
|
$url = $conversation['url'];
|
||||||
|
complete_conversation($id, $url);
|
||||||
|
}
|
||||||
|
|
||||||
|
logger('complete_conversation: cron_end');
|
||||||
|
|
||||||
|
set_config('system','ostatus_last_poll', time());
|
||||||
|
}
|
||||||
|
|
||||||
|
function complete_conversation($itemid, $conversation_url, $only_add_conversation = false) {
|
||||||
|
global $a;
|
||||||
|
|
||||||
//logger('complete_conversation: completing conversation url '.$conversation_url.' for id '.$itemid);
|
//logger('complete_conversation: completing conversation url '.$conversation_url.' for id '.$itemid);
|
||||||
|
|
||||||
|
@ -12,13 +42,6 @@ function complete_conversation($itemid, $conversation_url) {
|
||||||
return;
|
return;
|
||||||
$message = $messages[0];
|
$message = $messages[0];
|
||||||
|
|
||||||
// Get the parent
|
|
||||||
$parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
|
||||||
intval($message["uid"]), intval($message["parent"]));
|
|
||||||
if (!$parents)
|
|
||||||
return;
|
|
||||||
$parent = $parents[0];
|
|
||||||
|
|
||||||
// Store conversation url if not done before
|
// Store conversation url if not done before
|
||||||
$conversation = q("SELECT `url` FROM `term` WHERE `uid` = %d AND `oid` = %d AND `otype` = %d AND `type` = %d",
|
$conversation = q("SELECT `url` FROM `term` WHERE `uid` = %d AND `oid` = %d AND `otype` = %d AND `type` = %d",
|
||||||
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION));
|
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION));
|
||||||
|
@ -29,6 +52,19 @@ function complete_conversation($itemid, $conversation_url) {
|
||||||
logger('complete_conversation: Storing conversation url '.$conversation_url.' for id '.$itemid);
|
logger('complete_conversation: Storing conversation url '.$conversation_url.' for id '.$itemid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($only_add_conversation)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Get the parent
|
||||||
|
$parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
|
intval($message["uid"]), intval($message["parent"]));
|
||||||
|
if (!$parents)
|
||||||
|
return;
|
||||||
|
$parent = $parents[0];
|
||||||
|
|
||||||
|
require_once('include/html2bbcode.php');
|
||||||
|
require_once('include/items.php');
|
||||||
|
|
||||||
$conv = str_replace("/conversation/", "/api/statusnet/conversation/", $conversation_url).".as";
|
$conv = str_replace("/conversation/", "/api/statusnet/conversation/", $conversation_url).".as";
|
||||||
|
|
||||||
logger('complete_conversation: fetching conversation url '.$conv.' for '.$itemid);
|
logger('complete_conversation: fetching conversation url '.$conv.' for '.$itemid);
|
||||||
|
@ -111,6 +147,9 @@ function complete_conversation($itemid, $conversation_url) {
|
||||||
|
|
||||||
$newitem = item_store($arr);
|
$newitem = item_store($arr);
|
||||||
|
|
||||||
|
// Add the conversation entry (but don't fetch the whole conversation)
|
||||||
|
complete_conversation($newitem, $conversation_url, true);
|
||||||
|
|
||||||
// If the newly created item is the top item then change the parent settings of the thread
|
// If the newly created item is the top item then change the parent settings of the thread
|
||||||
if ($newitem AND ($arr["uri"] == $first_id)) {
|
if ($newitem AND ($arr["uri"] == $first_id)) {
|
||||||
logger('complete_conversation: setting new parent to id '.$newitem);
|
logger('complete_conversation: setting new parent to id '.$newitem);
|
||||||
|
|
|
@ -86,7 +86,8 @@ function poller_run(&$argv, &$argc){
|
||||||
if($abandon_days < 1)
|
if($abandon_days < 1)
|
||||||
$abandon_days = 0;
|
$abandon_days = 0;
|
||||||
|
|
||||||
|
// Check OStatus conversations
|
||||||
|
check_conversations();
|
||||||
|
|
||||||
// once daily run birthday_updates and then expire in background
|
// once daily run birthday_updates and then expire in background
|
||||||
|
|
||||||
|
|
|
@ -349,11 +349,11 @@
|
||||||
|
|
||||||
.fancybox-ie .fancybox-bg { background: transparent !important; }
|
.fancybox-ie .fancybox-bg { background: transparent !important; }
|
||||||
|
|
||||||
.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
|
||||||
.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
|
||||||
.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
|
||||||
.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
|
||||||
.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
|
||||||
.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
|
||||||
.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
|
||||||
.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
|
.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='library/fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
|
||||||
|
|
Loading…
Reference in a new issue