use Friendica\Content\ContactSelector;
use Friendica\Content\Text\BBCode;
use Friendica\Database\Database;
+use Friendica\Database\DBA;
use Friendica\Model\Post;
use Friendica\Model\Verb;
use Friendica\Network\HTTPException;
'thr-parent-id', 'parent-author-id', 'language', 'uri', 'plink', 'private', 'vid', 'gravity'];
$item = Post::selectFirst($fields, ['uri-id' => $uriId, 'uid' => [0, $uid]], ['order' => ['uid' => true]]);
if (!$item) {
+ $mail = DBA::selectFirst('mail', ['id'], ['uri-id' => $uriId, 'uid' => $uid]);
+ if ($mail) {
+ return $this->createFromMailId($mail['id']);
+ }
throw new HTTPException\NotFoundException('Item with URI ID ' . $uriId . ' not found' . ($uid ? ' for user ' . $uid : '.'));
}
$id = $parameters['id'];
- $parent = Post::selectFirst(['parent-uri-id'], ['uri-id' => $id]);
- if (!DBA::isResult($parent)) {
- DI::mstdnError()->RecordNotFound();
- }
-
$parents = [];
$children = [];
- $posts = Post::selectPosts(['uri-id', 'thr-parent-id'],
- ['parent-uri-id' => $parent['parent-uri-id'], 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]], []);
- while ($post = Post::fetch($posts)) {
- if ($post['uri-id'] == $post['thr-parent-id']) {
- continue;
+ $parent = Post::selectFirst(['parent-uri-id'], ['uri-id' => $id]);
+ if (DBA::isResult($parent)) {
+ $posts = Post::selectPosts(['uri-id', 'thr-parent-id'],
+ ['parent-uri-id' => $parent['parent-uri-id'], 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]]);
+ while ($post = Post::fetch($posts)) {
+ if ($post['uri-id'] == $post['thr-parent-id']) {
+ continue;
+ }
+ $parents[$post['uri-id']] = $post['thr-parent-id'];
+
+ $children[$post['thr-parent-id']][] = $post['uri-id'];
+ }
+ DBA::close($posts);
+ } else {
+ $parent = DBA::selectFirst('mail', ['parent-uri-id'], ['uri-id' => $id, 'uid' => $uid]);
+ if (DBA::isResult($parent)) {
+ $posts = DBA::select('mail', ['uri-id', 'thr-parent-id'], ['parent-uri-id' => $parent['parent-uri-id']]);
+ while ($post = DBA::fetch($posts)) {
+ if ($post['uri-id'] == $post['thr-parent-id']) {
+ continue;
+ }
+ $parents[$post['uri-id']] = $post['thr-parent-id'];
+
+ $children[$post['thr-parent-id']][] = $post['uri-id'];
+ }
+ DBA::close($posts);
+ } else {
+ DI::mstdnError()->RecordNotFound();
}
- $parents[$post['uri-id']] = $post['thr-parent-id'];
-
- $children[$post['thr-parent-id']][] = $post['uri-id'];
}
- DBA::close($posts);
$statuses = ['ancestors' => [], 'descendants' => []];