]> git.mxchange.org Git - friendica.git/commitdiff
remote-self: Moved the code in a single function and cleaned it up.
authorMichael Vogel <icarus@dabo.de>
Wed, 29 Oct 2014 00:05:09 +0000 (01:05 +0100)
committerMichael Vogel <icarus@dabo.de>
Wed, 29 Oct 2014 00:05:09 +0000 (01:05 +0100)
include/items.php
mod/crepair.php

index 9c11a1f39024cb5ac321d62aaf0fa70dcaf02d6b..c4555e82daa4473ad4154d9f7730ec251251dbbf 100644 (file)
@@ -2598,68 +2598,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
 
                                // This is my contact on another system, but it's really me.
                                // Turn this into a wall post.
-
-                               if($contact['remote_self'] AND (($contact['network'] === NETWORK_FEED) OR !$datarray['private'])) {
-                                       logger('remote-self start - Contact '.$contact['url'].' - '.$contact['remote_self'].' Item '.print_r($datarray, true), LOGGER_DEBUG);
-                                       if ($contact['remote_self'] == 1) {
-                                               // Prevent that forwarded posts will be forwarded again
-                                               $notify = (normalise_link($datarray['author-link']) == normalise_link($datarray['owner-link']));
-                                               if ($datarray["app"] == $a->get_hostname())
-                                                       $notify = false;
-                                       } elseif ($contact['remote_self'] == 2) {
-                                               $r = q("SELECT `id`,`url`,`name`,`photo`,`network` FROM `contact` WHERE `uid` = %d AND `self`", intval($importer['uid']));
-                                               if (count($r)) {
-                                                       $datarray['contact-id'] = $r[0]["id"];
-
-                                                       $datarray['owner-name'] = $r[0]["name"];
-                                                       $datarray['owner-link'] = $r[0]["url"];
-                                                       $datarray['owner-avatar'] = $r[0]["avatar"];
-
-                                                       $datarray['author-name']   = $datarray['owner-name'];
-                                                       $datarray['author-link']   = $datarray['owner-link'];
-                                                       $datarray['author-avatar'] = $datarray['owner-avatar'];
-                                               }
-                                               $notify = true;
-                                       }
-
-                                       if (!isset($datarray["app"]) OR ($datarray["app"] == ""))
-                                               $datarray["app"] = network_to_name($contact['network']);
-
-                                       if ($contact['network'] === NETWORK_FEED)
-                                               $datarray['private'] = 0;
-                                       elseif ($notify) {
-                                               $datarray2 = $datarray;
-
-                                               // Create a new guid and uri and post it as a forwarded post
-                                               $datarray2["guid"] = get_guid(32);
-                                               unset($datarray2["plink"]);
-                                               $datarray2["uri"] = item_new_uri($a->get_hostname(),$importer['uid']);
-                                               $datarray2["parent-uri"] = $datarray2["uri"];
-                                               $datarray2["extid"] = NETWORK_DFRN;
-                                               $urlpart = parse_url($datarray['author-link']);
-                                               $datarray2["app"] = $urlpart["host"];
-                                               $r = q("SELECT `id`,`url`,`name`,`photo`,`network` FROM `contact` WHERE `uid` = %d AND `self`", intval($importer['uid']));
-                                               if (count($r)) {
-                                                       $datarray2['contact-id'] = $r[0]["id"];
-
-                                                       $datarray2['owner-name'] = $r[0]["name"];
-                                                       $datarray2['owner-link'] = $r[0]["url"];
-                                                       $datarray2['owner-avatar'] = $r[0]["avatar"];
-
-                                                       $datarray2['author-name']   = $datarray2['owner-name'];
-                                                       $datarray2['author-link']   = $datarray2['owner-link'];
-                                                       $datarray2['author-avatar'] = $datarray2['owner-avatar'];
-                                               }
-
-                                               // Store the forwarded post
-                                               $r = item_store($datarray2, false, true);
-                                               logger('remote-self forwarded post - Contact '.$contact['url'].' return '.$r.' Item '.print_r($datarray2, true), LOGGER_DEBUG);
-
-                                               // Let the original item just be a regular item
-                                               $notify = false;
-                                       }
-                               } else
-                                       $notify = false;
+                               $notify = item_is_remote_self($contact, $datarray);
 
                                $r = item_store($datarray, false, $notify);
                                logger('Stored - Contact '.$contact['url'].' Notify '.$notify.' return '.$r.' Item '.print_r($datarray, true), LOGGER_DEBUG);
