From e7aa2b99a116c71c8ff625daa33442fbee3e9fce Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 16 Jun 2013 13:28:04 +0200 Subject: [PATCH 1/2] OStatus: identi.ca seemed to have changed the format of activity streams for their migration. This fixes it API: It is now possible to fetch only posts from one thread. --- include/api.php | 22 ++++++++++++++++++---- include/ostatus_conversation.php | 4 ++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/include/api.php b/include/api.php index 45cad9ca8..5b26328d0 100644 --- a/include/api.php +++ b/include/api.php @@ -741,8 +741,9 @@ if ($page<0) $page=0; $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); - $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); + $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); + $parent_id = (x($_REQUEST,'parent_id')?$_REQUEST['parent_id']:0); $start = $page*$count; @@ -753,6 +754,8 @@ $sql_extra .= ' AND `item`.`id` <= '.intval($max_id); if ($exclude_replies > 0) $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; + if ($parent_id > 0) + $sql_extra .= ' AND `item`.`parent` = '.intval($parent_id); $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, @@ -816,6 +819,8 @@ $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); + $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); + $parent_id = (x($_REQUEST,'parent_id')?$_REQUEST['parent_id']:0); $start = $page*$count; @@ -823,6 +828,10 @@ if ($max_id > 0) $sql_extra = 'AND `item`.`id` <= '.intval($max_id); + if ($exclude_replies > 0) + $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; + if ($parent_id > 0) + $sql_extra .= ' AND `item`.`parent` = '.intval($parent_id); /*$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, @@ -1124,14 +1133,19 @@ $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); if ($page<0) $page=0; $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - + $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); + $parent_id = (x($_REQUEST,'parent_id')?$_REQUEST['parent_id']:0); + $start = $page*$count; $sql_extra = ''; if ($user_info['self']==1) $sql_extra .= " AND `item`.`wall` = 1 "; - if ($exclude_replies > 0) $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; + + if ($exclude_replies > 0) + $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; + if ($parent_id > 0) + $sql_extra .= ' AND `item`.`parent` = '.intval($parent_id); $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, diff --git a/include/ostatus_conversation.php b/include/ostatus_conversation.php index c63acfadc..480506a06 100644 --- a/include/ostatus_conversation.php +++ b/include/ostatus_conversation.php @@ -100,6 +100,10 @@ function complete_conversation($itemid, $conversation_url, $only_add_conversatio $items = array_reverse($items); foreach ($items as $single_conv) { + // identi.ca just changed the format of the activity streams. This is a quick fix. + if (@is_string($single_conv->object->id)) + $single_conv->id = $single_conv->object->id; + if (@!$single_conv->id AND $single_conv->provider->url AND $single_conv->statusnet_notice_info->local_id) $single_conv->id = $single_conv->provider->url."notice/".$single_conv->statusnet_notice_info->local_id; From e246c53b45d474ff7d690fe40b5a2a1898647110 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 16 Jun 2013 13:42:43 +0200 Subject: [PATCH 2/2] API: Changed "parent_id" to "conversation_id" since that reflects better the meaning of this programming. --- include/api.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/include/api.php b/include/api.php index 5b26328d0..b24cfdc07 100644 --- a/include/api.php +++ b/include/api.php @@ -743,7 +743,7 @@ $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); - $parent_id = (x($_REQUEST,'parent_id')?$_REQUEST['parent_id']:0); + $conversation_id = (x($_REQUEST,'conversation_id')?$_REQUEST['conversation_id']:0); $start = $page*$count; @@ -754,8 +754,8 @@ $sql_extra .= ' AND `item`.`id` <= '.intval($max_id); if ($exclude_replies > 0) $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; - if ($parent_id > 0) - $sql_extra .= ' AND `item`.`parent` = '.intval($parent_id); + if ($conversation_id > 0) + $sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id); $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, @@ -820,7 +820,7 @@ $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); - $parent_id = (x($_REQUEST,'parent_id')?$_REQUEST['parent_id']:0); + $conversation_id = (x($_REQUEST,'conversation_id')?$_REQUEST['conversation_id']:0); $start = $page*$count; @@ -830,8 +830,8 @@ $sql_extra = 'AND `item`.`id` <= '.intval($max_id); if ($exclude_replies > 0) $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; - if ($parent_id > 0) - $sql_extra .= ' AND `item`.`parent` = '.intval($parent_id); + if ($conversation_id > 0) + $sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id); /*$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, @@ -1135,7 +1135,7 @@ $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); - $parent_id = (x($_REQUEST,'parent_id')?$_REQUEST['parent_id']:0); + $conversation_id = (x($_REQUEST,'conversation_id')?$_REQUEST['conversation_id']:0); $start = $page*$count; @@ -1144,8 +1144,8 @@ if ($exclude_replies > 0) $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; - if ($parent_id > 0) - $sql_extra .= ' AND `item`.`parent` = '.intval($parent_id); + if ($conversation_id > 0) + $sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id); $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,