ostatus auto completion now seems to work.
This commit is contained in:
parent
bc972e16ce
commit
e668fece10
2 changed files with 39 additions and 7 deletions
|
@ -8,6 +8,7 @@ require_once('include/Photo.php');
|
|||
require_once('include/tags.php');
|
||||
require_once('include/text.php');
|
||||
require_once('include/email.php');
|
||||
require_once('include/ostatus_conversation.php');
|
||||
|
||||
function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
|
||||
|
||||
|
@ -1098,7 +1099,6 @@ function item_store($arr,$force_parent = false) {
|
|||
$current_post = $r[0]['id'];
|
||||
logger('item_store: created item ' . $current_post);
|
||||
create_tags_from_item($r[0]['id']);
|
||||
// ostatus_conversation
|
||||
} else {
|
||||
logger('item_store: could not locate created item');
|
||||
return 0;
|
||||
|
@ -1135,6 +1135,10 @@ function item_store($arr,$force_parent = false) {
|
|||
);
|
||||
create_tags_from_item($current_post);
|
||||
|
||||
// Complete ostatus threads
|
||||
if ($ostatus_conversation)
|
||||
complete_conversation($current_post, $ostatus_conversation);
|
||||
|
||||
$arr['id'] = $current_post;
|
||||
$arr['parent'] = $parent_id;
|
||||
$arr['allow_cid'] = $allow_cid;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
require_once("boot.php");
|
||||
/*require_once("boot.php");
|
||||
if(@is_null($a)) {
|
||||
$a = new App;
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ if(is_null($db)) {
|
|||
require_once("dba.php");
|
||||
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
};
|
||||
};*/
|
||||
|
||||
function complete_conversation($itemid, $conversation_url) {
|
||||
global $a;
|
||||
|
@ -17,6 +17,8 @@ function complete_conversation($itemid, $conversation_url) {
|
|||
require_once('include/html2bbcode.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
logger('complete_conversation: completing conversation url '.$conversation_url.' for id '.$itemid);
|
||||
|
||||
$messages = q("SELECT `uid`, `parent` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
||||
if (!$messages)
|
||||
return;
|
||||
|
@ -33,23 +35,38 @@ function complete_conversation($itemid, $conversation_url) {
|
|||
$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));
|
||||
|
||||
if (!$conversation)
|
||||
if (!$conversation) {
|
||||
$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`) VALUES (%d, %d, %d, %d, '%s', '%s')",
|
||||
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), '', dbesc($conversation_url));
|
||||
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc(datetime_convert()), dbesc($conversation_url));
|
||||
logger('complete_conversation: Storing conversation url '.$conversation_url.' for id '.$itemid);
|
||||
}
|
||||
|
||||
$conv = str_replace("/conversation/", "/api/statusnet/conversation/", $conversation_url).".as";
|
||||
|
||||
logger('complete_conversation: fetching conversation url '.$conversation_url.' for '.$itemid);
|
||||
$conv_as = fetch_url($conv);
|
||||
|
||||
if ($conv_as) {
|
||||
$conv_as = str_replace(',"statusnet:notice_info":', ',"statusnet_notice_info":', $conv_as);
|
||||
$conv_as = json_decode($conv_as);
|
||||
|
||||
$first_id = "";
|
||||
$items = array_reverse($conv_as->items);
|
||||
|
||||
foreach ($items as $single_conv) {
|
||||
//print_r($single_conv);
|
||||
|
||||
if ($first_id == "") {
|
||||
$first_id = $single_conv->id;
|
||||
|
||||
$new_parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
|
||||
intval($message["uid"]), dbesc($first_id));
|
||||
if ($new_parents)
|
||||
$parent = $new_parents[0];
|
||||
|
||||
logger('complete_conversation: adopting new parent '.$parent["id"].' for '.$itemid);
|
||||
}
|
||||
|
||||
if (isset($single_conv->context->inReplyTo->id))
|
||||
$parent_uri = $single_conv->context->inReplyTo->id;
|
||||
else
|
||||
|
@ -99,14 +116,25 @@ function complete_conversation($itemid, $conversation_url) {
|
|||
if ($arr["coord"] == "")
|
||||
unset($arr["coord"]);
|
||||
|
||||
item_store($arr);
|
||||
$newitem = item_store($arr);
|
||||
|
||||
// If the newly created item is the top item then change the parent settings of the thread
|
||||
if ($newitem AND ($arr["uri"] == $first_id)) {
|
||||
logger('complete_conversation: changing parents to parent '.$newitem.' old parent: '.$parent["id"].' new uri: '.$arr["uri"]);
|
||||
$r = q("UPDATE `item` SET `parent` = %d, `parent-uri` = '%s' WHERE `parent` = %d",
|
||||
intval($newitem),
|
||||
dbesc($arr["uri"]),
|
||||
intval($parent["id"]));
|
||||
logger('complete_conversation: done changing parents to parent '.$newitem);
|
||||
}
|
||||
//print_r($arr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
$id = 282481;
|
||||
$conversation = "http://identi.ca/conversation/98268580";
|
||||
|
||||
complete_conversation($id, $conversation);
|
||||
*/
|
||||
?>
|
||||
|
|
Loading…
Reference in a new issue