]> git.mxchange.org Git - friendica.git/blobdiff - mod/parse_url.php
attachment preview: frontend work (works with frio)
[friendica.git] / mod / parse_url.php
index b982ccf084f9e4a6b3c8caa9f0d3aa7e67e1d3d1..c0a0a1336a9379b730d2d15e8f040d71f64894f9 100644 (file)
@@ -12,6 +12,7 @@
 use Friendica\App;
 use Friendica\Core\Hook;
 use Friendica\Core\Logger;
+use Friendica\Core\System;
 use Friendica\Util\Network;
 use Friendica\Util\ParseUrl;
 
@@ -19,6 +20,8 @@ function parse_url_content(App $a)
 {
        $text = null;
        $str_tags = '';
+       $format = '';
+       $ret= ['success' => false, 'contentType' => ''];
 
        $br = "\n";
 
@@ -43,6 +46,10 @@ function parse_url_content(App $a)
                }
        }
 
+       if (isset($_GET['dataType']) && $_GET['dataType'] == 'json') {
+               $format = 'json';
+       }
+
        // Add url scheme if it is missing
        $arrurl = parse_url($url);
        if (empty($arrurl['scheme'])) {
@@ -73,22 +80,35 @@ function parse_url_content(App $a)
                        }
                }
                $type = null;
+               $content_type = '';
+               $bbcode = '';
                if (array_key_exists('Content-Type', $hdrs)) {
                        $type = $hdrs['Content-Type'];
                }
                if ($type) {
                        if (stripos($type, 'image/') !== false) {
-                               echo $br . '[img]' . $url . '[/img]' . $br;
-                               exit();
+                               $content_type = 'image';
+                               $bbcode = $br . '[img]' . $url . '[/img]' . $br;
                        }
                        if (stripos($type, 'video/') !== false) {
-                               echo $br . '[video]' . $url . '[/video]' . $br;
-                               exit();
+                               $content_type = 'video';
+                               $bbcode = $br . '[video]' . $url . '[/video]' . $br;
                        }
                        if (stripos($type, 'audio/') !== false) {
-                               echo $br . '[audio]' . $url . '[/audio]' . $br;
-                               exit();
+                               $content_type = 'audio';
+                               $bbcode = $br . '[audio]' . $url . '[/audio]' . $br;
+                       }
+               }
+               if (!empty($content_type)) {
+                       if ($format == 'json') {
+                               $ret['contentType'] = $content_type;
+                               $ret['data'] = ['url' => $url];
+                               $ret['success'] = true;
+                               System::jsonExit($ret);
                        }
+
+                       echo $bbcode;
+                       exit();
                }
        }
 
@@ -130,6 +150,14 @@ function parse_url_content(App $a)
                exit();
        }
 
+       if ($format == 'json') {
+               $ret['data'] = $siteinfo;
+               $ret['contentType'] = 'attachment';
+               $ret['success'] = true;
+
+               System::jsonExit($ret);
+       }
+
        // Format it as BBCode attachment
        $info = add_page_info_data($siteinfo);