@@ -2670,6 +2609,61 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
        }
 }
 
+function item_is_remote_self($contact, &$datarray) {
+       $a = get_app();
+
+       if (!$contact['remote_self'])
+               return false;
+
+       // Prevent to forward already forwarded posts
+       if ($datarray["app"] == $a->get_hostname())
+               return false;
+
+       if (($contact['network'] != NETWORK_FEED) AND $datarray['private'])
+               return false;
+
+       $datarray2 = $datarray;
+       logger('remote-self start - Contact '.$contact['url'].' - '.$contact['remote_self'].' Item '.print_r($datarray, true), LOGGER_DEBUG);
+       if ($contact['remote_self'] == 2) {
+               $r = q("SELECT `id`,`url`,`name`,`photo`,`network` FROM `contact` WHERE `uid` = %d AND `self`",
+                       intval($contact['uid']));
+               if (count($r)) {
+                       $datarray['contact-id'] = $r[0]["id"];
+
+                       $datarray['owner-name'] = $r[0]["name"];
+                       $datarray['owner-link'] = $r[0]["url"];
+                       $datarray['owner-avatar'] = $r[0]["avatar"];
+
+                       $datarray['author-name']   = $datarray['owner-name'];
+                       $datarray['author-link']   = $datarray['owner-link'];
+                       $datarray['author-avatar'] = $datarray['owner-avatar'];
+               }
+
+               if ($contact['network'] != NETWORK_FEED) {
+                       $datarray["guid"] = get_guid(32);
+                       unset($datarray["plink"]);
+                       $datarray["uri"] = item_new_uri($a->get_hostname(),$contact['uid']);
+                       $datarray["parent-uri"] = $datarray["uri"];
+                       $datarray["extid"] = $contact['network'];
+                       $urlpart = parse_url($datarray2['author-link']);
+                       $datarray["app"] = $urlpart["host"];
+               } else
+                       $datarray['private'] = 0;
+       }
+
+       //if (!isset($datarray["app"]) OR ($datarray["app"] == ""))
+       //      $datarray["app"] = network_to_name($contact['network']);
+
+       if ($contact['network'] != NETWORK_FEED) {
+               // Store the original post
+               $r = item_store($datarray2, false, false);
+               logger('remote-self post original item - Contact '.$contact['url'].' return '.$r.' Item '.print_r($datarray2, true), LOGGER_DEBUG);
+       } else
+               $datarray["app"] = "Feed";
+
+       return true;
+}
+
 function local_delivery($importer,$data) {
        $a = get_app();
 
@@ -3751,68 +3745,7 @@ function local_delivery($importer,$data) {
 
                        // This is my contact on another system, but it's really me.
                        // Turn this into a wall post.
-
-                       if($importer['remote_self'] AND (($importer['network'] === NETWORK_FEED) OR !$datarray['private'])) {
-                               logger('remote-self start - Contact '.$importer['url'].' - '.$importer['remote_self'].' Item '.print_r($datarray, true), LOGGER_DEBUG);
-                               if ($importer['remote_self'] == 1) {
-                                       // Prevent that forwarded posts will be forwarded again
-                                       $notify = (normalise_link($datarray['author-link']) == normalise_link($datarray['owner-link']));
-                                       if ($datarray["app"] == $a->get_hostname())
-                                               $notify = false;
-                               } elseif ($importer['remote_self'] == 2) {
-                                       $r = q("SELECT `id`,`url`,`name`,`photo`,`network` FROM `contact` WHERE `uid` = %d AND `self`",
-                                               intval($importer['importer_uid']));
-                                       if (count($r)) {
-                                               $datarray['contact-id'] = $r[0]["id"];
-
-                                               $datarray['owner-name'] = $r[0]["name"];
-                                               $datarray['owner-link'] = $r[0]["url"];
-                                               $datarray['owner-avatar'] = $r[0]["avatar"];
-
-                                               $datarray['author-name']   = $datarray['owner-name'];
-                                               $datarray['author-link']   = $datarray['owner-link'];
-                                               $datarray['author-avatar'] = $datarray['owner-avatar'];
-                                       }
-                                       $notify = true;
-                               }
-
-                               //if (!isset($datarray["app"]) OR ($datarray["app"] == ""))
-                               //      $datarray["app"] = network_to_name($importer['network']);
-
-                               if ($importer['network'] === NETWORK_FEED)
-                                       $datarray['private'] = 0;
-                               elseif ($notify) {
-                                       $datarray2 = $datarray;
-                                       // Create a new guid and uri and post it as a forwarded post
-                                       $datarray2["guid"] = get_guid(32);
-                                       unset($datarray2["plink"]);
-                                       $datarray2["uri"] = item_new_uri($a->get_hostname(),$importer['uid']);
-                                       $datarray2["parent-uri"] = $datarray2["uri"];
-                                       $datarray2["extid"] = NETWORK_DFRN;
-                                       $urlpart = parse_url($datarray['author-link']);
-                                       $datarray2["app"] = $urlpart["host"];
-                                       $r = q("SELECT `id`,`url`,`name`,`photo`,`network` FROM `contact` WHERE `uid` = %d AND `self`", intval($importer['uid']));
-                                       if (count($r)) {
-                                               $datarray2['contact-id'] = $r[0]["id"];
-
-                                               $datarray2['owner-name'] = $r[0]["name"];
-                                               $datarray2['owner-link'] = $r[0]["url"];
-                                               $datarray2['owner-avatar'] = $r[0]["avatar"];
-
-                                               $datarray2['author-name']   = $datarray2['owner-name'];
-                                               $datarray2['author-link']   = $datarray2['owner-link'];
-                                               $datarray2['author-avatar'] = $datarray2['owner-avatar'];
-                                       }
-
-                                       // Store the forwarded post
-                                       $r = item_store($datarray2, false, true);
-                                       logger('remote-self forwarded post - Contact '.$importer['url'].' return '.$r.' Item '.print_r($datarray2, true), LOGGER_DEBUG);
-
-                                       // Let the original item just be a regular item
-                                       $notify = false;
-                               }
-                       } else
-                               $notify = false;
+                       $notify = item_is_remote_self($importer, $datarray);
 
                        $posted_id = item_store($datarray, false, $notify);
 
index 23f833c5b93f7b28e9a35057124f4d6beeb0e845..aba71232c5e64f9e8da3010db11c33eb3fb38f86 100644 (file)
@@ -157,8 +157,8 @@ function crepair_content(&$a) {
 
        if ($contact['network'] == NETWORK_FEED)
                $remote_self_options = array('0'=>t('No mirroring'), '1'=>t('Mirror as forwarded posting'), '2'=>t('Mirror as my own posting'));
-       elseif ($contact['network'] == NETWORK_DFRN)
-               $remote_self_options = array('0'=>t('No mirroring'), '1'=>t('Mirror as forwarded posting'));
+               elseif ($contact['network'] == NETWORK_DFRN)
+               $remote_self_options = array('0'=>t('No mirroring'), '2'=>t('Mirror as my own posting'));
 
        $tpl = get_markup_template('crepair.tpl');
        $o .= replace_macros($tpl, array(