api: item owner and activities details
return new fileld for items 'friendica_owner'. 'user' is always the author of the item. Items activitites now returns array of contacts details: {'name','url'}
This commit is contained in:
parent
95b7de6313
commit
3cd2ed54eb
1 changed files with 34 additions and 13 deletions
|
@ -664,18 +664,20 @@
|
|||
|
||||
// Comments in threads may appear as wall-to-wall postings.
|
||||
// So only take the owner at the top posting.
|
||||
if ($item["id"] == $item["parent"])
|
||||
$status_user = api_get_user($a,$item["owner-link"]);
|
||||
else
|
||||
$status_user = api_get_user($a,$item["author-link"]);
|
||||
|
||||
#if ($item["id"] == $item["parent"])
|
||||
# $status_user = api_get_user($a,$item["owner-link"]);
|
||||
#else
|
||||
|
||||
$status_user = api_get_user($a,$item["author-link"]);
|
||||
$status_user["protected"] = (($item["allow_cid"] != "") OR
|
||||
($item["allow_gid"] != "") OR
|
||||
($item["deny_cid"] != "") OR
|
||||
($item["deny_gid"] != "") OR
|
||||
$item["private"]);
|
||||
|
||||
return ($status_user);
|
||||
$owner_user = api_get_user($a,$item["owner-link"]);
|
||||
|
||||
return (array($status_user, $owner_user));
|
||||
}
|
||||
|
||||
|
||||
|
@ -2278,6 +2280,24 @@
|
|||
return $text;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief return <a href='url'>name</a> as array
|
||||
*
|
||||
* @param string $txt
|
||||
* @return array
|
||||
* name => 'name'
|
||||
* 'url => 'url'
|
||||
*/
|
||||
function api_contactlink_to_array($txt) {
|
||||
$elm = new SimpleXMLElement($txt);
|
||||
return array(
|
||||
'name' => $elm->__toString(),
|
||||
'url' => $elm->attributes()['href']->__toString()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief return likes, dislikes and attend status for item
|
||||
*
|
||||
|
@ -2286,7 +2306,7 @@
|
|||
* likes => int count
|
||||
* dislikes => int count
|
||||
*/
|
||||
function api_format_items_likes(&$item) {
|
||||
function api_format_items_activities(&$item) {
|
||||
$activities = array(
|
||||
'like' => array(),
|
||||
'dislike' => array(),
|
||||
|
@ -2301,13 +2321,13 @@
|
|||
foreach ($items as $i){
|
||||
builtin_activity_puller($i, $activities);
|
||||
}
|
||||
|
||||
|
||||
$res = array();
|
||||
$uri = $item['uri'];
|
||||
$uri = $item['uri']."-l";
|
||||
foreach($activities as $k => $v) {
|
||||
$res[$k] = (x($v,$uri)?$v[$uri]:0);
|
||||
$res[$k] = ( x($v,$uri) ? array_map("api_contactlink_to_array", $v[$uri]) : array() );
|
||||
}
|
||||
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
@ -2327,7 +2347,7 @@
|
|||
api_share_as_retweet($item);
|
||||
|
||||
localize_item($item);
|
||||
$status_user = api_item_get_user($a,$item);
|
||||
list($status_user, $owner_user) = api_item_get_user($a,$item);
|
||||
|
||||
// Look if the posts are matching if they should be filtered by user id
|
||||
if ($filter_user AND ($status_user["id"] != $user_info["id"]))
|
||||
|
@ -2388,10 +2408,11 @@
|
|||
'geo' => NULL,
|
||||
'favorited' => $item['starred'] ? true : false,
|
||||
'user' => $status_user ,
|
||||
'friendica_owner' => $owner_user,
|
||||
//'entities' => NULL,
|
||||
'statusnet_html' => $converted["html"],
|
||||
'statusnet_conversation_id' => $item['parent'],
|
||||
'friendica_activities' => api_format_items_likes($item),
|
||||
'friendica_activities' => api_format_items_activities($item),
|
||||
);
|
||||
|
||||
if (count($converted["attachments"]) > 0)
|
||||
|
|
Loading…
Reference in a new issue