"uid" => array("uid"),
"uid_self" => array("uid", "self"),
"uid_network_batch_archive" => array("uid", "network", "batch(64)", "archive"),
- "uid_network" => array("uid", "network"),
"addr_uid" => array("addr(32)", "uid"),
"nurl_uid" => array("nurl(32)", "uid"),
- "url_uid" => array("url(32)", "uid"),
"nick_uid" => array("nick(32)", "uid"),
)
);
// "guid" => array("guid"),
"convid" => array("convid"),
// "reply" => array("reply"),
- "uri" => array("uri"),
+ "uri" => array("uri(64)"),
"parent-uri" => array("parent-uri(64)"),
)
);
$baseurl = substr($baseurl, $domain_st + 3);
$nurl = normalise_link($baseurl);
-
- $r = q("SELECT id FROM contact WHERE uid = ( SELECT uid FROM user WHERE nickname = '%s' LIMIT 1 )
- AND nick = '%s' AND self = 0 AND ( url LIKE '%%%s%%' or nurl LIKE '%%%s%%' ) AND blocked = 0 AND pending = 0 LIMIT 1",
- dbesc($contact_nick),
- dbesc($a->user['nickname']),
- dbesc($baseurl),
- dbesc($nurl)
+ /// @todo Why is there a query for "nurl" *and* "nurl"? Especially this normalising is strange.
+ $r = q("SELECT `id` FROM `contact` WHERE `uid` = (SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1)
+ AND `nick` = '%s' AND NOT `self` AND (`url` LIKE '%%%s%%' OR `nurl` LIKE '%%%s%%') AND NOT `blocked` AND NOT `pending` LIMIT 1",
+ dbesc($contact_nick),
+ dbesc($a->user['nickname']),
+ dbesc($baseurl),
+ dbesc($nurl)
);
if ((! dbm::is_result($r)) || $r[0]['id'] == remote_user()) {