aboutsummaryrefslogtreecommitdiffstats
path: root/mod/parse_url.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2015-03-04 15:14:10 -0800
committerfriendica <info@friendica.com>2015-03-04 15:17:39 -0800
commit410f3335a9e97276b3262196f50798ff56624af5 (patch)
treeb05da3ce18181e5dd981da001e0ca490e5b68d55 /mod/parse_url.php
parent24304c53eb594c6cce908e7cbacff5f259445a06 (diff)
downloadvolse-hubzilla-410f3335a9e97276b3262196f50798ff56624af5.tar.gz
volse-hubzilla-410f3335a9e97276b3262196f50798ff56624af5.tar.bz2
volse-hubzilla-410f3335a9e97276b3262196f50798ff56624af5.zip
parse_url: if url returns an image/audio/video file instead of a webpage, return the bbcode for the appropriate content type. This results in two web fetches of the url in question, but the first one is just a HEAD. This way we won't try and download and parse an entire video. TODO: img's are checked to see if they should be zid-ified, but audio/video currently are not.
Diffstat (limited to 'mod/parse_url.php')
-rw-r--r--mod/parse_url.php28
1 files changed, 28 insertions, 0 deletions
diff --git a/mod/parse_url.php b/mod/parse_url.php
index 23d608411..49d5cae76 100644
--- a/mod/parse_url.php
+++ b/mod/parse_url.php
@@ -250,6 +250,34 @@ function parse_url_content(&$a) {
}
}
+ $result = z_fetch_url($url,false,0,array('novalidate' => true, 'nobody' => true));
+ if($result['success']) {
+ $hdrs=array();
+ $h = explode("\n",$result['header']);
+ foreach ($h as $l) {
+ list($k,$v) = array_map("trim", explode(":", trim($l), 2));
+ $hdrs[$k] = $v;
+ }
+ if (array_key_exists('Content-Type', $hdrs))
+ $type = $hdrs['Content-Type'];
+ if($type) {
+ if(in_array($type,array('image/jpeg','image/gif','image/png'))) {
+ $s = $br . '[img]' . $url . '[/img]' . $br;
+ $s = preg_replace_callback('/\[img(.*?)\](.*?)\[\/img\]/ism','red_zrlify_img_callback',$s);
+ echo $s;
+ killme();
+ }
+ if(stripos($type,'video/') !== false) {
+ echo $br . '[video]' . $url . '[/video]' . $br;
+ killme();
+ }
+ if(stripos($type,'audio/') !== false) {
+ echo $br . '[audio]' . $url . '[/audio]' . $br;
+ killme();
+ }
+ }
+ }
+
logger('parse_url: ' . $url);
$template = $br . '#^[url=%s]%s[/url]%s' . $br;