]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #10174 from mexon/mat/user-config-console-command
authorHypolite Petovan <hypolite@mrpetovan.com>
Tue, 27 Apr 2021 19:06:21 +0000 (15:06 -0400)
committerGitHub <noreply@github.com>
Tue, 27 Apr 2021 19:06:21 +0000 (15:06 -0400)
Add "user config" console command

src/Content/Text/BBCode.php
src/Model/Item.php

index bcc9f470a8b260c038bbf6bdd3474347d274355f..6da5b490586c8c23854ffa07b26cecca11d4e62d 100644 (file)
@@ -605,16 +605,19 @@ class BBCode
         * @param string  $text
         * @param integer $simplehtml
         * @param bool    $tryoembed
+        * @param array   $data
         * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       private static function convertAttachment($text, $simplehtml = self::INTERNAL, $tryoembed = true)
+       public static function convertAttachment($text, $simplehtml = self::INTERNAL, $tryoembed = true, array $data = [])
        {
-               $data = self::getAttachmentData($text);
+               $data = $data ?: self::getAttachmentData($text);
                if (empty($data) || empty($data['url'])) {
                        return $text;
                }
 
+               $stamp1 = microtime(true);
+
                if (isset($data['title'])) {
                        $data['title'] = strip_tags($data['title']);
                        $data['title'] = str_replace(['http://', 'https://'], '', $data['title']);
@@ -655,9 +658,8 @@ class BBCode
                        }
 
                        if (!empty($data['description']) && $data['description'] != $data['title']) {
-                               // Sanitize the HTML by converting it to BBCode
-                               $bbcode = HTML::toBBCode($data['description']);
-                               $return .= sprintf('<blockquote>%s</blockquote>', trim(self::convert($bbcode)));
+                               // Sanitize the HTML
+                               $return .= sprintf('<blockquote>%s</blockquote>', trim(HTML::purify($data['description'])));
                        }
 
                        if (!empty($data['provider_url']) && !empty($data['provider_name'])) {
@@ -673,6 +675,7 @@ class BBCode
                        }
                }
 
+               DI::profiler()->saveTimestamp($stamp1, 'rendering');
                return trim(($data['text'] ?? '') . ' ' . $return . ' ' . ($data['after'] ?? ''));
        }
 
index df6f83aec208f29ae79623c0d756cd8552484597..ae67f4854dbde37f9b6d1f486dde83c579073e02 100644 (file)
@@ -2734,6 +2734,7 @@ class Item
         */
        private static function addVisualAttachments(array $attachments, array $item, string $content, bool $shared)
        {
+               $stamp1 = microtime(true);
                $leading = '';
                $trailing = '';
 
@@ -2797,6 +2798,7 @@ class Item
                        }
                }
 
+               DI::profiler()->saveTimestamp($stamp1, 'rendering');
                return $content;
        }
 
@@ -2811,6 +2813,7 @@ class Item
         */
        private static function addLinkAttachment(array $attachments, array $item, string $content, bool $shared, string $ignore_link)
        {
+               $stamp1 = microtime(true);
                // @ToDo Check only for audio and video
                $preview = empty($attachments['visual']);
 
@@ -2823,31 +2826,37 @@ class Item
                }
 
                if (!empty($attachment)) {
+                       $footer = '';
                        $data = [
-                               'author_img'     => $attachment['author-image'] ?? '',
-                               'author_name'    => $attachment['author-name'] ?? '',
-                               'author_url'     => $attachment['author-url'] ?? '',
-                               'publisher_img'  => $attachment['publisher-image'] ?? '',
-                               'publisher_name' => $attachment['publisher-name'] ?? '',
-                               'publisher_url'  => $attachment['publisher-url'] ?? '',
-                               'text'           => $attachment['description'] ?? '',
-                               'title'          => $attachment['name'] ?? '',
-                               'type'           => 'link',
-                               'url'            => $attachment['url'] ?? '',
-                       ];
-
-                       if ($preview && !empty($attachment['preview']) && !empty($attachment['preview-height']) && !empty($attachment['preview-width'])) {
-                               $data['images'][] = ['src' => $attachment['preview'],
-                                       'width' => $attachment['preview-width'], 'height' => $attachment['preview-height']];
+                               'after' => '',
+                               'author_name' => $attachment['author-name'] ?? '',
+                               'author_url' =>  $attachment['author-url'] ?? '',
+                               'description' => $attachment['description'] ?? '',
+                               'image' => '',
+                               'preview' => '',
+                               'provider_name' => $attachment['publisher-name'] ?? '',
+                               'provider_url' => $attachment['publisher-url'] ?? '',
+                               'text' => '',
+                               'title' => $attachment['name'] ?? '',
+                               'type' => 'link',
+                               'url' => $attachment['url']];
+
+                       if ($preview) {
+                               if ($attachment['preview-width'] >= 500) {
+                                       $data['image'] = $attachment['preview'] ?? '';
+                               } else {
+                                       $data['preview'] = $attachment['preview'] ?? '';
+                               }
                        }
-                       $footer = PageInfo::getFooterFromData($data);
                } elseif (preg_match("/.*(\[attachment.*?\].*?\[\/attachment\]).*/ism", $item['body'], $match)) {
                        $footer = $match[1];
+                       $data = [];
                }
+               DI::profiler()->saveTimestamp($stamp1, 'rendering');
 
-               if (!empty($footer)) {
+               if (!empty($footer) || !empty($data)) {
                        // @todo Use a template
-                       $rendered = BBCode::convert($footer);
+                       $rendered = BBCode::convertAttachment($footer, BBCode::INTERNAL, false, $data);
                        if ($shared) {
                                return str_replace(BBCode::ANCHOR, BBCode::ANCHOR . $rendered, $content);
                        } else {
@@ -2867,6 +2876,7 @@ class Item
         */
        private static function addNonVisualAttachments(array $attachments, array $item, string $content)
        {
+               $stamp1 = microtime(true);
                $trailing = '';
                foreach ($attachments['additional'] as $attachment) {
                        if (strpos($item['body'], $attachment['url'])) {
@@ -2892,6 +2902,7 @@ class Item
                        $content .= '<div class="body-attach">' . $trailing . '<div class="clear"></div></div>';
                }
 
+               DI::profiler()->saveTimestamp($stamp1, 'rendering');
                return $content;
        }