aboutsummaryrefslogtreecommitdiffstats
path: root/mod/parse_url.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/parse_url.php')
-rw-r--r--mod/parse_url.php113
1 files changed, 70 insertions, 43 deletions
diff --git a/mod/parse_url.php b/mod/parse_url.php
index 79c336ddc..89ef24f87 100644
--- a/mod/parse_url.php
+++ b/mod/parse_url.php
@@ -5,13 +5,21 @@ require_once('library/HTMLPurifier.auto.php');
function parse_url_content(&$a) {
- logger('parse_url: ' . $_GET['url']);
+ $text = null;
+
+ if(x($_GET,'binurl'))
+ $url = trim(hex2bin($_GET['binurl']));
+ else
+ $url = trim($_GET['url']);
+
+ if($_GET['title'])
+ $title = strip_tags(trim($_GET['title']));
- $url = trim(hex2bin($_GET['url']));
+ if($_GET['desc'])
+ $text = strip_tags(trim($_GET['desc']));
logger('parse_url: ' . $url);
- $text = null;
$template = "<br /><a class=\"bookmark\" href=\"%s\" >%s</a>%s<br />";
@@ -25,6 +33,20 @@ function parse_url_content(&$a) {
killme();
}
+ if($url && $title && $text) {
+
+ $text = '<br /><br /><blockquote>' . $text . '</blockquote><br />';
+ $title = str_replace(array("\r","\n"),array('',''),$title);
+
+ $result = sprintf($template,$url,($title) ? $title : $url,$text);
+
+ logger('parse_url (unparsed): returns: ' . $result);
+
+ echo $result;
+ killme();
+ }
+
+
if($url) {
$s = fetch_url($url);
} else {
@@ -39,10 +61,12 @@ function parse_url_content(&$a) {
killme();
}
- if(strpos($s,'<title>')) {
- $title = substr($s,strpos($s,'<title>')+7,64);
- if(strpos($title,'<') !== false)
- $title = strip_tags(substr($title,0,strpos($title,'<')));
+ if(! $title) {
+ if(strpos($s,'<title>')) {
+ $title = substr($s,strpos($s,'<title>')+7,64);
+ if(strpos($title,'<') !== false)
+ $title = strip_tags(substr($title,0,strpos($title,'<')));
+ }
}
$config = HTMLPurifier_Config::createDefault();
@@ -69,48 +93,51 @@ function parse_url_content(&$a) {
}
}
- $divs = $dom->getElementsByTagName('div');
- if($divs) {
- foreach($divs as $div) {
- $class = $div->getAttribute('class');
- if($class && (stristr($class,'article') || stristr($class,'content'))) {
- $items = $div->getElementsByTagName('p');
- if($items) {
- foreach($items as $item) {
- $text = $item->textContent;
- if(stristr($text,'<script')) {
- $text = '';
- continue;
- }
- $text = strip_tags($text);
- if(strlen($text) < 100) {
- $text = '';
- continue;
+
+ if(! $text) {
+ $divs = $dom->getElementsByTagName('div');
+ if($divs) {
+ foreach($divs as $div) {
+ $class = $div->getAttribute('class');
+ if($class && (stristr($class,'article') || stristr($class,'content'))) {
+ $items = $div->getElementsByTagName('p');
+ if($items) {
+ foreach($items as $item) {
+ $text = $item->textContent;
+ if(stristr($text,'<script')) {
+ $text = '';
+ continue;
+ }
+ $text = strip_tags($text);
+ if(strlen($text) < 100) {
+ $text = '';
+ continue;
+ }
+ $text = substr($text,0,250) . '...' ;
+ break;
}
- $text = substr($text,0,250) . '...' ;
- break;
}
}
+ if($text)
+ break;
}
- if($text)
- break;
}
- }
- if(! $text) {
- $items = $dom->getElementsByTagName('p');
- if($items) {
- foreach($items as $item) {
- $text = $item->textContent;
- if(stristr($text,'<script'))
- continue;
- $text = strip_tags($text);
- if(strlen($text) < 100) {
- $text = '';
- continue;
+ if(! $text) {
+ $items = $dom->getElementsByTagName('p');
+ if($items) {
+ foreach($items as $item) {
+ $text = $item->textContent;
+ if(stristr($text,'<script'))
+ continue;
+ $text = strip_tags($text);
+ if(strlen($text) < 100) {
+ $text = '';
+ continue;
+ }
+ $text = substr($text,0,250) . '...' ;
+ break;
}
- $text = substr($text,0,250) . '...' ;
- break;
}
}
}
@@ -119,7 +146,7 @@ function parse_url_content(&$a) {
$text = '<br /><br /><blockquote>' . $text . '</blockquote><br />';
}
- $title = str_replace("\n",'',$title);
+ $title = str_replace(array("\r","\n"),array('',''),$title);
$result = sprintf($template,$url,($title) ? $title : $url,$text);