X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fupdate_gcontact.php;h=88e1817f0b991ff6a0749c2d794b71510ab62b22;hb=b50769b6d09549e1641bab1813087fd928602129;hp=05cfba96c114bd2be90fef899ad33ac5d8d09cd6;hpb=0f41f35041bb4f240d359a1ffed91f8bc4eb89a4;p=friendica.git diff --git a/include/update_gcontact.php b/include/update_gcontact.php index 05cfba96c1..88e1817f0b 100644 --- a/include/update_gcontact.php +++ b/include/update_gcontact.php @@ -10,22 +10,14 @@ function update_gcontact_run(&$argv, &$argc){ } if(is_null($db)) { - @include(".htconfig.php"); - require_once("include/dba.php"); - $db = new dba($db_host, $db_user, $db_pass, $db_data); - unset($db_host, $db_user, $db_pass, $db_data); + @include(".htconfig.php"); + require_once("include/dba.php"); + $db = new dba($db_host, $db_user, $db_pass, $db_data); + unset($db_host, $db_user, $db_pass, $db_data); }; - - require_once('include/session.php'); - require_once('include/datetime.php'); - require_once('library/simplepie/simplepie.inc'); - require_once('include/items.php'); - require_once('include/Contact.php'); - require_once('include/email.php'); - require_once('include/socgraph.php'); - require_once('include/pidfile.php'); - require_once('include/queue_fn.php'); + require_once('include/Scrape.php'); + require_once("include/socgraph.php"); load_config('config'); load_config('system'); @@ -36,45 +28,37 @@ function update_gcontact_run(&$argv, &$argc){ logger('update_gcontact: start'); - $manual_id = 0; - $generation = 0; - $hub_update = false; - $force = false; - $restart = false; - if(($argc > 1) && (intval($argv[1]))) $contact_id = intval($argv[1]); - if(($argc > 2) && ($argv[2] == "force")) - $force = true; - if(!$contact_id) { logger('update_gcontact: no contact'); return; } - $lockpath = get_lockpath(); - if ($lockpath != '') { - $pidfile = new pidfile($lockpath, 'update_gcontact'.$contact_id); - if ($pidfile->is_already_running()) { - logger("update_gcontact: Already running for contact ".$contact_id); - if ($pidfile->running_time() > 9*60) { - $pidfile->kill(); - logger("killed stale process"); - } - exit; - } - } + // Don't check this stuff if the function is called by the poller + if (App::callstack() != "poller_run") + if (App::is_already_running('update_gcontact'.$contact_id, '', 540)) + return; $r = q("SELECT * FROM `gcontact` WHERE `id` = %d", intval($contact_id)); if (!$r) return; + if (!in_array($r[0]["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) + return; + $data = probe_url($r[0]["url"]); - if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) + if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) { + if ($r[0]["server_url"] != "") + poco_check_server($r[0]["server_url"], $r[0]["network"]); + + q("UPDATE `gcontact` SET `last_failure` = '%s' WHERE `id` = %d", + dbesc(datetime_convert()), intval($contact_id)); return; + } if (($data["name"] == "") AND ($r[0]['name'] != "")) $data["name"] = $r[0]['name']; @@ -99,16 +83,22 @@ function update_gcontact_run(&$argv, &$argc){ ); q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s' - WHERE `uid` = 0 AND `nurl` = '%s'", + WHERE `uid` = 0 AND `addr` = '' AND `nurl` = '%s'", dbesc($data["name"]), dbesc($data["nick"]), dbesc($data["addr"]), dbesc($data["photo"]), dbesc(normalise_link($data["url"])) ); + + q("UPDATE `contact` SET `addr` = '%s' + WHERE `uid` != 0 AND `addr` = '' AND `nurl` = '%s'", + dbesc($data["addr"]), + dbesc(normalise_link($data["url"])) + ); } if (array_search(__file__,get_included_files())===0){ - update_gcontact_run($_SERVER["argv"],$_SERVER["argc"]); - killme(); + update_gcontact_run($_SERVER["argv"],$_SERVER["argc"]); + killme(); }