diff --git a/src/Model/Item.php b/src/Model/Item.php index 400e03a401..e0ee5607da 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -1328,10 +1328,11 @@ class Item } } + if (!empty($source) && ($transmit || DI::config()->get('debug', 'store_source'))) { + Post\Activity::insert($item['uri-id'], $source); + } + if ($transmit) { - if (!empty($source)) { - Post\Activity::insert($item['uri-id'], $source); - } Worker::add(['priority' => $priority, 'dont_fork' => true], 'Notifier', $notify_type, (int)$posted_item['uri-id'], (int)$posted_item['uid']); } diff --git a/src/Module/Moderation/Item/Source.php b/src/Module/Moderation/Item/Source.php index 38304883a1..87f06b9f1d 100644 --- a/src/Module/Moderation/Item/Source.php +++ b/src/Module/Moderation/Item/Source.php @@ -21,12 +21,30 @@ namespace Friendica\Module\Moderation\Item; +use Friendica\App; +use Friendica\Core\Config\Capability\IManageConfigValues; +use Friendica\Core\L10n; use Friendica\Core\Renderer; +use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Model; use Friendica\Module\BaseModeration; +use Friendica\Module\Response; +use Friendica\Navigation\SystemMessages; +use Friendica\Util\Profiler; +use Psr\Log\LoggerInterface; class Source extends BaseModeration { + /** @var IManageConfigValues */ + private $config; + + public function __construct(IManageConfigValues $config, App\Page $page, App $app, SystemMessages $systemMessages, IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = []) + { + parent::__construct($page, $app, $systemMessages, $session, $l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); + + $this->config = $config; + } + protected function content(array $request = []): string { parent::content(); @@ -36,6 +54,7 @@ class Source extends BaseModeration $item_uri = ''; $item_id = ''; $terms = []; + $source = ''; if (!empty($guid)) { $item = Model\Post::selectFirst(['id', 'uri-id', 'guid', 'uri'], ['guid' => $guid]); @@ -43,26 +62,39 @@ class Source extends BaseModeration $item_id = $item['id']; $item_uri = $item['uri']; $terms = Model\Tag::getByURIId($item['uri-id'], [Model\Tag::HASHTAG, Model\Tag::MENTION, Model\Tag::IMPLICIT_MENTION]); + + $activity = Model\Post\Activity::getByURIId($item['uri-id']); + if (!empty($activity)) { + $source = $activity['activity']; + } } } $tpl = Renderer::getMarkupTemplate('moderation/item/source.tpl'); return Renderer::replaceMacros($tpl, [ - '$title' => $this->t('Item Source'), - '$guid' => ['guid', $this->t('Item Guid'), $guid, ''], - '$item_uri' => $item_uri, - '$item_id' => $item_id, - '$terms' => $terms, - '$itemidlbl' => $this->t('Item Id'), - '$itemurilbl' => $this->t('Item URI'), - '$submit' => $this->t('Submit'), - '$termslbl' => $this->t('Terms'), - '$taglbl' => $this->t('Tag'), - '$typelbl' => $this->t('Type'), - '$termlbl' => $this->t('Term'), - '$urllbl' => $this->t('URL'), - '$mentionlbl' => $this->t('Mention'), - '$implicitlbl' => $this->t('Implicit Mention'), + '$l10n' => [ + 'title' => $this->t('Item Source'), + 'itemidlbl' => $this->t('Item Id'), + 'itemurilbl' => $this->t('Item URI'), + 'submit' => $this->t('Submit'), + 'termslbl' => $this->t('Terms'), + 'taglbl' => $this->t('Tag'), + 'typelbl' => $this->t('Type'), + 'termlbl' => $this->t('Term'), + 'urllbl' => $this->t('URL'), + 'mentionlbl' => $this->t('Mention'), + 'implicitlbl' => $this->t('Implicit Mention'), + 'error' => $this->t('Error'), + 'notfound' => $this->t('Item not found'), + 'nosource' => $this->t('No source recorded'), + 'noconfig' => !$this->config->get('debug', 'store_source') ? $this->t('Please make sure the debug.store_source config key is set in config/local.config.php for future items to have sources.') : '', + ], + '$guid_field' => ['guid', $this->t('Item Guid'), $guid, ''], + '$guid' => $guid, + '$item_uri' => $item_uri, + '$item_id' => $item_id, + '$terms' => $terms, + '$source' => $source, ]); } } diff --git a/static/defaults.config.php b/static/defaults.config.php index 83c0d371fe..ea9fca2f56 100644 --- a/static/defaults.config.php +++ b/static/defaults.config.php @@ -731,6 +731,10 @@ return [ // ap_log_failure (Boolean) // Logs every ActivityPub activity that couldn't be compacted 'ap_log_failure' => false, + + // store_source (Boolean) + // Store the source of any post that arrived + 'store_source' => false, ], 'smarty3' => [ // config_dir (String) diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po index be52318680..b163b47af4 100644 --- a/view/lang/C/messages.po +++ b/view/lang/C/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 2022.12-dev\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-08 04:31-0500\n" +"POT-Creation-Date: 2022-11-08 09:11-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -76,6 +76,7 @@ msgid "Permission denied." msgstr "" #: mod/editpost.php:45 mod/editpost.php:55 +#: src/Module/Moderation/Item/Source.php:88 msgid "Item not found" msgstr "" @@ -519,7 +520,7 @@ msgstr "" #: src/Module/Delegation.php:147 src/Module/FriendSuggest.php:145 #: src/Module/Install.php:252 src/Module/Install.php:294 #: src/Module/Install.php:331 src/Module/Invite.php:178 -#: src/Module/Item/Compose.php:189 src/Module/Moderation/Item/Source.php:58 +#: src/Module/Item/Compose.php:189 src/Module/Moderation/Item/Source.php:79 #: src/Module/Profile/Profile.php:246 src/Module/Profile/UnkMail.php:156 #: src/Module/Settings/Profile/Index.php:231 src/Object/Post.php:986 #: view/theme/duepuntozero/config.php:85 view/theme/frio/config.php:171 @@ -1947,7 +1948,7 @@ msgstr "" msgid "show more" msgstr "" -#: src/Content/Item.php:294 src/Model/Item.php:2870 +#: src/Content/Item.php:294 src/Model/Item.php:2871 msgid "event" msgstr "" @@ -1956,7 +1957,7 @@ msgstr "" msgid "status" msgstr "" -#: src/Content/Item.php:303 src/Model/Item.php:2872 +#: src/Content/Item.php:303 src/Model/Item.php:2873 #: src/Module/Post/Tag/Add.php:123 msgid "photo" msgstr "" @@ -2338,8 +2339,8 @@ msgid "" "%2$s %3$s" msgstr "" -#: src/Content/Text/BBCode.php:1245 src/Model/Item.php:3482 -#: src/Model/Item.php:3488 src/Model/Item.php:3489 +#: src/Content/Text/BBCode.php:1245 src/Model/Item.php:3483 +#: src/Model/Item.php:3489 src/Model/Item.php:3490 msgid "Link to source" msgstr "" @@ -3484,66 +3485,66 @@ msgstr "" msgid "Edit groups" msgstr "" -#: src/Model/Item.php:1982 +#: src/Model/Item.php:1983 #, php-format msgid "Detected languages in this post:\\n%s" msgstr "" -#: src/Model/Item.php:2874 +#: src/Model/Item.php:2875 msgid "activity" msgstr "" -#: src/Model/Item.php:2876 +#: src/Model/Item.php:2877 msgid "comment" msgstr "" -#: src/Model/Item.php:2879 +#: src/Model/Item.php:2880 msgid "post" msgstr "" -#: src/Model/Item.php:3020 +#: src/Model/Item.php:3021 #, php-format msgid "Content warning: %s" msgstr "" -#: src/Model/Item.php:3394 +#: src/Model/Item.php:3395 msgid "bytes" msgstr "" -#: src/Model/Item.php:3425 +#: src/Model/Item.php:3426 #, php-format msgid "%2$s (%3$d%%, %1$d vote)" msgid_plural "%2$s (%3$d%%, %1$d votes)" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3427 +#: src/Model/Item.php:3428 #, php-format msgid "%2$s (%1$d vote)" msgid_plural "%2$s (%1$d votes)" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3432 +#: src/Model/Item.php:3433 #, php-format msgid "%d voter. Poll end: %s" msgid_plural "%d voters. Poll end: %s" msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3434 +#: src/Model/Item.php:3435 #, php-format msgid "%d voter." msgid_plural "%d voters." msgstr[0] "" msgstr[1] "" -#: src/Model/Item.php:3436 +#: src/Model/Item.php:3437 #, php-format msgid "Poll end: %s" msgstr "" -#: src/Model/Item.php:3470 src/Model/Item.php:3471 +#: src/Model/Item.php:3471 src/Model/Item.php:3472 msgid "View on separate page" msgstr "" @@ -5747,7 +5748,7 @@ msgstr "" msgid "Delete Item" msgstr "" -#: src/Module/BaseModeration.php:120 src/Module/Moderation/Item/Source.php:51 +#: src/Module/BaseModeration.php:120 src/Module/Moderation/Item/Source.php:76 msgid "Item Source" msgstr "" @@ -6613,7 +6614,8 @@ msgid "Result Item" msgstr "" #: src/Module/Debug/ActivityPubConversion.php:129 -#: src/Module/Debug/Babel.php:293 src/Module/Security/TwoFactor/Verify.php:98 +#: src/Module/Debug/Babel.php:293 src/Module/Moderation/Item/Source.php:87 +#: src/Module/Security/TwoFactor/Verify.php:98 msgid "Error" msgid_plural "Errors" msgstr[0] "" @@ -7819,49 +7821,59 @@ msgstr "" msgid "The GUID of the item you want to delete." msgstr "" -#: src/Module/Moderation/Item/Source.php:52 -msgid "Item Guid" -msgstr "" - -#: src/Module/Moderation/Item/Source.php:56 +#: src/Module/Moderation/Item/Source.php:77 msgid "Item Id" msgstr "" -#: src/Module/Moderation/Item/Source.php:57 +#: src/Module/Moderation/Item/Source.php:78 msgid "Item URI" msgstr "" -#: src/Module/Moderation/Item/Source.php:59 +#: src/Module/Moderation/Item/Source.php:80 msgid "Terms" msgstr "" -#: src/Module/Moderation/Item/Source.php:60 +#: src/Module/Moderation/Item/Source.php:81 msgid "Tag" msgstr "" -#: src/Module/Moderation/Item/Source.php:61 +#: src/Module/Moderation/Item/Source.php:82 #: src/Module/Moderation/Users/Active.php:126 #: src/Module/Moderation/Users/Blocked.php:126 #: src/Module/Moderation/Users/Index.php:140 msgid "Type" msgstr "" -#: src/Module/Moderation/Item/Source.php:62 +#: src/Module/Moderation/Item/Source.php:83 msgid "Term" msgstr "" -#: src/Module/Moderation/Item/Source.php:63 +#: src/Module/Moderation/Item/Source.php:84 msgid "URL" msgstr "" -#: src/Module/Moderation/Item/Source.php:64 +#: src/Module/Moderation/Item/Source.php:85 msgid "Mention" msgstr "" -#: src/Module/Moderation/Item/Source.php:65 +#: src/Module/Moderation/Item/Source.php:86 msgid "Implicit Mention" msgstr "" +#: src/Module/Moderation/Item/Source.php:89 +msgid "No source recorded" +msgstr "" + +#: src/Module/Moderation/Item/Source.php:90 +msgid "" +"Please make sure the debug.store_source config key is set in " +"config/local.config.php for future items to have sources." +msgstr "" + +#: src/Module/Moderation/Item/Source.php:92 +msgid "Item Guid" +msgstr "" + #: src/Module/Moderation/Summary.php:53 msgid "Normal Account" msgstr "" diff --git a/view/templates/moderation/item/source.tpl b/view/templates/moderation/item/source.tpl index 41e613b49c..d56bbeacf6 100644 --- a/view/templates/moderation/item/source.tpl +++ b/view/templates/moderation/item/source.tpl @@ -1,19 +1,20 @@
-

{{$title}}

-
+

{{$l10n.title}}

+
- {{include file="field_input.tpl" field=$guid}} + {{include file="field_input.tpl" field=$guid_field}}
-

+

- {{if $source}} +{{if $guid}}
+ {{if $item_id}}
-

{{$itemidlbl}}

+

{{$l10n.itemidlbl}}

{{$item_id}} @@ -21,7 +22,7 @@
-

{{$itemurilbl}}

+

{{$l10n.itemurilbl}}

{{$item_uri}} @@ -29,21 +30,27 @@
-

{{$termslbl}}

+

{{$l10n.termslbl}}

- - - + + + - {{foreach $terms as $term}} + {{foreach $terms as $term}} - {{/foreach}} + {{/foreach}}
{{$typelbl}}{{$termlbl}}{{$urllbl}}{{$l10n.typelbl}}{{$l10n.termlbl}}{{$l10n.urllbl}}
- {{if $term.type == 1}}{{$tag}}{{/if}} - {{if $term.type == 2}}{{$mentionlbl}}{{/if}} - {{if $term.type == 8}}{{$implicitlbl}}{{/if}} + {{if $term.type == 1}} + {{$l10n.taglbl}} + {{/if}} + {{if $term.type == 2}} + {{$l10n.mentionlbl}} + {{/if}} + {{if $term.type == 8}} + {{$l10n.implicitlbl}} + {{/if}} {{$term.name}} @@ -52,16 +59,40 @@ {{$term.url}}
+ {{if $source}}

{{$sourcelbl}}

{{$source}}
+ {{else}} +
+
+

{{$l10n.error}}

+
+
+

{{$l10n.nosource}}

+ {{if $l10n.noconfig}} +

{{$l10n.noconfig nofilter}}

+ {{/if}} +
+
+ {{/if}} + {{else}} +
+
+

{{$l10n.error}}

+
+
+ {{$l10n.notfound}} +
+
+ {{/if}}
-
{{/if}} +