]> git.mxchange.org Git - friendica.git/blobdiff - include/follow.php
The repair option is added to the settings
[friendica.git] / include / follow.php
index 62180e4c6122d67a1c7fced4575e1c8a2e6a7d9a..217b9d07b7b37c22de81af99793c6cd968b1146f 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+require_once("include/Scrape.php");
 
 function update_contact($id) {
        /*
@@ -6,7 +7,7 @@ function update_contact($id) {
        This will reliably kill your communication with Friendica contacts.
        */
 
-       $r = q("SELECT `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `network` FROM `contact` WHERE `id` = %d", intval($id));
+       $r = q("SELECT `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `network` FROM `contact` WHERE `id` = %d", intval($id));
        if (!$r)
                return;
 
@@ -16,12 +17,21 @@ function update_contact($id) {
        if ($ret["network"] != $r[0]["network"])
                return;
 
+       $update = false;
+
        // make sure to not overwrite existing values with blank entries
-       foreach ($ret AS $key => $val)
+       foreach ($ret AS $key => $val) {
                if (isset($r[0][$key]) AND ($r[0][$key] != "") AND ($val == ""))
                        $ret[$key] = $r[0][$key];
 
-       q("UPDATE `contact` SET `url` = '%s', `nurl` = '%s', `addr` = '%s', `alias` = '%s', `batch` = '%s', `notify` = '%s', `poll` = '%s', `poco` = '%s', `name` = '%s', `nick` = '%s' WHERE `id` = %d",
+               if (isset($r[0][$key]) AND ($ret[$key] != $r[0][$key]))
+                       $update = true;
+       }
+
+       if (!$update)
+               return;
+
+       q("UPDATE `contact` SET `url` = '%s', `nurl` = '%s', `addr` = '%s', `alias` = '%s', `batch` = '%s', `notify` = '%s', `poll` = '%s', `poco` = '%s' WHERE `id` = %d",
                dbesc($ret['url']),
                dbesc(normalise_link($ret['url'])),
                dbesc($ret['addr']),
@@ -30,8 +40,6 @@ function update_contact($id) {
                dbesc($ret['notify']),
                dbesc($ret['poll']),
                dbesc($ret['poco']),
-               dbesc($ret['name']),
-               dbesc($ret['nick']),
                intval($id)
        );
 }
@@ -162,6 +170,11 @@ function new_contact($uid,$url,$interactive = false) {
                dbesc($ret['network'])
        );
 
+       if(!count($r))
+               $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` = '%s' LIMIT 1",
+                       intval($uid), dbesc(normalise_link($url)), dbesc($ret['network'])
+       );
+
        if(count($r)) {
                // update contact
                if($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) {
@@ -172,7 +185,6 @@ function new_contact($uid,$url,$interactive = false) {
                                intval($uid)
                        );
                }
-
        } else {
 
 
@@ -277,7 +289,7 @@ function new_contact($uid,$url,$interactive = false) {
 
        // pull feed and consume it, which should subscribe to the hub.
 
-       proc_run('php',"include/poller.php","$contact_id");
+       proc_run('php',"include/onepoll.php","$contact_id", "force");
 
        // create a follow slap
 
@@ -288,7 +300,7 @@ function new_contact($uid,$url,$interactive = false) {
                '$photo' => $a->contact['photo'],
                '$thumb' => $a->contact['thumb'],
                '$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME),
-               '$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':follow:' . random_string(),
+               '$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':follow:' . get_guid(32),
                '$title' => '',
                '$type' => 'text',
                '$content' => t('following'),