]> git.mxchange.org Git - friendica.git/commitdiff
Optical adjustments for contacts/set "last_failure" when inaccessible
authorMichael Vogel <icarus@dabo.de>
Fri, 6 Nov 2015 08:15:20 +0000 (09:15 +0100)
committerMichael Vogel <icarus@dabo.de>
Fri, 6 Nov 2015 08:15:20 +0000 (09:15 +0100)
include/Contact.php
include/socgraph.php
include/update_gcontact.php
view/theme/vier/style.css

index 5138f276be4a9c5a192766d9fc5c7167cfac113d..eeb38a5d7a519f031b3e1b3ae939519da55f3632 100644 (file)
@@ -204,7 +204,8 @@ function get_contact_details_by_url($url, $uid = -1) {
        if ($r) {
                $profile = $r[0];
 
-               if ($profile["addr"] == "")
+               if ((($profile["addr"] == "") OR ($profile["name"] == "")) AND
+                       in_array($profile["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS)))
                        proc_run('php',"include/update_gcontact.php", $profile["gid"]);
 
        } else {
index c5aa08d086637faaece17f143bb95491f0f51fa2..69d33089869dbc7b8acd574904d81b39fd1651e0 100644 (file)
@@ -1047,8 +1047,9 @@ function count_common_friends($uid,$cid) {
 
        $r = q("SELECT count(*) as `total`
                FROM `glink` INNER JOIN `gcontact` on `glink`.`gcid` = `gcontact`.`id`
-               where `glink`.`cid` = %d and `glink`.`uid` = %d
-               and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 and id != %d ) ",
+               WHERE `glink`.`cid` = %d AND `glink`.`uid` = %d AND
+               ((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR (`gcontact`.`updated` >= `gcontact`.`last_failure`))
+               AND `gcontact`.`nurl` IN (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 and id != %d ) ",
                intval($cid),
                intval($uid),
                intval($uid),
@@ -1077,6 +1078,7 @@ function common_friends($uid,$cid,$start = 0,$limit=9999,$shuffle = false) {
                WHERE `glink`.`cid` = %d and `glink`.`uid` = %d
                        AND `contact`.`uid` = %d AND `contact`.`self` = 0 AND `contact`.`blocked` = 0
                        AND `contact`.`hidden` = 0 AND `contact`.`id` != %d
+                       AND ((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR (`gcontact`.`updated` >= `gcontact`.`last_failure`))
                        $sql_extra LIMIT %d, %d",
                intval($cid),
                intval($uid),
@@ -1134,7 +1136,8 @@ function count_all_friends($uid,$cid) {
 
        $r = q("SELECT count(*) as `total`
                FROM `glink` INNER JOIN `gcontact` on `glink`.`gcid` = `gcontact`.`id`
-               where `glink`.`cid` = %d and `glink`.`uid` = %d ",
+               where `glink`.`cid` = %d and `glink`.`uid` = %d AND
+               ((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR (`gcontact`.`updated` >= `gcontact`.`last_failure`))",
                intval($cid),
                intval($uid)
        );
@@ -1152,7 +1155,8 @@ function all_friends($uid,$cid,$start = 0, $limit = 80) {
                FROM `glink`
                INNER JOIN `gcontact` on `glink`.`gcid` = `gcontact`.`id`
                LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl` AND `contact`.`uid` = %d
-               WHERE `glink`.`cid` = %d AND `glink`.`uid` = %d
+               WHERE `glink`.`cid` = %d AND `glink`.`uid` = %d AND
+               ((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR (`gcontact`.`updated` >= `gcontact`.`last_failure`))
                ORDER BY `gcontact`.`name` ASC LIMIT %d, %d ",
                intval($uid),
                intval($cid),
index ce2323f1873c1537e36e5b1ec0314cf28f830d7b..b5ea30a0a4d8803bedb8c0a80dc02ee3d977d283 100644 (file)
@@ -18,6 +18,7 @@ function update_gcontact_run(&$argv, &$argc){
 
        require_once('include/pidfile.php');
        require_once('include/Scrape.php');
+       require_once("include/socgraph.php");
 
        load_config('config');
        load_config('system');
@@ -54,10 +55,19 @@ function update_gcontact_run(&$argv, &$argc){
        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'];
index c48801d829be0f3aac3b40e7977a8c9186d9e468..3f48d2ec3f511f029801e282e77c452048304046 100644 (file)
@@ -2301,6 +2301,8 @@ aside #id_password {
 .contact-entry-wrapper .contact-entry-photo-wrapper {
   float: left;
   margin-right: 10px;
+  width: 80px;
+  height: 80px;
 }
 .contact-entry-photo-wrapper {
   position: relative;