Recursively check if the thread supports Diaspora
This commit is contained in:
parent
7395ae22f7
commit
5127784acb
1 changed files with 33 additions and 8 deletions
|
@ -4133,14 +4133,8 @@ class Diaspora
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$parent_post = Post::selectFirstPost(['gravity', 'signed_text', 'author-link'], ['uri-id' => $item['thr-parent-id']]);
|
if (!self::parentSupportDiaspora($item['thr-parent-id'])) {
|
||||||
if (empty(FContact::getByURL($parent_post['author-link'], false))) {
|
Logger::info('One of the parents does not support. A signature will not be created.', ['uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
|
||||||
Logger::info('Parent author is no Diaspora contact. A signature will not be created.', ['uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (($parent_post['gravity'] == GRAVITY_COMMENT) && empty($parent_post['signed_text'])) {
|
|
||||||
Logger::info('Parent comment has got no Diaspora signature. A signature will not be created.', ['uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4154,6 +4148,37 @@ class Diaspora
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the parent and their parents support Diaspora
|
||||||
|
*
|
||||||
|
* @param integer $parent_id
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
private static function parentSupportDiaspora(int $parent_id): bool
|
||||||
|
{
|
||||||
|
$parent_post = Post::selectFirstPost(['gravity', 'signed_text', 'author-link', 'thr-parent-id'], ['uri-id' => $parent_id]);
|
||||||
|
if (empty($parent_post['thr-parent-id'])) {
|
||||||
|
Logger::warning('Parent post does not exist.', ['parent-id' => $parent_id]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty(FContact::getByURL($parent_post['author-link'], false))) {
|
||||||
|
Logger::info('Parent author is no Diaspora contact.', ['parent-id' => $parent_id]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($parent_post['gravity'] == GRAVITY_COMMENT) && empty($parent_post['signed_text'])) {
|
||||||
|
Logger::info('Parent comment has got no Diaspora signature.', ['parent-id' => $parent_id]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($parent_post['gravity'] == GRAVITY_COMMENT) {
|
||||||
|
return self::parentSupportDiaspora($parent_post['thr-parent-id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static function performReshare(int $UriId, int $uid): int
|
public static function performReshare(int $UriId, int $uid): int
|
||||||
{
|
{
|
||||||
$fields = ['uri-id', 'body', 'title', 'author-name', 'author-link', 'author-avatar', 'guid', 'created', 'plink'];
|
$fields = ['uri-id', 'body', 'title', 'author-name', 'author-link', 'author-avatar', 'guid', 'created', 'plink'];
|
||||||
|
|
Loading…
Reference in a new issue