X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FGlobalContact.php;h=6ec1101775df0f636f838a7e6c29499fce4166ce;hb=b0dcfc2724188c309a70ce5281e94fdf6a733498;hp=21ac0d60e7da00c66abb80e2fea889f02d1fc591;hpb=259f91caa9b13ed98adfaf4ac83fee56a7b1edbd;p=friendica.git diff --git a/src/Model/GlobalContact.php b/src/Model/GlobalContact.php index 21ac0d60e7..6ec1101775 100644 --- a/src/Model/GlobalContact.php +++ b/src/Model/GlobalContact.php @@ -7,8 +7,11 @@ namespace Friendica\Model; use Friendica\Core\Config; use Friendica\Core\System; +use Friendica\Core\Worker; use Friendica\Database\DBM; use Friendica\Network\Probe; +use Friendica\Object\Contact; +use Friendica\Object\Profile; use Friendica\Protocol\PortableContact; use dba; use Exception; @@ -16,8 +19,6 @@ use Exception; require_once 'include/datetime.php'; require_once 'include/network.php'; require_once 'include/html2bbcode.php'; -require_once 'include/Contact.php'; -require_once 'include/Photo.php'; /** * @brief This class handles GlobalContact related functions @@ -93,6 +94,7 @@ class GlobalContact * @param integer $uid User ID * @param integer $cid Contact ID * @param integer $zcid Global Contact ID + * @return void */ public static function link($gcid, $uid = 0, $cid = 0, $zcid = 0) { @@ -141,6 +143,7 @@ class GlobalContact * 2: Contacts of profiles on this server * 3: Contacts of contacts of profiles on this server * 4: ... + * @return array $gcontact */ public static function sanitize($gcontact) { @@ -272,6 +275,11 @@ class GlobalContact return $gcontact; } + /** + * @param integer $uid id + * @param integer $cid id + * @return integer + */ public static function countCommonFriends($uid, $cid) { $r = q( @@ -294,6 +302,11 @@ class GlobalContact return 0; } + /** + * @param integer $uid id + * @param integer $zcid zcid + * @return integer + */ public static function countCommonFriendsZcid($uid, $zcid) { $r = q( @@ -312,6 +325,14 @@ class GlobalContact return 0; } + /** + * @param object $uid user + * @param object $cid cid + * @param integer $start optional, default 0 + * @param integer $limit optional, default 9999 + * @param boolean $shuffle optional, default false + * @return object + */ public static function commonFriends($uid, $cid, $start = 0, $limit = 9999, $shuffle = false) { if ($shuffle) { @@ -342,7 +363,15 @@ class GlobalContact return $r; } - function commonFriendsZcid($uid, $zcid, $start = 0, $limit = 9999, $shuffle = false) + /** + * @param object $uid user + * @param object $zcid zcid + * @param integer $start optional, default 0 + * @param integer $limit optional, default 9999 + * @param boolean $shuffle optional, default false + * @return object + */ + public static function commonFriendsZcid($uid, $zcid, $start = 0, $limit = 9999, $shuffle = false) { if ($shuffle) { $sql_extra = " order by rand() "; @@ -366,6 +395,11 @@ class GlobalContact return $r; } + /** + * @param object $uid user + * @param object $cid cid + * @return integer + */ public static function countAllFriends($uid, $cid) { $r = q( @@ -380,11 +414,17 @@ class GlobalContact if (DBM::is_result($r)) { return $r[0]['total']; } - + return 0; } - + /** + * @param object $uid user + * @param object $cid cid + * @param integer $start optional, default 0 + * @param integer $limit optional, default 80 + * @return object + */ public static function allFriends($uid, $cid, $start = 0, $limit = 80) { $r = q( @@ -406,6 +446,12 @@ class GlobalContact return $r; } + /** + * @param object $uid user + * @param integer $start optional, default 0 + * @param integer $limit optional, default 80 + * @return array + */ public static function suggestionQuery($uid, $start = 0, $limit = 80) { if (!$uid) { @@ -506,6 +552,9 @@ class GlobalContact return $list; } + /** + * @return void + */ public static function updateSuggestions() { $a = get_app(); @@ -587,6 +636,7 @@ class GlobalContact * @brief Replace alternate OStatus user format with the primary one * * @param arr $contact contact array (called by reference) + * @return void */ public static function fixAlternateContactAddress(&$contact) { @@ -687,7 +737,7 @@ class GlobalContact if ($doprobing) { logger("Last Contact: ". $last_contact_str." - Last Failure: ".$last_failure_str." - Checking: ".$contact["url"], LOGGER_DEBUG); - Worker::add(PRIORITY_LOW, 'gprobe', $contact["url"]); + Worker::add(PRIORITY_LOW, 'GProbe', $contact["url"]); } return $gcontact_id; @@ -831,7 +881,7 @@ class GlobalContact if (DBM::is_result($r)) { logger("Update public contact ".$r[0]["id"], LOGGER_DEBUG); - update_contact_avatar($contact["photo"], 0, $r[0]["id"]); + Contact::updateAvatar($contact["photo"], 0, $r[0]["id"]); $fields = array('name', 'nick', 'addr', 'network', 'bd', 'gender', @@ -858,6 +908,7 @@ class GlobalContact * @brief Updates the gcontact entry from probe * * @param str $url profile link + * @return void */ public static function updateFromProbe($url) { @@ -877,6 +928,7 @@ class GlobalContact * @brief Update the gcontact entry for a given user id * * @param int $uid User ID + * @return void */ public static function updateForUser($uid) { @@ -893,7 +945,7 @@ class GlobalContact intval($uid) ); - $location = formatted_location( + $location = Profile::formatLocation( array("locality" => $r[0]["locality"], "region" => $r[0]["region"], "country-name" => $r[0]["country-name"]) ); @@ -922,8 +974,9 @@ class GlobalContact * If the "Statistics" plugin is enabled (See http://gstools.org/ for details) we query user data with this. * * @param str $server Server address + * @return void */ - public static function gsFetchUsers($server) + public static function fetchGsUsers($server) { logger("Fetching users from GNU Social server ".$server, LOGGER_DEBUG); @@ -977,9 +1030,9 @@ class GlobalContact /** * @brief Asking GNU Social server on a regular base for their user data - * + * @return void */ - public static function gsDiscover() + public static function discoverGsUsers() { $requery_days = intval(Config::get("system", "poco_requery_days")); @@ -996,8 +1049,28 @@ class GlobalContact } foreach ($r as $server) { - self::gsFetchUsers($server["url"]); + self::fetchGsUsers($server["url"]); q("UPDATE `gserver` SET `last_poco_query` = '%s' WHERE `nurl` = '%s'", dbesc(datetime_convert()), dbesc($server["nurl"])); } } + + /** + * @return string + */ + public static function getRandomUrl() + { + $r = q( + "SELECT `url` FROM `gcontact` WHERE `network` = '%s' + AND `last_contact` >= `last_failure` + AND `updated` > UTC_TIMESTAMP - INTERVAL 1 MONTH + ORDER BY rand() LIMIT 1", + dbesc(NETWORK_DFRN) + ); + + if (DBM::is_result($r)) { + return dirname($r[0]['url']); + } + + return ''; + } }