`pubmail` boolean NOT NULL DEFAULT '0' COMMENT '',
`moderated` boolean NOT NULL DEFAULT '0' COMMENT '',
`visible` boolean NOT NULL DEFAULT '0' COMMENT '',
- `spam` boolean NOT NULL DEFAULT '0' COMMENT '',
`starred` boolean NOT NULL DEFAULT '0' COMMENT 'item has been favourited',
`bookmark` boolean NOT NULL DEFAULT '0' COMMENT 'item has been bookmarked',
`unseen` boolean NOT NULL DEFAULT '1' COMMENT 'item has not been seen',
`pubmail` boolean NOT NULL DEFAULT '0' COMMENT '',
`moderated` boolean NOT NULL DEFAULT '0' COMMENT '',
`visible` boolean NOT NULL DEFAULT '0' COMMENT '',
- `spam` boolean NOT NULL DEFAULT '0' COMMENT '',
`starred` boolean NOT NULL DEFAULT '0' COMMENT '',
`ignored` boolean NOT NULL DEFAULT '0' COMMENT '',
`bookmark` boolean NOT NULL DEFAULT '0' COMMENT '',
*/
function api_unique_id_to_nurl($id)
{
- $r = dba::selectFirst('contact', ['nurl'], ['uid' => 0, 'id' => $id]);
+ $r = dba::selectFirst('contact', ['nurl'], ['id' => $id]);
if (DBM::is_result($r)) {
return $r["nurl"];
$user = dbesc(api_unique_id_to_nurl(intval($contact_id)));
if ($user == "") {
- throw new BadRequestException("User not found.");
+ throw new BadRequestException("User ID ".$contact_id." not found.");
}
$url = $user;
$user = dbesc(api_unique_id_to_nurl($_GET['user_id']));
if ($user == "") {
- throw new BadRequestException("User not found.");
+ throw new BadRequestException("User ID ".$_GET['user_id']." not found.");
}
$url = $user;
'statusnet_profile_url' => $r[0]["url"],
'uid' => 0,
'cid' => Contact::getIdForURL($r[0]["url"], api_user(), true),
+ 'pid' => Contact::getIdForURL($r[0]["url"], 0, true),
'self' => 0,
'network' => $r[0]["network"],
];
return $ret;
} else {
- throw new BadRequestException("User not found.");
+ throw new BadRequestException("User ".$url." not found.");
}
}
'statusnet_profile_url' => $uinfo[0]['url'],
'uid' => intval($uinfo[0]['uid']),
'cid' => intval($uinfo[0]['cid']),
+ 'pid' => Contact::getIdForURL($uinfo[0]["url"], 0, true),
'self' => $uinfo[0]['self'],
'network' => $uinfo[0]['network'],
];
*/
function api_item_get_user(App $a, $item)
{
- $status_user = api_get_user($a, $item["author-link"]);
+ $status_user = api_get_user($a, $item["author-id"]);
- $status_user["protected"] = (($item["allow_cid"] != "") ||
- ($item["allow_gid"] != "") ||
- ($item["deny_cid"] != "") ||
- ($item["deny_gid"] != "") ||
- $item["private"]);
+ $status_user["protected"] = $item["private"];
if ($item['thr-parent'] == $item['uri']) {
- $owner_user = api_get_user($a, $item["owner-link"]);
+ $owner_user = api_get_user($a, $item["owner-id"]);
} else {
$owner_user = $status_user;
}
logger('api_status_show: user_info: '.print_r($user_info, true), LOGGER_DEBUG);
if ($type == "raw") {
- $privacy_sql = "AND `item`.`allow_cid`='' AND `item`.`allow_gid`='' AND `item`.`deny_cid`='' AND `item`.`deny_gid`=''";
+ $privacy_sql = "AND NOT `private`";
} else {
$privacy_sql = "";
}
// get last public wall message
- $lastwall = q(
- "SELECT `item`.*
- FROM `item`
- WHERE `item`.`contact-id` = %d AND `item`.`uid` = %d
- AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s')))
- AND `item`.`type` != 'activity' $privacy_sql
- ORDER BY `item`.`id` DESC
- LIMIT 1",
- intval($user_info['cid']),
- intval(api_user()),
- dbesc($user_info['url']),
- dbesc(normalise_link($user_info['url'])),
- dbesc($user_info['url']),
- dbesc(normalise_link($user_info['url']))
- );
+ $condition = ["`owner-id` = ? AND `uid` = ? AND `type` != 'activity' ".$privacy_sql,
+ $user_info['pid'], api_user()];
+ $lastwall = dba::selectFirst('item', [], $condition, ['order' => ['id' => true]]);
if (DBM::is_result($lastwall)) {
- $lastwall = $lastwall[0];
-
$in_reply_to = api_in_reply_to($lastwall);
$converted = api_convert_item($lastwall);
$status_info["entities"] = $converted["entities"];
}
- if (($lastwall['item_network'] != "") && ($status_info["source"] == 'web')) {
- $status_info["source"] = ContactSelector::networkToName($lastwall['item_network'], $user_info['url']);
- } elseif (($lastwall['item_network'] != "") && (ContactSelector::networkToName($lastwall['item_network'], $user_info['url']) != $status_info["source"])) {
- $status_info["source"] = trim($status_info["source"].' ('.ContactSelector::networkToName($lastwall['item_network'], $user_info['url']).')');
+ if ($status_info["source"] == 'web') {
+ $status_info["source"] = ContactSelector::networkToName($lastwall['network'], $user_info['url']);
+ } elseif (ContactSelector::networkToName($lastwall['network'], $user_info['url']) != $status_info["source"]) {
+ $status_info["source"] = trim($status_info["source"].' ('.ContactSelector::networkToName($lastwall['network'], $user_info['url']).')');
}
// "uid" and "self" are only needed for some internal stuff, so remove it from here
$a = get_app();
$user_info = api_get_user($a);
- $lastwall = q(
- "SELECT `item`.*
- FROM `item`
- INNER JOIN `contact` ON `contact`.`id`=`item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
- WHERE `item`.`uid` = %d AND `verb` = '%s' AND `item`.`contact-id` = %d
- AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s')))
- AND `type`!='activity'
- AND `item`.`allow_cid`='' AND `item`.`allow_gid`='' AND `item`.`deny_cid`='' AND `item`.`deny_gid`=''
- ORDER BY `id` DESC
- LIMIT 1",
- intval(api_user()),
- dbesc(ACTIVITY_POST),
- intval($user_info['cid']),
- dbesc($user_info['url']),
- dbesc(normalise_link($user_info['url'])),
- dbesc($user_info['url']),
- dbesc(normalise_link($user_info['url']))
- );
- if (DBM::is_result($lastwall)) {
- $lastwall = $lastwall[0];
+ $condition = ["`owner-id` = ? AND `uid` = ? AND `verb` = ? AND `type` != 'activity' AND NOT `private`",
+ $user_info['pid'], api_user(), ACTIVITY_POST];
+ $lastwall = dba::selectFirst('item', [], $condition, ['order' => ['id' => true]]);
+ if (DBM::is_result($lastwall)) {
$in_reply_to = api_in_reply_to($lastwall);
$converted = api_convert_item($lastwall);
$user_info["status"]["entities"] = $converted["entities"];
}
- if (($lastwall['item_network'] != "") && ($user_info["status"]["source"] == 'web')) {
- $user_info["status"]["source"] = ContactSelector::networkToName($lastwall['item_network'], $user_info['url']);
+ if ($user_info["status"]["source"] == 'web') {
+ $user_info["status"]["source"] = ContactSelector::networkToName($lastwall['network'], $user_info['url']);
}
- if (($lastwall['item_network'] != "") && (ContactSelector::networkToName($lastwall['item_network'], $user_info['url']) != $user_info["status"]["source"])) {
- $user_info["status"]["source"] = trim($user_info["status"]["source"] . ' (' . ContactSelector::networkToName($lastwall['item_network'], $user_info['url']) . ')');
+ if (ContactSelector::networkToName($lastwall['network'], $user_info['url']) != $user_info["status"]["source"]) {
+ $user_info["status"]["source"] = trim($user_info["status"]["source"] . ' (' . ContactSelector::networkToName($lastwall['network'], $user_info['url']) . ')');
}
}
}
$userlist = ["users" => $userlist];
} else {
- throw new BadRequestException("User not found.");
+ throw new BadRequestException("User ".$_GET["q"]." not found.");
}
} else {
- throw new BadRequestException("User not found.");
+ throw new BadRequestException("No user specified.");
}
return api_format_data("users", $type, $userlist);
$sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
}
- $r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item`
- STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ $r = q("SELECT `item`.* FROM `item`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
WHERE `item`.`uid` = %d AND `verb` = '%s'
AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
$sql_extra
- AND `item`.`id`>%d
- ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+ AND `item`.`id` > %d
+ ORDER BY `item`.`id` DESC LIMIT %d ,%d",
intval(api_user()),
dbesc(ACTIVITY_POST),
intval($since_id),
$id = $item['id'];
$r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item`
- INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ "SELECT `item`.* FROM `item`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
WHERE `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
AND `item`.`uid` IN (0, %d) AND `item`.`verb` = '%s'
$sql_extra = ' AND `item`.`id` <= ' . intval($max_id);
}
- $r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item`
- STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ $r = q("SELECT `item`.* FROM `item`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
WHERE `item`.`parent` = %d AND `item`.`visible`
AND NOT `item`.`moderated` AND NOT `item`.`deleted`
logger('API: api_statuses_repeat: '.$id);
- $r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`nick` as `reply_author`,
- `contact`.`name`, `contact`.`photo` as `reply_photo`, `contact`.`url` as `reply_url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item`
- INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ $r = q("SELECT `item`.* FROM `item`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
WHERE `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
- AND NOT `item`.`private` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
- AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
+ AND NOT `item`.`private`
AND `item`.`id`=%d",
intval($id)
);
$start = ($page - 1) * $count;
- // Ugly code - should be changed
- $myurl = System::baseUrl() . '/profile/'. $a->user['nickname'];
- $myurl = substr($myurl, strpos($myurl, '://') + 3);
- $myurl = str_replace('www.', '', $myurl);
-
$sql_extra = '';
if ($max_id > 0) {
- $sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
+ $sql_extra = ' AND `item`.`id` <= ' . intval($max_id);
}
- $r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item` FORCE INDEX (`uid_id`)
- STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ $r = q("SELECT `item`.* FROM `item` FORCE INDEX (`uid_id`)
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
- WHERE `item`.`uid` = %d AND `verb` = '%s'
- AND NOT (`item`.`author-link` IN ('https://%s', 'http://%s'))
+ WHERE `item`.`uid` = %d AND `item`.`verb` = '%s'
+ AND `item`.`author-id` != %d
AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
- AND `item`.`parent` IN (SELECT `iid` FROM `thread` WHERE `uid` = %d AND `mention` AND !`ignored`)
+ AND `item`.`parent` IN (SELECT `iid` FROM `thread` WHERE `uid` = %d AND `mention` AND NOT `ignored`)
$sql_extra
- AND `item`.`id`>%d
- ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+ AND `item`.`id` > %d
+ ORDER BY `item`.`id` DESC LIMIT %d ,%d",
intval(api_user()),
dbesc(ACTIVITY_POST),
- dbesc(protect_sprintf($myurl)),
- dbesc(protect_sprintf($myurl)),
+ intval($user_info['pid']),
intval(api_user()),
intval($since_id),
intval($start),
$sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
}
- $r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item` FORCE INDEX (`uid_contactid_id`)
- STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ $r = q("SELECT `item`.* FROM `item` FORCE INDEX (`uid_contactid_id`)
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
WHERE `item`.`uid` = %d AND `verb` = '%s'
AND `item`.`contact-id` = %d
AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
$sql_extra
AND `item`.`id` > %d
- ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+ ORDER BY `item`.`id` DESC LIMIT %d ,%d",
intval(api_user()),
dbesc(ACTIVITY_POST),
intval($user_info['cid']),
$sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
}
- $r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item`, `contact`
+ $r = q("SELECT `item`.* FROM `item`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
+ AND (NOT `contact`.`blocked` OR `contact`.`pending`)
WHERE `item`.`uid` = %d
- AND `item`.`visible` = 1 AND `item`.`moderated` = 0 AND `item`.`deleted` = 0
- AND `item`.`starred` = 1
- AND `contact`.`id` = `item`.`contact-id`
- AND (NOT `contact`.`blocked` OR `contact`.`pending`)
+ AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
+ AND `item`.`starred`
$sql_extra
AND `item`.`id`>%d
- ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+ ORDER BY `item`.`id` DESC LIMIT %d ,%d",
intval(api_user()),
intval($since_id),
intval($start),
];
$items = q(
- 'SELECT * FROM item
- WHERE uid=%d AND `thr-parent`="%s" AND visible AND NOT deleted',
+ 'SELECT * FROM `item`
+ WHERE `uid` = %d AND `thr-parent` = "%s" AND `visible` AND NOT `deleted`',
intval($item['uid']),
dbesc($item['uri'])
);
//builtin_activity_puller($i, $activities);
// get user data and add it to the array of the activity
- $user = api_get_user($a, $i['author-link']);
+ $user = api_get_user($a, $i['author-id']);
switch ($i['verb']) {
case ACTIVITY_LIKE:
$activities['like'][] = $user;
$status["entities"] = $converted["entities"];
}
- if (($item['item_network'] != "") && ($status["source"] == 'web')) {
- $status["source"] = ContactSelector::networkToName($item['item_network'], $user_info['url']);
- } elseif (($item['item_network'] != "") && (ContactSelector::networkToName($item['item_network'], $user_info['url']) != $status["source"])) {
- $status["source"] = trim($status["source"].' ('.ContactSelector::networkToName($item['item_network'], $user_info['url']).')');
+ if ($status["source"] == 'web') {
+ $status["source"] = ContactSelector::networkToName($item['network'], $user_info['url']);
+ } elseif (ContactSelector::networkToName($item['network'], $user_info['url']) != $status["source"]) {
+ $status["source"] = trim($status["source"].' ('.ContactSelector::networkToName($item['network'], $user_info['url']).')');
}
-
- // Retweets are only valid for top postings
- // It doesn't work reliable with the link if its a feed
- //$IsRetweet = ($item['owner-link'] != $item['author-link']);
- //if ($IsRetweet)
- // $IsRetweet = (($item['owner-name'] != $item['author-name']) || ($item['owner-avatar'] != $item['author-avatar']));
-
-
if ($item["id"] == $item["parent"]) {
$retweeted_item = api_share_as_retweet($item);
if ($retweeted_item !== false) {
$retweeted_status = $status;
try {
- $retweeted_status["user"] = api_get_user($a, $retweeted_item["author-link"]);
+ $retweeted_status["user"] = api_get_user($a, $retweeted_item["author-id"]);
} catch (BadRequestException $e) {
// user not found. should be found?
/// @todo check if the user should be always found
$sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
}
- $statuses = dba::p(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`, `group_member`.`gid`
- FROM `item`
- STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ $statuses = dba::p("SELECT `item`.* FROM `item`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
STRAIGHT_JOIN `group_member` ON `group_member`.`contact-id` = `item`.`contact-id`
WHERE `item`.`uid` = ? AND `verb` = ?
$data['photo']['friendica_activities'] = api_format_items_activities($item[0], $type);
// retrieve comments on photo
- $r = q(
- "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
- `contact`.`id` AS `cid`
- FROM `item`
- STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+ $r = q("SELECT `item`.* FROM `item`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
AND (NOT `contact`.`blocked` OR `contact`.`pending`)
WHERE `item`.`parent` = %d AND `item`.`visible`
AND NOT `item`.`moderated` AND NOT `item`.`deleted`
$in_reply_to['status_id_str'] = (string) intval($in_reply_to['status_id']);
$r = q(
- "SELECT `contact`.`nick`, `contact`.`name`, `contact`.`id`, `contact`.`url` FROM item
+ "SELECT `contact`.`nick`, `contact`.`name`, `contact`.`id`, `contact`.`url` FROM `item`
STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`author-id`
WHERE `item`.`id` = %d LIMIT 1",
intval($in_reply_to['status_id'])
`item`.`inform`,
`item`.`pubmail`,
`item`.`visible`,
-`item`.`spam`,
`item`.`bookmark`,
`item`.`unseen`,
`item`.`deleted`,
`item`.`mention`,
`item`.`global`,
`item`.`shadow`,
+ `item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`,
+ `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
*/
- return "`item`.`author-id`, `item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`,
- `item`.`owner-id`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
+ return "`item`.`author-id`,
+ `item`.`owner-id`,
`item`.`contact-id`, `item`.`uid`, `item`.`id`, `item`.`parent`,
`item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`, `item`.`content-warning`,
`item`.`commented`, `item`.`created`, `item`.`edited`, `item`.`received`,
`item`.`allow_cid`, `item`.`allow_gid`, `item`.`deny_cid`, `item`.`deny_gid`,
`item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
- `author`.`thumb` AS `author-thumb`, `owner`.`thumb` AS `owner-thumb`,
+ `author`.`url` AS `author-link`, `author`.`name` AS `author-name`, `author`.`thumb` AS `author-avatar`,
+ `owner`.`url` AS `owner-link`, `owner`.`name` AS `owner-name`, `owner`.`thumb` AS `owner-avatar`,
+ `contact`.`url` AS `contact-link`, `contact`.`name` AS `contact-name`, `contact`.`thumb` AS `contact-avatar`,
`contact`.`network`, `contact`.`url`, `contact`.`name`, `contact`.`writable`,
`contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`,
. ((x($_GET, 'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
. ((x($_GET, 'liked')) ? '&liked=' . $_GET['liked'] : '')
. ((x($_GET, 'conv')) ? '&conv=' . $_GET['conv'] : '')
- . ((x($_GET, 'spam')) ? '&spam=' . $_GET['spam'] : '')
. ((x($_GET, 'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET, 'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET, 'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
continue;
}
+ if ($item['network'] == NETWORK_FEED) {
+ $item['author-avatar'] = $item['contact-avatar'];
+ $item['author-name'] = $item['contact-name'];
+ $item['owner-avatar'] = $item['contact-avatar'];
+ $item['owner-name'] = $item['contact-name'];
+ }
+
$profile_name = (strlen($item['author-name']) ? $item['author-name'] : $item['name']);
if ($item['author-link'] && !$item['author-name']) {
$profile_name = $item['author-link'];
$sparkle = ' sparkle';
}
- if (!x($item, 'author-thumb') || ($item['author-thumb'] == "")) {
- $author_contact = Contact::getDetailsByURL($item['author-link'], $profile_owner);
- if ($author_contact["thumb"]) {
- $item['author-thumb'] = $author_contact["thumb"];
- } else {
- $item['author-thumb'] = $item['author-avatar'];
- }
- }
-
- if (!isset($item['owner-thumb']) || ($item['owner-thumb'] == "")) {
- $owner_contact = Contact::getDetailsByURL($item['owner-link'], $profile_owner);
- if ($owner_contact["thumb"]) {
- $item['owner-thumb'] = $owner_contact["thumb"];
- } else {
- $item['owner-thumb'] = $item['owner-avatar'];
- }
- }
-
$locate = ['location' => $item['location'], 'coord' => $item['coord'], 'html' => ''];
Addon::callHooks('render_location',$locate);
'name' => $profile_name_e,
'sparkle' => $sparkle,
'lock' => $lock,
- 'thumb' => System::removedBaseUrl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
+ 'thumb' => System::removedBaseUrl(proxy_url($item['author-avatar'], false, PROXY_SIZE_THUMB)),
'title' => $title_e,
'body' => $body_e,
'tags' => $tags_e,
'indent' => '',
'owner_name' => $owner_name_e,
'owner_url' => $owner_url,
- 'owner_photo' => System::removedBaseUrl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
+ 'owner_photo' => System::removedBaseUrl(proxy_url($item['owner-avatar'], false, PROXY_SIZE_THUMB)),
'plink' => get_plink($item),
'edpost' => false,
'isstarred' => $isstarred,
}
// "your post"
- if (DBM::is_result($item) && $item['owner-name'] == $item['author-name'] && $item['wall']) {
+ if (DBM::is_result($item) && $item['owner-id'] == $item['author-id'] && $item['wall']) {
$dest_str = L10n::t('%1$s commented on [url=%2$s]your %3$s[/url]',
'[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
$itemlink,
update_table("term", ['url'], $old_url, $new_url);
update_table("contact", ['photo', 'thumb', 'micro', 'url', 'nurl', 'alias', 'request', 'notify', 'poll', 'confirm', 'poco', 'avatar'], $old_url, $new_url);
update_table("gcontact", ['url', 'nurl', 'photo', 'server_url', 'notify', 'alias'], $old_url, $new_url);
- update_table("item", ['owner-link', 'owner-avatar', 'author-link', 'author-avatar', 'body', 'plink', 'tag'], $old_url, $new_url);
+ update_table("item", ['owner-link', 'author-link', 'body', 'plink', 'tag'], $old_url, $new_url);
// update profile addresses in the format "user@server.tld"
update_table("contact", ['addr'], $old_host, $new_host);
// Does the local user have this item?
if (local_user()) {
- $r = dba::fetch_first("SELECT `id`, `parent`, `author-name`, `author-link`,
- `author-avatar`, `network`, `body`, `uid`, `owner-link`
+ $r = dba::fetch_first("SELECT `id`, `parent`, `author-id`, `body`, `uid`
FROM `item` WHERE `visible` AND NOT `deleted` AND NOT `moderated`
AND `guid` = ? AND `uid` = ? LIMIT 1", $a->argv[1], local_user());
if (DBM::is_result($r)) {
// Is it an item with uid=0?
if (!DBM::is_result($r)) {
- $r = dba::fetch_first("SELECT `id`, `parent`, `author-name`, `author-link`,
- `author-avatar`, `network`, `body`, `uid`, `owner-link`
+ $r = dba::fetch_first("SELECT `id`, `parent`, `author-id`, `body`, `uid`
FROM `item` WHERE `visible` AND NOT `deleted` AND NOT `moderated`
AND NOT `private` AND `uid` = 0
AND `guid` = ? LIMIT 1", $a->argv[1]);
return;
}
} elseif (($a->argc == 3) && ($nick == 'feed-item')) {
- $r = dba::fetch_first("SELECT `id`, `parent`, `author-name`, `author-link`,
- `author-avatar`, `network`, `body`, `uid`, `owner-link`
+ $r = dba::fetch_first("SELECT `id`, `parent`, `author-id`, `body`, `uid`
FROM `item` WHERE `visible` AND NOT `deleted` AND NOT `moderated`
AND NOT `private` AND `uid` = 0
AND `id` = ? LIMIT 1", $a->argv[2]);
}
if ($r["id"] != $r["parent"]) {
- $r = dba::fetch_first("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item`
+ $r = dba::fetch_first("SELECT `id`, `author-id`, `body`, `uid` FROM `item`
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
AND `id` = ?", $r["parent"]);
}
}
function display_fetchauthor($a, $item) {
+ $author = dba::selectFirst('contact', ['name', 'nick', 'photo', 'network', 'url'], ['id' => $item['author-id']]);
+
$profiledata = [];
- $profiledata["uid"] = -1;
- $profiledata["nickname"] = $item["author-name"];
- $profiledata["name"] = $item["author-name"];
- $profiledata["picdate"] = "";
- $profiledata["photo"] = $item["author-avatar"];
- $profiledata["url"] = $item["author-link"];
- $profiledata["network"] = $item["network"];
+ $profiledata['uid'] = -1;
+ $profiledata['nickname'] = $author['nick'];
+ $profiledata['name'] = $author['name'];
+ $profiledata['picdate'] = '';
+ $profiledata['photo'] = $author['photo'];
+ $profiledata['url'] = $author['url'];
+ $profiledata['network'] = $author['network'];
// Check for a repeated message
$skip = false;
'/new', //new
'', //starred
'', //bookmarked
- '', //spam
];
$tab_args = [
'f=&order=comment', //all
'', //new
'f=&star=1', //starred
'f=&bmark=1', //bookmarked
- 'f=&spam=1', //spam
];
$k = array_search('active', $last_sel_tabs);
* '/network/new', => $new_active = 'active'
* '/network?f=&star=1', => $starred_active = 'active'
* '/network?f=&bmark=1', => $bookmarked_active = 'active'
- * '/network?f=&spam=1', => $spam_active = 'active'
*
- * @return Array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active);
+ * @return Array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active);
*/
function network_query_get_sel_tab(App $a)
{
$bookmarked_active = '';
$all_active = '';
$conv_active = '';
- $spam_active = '';
$postord_active = '';
if (($a->argc > 1 && $a->argv[1] === 'new') || ($a->argc > 2 && $a->argv[2] === 'new')) {
$conv_active = 'active';
}
- if (x($_GET, 'spam')) {
- $spam_active = 'active';
- }
-
- if (($new_active == '') && ($starred_active == '') && ($bookmarked_active == '') && ($conv_active == '') && ($spam_active == '')) {
+ if (($new_active == '') && ($starred_active == '') && ($bookmarked_active == '') && ($conv_active == '')) {
$no_active = 'active';
}
}
}
- return [$no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active];
+ return [$no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active];
}
function network_query_get_sel_group(App $a)
// item filter tabs
/// @TODO fix this logic, reduce duplication
/// $a->page['content'] .= '<div class="tabs-wrapper">';
- list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) = network_query_get_sel_tab($a);
+ list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active) = network_query_get_sel_tab($a);
// if no tabs are selected, defaults to comments
if ($no_active == 'active') {
// save selected tab, but only if not in file mode
if (!x($_GET, 'file')) {
PConfig::set(local_user(), 'network.view', 'tab.selected', [
- $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active
+ $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active
]);
}
+++ /dev/null
-<?php
-/*
-This file is part of the Diaspora protocol. It is used for fetching single public posts.
-*/
-
-use Friendica\App;
-use Friendica\Core\L10n;
-use Friendica\Core\System;
-use Friendica\Database\DBM;
-use Friendica\Protocol\Diaspora;
-
-function p_init($a){
- if ($a->argc != 2) {
- header($_SERVER["SERVER_PROTOCOL"].' 510 '.L10n::t('Not Extended'));
- killme();
- }
-
- $guid = $a->argv[1];
-
- if (strtolower(substr($guid, -4)) != ".xml") {
- header($_SERVER["SERVER_PROTOCOL"].' 404 '.L10n::t('Not Found'));
- killme();
- }
-
- $guid = strtolower(substr($guid, 0, -4));
-
- // Fetch the item
- $item = q("SELECT `uid`, `title`, `body`, `guid`, `contact-id`, `private`, `created`, `app`, `location`, `coord`
- FROM `item` WHERE `wall` AND NOT `private` AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1",
- dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA);
- if (!$item) {
- $r = q("SELECT `author-link`
- FROM `item` WHERE `uid` = 0 AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1",
- dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA);
- if ($r) {
- $parts = parse_url($r[0]["author-link"]);
- $host = $parts["scheme"]."://".$parts["host"];
-
- if (normalise_link($host) != normalise_link(System::baseUrl())) {
- $location = $host."/p/".urlencode($guid).".xml";
-
- header("HTTP/1.1 301 Moved Permanently");
- header("Location:".$location);
- killme();
- }
- }
-
- header($_SERVER["SERVER_PROTOCOL"].' 404 '.L10n::t('Not Found'));
- killme();
- }
-
- // Fetch some data from the author (We could combine both queries - but I think this is more readable)
- $r = q("SELECT `user`.`prvkey`, `contact`.`addr`, `user`.`nickname`, `contact`.`nick` FROM `user`
- INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`
- WHERE `user`.`uid` = %d", intval($item[0]["uid"]));
- if (!DBM::is_result($r)) {
- header($_SERVER["SERVER_PROTOCOL"].' 404 '.L10n::t('Not Found'));
- killme();
- }
- $user = $r[0];
-
- $status = Diaspora::buildStatus($item[0], $user);
- $xml = Diaspora::buildPostXml($status["type"], $status["message"]);
-
- header("Content-Type: application/xml; charset=utf-8");
- echo $xml;
-
- killme();
-}
do {
$r = q(
- "SELECT `notify`.*, `item`.`visible`, `item`.`spam`, `item`.`deleted`
+ "SELECT `notify`.*, `item`.`visible`, `item`.`deleted`
FROM `notify` LEFT JOIN `item` ON `item`.`id` = `notify`.`iid`
WHERE `notify`.`uid` = %d AND `notify`.`msg` != ''
AND NOT (`notify`.`type` IN (%d, %d))
$notification["visible"] = true;
}
- if (is_null($notification["spam"])) {
- $notification["spam"] = 0;
- }
-
if (is_null($notification["deleted"])) {
$notification["deleted"] = 0;
}
$notification["href"] = System::baseUrl() . "/notify/view/" . $notification["id"];
if ($notification["visible"]
- && !$notification["spam"]
&& !$notification["deleted"]
&& !(x($result, $notification["parent"]) && is_array($result[$notification["parent"]]))
) {
"pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "spam" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"starred" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item has been favourited"],
"bookmark" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item has been bookmarked"],
"unseen" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "item has not been seen"],
"pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "spam" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"starred" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"ignored" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
"bookmark" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
'name' => $data['name'],
'nick' => $data['nick']];
- // Only fill the pubkey if it was empty before. We have to prevent identity theft.
- if (!empty($contact['pubkey'])) {
- unset($contact['pubkey']);
- } else {
- $updated['pubkey'] = $data['pubkey'];
- }
-
if ($data['keywords'] != '') {
$updated['keywords'] = $data['keywords'];
}
if ($data['location'] != '') {
$updated['location'] = $data['location'];
}
- if ($data['about'] != '') {
- $updated['about'] = $data['about'];
+
+ // Update the technical stuff as well - if filled
+ if ($data['notify'] != '') {
+ $updated['notify'] = $data['notify'];
+ }
+ if ($data['poll'] != '') {
+ $updated['poll'] = $data['poll'];
+ }
+ if ($data['batch'] != '') {
+ $updated['batch'] = $data['batch'];
+ }
+ if ($data['request'] != '') {
+ $updated['request'] = $data['request'];
+ }
+ if ($data['confirm'] != '') {
+ $updated['confirm'] = $data['confirm'];
+ }
+ if ($data['poco'] != '') {
+ $updated['poco'] = $data['poco'];
+ }
+
+ // Only fill the pubkey if it had been empty before. We have to prevent identity theft.
+ if (empty($contact['pubkey'])) {
+ $updated['pubkey'] = $data['pubkey'];
}
if (($data["addr"] != $contact["addr"]) || ($data["alias"] != $contact["alias"])) {
return 0;
}
+ //unset($item['author-link']);
+ //unset($item['author-name']);
+ //unset($item['author-avatar']);
+
+ //unset($item['owner-link']);
+ unset($item['owner-name']);
+ unset($item['owner-avatar']);
+
if ($item['network'] == NETWORK_PHANTOM) {
logger('Missing network. Called by: '.System::callstack(), LOGGER_DEBUG);
$forum_mode = ($prvgroup ? 2 : 1);
$fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode, 'contact-id' => $self['id'],
- 'owner-id' => $owner_id, 'owner-name' => $self['name'], 'owner-link' => $self['url'],
- 'owner-avatar' => $self['thumb'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
+ 'owner-id' => $owner_id, 'owner-link' => $self['url'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
'allow_gid' => $user['allow_gid'], 'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
dba::update('item', $fields, ['id' => $item_id]);
private static function addThread($itemid, $onlyshadow = false)
{
$fields = ['uid', 'created', 'edited', 'commented', 'received', 'changed', 'wall', 'private', 'pubmail',
- 'moderated', 'visible', 'spam', 'starred', 'bookmark', 'contact-id',
+ 'moderated', 'visible', 'starred', 'bookmark', 'contact-id',
'deleted', 'origin', 'forum_mode', 'mention', 'network', 'author-id', 'owner-id'];
$condition = ["`id` = ? AND (`parent` = ? OR `parent` = 0)", $itemid, $itemid];
$item = dba::selectFirst('item', $fields, $condition);
private static function updateThread($itemid, $setmention = false)
{
$fields = ['uid', 'guid', 'title', 'body', 'created', 'edited', 'commented', 'received', 'changed',
- 'wall', 'private', 'pubmail', 'moderated', 'visible', 'spam', 'starred', 'bookmark', 'contact-id',
+ 'wall', 'private', 'pubmail', 'moderated', 'visible', 'starred', 'bookmark', 'contact-id',
'deleted', 'origin', 'forum_mode', 'network', 'author-id', 'owner-id', 'rendered-html', 'rendered-hash'];
$condition = ["`id` = ? AND (`parent` = ? OR `parent` = 0)", $itemid, $itemid];
$filer = (($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) ? L10n::t("save to folder") : false);
+ if ($item['network'] == NETWORK_FEED) {
+ $item['author-avatar'] = $item['contact-avatar'];
+ $item['author-name'] = $item['contact-name'];
+ $item['owner-avatar'] = $item['contact-avatar'];
+ $item['owner-name'] = $item['contact-name'];
+ }
+
$diff_author = !link_compare($item['url'], $item['author-link']);
$profile_name = htmlentities(((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
if ($item['author-link'] && (!$item['author-name'])) {
$sparkle = ' sparkle';
}
- if (($item['network'] == NETWORK_FEED) || empty($item['author-thumb'])) {
- $item['author-thumb'] = $item['author-avatar'];
- }
-
- if (($item['network'] == NETWORK_FEED) || empty($item['owner-thumb'])) {
- $item['owner-thumb'] = $item['owner-avatar'];
- }
-
$locate = ['location' => $item['location'], 'coord' => $item['coord'], 'html' => ''];
Addon::callHooks('render_location', $locate);
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => $name_e,
- 'thumb' => $a->remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
+ 'thumb' => $a->remove_baseurl(proxy_url($item['author-avatar'], false, PROXY_SIZE_THUMB)),
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => $title_e,
'indent' => $indent,
'shiny' => $shiny,
'owner_url' => $this->getOwnerUrl(),
- 'owner_photo' => $a->remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
+ 'owner_photo' => $a->remove_baseurl(proxy_url($item['owner-avatar'], false, PROXY_SIZE_THUMB)),
'owner_name' => htmlentities($owner_name_e),
'plink' => get_plink($item),
'edpost' => Feature::isEnabled($conv->getProfileOwner(), 'edit_posts') ? $edpost : '',
if (!in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION, Delivery::RELOCATION])) {
$parent = $items[0];
- $thr_parent = q("SELECT `network`, `author-link`, `owner-link` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
- dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
+ $fields = ['network', 'author-id', 'owner-id'];
+ $condition = ['uri' => $target_item["thr-parent"], 'uid' => $target_item["uid"]];
+ $thr_parent = dba::selectFirst('item', $fields, $condition);
- logger('GUID: '.$target_item["guid"].': Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
+ logger('GUID: '.$target_item["guid"].': Parent is '.$parent['network'].'. Thread parent is '.$thr_parent['network'], LOGGER_DEBUG);
// This is IMPORTANT!!!!
}
// Special treatment for forum posts
- if (($target_item['author-link'] != $target_item['owner-link']) &&
+ if (($target_item['author-id'] != $target_item['owner-id']) &&
($owner['id'] != $target_item['contact-id']) &&
($target_item['uri'] === $target_item['parent-uri'])) {
$target_item['deny_cid'].$target_item['deny_gid']) == 0))
$push_notify = true;
- if (($thr_parent && ($thr_parent[0]['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
+ if (($thr_parent && ($thr_parent['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
$push_notify = true;
if ($parent["network"] == NETWORK_OSTATUS) {
// If the thread parent is OStatus then do some magic to distribute the messages.
// We have not only to look at the parent, since it could be a Friendica thread.
- if (($thr_parent && ($thr_parent[0]['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
+ if (($thr_parent && ($thr_parent['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
$diaspora_delivery = false;
- logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent[0]['author-link']." - Owner: ".$thr_parent[0]['owner-link'], LOGGER_DEBUG);
+ logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent['author-id']." - Owner: ".$thr_parent['owner-id'], LOGGER_DEBUG);
// Send a salmon to the parent author
- $r = q("SELECT `url`, `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
- dbesc(normalise_link($thr_parent[0]['author-link'])),
- intval($uid));
- if (DBM::is_result($r)) {
- $probed_contact = $r[0];
- } else {
- $probed_contact = Probe::uri($thr_parent[0]['author-link']);
- }
-
- if ($probed_contact["notify"] != "") {
+ $probed_contact = dba::selectFirst('contact', ['url', 'notify'], ['id' => $thr_parent['author-id']]);
+ if (DBM::is_result($probed_contact) && !empty($probed_contact["notify"])) {
logger('Notify parent author '.$probed_contact["url"].': '.$probed_contact["notify"]);
$url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
}
// Send a salmon to the parent owner
- $r = q("SELECT `url`, `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
- dbesc(normalise_link($thr_parent[0]['owner-link'])),
- intval($uid));
- if (DBM::is_result($r)) {
- $probed_contact = $r[0];
- } else {
- $probed_contact = Probe::uri($thr_parent[0]['owner-link']);
- }
-
- if ($probed_contact["notify"] != "") {
+ $probed_contact = dba::selectFirst('contact', ['url', 'notify'], ['id' => $thr_parent['owner-id']]);
+ if (DBM::is_result($probed_contact) && !empty($probed_contact["notify"])) {
logger('Notify parent owner '.$probed_contact["url"].': '.$probed_contact["notify"]);
$url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
}
visible: true
contact-id: 42
author-id: 42
- owner-id: 42
+ owner-id: 45
uid: 42
verb: http://activitystrea.ms/schema/1.0/post
unseen: true
visible: true
contact-id: 42
author-id: 42
- owner-id: 42
+ owner-id: 45
uid: 42
verb: http://activitystrea.ms/schema/1.0/post
unseen: false