allow setting all the bookmarked URL fields via script/API

This commit is contained in:
Friendika 2011-09-19 22:21:55 -07:00
parent d653d922b1
commit 8a11cec61a
2 changed files with 75 additions and 48 deletions

View file

@ -5,13 +5,21 @@ require_once('library/HTMLPurifier.auto.php');
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);
$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;
}
$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;
$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) {
$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);

View file

@ -142,7 +142,7 @@ function initEditor(cb){
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
$.get('parse_url?binurl=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});