use Friendica\Protocol\PortableContact;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
-
-require_once 'include/dba.php';
+use Friendica\Util\Strings;
/**
* @brief This class handles GlobalContact related functions
* @param string $mode Search mode (e.g. "community")
*
* @return array with search results
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function searchByName($search, $mode = '')
{
* @param integer $cid Contact ID
* @param integer $zcid Global Contact ID
* @return void
+ * @throws Exception
*/
public static function link($gcid, $uid = 0, $cid = 0, $zcid = 0)
{
/**
* @brief Sanitize the given gcontact data
*
- * @param array $gcontact array with gcontact data
- * @throw Exception
- *
* Generation:
* 0: No definition
* 1: Profiles on this server
* 2: Contacts of profiles on this server
* 3: Contacts of contacts of profiles on this server
* 4: ...
+ *
+ * @param array $gcontact array with gcontact data
* @return array $gcontact
+ * @throws Exception
*/
public static function sanitize($gcontact)
{
$alternate = PortableContact::alternateOStatusUrl($gcontact['url']);
// The global contacts should contain the original picture, not the cached one
- if (($gcontact['generation'] != 1) && stristr(normalise_link($gcontact['photo']), normalise_link(System::baseUrl()."/photo/"))) {
+ if (($gcontact['generation'] != 1) && stristr(Strings::normaliseLink($gcontact['photo']), Strings::normaliseLink(System::baseUrl()."/photo/"))) {
$gcontact['photo'] = "";
}
if (!isset($gcontact['network'])) {
$condition = ["`uid` = 0 AND `nurl` = ? AND `network` != '' AND `network` != ?",
- normalise_link($gcontact['url']), Protocol::STATUSNET];
+ Strings::normaliseLink($gcontact['url']), Protocol::STATUSNET];
$contact = DBA::selectFirst('contact', ['network'], $condition);
if (DBA::isResult($contact)) {
$gcontact['network'] = $contact["network"];
if (($gcontact['network'] == "") || ($gcontact['network'] == Protocol::OSTATUS)) {
$condition = ["`uid` = 0 AND `alias` IN (?, ?) AND `network` != '' AND `network` != ?",
- $gcontact['url'], normalise_link($gcontact['url']), Protocol::STATUSNET];
+ $gcontact['url'], Strings::normaliseLink($gcontact['url']), Protocol::STATUSNET];
$contact = DBA::selectFirst('contact', ['network'], $condition);
if (DBA::isResult($contact)) {
$gcontact['network'] = $contact["network"];
$gcontact['network'] = '';
$fields = ['network', 'updated', 'server_url', 'url', 'addr'];
- $gcnt = DBA::selectFirst('gcontact', $fields, ['nurl' => normalise_link($gcontact['url'])]);
+ $gcnt = DBA::selectFirst('gcontact', $fields, ['nurl' => Strings::normaliseLink($gcontact['url'])]);
if (DBA::isResult($gcnt)) {
if (!isset($gcontact['network']) && ($gcnt["network"] != Protocol::STATUSNET)) {
$gcontact['network'] = $gcnt["network"];
if ($gcontact['updated'] <= DBA::NULL_DATETIME) {
$gcontact['updated'] = $gcnt["updated"];
}
- if (!isset($gcontact['server_url']) && (normalise_link($gcnt["server_url"]) != normalise_link($gcnt["url"]))) {
+ if (!isset($gcontact['server_url']) && (Strings::normaliseLink($gcnt["server_url"]) != Strings::normaliseLink($gcnt["url"]))) {
$gcontact['server_url'] = $gcnt["server_url"];
}
if (!isset($gcontact['addr'])) {
if ($alternate && ($gcontact['network'] == Protocol::OSTATUS)) {
// Delete the old entry - if it exists
- if (DBA::exists('gcontact', ['nurl' => normalise_link($orig_profile)])) {
- DBA::delete('gcontact', ['nurl' => normalise_link($orig_profile)]);
+ if (DBA::exists('gcontact', ['nurl' => Strings::normaliseLink($orig_profile)])) {
+ DBA::delete('gcontact', ['nurl' => Strings::normaliseLink($orig_profile)]);
}
}
}
* @param integer $uid id
* @param integer $cid id
* @return integer
+ * @throws Exception
*/
public static function countCommonFriends($uid, $cid)
{
* @param integer $uid id
* @param integer $zcid zcid
* @return integer
+ * @throws Exception
*/
public static function countCommonFriendsZcid($uid, $zcid)
{
* @param integer $limit optional, default 9999
* @param boolean $shuffle optional, default false
* @return object
+ * @throws Exception
*/
public static function commonFriends($uid, $cid, $start = 0, $limit = 9999, $shuffle = false)
{
* @param integer $limit optional, default 9999
* @param boolean $shuffle optional, default false
* @return object
+ * @throws Exception
*/
public static function commonFriendsZcid($uid, $zcid, $start = 0, $limit = 9999, $shuffle = false)
{
* @param integer $uid user
* @param integer $cid cid
* @return integer
+ * @throws Exception
*/
public static function countAllFriends($uid, $cid)
{
* @param integer $start optional, default 0
* @param integer $limit optional, default 80
* @return array
+ * @throws Exception
*/
public static function allFriends($uid, $cid, $start = 0, $limit = 80)
{
}
/**
- * @param object $uid user
+ * @param int $uid user
* @param integer $start optional, default 0
* @param integer $limit optional, default 80
* @return array
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function suggestionQuery($uid, $start = 0, $limit = 80)
{
// return $list;
//}
- $network = [Protocol::DFRN];
+ $network = [Protocol::DFRN, Protocol::ACTIVITYPUB];
if (Config::get('system', 'diaspora_enabled')) {
$network[] = Protocol::DIASPORA;
where uid = %d and not gcontact.nurl in ( select nurl from contact where uid = %d )
AND NOT `gcontact`.`name` IN (SELECT `name` FROM `contact` WHERE `uid` = %d)
AND NOT `gcontact`.`id` IN (SELECT `gcid` FROM `gcign` WHERE `uid` = %d)
- AND `gcontact`.`updated` >= '%s'
+ AND `gcontact`.`updated` >= '%s' AND NOT `gcontact`.`hide`
AND `gcontact`.`last_contact` >= `gcontact`.`last_failure`
AND `gcontact`.`network` IN (%s)
GROUP BY `glink`.`gcid` ORDER BY `gcontact`.`updated` DESC,`total` DESC LIMIT %d, %d",
/**
* @return void
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function updateSuggestions()
{
- $a = get_app();
-
$done = [];
/// @TODO Check if it is really neccessary to poll the own server
* @param string $url Contact url
*
* @return string Contact url with the wanted parts
+ * @throws Exception
*/
public static function cleanContactUrl($url)
{
*
* @param array $contact contact array (called by reference)
* @return void
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function fixAlternateContactAddress(&$contact)
{
* @param array $contact contact array
*
* @return bool|int Returns false if not found, integer if contact was found
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function getId($contact)
{
DBA::lock('gcontact');
$fields = ['id', 'last_contact', 'last_failure', 'network'];
- $gcnt = DBA::selectFirst('gcontact', $fields, ['nurl' => normalise_link($contact["url"])]);
+ $gcnt = DBA::selectFirst('gcontact', $fields, ['nurl' => Strings::normaliseLink($contact["url"])]);
if (DBA::isResult($gcnt)) {
$gcontact_id = $gcnt["id"];
DBA::escape($contact["addr"]),
DBA::escape($contact["network"]),
DBA::escape($contact["url"]),
- DBA::escape(normalise_link($contact["url"])),
+ DBA::escape(Strings::normaliseLink($contact["url"])),
DBA::escape($contact["photo"]),
DBA::escape(DateTimeFormat::utcNow()),
DBA::escape(DateTimeFormat::utcNow()),
intval($contact["generation"])
);
- $condition = ['nurl' => normalise_link($contact["url"])];
+ $condition = ['nurl' => Strings::normaliseLink($contact["url"])];
$cnt = DBA::selectFirst('gcontact', ['id', 'network'], $condition, ['order' => ['id']]);
if (DBA::isResult($cnt)) {
$gcontact_id = $cnt["id"];
* @param array $contact contact array
*
* @return bool|int Returns false if not found, integer if contact was found
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function update($contact)
{
$contact["server_url"] = $data['baseurl'];
}
} else {
- $contact["server_url"] = normalise_link($contact["server_url"]);
+ $contact["server_url"] = Strings::normaliseLink($contact["server_url"]);
}
if (($contact["addr"] == "") && ($contact["server_url"] != "") && ($contact["nick"] != "")) {
if ($update) {
Logger::log("Update gcontact for ".$contact["url"], Logger::DEBUG);
$condition = ['`nurl` = ? AND (`generation` = 0 OR `generation` >= ?)',
- normalise_link($contact["url"]), $contact["generation"]];
+ Strings::normaliseLink($contact["url"]), $contact["generation"]];
$contact["updated"] = DateTimeFormat::utc($contact["updated"]);
$updated = ['photo' => $contact['photo'], 'name' => $contact['name'],
// This is used for the shadow copies of public items.
/// @todo Check if we really should do this.
// The quality of the gcontact table is mostly lower than the public contact
- $public_contact = DBA::selectFirst('contact', ['id'], ['nurl' => normalise_link($contact["url"]), 'uid' => 0]);
+ $public_contact = DBA::selectFirst('contact', ['id'], ['nurl' => Strings::normaliseLink($contact["url"]), 'uid' => 0]);
if (DBA::isResult($public_contact)) {
Logger::log("Update public contact ".$public_contact["id"], Logger::DEBUG);
'location' => $contact['location'], 'about' => $contact['about']];
// Don't update the birthday field if not set or invalid
- if (empty($contact['birthday']) || ($contact['birthday'] < '0001-01-01')) {
+ if (empty($contact['birthday']) || ($contact['birthday'] <= DBA::NULL_DATE)) {
unset($fields['bd']);
}
*
* @param string $url profile link
* @return void
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function updateFromProbe($url)
{
* @brief Update the gcontact entry for a given user id
*
* @param int $uid User ID
- * @return void
+ * @return bool
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function updateForUser($uid)
{
* If the "Statistics" addon is enabled (See http://gstools.org/ for details) we query user data with this.
*
* @param string $server Server address
- * @return void
+ * @return bool
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function fetchGsUsers($server)
{
$statistics = json_decode($curlResult->getBody());
- if (!empty($statistics->config)) {
- if ($statistics->config->instance_with_ssl) {
+ if (!empty($statistics->config->instance_address)) {
+ if (!empty($statistics->config->instance_with_ssl)) {
$server = "https://";
} else {
$server = "http://";
$server .= $statistics->config->instance_address;
$hostname = $statistics->config->instance_address;
- } elseif (!empty($statistics)) {
- if ($statistics->instance_with_ssl) {
+ } elseif (!empty($statistics->instance_address)) {
+ if (!empty($statistics->instance_with_ssl)) {
$server = "https://";
} else {
$server = "http://";
/**
* @brief Asking GNU Social server on a regular base for their user data
* @return void
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
*/
public static function discoverGsUsers()
{
/**
* @return string
+ * @throws Exception
*/
public static function getRandomUrl()
{