namespace Friendica\Model;
+use Friendica\Contact\LocalRelationship\Entity\LocalRelationship;
use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
use Friendica\Core\Hook;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\DI;
+use Friendica\Model\Post\Category;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub;
'wall', 'private', 'starred', 'origin', 'parent-origin', 'title', 'body', 'language',
'content-warning', 'location', 'coord', 'app', 'rendered-hash', 'rendered-html', 'object',
'quote-uri', 'quote-uri-id', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'mention', 'global',
- 'author-id', 'author-link', 'author-alias', 'author-name', 'author-avatar', 'author-network', 'author-updated', 'author-gsid', 'author-addr', 'author-uri-id',
- 'owner-id', 'owner-link', 'owner-alias', 'owner-name', 'owner-avatar', 'owner-network', 'owner-contact-type', 'owner-updated',
- 'causer-id', 'causer-link', 'causer-alias', 'causer-name', 'causer-avatar', 'causer-contact-type', 'causer-network',
+ 'author-id', 'author-link', 'author-alias', 'author-name', 'author-avatar', 'author-network', 'author-updated', 'author-gsid', 'author-baseurl', 'author-addr', 'author-uri-id',
+ 'owner-id', 'owner-link', 'owner-alias', 'owner-name', 'owner-avatar', 'owner-network', 'owner-contact-type', 'owner-updated', 'owner-gsid',
+ 'causer-id', 'causer-link', 'causer-alias', 'causer-name', 'causer-avatar', 'causer-contact-type', 'causer-network', 'causer-gsid',
'contact-id', 'contact-uid', 'contact-link', 'contact-name', 'contact-avatar',
'writable', 'self', 'cid', 'alias',
'event-created', 'event-edited', 'event-start', 'event-finish',
return;
}
- $uids = Tag::getUIDListByURIId($item['uri-id']);
- foreach ($uids as $uid) {
+ foreach (Tag::getUIDListByURIId($item['uri-id']) as $uid => $tags) {
$stored = self::storeForUserByUriId($item['uri-id'], $uid, ['post-reason' => self::PR_TAG]);
Logger::info('Stored item for users', ['uri-id' => $item['uri-id'], 'uid' => $uid, 'stored' => $stored]);
+ foreach ($tags as $tag) {
+ $stored = Category::storeFileByURIId($item['uri-id'], $uid, Category::SUBCRIPTION, $tag);
+ Logger::debug('Stored tag subscription for user', ['uri-id' => $item['uri-id'], 'uid' => $uid, $tag, 'stored' => $stored]);
+ }
}
}
return;
}
- $cdata = Contact::getPublicAndUserContactID($item['author-id'], $item['uid']);
- if (empty($cdata['user']) || ($cdata['user'] != $item['contact-id'])) {
+ if (!DBA::exists('contact', ['id' => $cdata['user'], 'remote_self' => LocalRelationship::MIRROR_NATIVE_RESHARE])) {
return;
}
- if (!DBA::exists('contact', ['id' => $cdata['user'], 'remote_self' => Contact::MIRROR_NATIVE_RESHARE])) {
+ if (!in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN])) {
return;
}
- if (!in_array($item['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN])) {
+ if (User::getById($item['uid'], ['blocked'])['blocked'] ?? false) {
return;
}
public static function isRemoteSelf(array $contact, array &$datarray): bool
{
- if ($contact['remote_self'] != Contact::MIRROR_OWN_POST) {
+ if ($contact['remote_self'] != LocalRelationship::MIRROR_OWN_POST) {
return false;
}
return false;
}
+ if (User::getById($contact['uid'], ['blocked'])['blocked'] ?? false) {
+ Logger::info('User is blocked', ['contact' => $contact]);
+ return false;
+ }
+
$datarray2 = $datarray;
Logger::info('remote-self start', ['contact' => $contact['url'], 'remote_self' => $contact['remote_self'], 'item' => $datarray]);
$shared_html = substr($s, $pos + strlen(BBCode::SHARED_ANCHOR));
$s = substr($s, 0, $pos);
}
-
+
$s = self::addGallery($s, $attachments, $item['uri-id']);
$s = self::addVisualAttachments($attachments, $item, $s, false);
$s = self::addLinkAttachment($item['uri-id'], $attachments, $body, $s, false, $shared_links);
}
$author = [
- 'uid' => 0,
+ 'uid' => 0,
'id' => $item['author-id'],
- 'network' => $item['author-network'],
+ 'network' => $item['author-network'],
'url' => $item['author-link'],
'alias' => $item['author-alias']
];
if (!empty($plink) && ($item['private'] == self::PRIVATE)) {
$author = [
- 'uid' => 0,
+ 'uid' => 0,
'id' => $item['author-id'],
- 'network' => $item['author-network'],
+ 'network' => $item['author-network'],
'url' => $item['author-link'],
'alias' => $item['author-alias'],
];