]> git.mxchange.org Git - friendica.git/blobdiff - include/socgraph.php
Misc changes to url_from_contact_guid
[friendica.git] / include / socgraph.php
index 349869c40624dc5e81306d1af5318709603c6cb3..349fd0b2caebcecd5dfff17e050a2129c5161ec1 100644 (file)
@@ -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;
 
@@ -1079,10 +1095,12 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
                return array();
        }
 
-       $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit);
-       if (!is_null($list)) {
-               return $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.
+//     $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit);
+//     if (!is_null($list)) {
+//             return $list;
+//     }
 
        $network = array(NETWORK_DFRN);
 
@@ -1115,8 +1133,11 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
                intval($limit)
        );
 
-       if (count($r) && count($r) >= ($limit -1)) {
-               Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES);
+       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;
        }
 
@@ -1147,7 +1168,9 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
        while (sizeof($list) > ($limit))
                array_pop($list);
 
-       Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES);
+// 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;
 }
 
@@ -1184,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))