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,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);

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