<?php
/**
- * @copyright Copyright (C) 2010-2023, the Friendica project
+ * @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
INNER JOIN `contact` ON `group_member`.`contact-id` = `contact`.`id`
INNER JOIN `group` ON `group_member`.`gid` = `group`.`id`"
],
+ "post-counts-view" => [
+ "fields" => [
+ "uri-id" => ["post-counts", "uri-id"],
+ "vid" => ["post-counts", "vid"],
+ "verb" => ["verb", "name"],
+ "reaction" => ["post-counts", "reaction"],
+ "parent-uri-id" => ["post-counts", "parent-uri-id"],
+ "count" => ["post-counts", "count"],
+ ],
+ "query" => "FROM `post-counts`
+ INNER JOIN `verb` ON `verb`.`id` = `post-counts`.`vid`"
+ ],
+ "post-timeline-view" => [
+ "fields" => [
+ "uid" => ["post-user", "uid"],
+ "uri-id" => ["post-user", "uri-id"],
+ "gravity" => ["post-user", "gravity"],
+ "created" => ["post-user", "created"],
+ "edited" => ["post-user", "edited"],
+ "commented" => ["post-thread-user", "commented"],
+ "received" => ["post-user", "received"],
+ "changed" => ["post-thread-user", "changed"],
+ "private" => ["post-user", "private"],
+ "visible" => ["post-user", "visible"],
+ "deleted" => ["post-user", "deleted"],
+ "origin" => ["post-user", "origin"],
+ "global" => ["post-user", "global"],
+ "network" => ["post-user", "network"],
+ "protocol" => ["post-user", "protocol"],
+ "vid" => ["post-user", "vid"],
+ "contact-id" => ["post-user", "contact-id"],
+ "contact-blocked" => ["contact", "blocked"],
+ "contact-readonly" => ["contact", "readonly"],
+ "contact-pending" => ["contact", "pending"],
+ "contact-rel" => ["contact", "rel"],
+ "contact-uid" => ["contact", "uid"],
+ "self" => ["contact", "self"],
+ "author-id" => ["post-user", "author-id"],
+ "author-blocked" => ["author", "blocked"],
+ "author-hidden" => ["author", "hidden"],
+ "author-gsid" => ["author", "gsid"],
+ "owner-id" => ["post-user", "owner-id"],
+ "owner-blocked" => ["owner", "blocked"],
+ "owner-gsid" => ["owner", "gsid"],
+ "causer-id" => ["post-user", "causer-id"],
+ "causer-blocked" => ["causer", "blocked"],
+ "causer-gsid" => ["causer", "gsid"],
+ ],
+ "query" => "FROM `post-user`
+ LEFT JOIN `post-thread-user` ON `post-thread-user`.`uri-id` = `post-user`.`parent-uri-id` AND `post-thread-user`.`uid` = `post-user`.`uid`
+ STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-user`.`contact-id`
+ STRAIGHT_JOIN `contact` AS `author` ON `author`.`id` = `post-user`.`author-id`
+ STRAIGHT_JOIN `contact` AS `owner` ON `owner`.`id` = `post-user`.`owner-id`
+ LEFT JOIN `contact` AS `causer` ON `causer`.`id` = `post-user`.`causer-id`"
+ ],
"post-user-view" => [
"fields" => [
"id" => ["post-user", "id"],
"author-blocked" => ["author", "blocked"],
"author-hidden" => ["author", "hidden"],
"author-updated" => ["author", "updated"],
+ "author-contact-type" => ["author", "contact-type"],
"author-gsid" => ["author", "gsid"],
+ "author-baseurl" => ["author", "baseurl"],
"owner-id" => ["post-user", "owner-id"],
"owner-uri-id" => ["owner", "uri-id"],
"owner-link" => ["owner", "url"],
"owner-blocked" => ["owner", "blocked"],
"owner-hidden" => ["owner", "hidden"],
"owner-updated" => ["owner", "updated"],
+ "owner-gsid" => ["owner", "gsid"],
"owner-contact-type" => ["owner", "contact-type"],
"causer-id" => ["post-user", "causer-id"],
"causer-uri-id" => ["causer", "uri-id"],
"causer-network" => ["causer", "network"],
"causer-blocked" => ["causer", "blocked"],
"causer-hidden" => ["causer", "hidden"],
+ "causer-gsid" => ["causer", "gsid"],
"causer-contact-type" => ["causer", "contact-type"],
"postopts" => ["post-delivery-data", "postopts"],
"inform" => ["post-delivery-data", "inform"],
"contact-pending" => ["contact", "pending"],
"contact-rel" => ["contact", "rel"],
"contact-uid" => ["contact", "uid"],
+ "contact-gsid" => ["contact", "gsid"],
"contact-contact-type" => ["contact", "contact-type"],
"writable" => "IF (`post-user`.`network` IN ('apub', 'dfrn', 'dspr', 'stat'), true, `contact`.`writable`)",
"self" => ["contact", "self"],
"author-blocked" => ["author", "blocked"],
"author-hidden" => ["author", "hidden"],
"author-updated" => ["author", "updated"],
+ "author-contact-type" => ["author", "contact-type"],
"author-gsid" => ["author", "gsid"],
"owner-id" => ["post-thread-user", "owner-id"],
"owner-uri-id" => ["owner", "uri-id"],
"owner-blocked" => ["owner", "blocked"],
"owner-hidden" => ["owner", "hidden"],
"owner-updated" => ["owner", "updated"],
+ "owner-gsid" => ["owner", "gsid"],
"owner-contact-type" => ["owner", "contact-type"],
"causer-id" => ["post-thread-user", "causer-id"],
"causer-uri-id" => ["causer", "uri-id"],
"causer-network" => ["causer", "network"],
"causer-blocked" => ["causer", "blocked"],
"causer-hidden" => ["causer", "hidden"],
+ "causer-gsid" => ["causer", "gsid"],
"causer-contact-type" => ["causer", "contact-type"],
"postopts" => ["post-delivery-data", "postopts"],
"inform" => ["post-delivery-data", "inform"],
"author-blocked" => ["author", "blocked"],
"author-hidden" => ["author", "hidden"],
"author-updated" => ["author", "updated"],
+ "author-contact-type" => ["author", "contact-type"],
"author-gsid" => ["author", "gsid"],
"owner-id" => ["post", "owner-id"],
"owner-uri-id" => ["owner", "uri-id"],
"owner-hidden" => ["owner", "hidden"],
"owner-updated" => ["owner", "updated"],
"owner-contact-type" => ["owner", "contact-type"],
+ "owner-gsid" => ["owner", "gsid"],
"causer-id" => ["post", "causer-id"],
"causer-uri-id" => ["causer", "uri-id"],
"causer-link" => ["causer", "url"],
"causer-blocked" => ["causer", "blocked"],
"causer-hidden" => ["causer", "hidden"],
"causer-contact-type" => ["causer", "contact-type"],
+ "causer-gsid" => ["causer", "gsid"],
"question-id" => ["post-question", "id"],
"question-multiple" => ["post-question", "multiple"],
"question-voters" => ["post-question", "voters"],
"author-blocked" => ["author", "blocked"],
"author-hidden" => ["author", "hidden"],
"author-updated" => ["author", "updated"],
+ "author-contact-type" => ["author", "contact-type"],
"author-gsid" => ["author", "gsid"],
"owner-id" => ["post-thread", "owner-id"],
"owner-uri-id" => ["owner", "uri-id"],
"owner-blocked" => ["owner", "blocked"],
"owner-hidden" => ["owner", "hidden"],
"owner-updated" => ["owner", "updated"],
+ "owner-gsid" => ["owner", "gsid"],
"owner-contact-type" => ["owner", "contact-type"],
"causer-id" => ["post-thread", "causer-id"],
"causer-uri-id" => ["causer", "uri-id"],
"causer-network" => ["causer", "network"],
"causer-blocked" => ["causer", "blocked"],
"causer-hidden" => ["causer", "hidden"],
+ "causer-gsid" => ["causer", "gsid"],
"causer-contact-type" => ["causer", "contact-type"],
"question-id" => ["post-question", "id"],
"question-multiple" => ["post-question", "multiple"],
"contact-type" => ["ownercontact", "contact-type"],
],
"query" => "FROM `post-user`
- INNER JOIN `post-thread-user` ON `post-thread-user`.`uri-id` = `post-user`.`parent-uri-id` AND `post-thread-user`.`uid` = `post-user`.`uid`
+ INNER JOIN `post-thread-user` ON `post-thread-user`.`uri-id` = `post-user`.`parent-uri-id` AND `post-thread-user`.`uid` = `post-user`.`uid`
STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-thread-user`.`contact-id`
STRAIGHT_JOIN `contact` AS `authorcontact` ON `authorcontact`.`id` = `post-thread-user`.`author-id`
STRAIGHT_JOIN `contact` AS `ownercontact` ON `ownercontact`.`id` = `post-thread-user`.`owner-id`
- LEFT JOIN `user-contact` AS `author` ON `author`.`uid` = `post-thread-user`.`uid` AND `author`.`cid` = `post-thread-user`.`author-id`
- LEFT JOIN `user-contact` AS `owner` ON `owner`.`uid` = `post-thread-user`.`uid` AND `owner`.`cid` = `post-thread-user`.`owner-id`
WHERE `post-user`.`visible` AND NOT `post-user`.`deleted`
AND (NOT `contact`.`readonly` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`)
AND (`post-user`.`hidden` IS NULL OR NOT `post-user`.`hidden`)
AND NOT `authorcontact`.`blocked` AND NOT `ownercontact`.`blocked`
- AND (`author`.`blocked` IS NULL OR NOT `author`.`blocked`)
- AND (`owner`.`blocked` IS NULL OR NOT `owner`.`blocked`)"
+ AND NOT EXISTS(SELECT `cid` FROM `user-contact` WHERE `uid` = `post-thread-user`.`uid` AND `cid` IN (`authorcontact`.`id`, `ownercontact`.`id`) AND (`blocked` OR `ignored`))
+ AND NOT EXISTS(SELECT `gsid` FROM `user-gserver` WHERE `uid` = `post-thread-user`.`uid` AND `gsid` IN (`authorcontact`.`gsid`, `ownercontact`.`gsid`) AND `ignored`)"
],
"network-thread-view" => [
"fields" => [
STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-thread-user`.`contact-id`
STRAIGHT_JOIN `contact` AS `authorcontact` ON `authorcontact`.`id` = `post-thread-user`.`author-id`
STRAIGHT_JOIN `contact` AS `ownercontact` ON `ownercontact`.`id` = `post-thread-user`.`owner-id`
- LEFT JOIN `user-contact` AS `author` ON `author`.`uid` = `post-thread-user`.`uid` AND `author`.`cid` = `post-thread-user`.`author-id`
- LEFT JOIN `user-contact` AS `owner` ON `owner`.`uid` = `post-thread-user`.`uid` AND `owner`.`cid` = `post-thread-user`.`owner-id`
WHERE `post-user`.`visible` AND NOT `post-user`.`deleted`
AND (NOT `contact`.`readonly` AND NOT `contact`.`blocked` AND NOT `contact`.`pending`)
AND (`post-thread-user`.`hidden` IS NULL OR NOT `post-thread-user`.`hidden`)
AND NOT `authorcontact`.`blocked` AND NOT `ownercontact`.`blocked`
- AND (`author`.`blocked` IS NULL OR NOT `author`.`blocked`)
- AND (`owner`.`blocked` IS NULL OR NOT `owner`.`blocked`)"
+ AND NOT EXISTS(SELECT `cid` FROM `user-contact` WHERE `uid` = `post-thread-user`.`uid` AND `cid` IN (`authorcontact`.`id`, `ownercontact`.`id`) AND (`blocked` OR `ignored`))
+ AND NOT EXISTS(SELECT `gsid` FROM `user-gserver` WHERE `uid` = `post-thread-user`.`uid` AND `gsid` IN (`authorcontact`.`gsid`, `ownercontact`.`gsid`) AND `ignored`)"
],
"owner-view" => [
"fields" => [
"bd" => ["contact", "bd"],
"notify_new_posts" => ["contact", "notify_new_posts"],
"fetch_further_information" => ["contact", "fetch_further_information"],
- "ffi_keyword_denylist" => ["contact", "ffi_keyword_denylist"],
+ "ffi_keyword_blacklist" => ["contact", "ffi_keyword_blacklist"],
"parent-uid" => ["user", "parent-uid"],
"guid" => ["user", "guid"],
"nickname" => ["user", "nickname"], /// @todo Replaces all uses of "nickname" with "nick"
"blockwall" => ["user", "blockwall"],
"hidewall" => ["user", "hidewall"],
"blocktags" => ["user", "blocktags"],
- "unkmail" => ["user", "unkmail"],
- "cntunkmail" => ["user", "cntunkmail"],
"notify-flags" => ["user", "notify-flags"],
"page-flags" => ["user", "page-flags"],
"account-type" => ["user", "account-type"],
"deleted" => ["ucontact", "deleted"],
"notify_new_posts" => ["ucontact", "notify_new_posts"],
"fetch_further_information" => ["ucontact", "fetch_further_information"],
- "ffi_keyword_denylist" => ["ucontact", "ffi_keyword_denylist"],
+ "ffi_keyword_blacklist" => ["ucontact", "ffi_keyword_blacklist"],
"rating" => ["ucontact", "rating"],
"readonly" => ["ucontact", "readonly"],
"blocked" => ["ucontact", "blocked"],