X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWorker%2FUpdateGContact.php;h=b927e61bbd2718c1d251e8dce9dff5734783bf22;hb=ff2164ee85036ba9397d4006f620f31590227043;hp=953778786e94108f6ec1034d64dad8cda5a10187;hpb=33e98d6264af1234bd37717d8ced7fdb34732353;p=friendica.git diff --git a/src/Worker/UpdateGContact.php b/src/Worker/UpdateGContact.php index 953778786e..b927e61bbd 100644 --- a/src/Worker/UpdateGContact.php +++ b/src/Worker/UpdateGContact.php @@ -1,81 +1,91 @@ 1) && (intval($argv[1]))) { - $contact_id = intval($argv[1]); - } - - if (!$contact_id) { - logger('update_gcontact: no contact'); - return; - } - $r = q("SELECT * FROM `gcontact` WHERE `id` = %d", intval($contact_id)); +namespace Friendica\Worker; - if (!DBM::is_result($r)) { - return; - } - - if (!in_array($r[0]["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) { - return; - } - - $data = Probe::uri($r[0]["url"]); - - if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) { - if ($r[0]["server_url"] != "") - PortableContact::checkServer($r[0]["server_url"], $r[0]["network"]); - - q("UPDATE `gcontact` SET `last_failure` = '%s' WHERE `id` = %d", - dbesc(datetime_convert()), intval($contact_id)); - return; +use Friendica\Core\Logger; +use Friendica\Core\Protocol; +use Friendica\Database\DBA; +use Friendica\Network\Probe; +use Friendica\Protocol\PortableContact; +use Friendica\Util\DateTimeFormat; +use Friendica\Util\Strings; + +class UpdateGContact +{ + public static function execute($contact_id) + { + Logger::log('update_gcontact: start'); + + if (empty($contact_id)) { + Logger::log('update_gcontact: no contact'); + return; + } + + $r = q("SELECT * FROM `gcontact` WHERE `id` = %d", intval($contact_id)); + + if (!DBA::isResult($r)) { + return; + } + + if (!in_array($r[0]["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS])) { + return; + } + + $data = Probe::uri($r[0]["url"]); + + if (!in_array($data["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS])) { + if ($r[0]["server_url"] != "") { + PortableContact::checkServer($r[0]["server_url"], $r[0]["network"]); + } + + q("UPDATE `gcontact` SET `last_failure` = '%s' WHERE `id` = %d", + DBA::escape(DateTimeFormat::utcNow()), intval($contact_id)); + return; + } + + if (($data["name"] == "") && ($r[0]['name'] != "")) { + $data["name"] = $r[0]['name']; + } + + if (($data["nick"] == "") && ($r[0]['nick'] != "")) { + $data["nick"] = $r[0]['nick']; + } + + if (($data["addr"] == "") && ($r[0]['addr'] != "")) { + $data["addr"] = $r[0]['addr']; + } + + if (($data["photo"] == "") && ($r[0]['photo'] != "")) { + $data["photo"] = $r[0]['photo']; + } + + + q("UPDATE `gcontact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s' + WHERE `id` = %d", + DBA::escape($data["name"]), + DBA::escape($data["nick"]), + DBA::escape($data["addr"]), + DBA::escape($data["photo"]), + intval($contact_id) + ); + + q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s' + WHERE `uid` = 0 AND `addr` = '' AND `nurl` = '%s'", + DBA::escape($data["name"]), + DBA::escape($data["nick"]), + DBA::escape($data["addr"]), + DBA::escape($data["photo"]), + DBA::escape(Strings::normaliseLink($data["url"])) + ); + + q("UPDATE `contact` SET `addr` = '%s' + WHERE `uid` != 0 AND `addr` = '' AND `nurl` = '%s'", + DBA::escape($data["addr"]), + DBA::escape(Strings::normaliseLink($data["url"])) + ); } - - if (($data["name"] == "") && ($r[0]['name'] != "")) - $data["name"] = $r[0]['name']; - - if (($data["nick"] == "") && ($r[0]['nick'] != "")) - $data["nick"] = $r[0]['nick']; - - if (($data["addr"] == "") && ($r[0]['addr'] != "")) - $data["addr"] = $r[0]['addr']; - - if (($data["photo"] == "") && ($r[0]['photo'] != "")) - $data["photo"] = $r[0]['photo']; - - - q("UPDATE `gcontact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s' - WHERE `id` = %d", - dbesc($data["name"]), - dbesc($data["nick"]), - dbesc($data["addr"]), - dbesc($data["photo"]), - intval($contact_id) - ); - - q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%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"])) - ); }