]> git.mxchange.org Git - friendica.git/commitdiff
Search for GNU Social users in the background
authorMichael Vogel <icarus@dabo.de>
Thu, 21 Jan 2016 18:00:08 +0000 (19:00 +0100)
committerMichael Vogel <icarus@dabo.de>
Thu, 21 Jan 2016 18:00:08 +0000 (19:00 +0100)
include/discover_poco.php
include/socgraph.php

index 5411e757ad286624858dcafea4f10fba164e8d2a..a8f670334b5d66a00d8fc5022d584472dfa85b80 100644 (file)
@@ -76,9 +76,10 @@ function discover_poco_run(&$argv, &$argc){
                update_suggestions();
        elseif (($mode == 2) AND get_config('system','poco_completion'))
                discover_users();
-       elseif (($mode == 1) AND ($search != "") and get_config('system','poco_local_search'))
+       elseif (($mode == 1) AND ($search != "") and get_config('system','poco_local_search')) {
                discover_directory($search);
-       elseif (($mode == 0) AND ($search == "") and (get_config('system','poco_discovery') > 0)) {
+               gs_search_user($search);
+       } elseif (($mode == 0) AND ($search == "") and (get_config('system','poco_discovery') > 0)) {
                // Query Friendica and Hubzilla servers for their users
                poco_discover();
 
@@ -197,6 +198,36 @@ function discover_directory($search) {
        Cache::set("dirsearch:".$search, time(), CACHE_DAY);
 }
 
+/**
+ * @brief Search for GNU Social user with gstools.org
+ *
+ * @param str $search User name
+ */
+function gs_search_user($search) {
+
+       $a = get_app();
+
+       $url = "http://gstools.org/api/users_search/".urlencode($search);
+
+       $result = z_fetch_url($url);
+       if (!$result["success"])
+               return false;
+
+       $contacts = json_decode($result["body"]);
+
+       if ($contacts->status == 'ERROR')
+               return false;
+
+       foreach($contacts->data AS $user) {
+               $contact = probe_url($user->site_address."/".$user->name);
+               if ($contact["network"] != NETWORK_PHANTOM) {
+                       $contact["about"] = $user->description;
+                       update_gcontact($contact);
+               }
+       }
+}
+
+
 if (array_search(__file__,get_included_files())===0){
   discover_poco_run($_SERVER["argv"],$_SERVER["argc"]);
   killme();
index 5eaad235b1c6b0b011797f703dc20bce7c2c0d1a..4532abb39b2543678f26114dd852ce5b8bbcc575 100644 (file)
@@ -1718,18 +1718,19 @@ function gs_fetch_users($server) {
                $hostname = $statistics->instance_address;
        }
 
-       foreach ($statistics->users AS $nick => $user) {
-               $profile_url = $server."/".$user->nickname;
-
-               $contact = array("url" => $profile_url,
-                               "name" => $user->fullname,
-                               "addr" => $user->nickname."@".$hostname,
-                               "nick" => $user->nickname,
-                               "about" => $user->bio,
-                               "network" => NETWORK_OSTATUS,
-                               "photo" => $a->get_baseurl()."/images/person-175.jpg");
-               get_gcontact_id($contact);
-       }
+       if (is_object($statistics->users))
+               foreach ($statistics->users AS $nick => $user) {
+                       $profile_url = $server."/".$user->nickname;
+
+                       $contact = array("url" => $profile_url,
+                                       "name" => $user->fullname,
+                                       "addr" => $user->nickname."@".$hostname,
+                                       "nick" => $user->nickname,
+                                       "about" => $user->bio,
+                                       "network" => NETWORK_OSTATUS,
+                                       "photo" => $a->get_baseurl()."/images/person-175.jpg");
+                       get_gcontact_id($contact);
+               }
 }
 
 /**