X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fsocgraph.php;h=349fd0b2caebcecd5dfff17e050a2129c5161ec1;hb=b631442760b134b14071eaeab9a2a8756feeca98;hp=a41861d6eae0b33978797ad63fc5c201b3b0cc1c;hpb=a843858654f475ae6b9ff88fc7bed636b12bd5f6;p=friendica.git diff --git a/include/socgraph.php b/include/socgraph.php index a41861d6ea..349fd0b2ca 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -40,7 +40,7 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) { $r = q("select `poco`, `uid` from `contact` where `id` = %d limit 1", intval($cid) ); - if(count($r)) { + if (dbm::is_result($r)) { $url = $r[0]['poco']; $uid = $r[0]['uid']; } @@ -213,14 +213,14 @@ function poco_check($profile_url, $name, $network, $profile_photo, $about, $loca $r = q("SELECT `network` FROM `contact` WHERE `nurl` = '%s' AND `network` != '' AND `network` != '%s' LIMIT 1", dbesc(normalise_link($profile_url)), dbesc(NETWORK_STATUSNET) ); - if(count($r)) + if (dbm::is_result($r)) $network = $r[0]["network"]; if (($network == "") OR ($network == NETWORK_OSTATUS)) { $r = q("SELECT `network`, `url` FROM `contact` WHERE `alias` IN ('%s', '%s') AND `network` != '' AND `network` != '%s' LIMIT 1", dbesc($profile_url), dbesc(normalise_link($profile_url)), dbesc(NETWORK_STATUSNET) ); - if(count($r)) { + if (dbm::is_result($r)) { $network = $r[0]["network"]; //$profile_url = $r[0]["url"]; } @@ -330,7 +330,7 @@ function poco_check($profile_url, $name, $network, $profile_photo, $about, $loca intval($gcid), intval($zcid) ); - if(! count($r)) { + if(! dbm::is_result($r)) { q("INSERT INTO `glink` (`cid`,`uid`,`gcid`,`zcid`, `updated`) VALUES (%d,%d,%d,%d, '%s') ", intval($cid), intval($uid), @@ -391,6 +391,15 @@ function poco_detect_server($profile) { } } + // Mastodon + if ($server_url == "") { + $red = preg_replace("=(https?://)(.*)/users/(.*)=ism", "$1$2", $profile); + if ($red != $profile) { + $server_url = $red; + $network = NETWORK_OSTATUS; + } + } + return $server_url; } @@ -755,6 +764,13 @@ function poco_check_server($server_url, $network = "", $force = false) { $versionparts = explode("-", $version); $version = $versionparts[0]; } + + if(stristr($line,'Server: Mastodon')) { + $platform = "Mastodon"; + $network = NETWORK_OSTATUS; + // Mastodon doesn't reveal version numbers + $version = ""; + } } } } @@ -960,7 +976,7 @@ function count_common_friends($uid,$cid) { ); // logger("count_common_friends: $uid $cid {$r[0]['total']}"); - if(count($r)) + if (dbm::is_result($r)) return $r[0]['total']; return 0; @@ -1006,7 +1022,7 @@ function count_common_friends_zcid($uid,$zcid) { intval($uid) ); - if(count($r)) + if (dbm::is_result($r)) return $r[0]['total']; return 0; @@ -1045,7 +1061,7 @@ function count_all_friends($uid,$cid) { intval($uid) ); - if(count($r)) + if (dbm::is_result($r)) return $r[0]['total']; return 0; @@ -1075,8 +1091,16 @@ function all_friends($uid,$cid,$start = 0, $limit = 80) { function suggestion_query($uid, $start = 0, $limit = 80) { - if(! $uid) + if (!$uid) { return array(); + } + +// Uncommented because the result of the queries are to big to store it in the cache. +// We need to decide if we want to change the db column type or if we want to delete it. +// $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit); +// if (!is_null($list)) { +// return $list; +// } $network = array(NETWORK_DFRN); @@ -1087,9 +1111,10 @@ function suggestion_query($uid, $start = 0, $limit = 80) { $network[] = NETWORK_OSTATUS; $sql_network = implode("', '", $network); - //$sql_network = "'".$sql_network."', ''"; $sql_network = "'".$sql_network."'"; + /// @todo This query is really slow + // By now we cache the data for five minutes $r = q("SELECT count(glink.gcid) as `total`, gcontact.* from gcontact INNER JOIN `glink` ON `glink`.`gcid` = `gcontact`.`id` where uid = %d and not gcontact.nurl in ( select nurl from contact where uid = %d ) @@ -1108,8 +1133,13 @@ function suggestion_query($uid, $start = 0, $limit = 80) { intval($limit) ); - if(count($r) && count($r) >= ($limit -1)) + if (dbm::is_result($r) && count($r) >= ($limit -1)) { +// Uncommented because the result of the queries are to big to store it in the cache. +// We need to decide if we want to change the db column type or if we want to delete it. +// Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES); + return $r; + } $r2 = q("SELECT gcontact.* FROM gcontact INNER JOIN `glink` ON `glink`.`gcid` = `gcontact`.`id` @@ -1138,6 +1168,9 @@ function suggestion_query($uid, $start = 0, $limit = 80) { while (sizeof($list) > ($limit)) array_pop($list); +// Uncommented because the result of the queries are to big to store it in the cache. +// We need to decide if we want to change the db column type or if we want to delete it. +// Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES); return $list; } @@ -1174,7 +1207,7 @@ function update_suggestions() { dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA) ); - if(count($r)) { + if (dbm::is_result($r)) { foreach($r as $rr) { $base = substr($rr['poco'],0,strrpos($rr['poco'],'/')); if(! in_array($base,$done))