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) { 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,11 +61,13 @@ function parse_url_content(&$a) {
killme(); killme();
} }
if(! $title) {
if(strpos($s,'<title>')) { if(strpos($s,'<title>')) {
$title = substr($s,strpos($s,'<title>')+7,64); $title = substr($s,strpos($s,'<title>')+7,64);
if(strpos($title,'<') !== false) if(strpos($title,'<') !== false)
$title = strip_tags(substr($title,0,strpos($title,'<'))); $title = strip_tags(substr($title,0,strpos($title,'<')));
} }
}
$config = HTMLPurifier_Config::createDefault(); $config = HTMLPurifier_Config::createDefault();
$config->set('Cache.DefinitionImpl', null); $config->set('Cache.DefinitionImpl', null);
@ -69,6 +93,8 @@ function parse_url_content(&$a) {
} }
} }
if(! $text) {
$divs = $dom->getElementsByTagName('div'); $divs = $dom->getElementsByTagName('div');
if($divs) { if($divs) {
foreach($divs as $div) { foreach($divs as $div) {
@ -114,12 +140,13 @@ function parse_url_content(&$a) {
} }
} }
} }
}
if(strlen($text)) { if(strlen($text)) {
$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);

View file

@ -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();
}); });