]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #5166 from annando/unsed-item-fields
authorHypolite Petovan <mrpetovan@gmail.com>
Sun, 3 Jun 2018 16:19:50 +0000 (12:19 -0400)
committerGitHub <noreply@github.com>
Sun, 3 Jun 2018 16:19:50 +0000 (12:19 -0400)
Remove unused, unneeded or redundant item fields

15 files changed:
database.sql
include/api.php
include/conversation.php
include/enotify.php
mod/admin.php
mod/display.php
mod/network.php
mod/p.php [deleted file]
mod/ping.php
src/Database/DBStructure.php
src/Model/Contact.php
src/Model/Item.php
src/Object/Post.php
src/Worker/Notifier.php
tests/datasets/api.yml

index bd36bdb70c406d3ed3eab91bd0608c53419f6f7a..b186c0c0aa405de1a4a9c5f930ad328738eac33b 100644 (file)
@@ -504,7 +504,6 @@ CREATE TABLE IF NOT EXISTS `item` (
        `pubmail` boolean NOT NULL DEFAULT '0' COMMENT '',
        `moderated` boolean NOT NULL DEFAULT '0' COMMENT '',
        `visible` boolean NOT NULL DEFAULT '0' COMMENT '',
-       `spam` boolean NOT NULL DEFAULT '0' COMMENT '',
        `starred` boolean NOT NULL DEFAULT '0' COMMENT 'item has been favourited',
        `bookmark` boolean NOT NULL DEFAULT '0' COMMENT 'item has been bookmarked',
        `unseen` boolean NOT NULL DEFAULT '1' COMMENT 'item has not been seen',
@@ -976,7 +975,6 @@ CREATE TABLE IF NOT EXISTS `thread` (
        `pubmail` boolean NOT NULL DEFAULT '0' COMMENT '',
        `moderated` boolean NOT NULL DEFAULT '0' COMMENT '',
        `visible` boolean NOT NULL DEFAULT '0' COMMENT '',
-       `spam` boolean NOT NULL DEFAULT '0' COMMENT '',
        `starred` boolean NOT NULL DEFAULT '0' COMMENT '',
        `ignored` boolean NOT NULL DEFAULT '0' COMMENT '',
        `bookmark` boolean NOT NULL DEFAULT '0' COMMENT '',
index 8ffe27e74921cb7426e020550b7bc66b6894d474..de5c5689f17ab91a80a637b807ec5eb200232cbc 100644 (file)
@@ -492,7 +492,7 @@ function api_rss_extra(App $a, $arr, $user_info)
  */
 function api_unique_id_to_nurl($id)
 {
-       $r = dba::selectFirst('contact', ['nurl'], ['uid' => 0, 'id' => $id]);
+       $r = dba::selectFirst('contact', ['nurl'], ['id' => $id]);
 
        if (DBM::is_result($r)) {
                return $r["nurl"];
@@ -532,7 +532,7 @@ function api_get_user(App $a, $contact_id = null)
                $user = dbesc(api_unique_id_to_nurl(intval($contact_id)));
 
                if ($user == "") {
-                       throw new BadRequestException("User not found.");
+                       throw new BadRequestException("User ID ".$contact_id." not found.");
                }
 
                $url = $user;
@@ -546,7 +546,7 @@ function api_get_user(App $a, $contact_id = null)
                $user = dbesc(api_unique_id_to_nurl($_GET['user_id']));
 
                if ($user == "") {
-                       throw new BadRequestException("User not found.");
+                       throw new BadRequestException("User ID ".$_GET['user_id']." not found.");
                }
 
                $url = $user;
@@ -670,13 +670,14 @@ function api_get_user(App $a, $contact_id = null)
                                'statusnet_profile_url' => $r[0]["url"],
                                'uid' => 0,
                                'cid' => Contact::getIdForURL($r[0]["url"], api_user(), true),
+                               'pid' => Contact::getIdForURL($r[0]["url"], 0, true),
                                'self' => 0,
                                'network' => $r[0]["network"],
                        ];
 
                        return $ret;
                } else {
-                       throw new BadRequestException("User not found.");
+                       throw new BadRequestException("User ".$url." not found.");
                }
        }
 
@@ -809,6 +810,7 @@ function api_get_user(App $a, $contact_id = null)
                'statusnet_profile_url' => $uinfo[0]['url'],
                'uid' => intval($uinfo[0]['uid']),
                'cid' => intval($uinfo[0]['cid']),
+               'pid' => Contact::getIdForURL($uinfo[0]["url"], 0, true),
                'self' => $uinfo[0]['self'],
                'network' => $uinfo[0]['network'],
        ];
