Search for GNU Social users in the background

This commit is contained in:
Michael Vogel 2016-01-21 19:00:08 +01:00
parent 6174017048
commit 1d502116a8
2 changed files with 45 additions and 13 deletions

View file

@ -76,9 +76,10 @@ function discover_poco_run(&$argv, &$argc){
update_suggestions(); update_suggestions();
elseif (($mode == 2) AND get_config('system','poco_completion')) elseif (($mode == 2) AND get_config('system','poco_completion'))
discover_users(); 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); 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 // Query Friendica and Hubzilla servers for their users
poco_discover(); poco_discover();
@ -197,6 +198,36 @@ function discover_directory($search) {
Cache::set("dirsearch:".$search, time(), CACHE_DAY); 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){ if (array_search(__file__,get_included_files())===0){
discover_poco_run($_SERVER["argv"],$_SERVER["argc"]); discover_poco_run($_SERVER["argv"],$_SERVER["argc"]);
killme(); killme();

View file

@ -1718,6 +1718,7 @@ function gs_fetch_users($server) {
$hostname = $statistics->instance_address; $hostname = $statistics->instance_address;
} }
if (is_object($statistics->users))
foreach ($statistics->users AS $nick => $user) { foreach ($statistics->users AS $nick => $user) {
$profile_url = $server."/".$user->nickname; $profile_url = $server."/".$user->nickname;