Some more replaced item SQL queries

This commit is contained in:
Michael 2018-06-21 06:23:27 +00:00
parent 9f74e96c93
commit 8e24de90ba
3 changed files with 26 additions and 39 deletions

View file

@ -213,17 +213,17 @@ function mailstream_subject($item) {
$parent = $item['thr-parent']; $parent = $item['thr-parent'];
// Don't look more than 100 levels deep for a subject, in case of loops // Don't look more than 100 levels deep for a subject, in case of loops
for ($i = 0; ($i < 100) && $parent; $i++) { for ($i = 0; ($i < 100) && $parent; $i++) {
$r = q("SELECT `thr-parent`, `title` FROM `item` WHERE `uri` = '%s'", dbesc($parent)); $parent_item = Item::selectFirst(['thr-parent', 'title'], ['uri' => $parent]);
if (!DBM::is_result($r)) { if (!DBM::is_result($parent_item)) {
break; break;
} }
if ($r[0]['thr-parent'] === $parent) { if ($parent_item['thr-parent'] === $parent) {
break; break;
} }
if ($r[0]['title']) { if ($parent_item['title']) {
return L10n::t('Re:') . ' ' . mailstream_decode_subject($r[0]['title']); return L10n::t('Re:') . ' ' . mailstream_decode_subject($parent_item['title']);
} }
$parent = $r[0]['thr-parent']; $parent = $parent_item['thr-parent'];
} }
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d", $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d",
intval($item['contact-id']), intval($item['uid'])); intval($item['contact-id']), intval($item['uid']));

View file

@ -1075,12 +1075,7 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex
$postarray['uri'] = $hostname . "::" . $content->id; $postarray['uri'] = $hostname . "::" . $content->id;
$r = q("SELECT * FROM `item` WHERE `extid` = '%s' AND `uid` = %d LIMIT 1", if (dba::exists('item', ['extid' => $postarray['uri'], 'uid' => $uid])) {
dbesc($postarray['uri']),
intval($uid)
);
if (DBM::is_result($r)) {
return []; return [];
} }
@ -1090,30 +1085,22 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex
$parent = $hostname . "::" . $content->in_reply_to_status_id; $parent = $hostname . "::" . $content->in_reply_to_status_id;
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", $fields = ['uri', 'parent-uri', 'parent'];
dbesc($parent), $item = Item::selectFirst($fields, ['uri' => $parent, 'uid' => $uid]);
intval($uid)
); if (!DBM::is_result($item)) {
if (DBM::is_result($r)) { $item = Item::selectFirst($fields, ['extid' => $parent, 'uid' => $uid]);
$postarray['thr-parent'] = $r[0]["uri"]; }
$postarray['parent-uri'] = $r[0]["parent-uri"];
$postarray['parent'] = $r[0]["parent"]; if (DBM::is_result($item)) {
$postarray['thr-parent'] = $item['uri'];
$postarray['parent-uri'] = $item['parent-uri'];
$postarray['parent'] = $item['parent'];
$postarray['object-type'] = ACTIVITY_OBJ_COMMENT; $postarray['object-type'] = ACTIVITY_OBJ_COMMENT;
} else { } else {
$r = q("SELECT * FROM `item` WHERE `extid` = '%s' AND `uid` = %d LIMIT 1", $postarray['thr-parent'] = $postarray['uri'];
dbesc($parent), $postarray['parent-uri'] = $postarray['uri'];
intval($uid) $postarray['object-type'] = ACTIVITY_OBJ_NOTE;
);
if (DBM::is_result($r)) {
$postarray['thr-parent'] = $r[0]['uri'];
$postarray['parent-uri'] = $r[0]['parent-uri'];
$postarray['parent'] = $r[0]['parent'];
$postarray['object-type'] = ACTIVITY_OBJ_COMMENT;
} else {
$postarray['thr-parent'] = $postarray['uri'];
$postarray['parent-uri'] = $postarray['uri'];
$postarray['object-type'] = ACTIVITY_OBJ_NOTE;
}
} }
// Is it me? // Is it me?

View file

@ -8,6 +8,8 @@
*/ */
use Friendica\Core\Addon; use Friendica\Core\Addon;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\ModelItem;
use Friendica\Database\DBM;
function viewsrc_install() { function viewsrc_install() {
Addon::registerHook('item_photo_menu', 'addon/viewsrc/viewsrc.php', 'viewsrc_item_photo_menu'); Addon::registerHook('item_photo_menu', 'addon/viewsrc/viewsrc.php', 'viewsrc_item_photo_menu');
@ -40,14 +42,12 @@ function viewsrc_item_photo_menu(&$a, &$b)
} }
if (local_user() != $b['item']['uid']) { if (local_user() != $b['item']['uid']) {
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `guid` = '%s'", $item = Item::selectFirstForUser(local_user(), ['id'], ['uid' => local_user(), 'guid' => $b['item']['guid']]);
intval(local_user()), dbesc($b['item']['guid'])); if (!DBM::is_result($item)) {
if (!$r) {
return; return;
} }
$item_id = $r[0]['id']; $item_id = $item['id'];
} else { } else {
$item_id = $b['item']['id']; $item_id = $b['item']['id'];
} }