@@ -856,16 +858,12 @@ function api_get_user(App $a, $contact_id = null)
  */
 function api_item_get_user(App $a, $item)
 {
-       $status_user = api_get_user($a, $item["author-link"]);
+       $status_user = api_get_user($a, $item["author-id"]);
 
-       $status_user["protected"] = (($item["allow_cid"] != "") ||
-                                       ($item["allow_gid"] != "") ||
-                                       ($item["deny_cid"] != "") ||
-                                       ($item["deny_gid"] != "") ||
-                                       $item["private"]);
+       $status_user["protected"] = $item["private"];
 
        if ($item['thr-parent'] == $item['uri']) {
-               $owner_user = api_get_user($a, $item["owner-link"]);
+               $owner_user = api_get_user($a, $item["owner-id"]);
        } else {
                $owner_user = $status_user;
        }
@@ -1356,31 +1354,17 @@ function api_status_show($type)
        logger('api_status_show: user_info: '.print_r($user_info, true), LOGGER_DEBUG);
 
        if ($type == "raw") {
-               $privacy_sql = "AND `item`.`allow_cid`='' AND `item`.`allow_gid`='' AND `item`.`deny_cid`='' AND `item`.`deny_gid`=''";
+               $privacy_sql = "AND NOT `private`";
        } else {
                $privacy_sql = "";
        }
 
        // get last public wall message
-       $lastwall = q(
-               "SELECT `item`.*
-                       FROM `item`
-                       WHERE `item`.`contact-id` = %d AND `item`.`uid` = %d
-                               AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s')))
-                               AND `item`.`type` != 'activity' $privacy_sql
-                       ORDER BY `item`.`id` DESC
-                       LIMIT 1",
-               intval($user_info['cid']),
-               intval(api_user()),
-               dbesc($user_info['url']),
-               dbesc(normalise_link($user_info['url'])),
-               dbesc($user_info['url']),
-               dbesc(normalise_link($user_info['url']))
-       );
+       $condition = ["`owner-id` = ? AND `uid` = ? AND `type` != 'activity' ".$privacy_sql,
+               $user_info['pid'], api_user()];
+       $lastwall = dba::selectFirst('item', [], $condition, ['order' => ['id' => true]]);
 
        if (DBM::is_result($lastwall)) {
-               $lastwall = $lastwall[0];
-
                $in_reply_to = api_in_reply_to($lastwall);
 
                $converted = api_convert_item($lastwall);
@@ -1428,10 +1412,10 @@ function api_status_show($type)
                        $status_info["entities"] = $converted["entities"];
                }
 
-               if (($lastwall['item_network'] != "") && ($status_info["source"] == 'web')) {
-                       $status_info["source"] = ContactSelector::networkToName($lastwall['item_network'], $user_info['url']);
-               } elseif (($lastwall['item_network'] != "") && (ContactSelector::networkToName($lastwall['item_network'], $user_info['url']) != $status_info["source"])) {
-                       $status_info["source"] = trim($status_info["source"].' ('.ContactSelector::networkToName($lastwall['item_network'], $user_info['url']).')');
+               if ($status_info["source"] == 'web') {
+                       $status_info["source"] = ContactSelector::networkToName($lastwall['network'], $user_info['url']);
+               } elseif (ContactSelector::networkToName($lastwall['network'], $user_info['url']) != $status_info["source"]) {
+                       $status_info["source"] = trim($status_info["source"].' ('.ContactSelector::networkToName($lastwall['network'], $user_info['url']).')');
                }
 
                // "uid" and "self" are only needed for some internal stuff, so remove it from here
@@ -1460,28 +1444,12 @@ function api_users_show($type)
        $a = get_app();
 
        $user_info = api_get_user($a);
-       $lastwall = q(
-               "SELECT `item`.*
-                       FROM `item`
-                       INNER JOIN `contact` ON `contact`.`id`=`item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
-                       WHERE `item`.`uid` = %d AND `verb` = '%s' AND `item`.`contact-id` = %d
-                               AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s')))
-                               AND `type`!='activity'
-                               AND `item`.`allow_cid`='' AND `item`.`allow_gid`='' AND `item`.`deny_cid`='' AND `item`.`deny_gid`=''
-                       ORDER BY `id` DESC
-                       LIMIT 1",
-               intval(api_user()),
-               dbesc(ACTIVITY_POST),
-               intval($user_info['cid']),
-               dbesc($user_info['url']),
-               dbesc(normalise_link($user_info['url'])),
-               dbesc($user_info['url']),
-               dbesc(normalise_link($user_info['url']))
-       );
 
-       if (DBM::is_result($lastwall)) {
-               $lastwall = $lastwall[0];
+       $condition = ["`owner-id` = ? AND `uid` = ? AND `verb` = ? AND `type` != 'activity' AND NOT `private`",
+               $user_info['pid'], api_user(), ACTIVITY_POST];
+       $lastwall = dba::selectFirst('item', [], $condition, ['order' => ['id' => true]]);
 
+       if (DBM::is_result($lastwall)) {
                $in_reply_to = api_in_reply_to($lastwall);
 
                $converted = api_convert_item($lastwall);
@@ -1519,12 +1487,12 @@ function api_users_show($type)
                        $user_info["status"]["entities"] = $converted["entities"];
                }
 
-               if (($lastwall['item_network'] != "") && ($user_info["status"]["source"] == 'web')) {
-                       $user_info["status"]["source"] = ContactSelector::networkToName($lastwall['item_network'], $user_info['url']);
+               if ($user_info["status"]["source"] == 'web') {
+                       $user_info["status"]["source"] = ContactSelector::networkToName($lastwall['network'], $user_info['url']);
                }
 
-               if (($lastwall['item_network'] != "") && (ContactSelector::networkToName($lastwall['item_network'], $user_info['url']) != $user_info["status"]["source"])) {
-                       $user_info["status"]["source"] = trim($user_info["status"]["source"] . ' (' . ContactSelector::networkToName($lastwall['item_network'], $user_info['url']) . ')');
+               if (ContactSelector::networkToName($lastwall['network'], $user_info['url']) != $user_info["status"]["source"]) {
+                       $user_info["status"]["source"] = trim($user_info["status"]["source"] . ' (' . ContactSelector::networkToName($lastwall['network'], $user_info['url']) . ')');
                }
        }
 
@@ -1573,10 +1541,10 @@ function api_users_search($type)
                        }
                        $userlist = ["users" => $userlist];
                } else {
-                       throw new BadRequestException("User not found.");
+                       throw new BadRequestException("User ".$_GET["q"]." not found.");
                }
        } else {
-               throw new BadRequestException("User not found.");
+               throw new BadRequestException("No user specified.");
        }
 
        return api_format_data("users", $type, $userlist);
@@ -1735,19 +1703,14 @@ function api_statuses_home_timeline($type)
                $sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
        }
 
-       $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`
-               FROM `item`
-               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+       $r = q("SELECT `item`.* FROM `item`
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                WHERE `item`.`uid` = %d AND `verb` = '%s'
                AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
                $sql_extra
-               AND `item`.`id`>%d
-               ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+               AND `item`.`id` > %d
+               ORDER BY `item`.`id` DESC LIMIT %d ,%d",
                intval(api_user()),
                dbesc(ACTIVITY_POST),
                intval($since_id),
@@ -2016,12 +1979,8 @@ function api_statuses_show($type)
        $id = $item['id'];
 
        $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`
-               FROM `item`
-               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+               "SELECT `item`.* FROM `item`
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                WHERE `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
                AND `item`.`uid` IN (0, %d) AND `item`.`verb` = '%s'
@@ -2107,13 +2066,8 @@ function api_conversation_show($type)
                $sql_extra = ' AND `item`.`id` <= ' . intval($max_id);
        }
 
-       $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`
-               FROM `item`
-               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+       $r = q("SELECT `item`.* FROM `item`
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                WHERE `item`.`parent` = %d AND `item`.`visible`
                AND NOT `item`.`moderated` AND NOT `item`.`deleted`
@@ -2175,17 +2129,11 @@ function api_statuses_repeat($type)
 
        logger('API: api_statuses_repeat: '.$id);
 
-       $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`, `contact`.`nick` as `reply_author`,
-               `contact`.`name`, `contact`.`photo` as `reply_photo`, `contact`.`url` as `reply_url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`
-               FROM `item`
-               INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+       $r = q("SELECT `item`.* FROM `item`
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                WHERE `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
-               AND NOT `item`.`private` AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
-               AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
+               AND NOT `item`.`private`
                AND `item`.`id`=%d",
                intval($id)
        );
@@ -2299,36 +2247,25 @@ function api_statuses_mentions($type)
 
        $start = ($page - 1) * $count;
 
-       // Ugly code - should be changed
-       $myurl = System::baseUrl() . '/profile/'. $a->user['nickname'];
-       $myurl = substr($myurl, strpos($myurl, '://') + 3);
-       $myurl = str_replace('www.', '', $myurl);
-
        $sql_extra = '';
 
        if ($max_id > 0) {
-               $sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
+               $sql_extra = ' AND `item`.`id` <= ' . intval($max_id);
        }
 
-       $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`
-               FROM `item` FORCE INDEX (`uid_id`)
-               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+       $r = q("SELECT `item`.* FROM `item` FORCE INDEX (`uid_id`)
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
-               WHERE `item`.`uid` = %d AND `verb` = '%s'
-               AND NOT (`item`.`author-link` IN ('https://%s', 'http://%s'))
+               WHERE `item`.`uid` = %d AND `item`.`verb` = '%s'
+               AND `item`.`author-id` != %d
                AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
-               AND `item`.`parent` IN (SELECT `iid` FROM `thread` WHERE `uid` = %d AND `mention` AND !`ignored`)
+               AND `item`.`parent` IN (SELECT `iid` FROM `thread` WHERE `uid` = %d AND `mention` AND NOT `ignored`)
                $sql_extra
-               AND `item`.`id`>%d
-               ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+               AND `item`.`id` > %d
+               ORDER BY `item`.`id` DESC LIMIT %d ,%d",
                intval(api_user()),
                dbesc(ACTIVITY_POST),
-               dbesc(protect_sprintf($myurl)),
-               dbesc(protect_sprintf($myurl)),
+               intval($user_info['pid']),
                intval(api_user()),
                intval($since_id),
                intval($start),
@@ -2408,20 +2345,15 @@ function api_statuses_user_timeline($type)
                $sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
        }
 
-       $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`
-               FROM `item` FORCE INDEX (`uid_contactid_id`)
-               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+       $r = q("SELECT `item`.* FROM `item` FORCE INDEX (`uid_contactid_id`)
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                WHERE `item`.`uid` = %d AND `verb` = '%s'
                AND `item`.`contact-id` = %d
                AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
                $sql_extra
                AND `item`.`id` > %d
-               ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+               ORDER BY `item`.`id` DESC LIMIT %d ,%d",
                intval(api_user()),
                dbesc(ACTIVITY_POST),
                intval($user_info['cid']),
@@ -2566,20 +2498,15 @@ function api_favorites($type)
                        $sql_extra .= ' AND `item`.`id` <= ' . intval($max_id);
                }
 
-               $r = q(
-                       "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-                       `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-                       `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-                       `contact`.`id` AS `cid`
-                       FROM `item`, `contact`
+               $r = q("SELECT `item`.* FROM `item`
+                       STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
+                               AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                        WHERE `item`.`uid` = %d
-                       AND `item`.`visible` = 1 AND `item`.`moderated` = 0 AND `item`.`deleted` = 0
-                       AND `item`.`starred` = 1
-                       AND `contact`.`id` = `item`.`contact-id`
-                       AND (NOT `contact`.`blocked` OR `contact`.`pending`)
+                       AND `item`.`visible` AND NOT `item`.`moderated` AND NOT `item`.`deleted`
+                       AND `item`.`starred`
                        $sql_extra
                        AND `item`.`id`>%d
-                       ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
+                       ORDER BY `item`.`id` DESC LIMIT %d ,%d",
                        intval(api_user()),
                        intval($since_id),
                        intval($start),
@@ -3001,8 +2928,8 @@ function api_format_items_activities(&$item, $type = "json")
        ];
 
        $items = q(
-               'SELECT * FROM item
-                       WHERE uid=%d AND `thr-parent`="%s" AND visible AND NOT deleted',
+               'SELECT * FROM `item`
+                       WHERE `uid` = %d AND `thr-parent` = "%s" AND `visible` AND NOT `deleted`',
                intval($item['uid']),
                dbesc($item['uri'])
        );
@@ -3012,7 +2939,7 @@ function api_format_items_activities(&$item, $type = "json")
                //builtin_activity_puller($i, $activities);
 
                // get user data and add it to the array of the activity
-               $user = api_get_user($a, $i['author-link']);
+               $user = api_get_user($a, $i['author-id']);
                switch ($i['verb']) {
                        case ACTIVITY_LIKE:
                                $activities['like'][] = $user;
@@ -3168,26 +3095,18 @@ function api_format_items($r, $user_info, $filter_user = false, $type = "json")
                        $status["entities"] = $converted["entities"];
                }
 
-               if (($item['item_network'] != "") && ($status["source"] == 'web')) {
-                       $status["source"] = ContactSelector::networkToName($item['item_network'], $user_info['url']);
-               } elseif (($item['item_network'] != "") && (ContactSelector::networkToName($item['item_network'], $user_info['url']) != $status["source"])) {
-                       $status["source"] = trim($status["source"].' ('.ContactSelector::networkToName($item['item_network'], $user_info['url']).')');
+               if ($status["source"] == 'web') {
+                       $status["source"] = ContactSelector::networkToName($item['network'], $user_info['url']);
+               } elseif (ContactSelector::networkToName($item['network'], $user_info['url']) != $status["source"]) {
+                       $status["source"] = trim($status["source"].' ('.ContactSelector::networkToName($item['network'], $user_info['url']).')');
                }
 
-
-               // Retweets are only valid for top postings
-               // It doesn't work reliable with the link if its a feed
-               //$IsRetweet = ($item['owner-link'] != $item['author-link']);
-               //if ($IsRetweet)
-               //      $IsRetweet = (($item['owner-name'] != $item['author-name']) || ($item['owner-avatar'] != $item['author-avatar']));
-
-
                if ($item["id"] == $item["parent"]) {
                        $retweeted_item = api_share_as_retweet($item);
                        if ($retweeted_item !== false) {
                                $retweeted_status = $status;
                                try {
-                                       $retweeted_status["user"] = api_get_user($a, $retweeted_item["author-link"]);
+                                       $retweeted_status["user"] = api_get_user($a, $retweeted_item["author-id"]);
                                } catch (BadRequestException $e) {
                                        // user not found. should be found?
                                        /// @todo check if the user should be always found
@@ -3395,13 +3314,8 @@ function api_lists_statuses($type)
                $sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
        }
 
-       $statuses = dba::p(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`, `group_member`.`gid`
-               FROM `item`
-               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+       $statuses = dba::p("SELECT `item`.* FROM `item`
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                STRAIGHT_JOIN `group_member` ON `group_member`.`contact-id` = `item`.`contact-id`
                WHERE `item`.`uid` = ? AND `verb` = ?
@@ -4936,13 +4850,8 @@ function prepare_photo_data($type, $scale, $photo_id)
        $data['photo']['friendica_activities'] = api_format_items_activities($item[0], $type);
 
        // retrieve comments on photo
-       $r = q(
-               "SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
-               `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
-               `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
-               `contact`.`id` AS `cid`
-               FROM `item`
-               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id` AND `contact`.`uid` = `item`.`uid`
+       $r = q("SELECT `item`.* FROM `item`
+               STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        AND (NOT `contact`.`blocked` OR `contact`.`pending`)
                WHERE `item`.`parent` = %d AND `item`.`visible`
                AND NOT `item`.`moderated` AND NOT `item`.`deleted`
@@ -5254,7 +5163,7 @@ function api_in_reply_to($item)
                $in_reply_to['status_id_str'] = (string) intval($in_reply_to['status_id']);
 
                $r = q(
-                       "SELECT `contact`.`nick`, `contact`.`name`, `contact`.`id`, `contact`.`url` FROM item
+                       "SELECT `contact`.`nick`, `contact`.`name`, `contact`.`id`, `contact`.`url` FROM `item`
                        STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`author-id`
                        WHERE `item`.`id` = %d LIMIT 1",
                        intval($in_reply_to['status_id'])
index b8cdd7a06196f924ebcd29a2b833caf48a3f723b..6ce2004987fcb6dd609110035765f5ca8a614aa8 100644 (file)
@@ -418,7 +418,6 @@ These Fields are not added below (yet). They are here to for bug search.
 `item`.`inform`,
 `item`.`pubmail`,
 `item`.`visible`,
-`item`.`spam`,
 `item`.`bookmark`,
 `item`.`unseen`,
 `item`.`deleted`,
@@ -426,10 +425,12 @@ These Fields are not added below (yet). They are here to for bug search.
 `item`.`mention`,
 `item`.`global`,
 `item`.`shadow`,
+ `item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`,
+ `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
 */
 
-       return "`item`.`author-id`, `item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`,
-               `item`.`owner-id`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
+       return "`item`.`author-id`,
+               `item`.`owner-id`,
                `item`.`contact-id`, `item`.`uid`, `item`.`id`, `item`.`parent`,
                `item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`, `item`.`content-warning`,
                `item`.`commented`, `item`.`created`, `item`.`edited`, `item`.`received`,
@@ -441,7 +442,9 @@ These Fields are not added below (yet). They are here to for bug search.
                `item`.`allow_cid`, `item`.`allow_gid`, `item`.`deny_cid`, `item`.`deny_gid`,
                `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
 
-               `author`.`thumb` AS `author-thumb`, `owner`.`thumb` AS `owner-thumb`,
+               `author`.`url` AS `author-link`, `author`.`name` AS `author-name`, `author`.`thumb` AS `author-avatar`,
+               `owner`.`url` AS `owner-link`, `owner`.`name` AS `owner-name`, `owner`.`thumb` AS `owner-avatar`,
+               `contact`.`url` AS `contact-link`, `contact`.`name` AS `contact-name`, `contact`.`thumb` AS `contact-avatar`,
 
                `contact`.`network`, `contact`.`url`, `contact`.`name`, `contact`.`writable`,
                `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`alias`,
@@ -532,7 +535,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false, $order =
                                . ((x($_GET, 'bmark'))  ? '&bmark='  . $_GET['bmark']  : '')
                                . ((x($_GET, 'liked'))  ? '&liked='  . $_GET['liked']  : '')
                                . ((x($_GET, 'conv'))   ? '&conv='   . $_GET['conv']   : '')
-                               . ((x($_GET, 'spam'))   ? '&spam='   . $_GET['spam']   : '')
                                . ((x($_GET, 'nets'))   ? '&nets='   . $_GET['nets']   : '')
                                . ((x($_GET, 'cmin'))   ? '&cmin='   . $_GET['cmin']   : '')
                                . ((x($_GET, 'cmax'))   ? '&cmax='   . $_GET['cmax']   : '')
@@ -658,6 +660,13 @@ function conversation(App $a, $items, $mode, $update, $preview = false, $order =
                                        continue;
                                }
 
+                               if ($item['network'] == NETWORK_FEED) {
+                                       $item['author-avatar'] = $item['contact-avatar'];
+                                       $item['author-name'] = $item['contact-name'];
+                                       $item['owner-avatar'] = $item['contact-avatar'];
+                                       $item['owner-name'] = $item['contact-name'];
+                               }
+
                                $profile_name = (strlen($item['author-name']) ? $item['author-name'] : $item['name']);
                                if ($item['author-link'] && !$item['author-name']) {
                                        $profile_name = $item['author-link'];
@@ -671,24 +680,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false, $order =
                                        $sparkle = ' sparkle';
                                }
 
-                               if (!x($item, 'author-thumb') || ($item['author-thumb'] == "")) {
-                                       $author_contact = Contact::getDetailsByURL($item['author-link'], $profile_owner);
-                                       if ($author_contact["thumb"]) {
-                                               $item['author-thumb'] = $author_contact["thumb"];
-                                       } else {
-                                               $item['author-thumb'] = $item['author-avatar'];
-                                       }
-                               }
-
-                               if (!isset($item['owner-thumb']) || ($item['owner-thumb'] == "")) {
-                                       $owner_contact = Contact::getDetailsByURL($item['owner-link'], $profile_owner);
-                                       if ($owner_contact["thumb"]) {
-                                               $item['owner-thumb'] = $owner_contact["thumb"];
-                                       } else {
-                                               $item['owner-thumb'] = $item['owner-avatar'];
-                                       }
-                               }
-
                                $locate = ['location' => $item['location'], 'coord' => $item['coord'], 'html' => ''];
                                Addon::callHooks('render_location',$locate);
 
@@ -749,7 +740,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false, $order =
                                        'name' => $profile_name_e,
                                        'sparkle' => $sparkle,
                                        'lock' => $lock,
-                                       'thumb' => System::removedBaseUrl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
+                                       'thumb' => System::removedBaseUrl(proxy_url($item['author-avatar'], false, PROXY_SIZE_THUMB)),
                                        'title' => $title_e,
                                        'body' => $body_e,
                                        'tags' => $tags_e,
@@ -768,7 +759,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false, $order =
                                        'indent' => '',
                                        'owner_name' => $owner_name_e,
                                        'owner_url' => $owner_url,
-                                       'owner_photo' => System::removedBaseUrl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
+                                       'owner_photo' => System::removedBaseUrl(proxy_url($item['owner-avatar'], false, PROXY_SIZE_THUMB)),
                                        'plink' => get_plink($item),
                                        'edpost' => false,
                                        'isstarred' => $isstarred,
index 39c74fdc64a0ae8c1c27156114ced1ea085db07e..257c10720781874e22c4d1b94055f33b74194758 100644 (file)
@@ -152,7 +152,7 @@ function notification($params)
                }
 
                // "your post"
-               if (DBM::is_result($item) && $item['owner-name'] == $item['author-name'] && $item['wall']) {
+               if (DBM::is_result($item) && $item['owner-id'] == $item['author-id'] && $item['wall']) {
                        $dest_str = L10n::t('%1$s commented on [url=%2$s]your %3$s[/url]',
                                '[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
                                $itemlink,
index 81c65859c31124c4158320a5a309aa8a1b641761..8e7dfc1f4923fae09e416a01c0cd72a72dbb9ea7 100644 (file)
@@ -928,7 +928,7 @@ function admin_page_site_post(App $a)
                update_table("term", ['url'], $old_url, $new_url);
                update_table("contact", ['photo', 'thumb', 'micro', 'url', 'nurl', 'alias', 'request', 'notify', 'poll', 'confirm', 'poco', 'avatar'], $old_url, $new_url);
                update_table("gcontact", ['url', 'nurl', 'photo', 'server_url', 'notify', 'alias'], $old_url, $new_url);
-               update_table("item", ['owner-link', 'owner-avatar', 'author-link', 'author-avatar', 'body', 'plink', 'tag'], $old_url, $new_url);
+               update_table("item", ['owner-link', 'author-link', 'body', 'plink', 'tag'], $old_url, $new_url);
 
                // update profile addresses in the format "user@server.tld"
                update_table("contact", ['addr'], $old_host, $new_host);
index 6286569a54f0a57346a1ace84ba6dd278ea49042..6380e6f6cad0ac87ca418e51396578beb2aa92bc 100644 (file)
@@ -49,8 +49,7 @@ function display_init(App $a)
 
                // Does the local user have this item?
                if (local_user()) {
-                       $r = dba::fetch_first("SELECT `id`, `parent`, `author-name`, `author-link`,
-                                               `author-avatar`, `network`, `body`, `uid`, `owner-link`
+                       $r = dba::fetch_first("SELECT `id`, `parent`, `author-id`, `body`, `uid`
                                FROM `item` WHERE `visible` AND NOT `deleted` AND NOT `moderated`
                                        AND `guid` = ? AND `uid` = ? LIMIT 1", $a->argv[1], local_user());
                        if (DBM::is_result($r)) {
@@ -60,8 +59,7 @@ function display_init(App $a)
 
                // Is it an item with uid=0?
                if (!DBM::is_result($r)) {
-                       $r = dba::fetch_first("SELECT `id`, `parent`, `author-name`, `author-link`,
-                                               `author-avatar`, `network`, `body`, `uid`, `owner-link`
+                       $r = dba::fetch_first("SELECT `id`, `parent`, `author-id`, `body`, `uid`
                                FROM `item` WHERE `visible` AND NOT `deleted` AND NOT `moderated`
                                        AND NOT `private` AND `uid` = 0
                                        AND `guid` = ? LIMIT 1", $a->argv[1]);
@@ -73,8 +71,7 @@ function display_init(App $a)
                        return;
                }
        } elseif (($a->argc == 3) && ($nick == 'feed-item')) {
-               $r = dba::fetch_first("SELECT `id`, `parent`, `author-name`, `author-link`,
-                                       `author-avatar`, `network`, `body`, `uid`, `owner-link`
+               $r = dba::fetch_first("SELECT `id`, `parent`, `author-id`, `body`, `uid`
                        FROM `item` WHERE `visible` AND NOT `deleted` AND NOT `moderated`
                                AND NOT `private` AND `uid` = 0
                                AND `id` = ? LIMIT 1", $a->argv[2]);
@@ -87,7 +84,7 @@ function display_init(App $a)
                }
 
                if ($r["id"] != $r["parent"]) {
-                       $r = dba::fetch_first("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item`
+                       $r = dba::fetch_first("SELECT `id`, `author-id`, `body`, `uid` FROM `item`
                                WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
                                        AND `id` = ?", $r["parent"]);
                }
@@ -117,14 +114,16 @@ function display_init(App $a)
 }
 
 function display_fetchauthor($a, $item) {
+       $author = dba::selectFirst('contact', ['name', 'nick', 'photo', 'network', 'url'], ['id' => $item['author-id']]);
+
        $profiledata = [];
-       $profiledata["uid"] = -1;
-       $profiledata["nickname"] = $item["author-name"];
-       $profiledata["name"] = $item["author-name"];
-       $profiledata["picdate"] = "";
-       $profiledata["photo"] = $item["author-avatar"];
-       $profiledata["url"] = $item["author-link"];
-       $profiledata["network"] = $item["network"];
+       $profiledata['uid'] = -1;
+       $profiledata['nickname'] = $author['nick'];
+       $profiledata['name'] = $author['name'];
+       $profiledata['picdate'] = '';
+       $profiledata['photo'] = $author['photo'];
+       $profiledata['url'] = $author['url'];
+       $profiledata['network'] = $author['network'];
 
        // Check for a repeated message
        $skip = false;
index 23835c8d5fd82bb11ca2f8be1329324c1180c267..d1a282636cb55b8f94fcf30f16a8c35789c5bb9c 100644 (file)
@@ -103,7 +103,6 @@ function network_init(App $a)
                                '/new', //new
                                '',     //starred
                                '',     //bookmarked
-                               '',     //spam
                        ];
                        $tab_args = [
                                'f=&order=comment', //all
@@ -112,7 +111,6 @@ function network_init(App $a)
                                '',                 //new
                                'f=&star=1',        //starred
                                'f=&bmark=1',       //bookmarked
-                               'f=&spam=1',        //spam
                        ];
 
                        $k = array_search('active', $last_sel_tabs);
@@ -218,9 +216,8 @@ function saved_searches($search)
  *             '/network/new',                         => $new_active = 'active'
  *             '/network?f=&star=1',           => $starred_active = 'active'
  *             '/network?f=&bmark=1',          => $bookmarked_active = 'active'
- *             '/network?f=&spam=1',           => $spam_active = 'active'
  *
- * @return Array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active);
+ * @return Array ($no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active);
  */
 function network_query_get_sel_tab(App $a)
 {
@@ -230,7 +227,6 @@ function network_query_get_sel_tab(App $a)
        $bookmarked_active = '';
        $all_active = '';
        $conv_active = '';
-       $spam_active = '';
        $postord_active = '';
 
        if (($a->argc > 1 && $a->argv[1] === 'new') || ($a->argc > 2 && $a->argv[2] === 'new')) {
@@ -249,11 +245,7 @@ function network_query_get_sel_tab(App $a)
                $conv_active = 'active';
        }
 
-       if (x($_GET, 'spam')) {
-               $spam_active = 'active';
-       }
-
-       if (($new_active == '') && ($starred_active == '') && ($bookmarked_active == '') && ($conv_active == '') && ($spam_active == '')) {
+       if (($new_active == '') && ($starred_active == '') && ($bookmarked_active == '') && ($conv_active == '')) {
                $no_active = 'active';
        }
 
@@ -264,7 +256,7 @@ function network_query_get_sel_tab(App $a)
                }
        }
 
-       return [$no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active];
+       return [$no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active];
 }
 
 function network_query_get_sel_group(App $a)
@@ -928,7 +920,7 @@ function network_tabs(App $a)
        // item filter tabs
        /// @TODO fix this logic, reduce duplication
        /// $a->page['content'] .= '<div class="tabs-wrapper">';
-       list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) = network_query_get_sel_tab($a);
+       list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active) = network_query_get_sel_tab($a);
 
        // if no tabs are selected, defaults to comments
        if ($no_active == 'active') {
@@ -1004,7 +996,7 @@ function network_tabs(App $a)
        // save selected tab, but only if not in file mode
        if (!x($_GET, 'file')) {
                PConfig::set(local_user(), 'network.view', 'tab.selected', [
-                       $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active
+                       $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active
                ]);
        }
 
diff --git a/mod/p.php b/mod/p.php
deleted file mode 100644 (file)
index 2f69a23..0000000
--- a/mod/p.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/*
-This file is part of the Diaspora protocol. It is used for fetching single public posts.
-*/
-
-use Friendica\App;
-use Friendica\Core\L10n;
-use Friendica\Core\System;
-use Friendica\Database\DBM;
-use Friendica\Protocol\Diaspora;
-
-function p_init($a){
-       if ($a->argc != 2) {
-               header($_SERVER["SERVER_PROTOCOL"].' 510 '.L10n::t('Not Extended'));
-               killme();
-       }
-
-       $guid = $a->argv[1];
-
-       if (strtolower(substr($guid, -4)) != ".xml") {
-               header($_SERVER["SERVER_PROTOCOL"].' 404 '.L10n::t('Not Found'));
-               killme();
-       }
-
-       $guid = strtolower(substr($guid, 0, -4));
-
-       // Fetch the item
-       $item = q("SELECT `uid`, `title`, `body`, `guid`, `contact-id`, `private`, `created`, `app`, `location`, `coord`
-                       FROM `item` WHERE `wall` AND NOT `private` AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1",
-               dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA);
-       if (!$item) {
-               $r = q("SELECT `author-link`
-                       FROM `item` WHERE `uid` = 0 AND `guid` = '%s' AND `network` IN ('%s', '%s') AND `id` = `parent` LIMIT 1",
-                       dbesc($guid), NETWORK_DFRN, NETWORK_DIASPORA);
-               if ($r) {
-                       $parts = parse_url($r[0]["author-link"]);
-                       $host = $parts["scheme"]."://".$parts["host"];
-
-                       if (normalise_link($host) != normalise_link(System::baseUrl())) {
-                               $location = $host."/p/".urlencode($guid).".xml";
-
-                               header("HTTP/1.1 301 Moved Permanently");
-                               header("Location:".$location);
-                               killme();
-                       }
-               }
-
-               header($_SERVER["SERVER_PROTOCOL"].' 404 '.L10n::t('Not Found'));
-               killme();
-       }
-
-       // Fetch some data from the author (We could combine both queries - but I think this is more readable)
-       $r = q("SELECT `user`.`prvkey`, `contact`.`addr`, `user`.`nickname`, `contact`.`nick` FROM `user`
-               INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`
-               WHERE `user`.`uid` = %d", intval($item[0]["uid"]));
-       if (!DBM::is_result($r)) {
-               header($_SERVER["SERVER_PROTOCOL"].' 404 '.L10n::t('Not Found'));
-               killme();
-       }
-       $user = $r[0];
-
-       $status = Diaspora::buildStatus($item[0], $user);
-       $xml = Diaspora::buildPostXml($status["type"], $status["message"]);
-
-       header("Content-Type: application/xml; charset=utf-8");
-       echo $xml;
-
-       killme();
-}
index 146411206f601370312353ed07436fbcee96b48e..834577fef42da2098cded6d27076c2f04f3a48b2 100644 (file)
@@ -442,7 +442,7 @@ function ping_get_notifications($uid)
 
        do {
                $r = q(
-                       "SELECT `notify`.*, `item`.`visible`, `item`.`spam`, `item`.`deleted`
+                       "SELECT `notify`.*, `item`.`visible`, `item`.`deleted`
                        FROM `notify` LEFT JOIN `item` ON `item`.`id` = `notify`.`iid`
                        WHERE `notify`.`uid` = %d AND `notify`.`msg` != ''
                        AND NOT (`notify`.`type` IN (%d, %d))
@@ -469,10 +469,6 @@ function ping_get_notifications($uid)
                                $notification["visible"] = true;
                        }
 
-                       if (is_null($notification["spam"])) {
-                               $notification["spam"] = 0;
-                       }
-
                        if (is_null($notification["deleted"])) {
                                $notification["deleted"] = 0;
                        }
@@ -495,7 +491,6 @@ function ping_get_notifications($uid)
                        $notification["href"] = System::baseUrl() . "/notify/view/" . $notification["id"];
 
                        if ($notification["visible"]
-                               && !$notification["spam"]
                                && !$notification["deleted"]
                                && !(x($result, $notification["parent"]) && is_array($result[$notification["parent"]]))
                        ) {
index b8b5a63b9b5120eb21b07c836f4653d5f712265a..900e00b521384227ade6db134a478a11c902a324 100644 (file)
@@ -1208,7 +1208,6 @@ class DBStructure
                                                "pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-                                               "spam" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "starred" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item has been favourited"],
                                                "bookmark" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item has been bookmarked"],
                                                "unseen" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "item has not been seen"],
@@ -1704,7 +1703,6 @@ class DBStructure
                                                "pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-                                               "spam" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "starred" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "ignored" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                                                "bookmark" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
index f4d6f2af0eb2117ba5e7987a0ecca6cb24459c0b..bf5b276dd2e39c621c38ed20ab875a70226a5955 100644 (file)
@@ -944,21 +944,36 @@ class Contact extends BaseObject
                        'name' => $data['name'],
                        'nick' => $data['nick']];
 
-               // Only fill the pubkey if it was empty before. We have to prevent identity theft.
-               if (!empty($contact['pubkey'])) {
-                       unset($contact['pubkey']);
-               } else {
-                       $updated['pubkey'] = $data['pubkey'];
-               }
-
                if ($data['keywords'] != '') {
                        $updated['keywords'] = $data['keywords'];
                }
                if ($data['location'] != '') {
                        $updated['location'] = $data['location'];
                }
-               if ($data['about'] != '') {
-                       $updated['about'] = $data['about'];
+
+               // Update the technical stuff as well - if filled
+               if ($data['notify'] != '') {
+                       $updated['notify'] = $data['notify'];
+               }
+               if ($data['poll'] != '') {
+                       $updated['poll'] = $data['poll'];
+               }
+               if ($data['batch'] != '') {
+                       $updated['batch'] = $data['batch'];
+               }
+               if ($data['request'] != '') {
+                       $updated['request'] = $data['request'];
+               }
+               if ($data['confirm'] != '') {
+                       $updated['confirm'] = $data['confirm'];
+               }
+               if ($data['poco'] != '') {
+                       $updated['poco'] = $data['poco'];
+               }
+
+               // Only fill the pubkey if it had been empty before. We have to prevent identity theft.
+               if (empty($contact['pubkey'])) {
+                       $updated['pubkey'] = $data['pubkey'];
                }
 
                if (($data["addr"] != $contact["addr"]) || ($data["alias"] != $contact["alias"])) {
index e6ce67590e91a50d71c053254a2817d86fc1f4ff..c15d10f1971a907ca3849ae785e8b8f513dcbccc 100644 (file)
@@ -566,6 +566,14 @@ class Item extends BaseObject
                        return 0;
                }
 
+               //unset($item['author-link']);
+               //unset($item['author-name']);
+               //unset($item['author-avatar']);
+
+               //unset($item['owner-link']);
+               unset($item['owner-name']);
+               unset($item['owner-avatar']);
+
                if ($item['network'] == NETWORK_PHANTOM) {
                        logger('Missing network. Called by: '.System::callstack(), LOGGER_DEBUG);
 
@@ -1483,8 +1491,7 @@ class Item extends BaseObject
                $forum_mode = ($prvgroup ? 2 : 1);
 
                $fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode, 'contact-id' => $self['id'],
-                       'owner-id' => $owner_id, 'owner-name' => $self['name'], 'owner-link' => $self['url'],
-                       'owner-avatar' => $self['thumb'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
+                       'owner-id' => $owner_id, 'owner-link' => $self['url'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
                        'allow_gid' => $user['allow_gid'], 'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
                dba::update('item', $fields, ['id' => $item_id]);
 
@@ -2075,7 +2082,7 @@ EOT;
        private static function addThread($itemid, $onlyshadow = false)
        {
                $fields = ['uid', 'created', 'edited', 'commented', 'received', 'changed', 'wall', 'private', 'pubmail',
-                       'moderated', 'visible', 'spam', 'starred', 'bookmark', 'contact-id',
+                       'moderated', 'visible', 'starred', 'bookmark', 'contact-id',
                        'deleted', 'origin', 'forum_mode', 'mention', 'network', 'author-id', 'owner-id'];
                $condition = ["`id` = ? AND (`parent` = ? OR `parent` = 0)", $itemid, $itemid];
                $item = dba::selectFirst('item', $fields, $condition);
@@ -2096,7 +2103,7 @@ EOT;
        private static function updateThread($itemid, $setmention = false)
        {
                $fields = ['uid', 'guid', 'title', 'body', 'created', 'edited', 'commented', 'received', 'changed',
-                       'wall', 'private', 'pubmail', 'moderated', 'visible', 'spam', 'starred', 'bookmark', 'contact-id',
+                       'wall', 'private', 'pubmail', 'moderated', 'visible', 'starred', 'bookmark', 'contact-id',
                        'deleted', 'origin', 'forum_mode', 'network', 'author-id', 'owner-id', 'rendered-html', 'rendered-hash'];
                $condition = ["`id` = ? AND (`parent` = ? OR `parent` = 0)", $itemid, $itemid];
 
index 74dc24b2f3843891dc317304ffd801dab84a1284..4c2783874c78d0c9047b568b6078fb31415e5025 100644 (file)
@@ -198,6 +198,13 @@ class Post extends BaseObject
 
                $filer = (($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) ? L10n::t("save to folder") : false);
 
+               if ($item['network'] == NETWORK_FEED) {
+                       $item['author-avatar'] = $item['contact-avatar'];
+                       $item['author-name'] = $item['contact-name'];
+                       $item['owner-avatar'] = $item['contact-avatar'];
+                       $item['owner-name'] = $item['contact-name'];
+               }
+
                $diff_author = !link_compare($item['url'], $item['author-link']);
                $profile_name = htmlentities(((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
                if ($item['author-link'] && (!$item['author-name'])) {
@@ -209,14 +216,6 @@ class Post extends BaseObject
                        $sparkle = ' sparkle';
                }
 
-               if (($item['network'] == NETWORK_FEED) || empty($item['author-thumb'])) {
-                       $item['author-thumb'] = $item['author-avatar'];
-               }
-
-               if (($item['network'] == NETWORK_FEED) || empty($item['owner-thumb'])) {
-                       $item['owner-thumb'] = $item['owner-avatar'];
-               }
-
                $locate = ['location' => $item['location'], 'coord' => $item['coord'], 'html' => ''];
                Addon::callHooks('render_location', $locate);
                $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
@@ -369,7 +368,7 @@ class Post extends BaseObject
                        'profile_url'     => $profile_link,
                        'item_photo_menu' => item_photo_menu($item),
                        'name'            => $name_e,
-                       'thumb'           => $a->remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)),
+                       'thumb'           => $a->remove_baseurl(proxy_url($item['author-avatar'], false, PROXY_SIZE_THUMB)),
                        'osparkle'        => $osparkle,
                        'sparkle'         => $sparkle,
                        'title'           => $title_e,
@@ -382,7 +381,7 @@ class Post extends BaseObject
                        'indent'          => $indent,
                        'shiny'           => $shiny,
                        'owner_url'       => $this->getOwnerUrl(),
-                       'owner_photo'     => $a->remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)),
+                       'owner_photo'     => $a->remove_baseurl(proxy_url($item['owner-avatar'], false, PROXY_SIZE_THUMB)),
                        'owner_name'      => htmlentities($owner_name_e),
                        'plink'           => get_plink($item),
                        'edpost'          => Feature::isEnabled($conv->getProfileOwner(), 'edit_posts') ? $edpost : '',
index 11a6f6f68a6a2d90bc5978a748b08fc0530c91a1..6ad6827f7c8d980ecd469a9eb9fd071cb56e8cae 100644 (file)
@@ -164,10 +164,11 @@ class Notifier {
                if (!in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION, Delivery::RELOCATION])) {
                        $parent = $items[0];
 
-                       $thr_parent = q("SELECT `network`, `author-link`, `owner-link` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
-                               dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
+                       $fields = ['network', 'author-id', 'owner-id'];
+                       $condition = ['uri' => $target_item["thr-parent"], 'uid' => $target_item["uid"]];
+                       $thr_parent = dba::selectFirst('item', $fields, $condition);
 
-                       logger('GUID: '.$target_item["guid"].': Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
+                       logger('GUID: '.$target_item["guid"].': Parent is '.$parent['network'].'. Thread parent is '.$thr_parent['network'], LOGGER_DEBUG);
 
                        // This is IMPORTANT!!!!
 
@@ -213,7 +214,7 @@ class Notifier {
                        }
 
                        // Special treatment for forum posts
-                       if (($target_item['author-link'] != $target_item['owner-link']) &&
+                       if (($target_item['author-id'] != $target_item['owner-id']) &&
                                ($owner['id'] != $target_item['contact-id']) &&
                                ($target_item['uri'] === $target_item['parent-uri'])) {
 
@@ -247,7 +248,7 @@ class Notifier {
                                                $target_item['deny_cid'].$target_item['deny_gid']) == 0))
                                        $push_notify = true;
 
-                               if (($thr_parent && ($thr_parent[0]['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
+                               if (($thr_parent && ($thr_parent['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
                                        $push_notify = true;
 
                                        if ($parent["network"] == NETWORK_OSTATUS) {
@@ -333,37 +334,21 @@ class Notifier {
 
                        // If the thread parent is OStatus then do some magic to distribute the messages.
                        // We have not only to look at the parent, since it could be a Friendica thread.
-                       if (($thr_parent && ($thr_parent[0]['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
+                       if (($thr_parent && ($thr_parent['network'] == NETWORK_OSTATUS)) || ($parent['network'] == NETWORK_OSTATUS)) {
                                $diaspora_delivery = false;
 
-                               logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent[0]['author-link']." - Owner: ".$thr_parent[0]['owner-link'], LOGGER_DEBUG);
+                               logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent['author-id']." - Owner: ".$thr_parent['owner-id'], LOGGER_DEBUG);
 
                                // Send a salmon to the parent author
-                               $r = q("SELECT `url`, `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
-                                       dbesc(normalise_link($thr_parent[0]['author-link'])),
-                                       intval($uid));
-                               if (DBM::is_result($r)) {
-                                       $probed_contact = $r[0];
-                               } else {
-                                       $probed_contact = Probe::uri($thr_parent[0]['author-link']);
-                               }
-
-                               if ($probed_contact["notify"] != "") {
+                               $probed_contact = dba::selectFirst('contact', ['url', 'notify'], ['id' => $thr_parent['author-id']]);
+                               if (DBM::is_result($probed_contact) && !empty($probed_contact["notify"])) {
                                        logger('Notify parent author '.$probed_contact["url"].': '.$probed_contact["notify"]);
                                        $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
                                }
 
                                // Send a salmon to the parent owner
-                               $r = q("SELECT `url`, `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
-                                       dbesc(normalise_link($thr_parent[0]['owner-link'])),
-                                       intval($uid));
-                               if (DBM::is_result($r)) {
-                                       $probed_contact = $r[0];
-                               } else {
-                                       $probed_contact = Probe::uri($thr_parent[0]['owner-link']);
-                               }
-
-                               if ($probed_contact["notify"] != "") {
+                               $probed_contact = dba::selectFirst('contact', ['url', 'notify'], ['id' => $thr_parent['owner-id']]);
+                               if (DBM::is_result($probed_contact) && !empty($probed_contact["notify"])) {
                                        logger('Notify parent owner '.$probed_contact["url"].': '.$probed_contact["notify"]);
                                        $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
                                }
index ae1fd3242caaab7601284c87986510e1a35f9f6e..9cacab714b66f7787c987105e3df1bfa9413c7cd 100644 (file)
@@ -65,7 +65,7 @@ item:
         visible: true
         contact-id: 42
         author-id: 42
-        owner-id: 42
+        owner-id: 45
         uid: 42
         verb: http://activitystrea.ms/schema/1.0/post
         unseen: true
@@ -83,7 +83,7 @@ item:
         visible: true
         contact-id: 42
         author-id: 42
-        owner-id: 42
+        owner-id: 45
         uid: 42
         verb: http://activitystrea.ms/schema/1.0/post
         unseen: false