allow setting all the bookmarked URL fields via script/API
This commit is contained in:
parent
d653d922b1
commit
8a11cec61a
2 changed files with 75 additions and 48 deletions
|
@ -5,13 +5,21 @@ require_once('library/HTMLPurifier.auto.php');
|
||||||
|
|
||||||
function parse_url_content(&$a) {
|
function parse_url_content(&$a) {
|
||||||
|
|
||||||
logger('parse_url: ' . $_GET['url']);
|
$text = null;
|
||||||
|
|
||||||
$url = trim(hex2bin($_GET['url']));
|
if(x($_GET,'binurl'))
|
||||||
|
$url = trim(hex2bin($_GET['binurl']));
|
||||||
|
else
|
||||||
|
$url = trim($_GET['url']);
|
||||||
|
|
||||||
|
if($_GET['title'])
|
||||||
|
$title = strip_tags(trim($_GET['title']));
|
||||||
|
|
||||||
|
if($_GET['desc'])
|
||||||
|
$text = strip_tags(trim($_GET['desc']));
|
||||||
|
|
||||||
logger('parse_url: ' . $url);
|
logger('parse_url: ' . $url);
|
||||||
|
|
||||||
$text = null;
|
|
||||||
|
|
||||||
$template = "<br /><a class=\"bookmark\" href=\"%s\" >%s</a>%s<br />";
|
$template = "<br /><a class=\"bookmark\" href=\"%s\" >%s</a>%s<br />";
|
||||||
|
|
||||||
|
@ -25,6 +33,20 @@ function parse_url_content(&$a) {
|
||||||
killme();
|
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) {
|
if($url) {
|
||||||
$s = fetch_url($url);
|
$s = fetch_url($url);
|
||||||
} else {
|
} else {
|
||||||
|
@ -39,10 +61,12 @@ function parse_url_content(&$a) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(strpos($s,'<title>')) {
|
if(! $title) {
|
||||||
$title = substr($s,strpos($s,'<title>')+7,64);
|
if(strpos($s,'<title>')) {
|
||||||
if(strpos($title,'<') !== false)
|
$title = substr($s,strpos($s,'<title>')+7,64);
|
||||||
$title = strip_tags(substr($title,0,strpos($title,'<')));
|
if(strpos($title,'<') !== false)
|
||||||
|
$title = strip_tags(substr($title,0,strpos($title,'<')));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$config = HTMLPurifier_Config::createDefault();
|
$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;
|
|
||||||
}
|
|
||||||
$text = substr($text,0,250) . '...' ;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if($text)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(! $text) {
|
if(! $text) {
|
||||||
$items = $dom->getElementsByTagName('p');
|
$divs = $dom->getElementsByTagName('div');
|
||||||
if($items) {
|
if($divs) {
|
||||||
foreach($items as $item) {
|
foreach($divs as $div) {
|
||||||
$text = $item->textContent;
|
$class = $div->getAttribute('class');
|
||||||
if(stristr($text,'<script'))
|
if($class && (stristr($class,'article') || stristr($class,'content'))) {
|
||||||
continue;
|
$items = $div->getElementsByTagName('p');
|
||||||
$text = strip_tags($text);
|
if($items) {
|
||||||
if(strlen($text) < 100) {
|
foreach($items as $item) {
|
||||||
$text = '';
|
$text = $item->textContent;
|
||||||
continue;
|
if(stristr($text,'<script')) {
|
||||||
|
$text = '';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$text = strip_tags($text);
|
||||||
|
if(strlen($text) < 100) {
|
||||||
|
$text = '';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$text = substr($text,0,250) . '...' ;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
$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 />';
|
$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);
|
$result = sprintf($template,$url,($title) ? $title : $url,$text);
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ function initEditor(cb){
|
||||||
if(reply && reply.length) {
|
if(reply && reply.length) {
|
||||||
reply = bin2hex(reply);
|
reply = bin2hex(reply);
|
||||||
$('#profile-rotator').show();
|
$('#profile-rotator').show();
|
||||||
$.get('parse_url?url=' + reply, function(data) {
|
$.get('parse_url?binurl=' + reply, function(data) {
|
||||||
tinyMCE.execCommand('mceInsertRawHTML',false,data);
|
tinyMCE.execCommand('mceInsertRawHTML',false,data);
|
||||||
$('#profile-rotator').hide();
|
$('#profile-rotator').hide();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue