mirror of
https://github.com/friendica/friendica
synced 2024-11-19 04:23:41 +00:00
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) {
|
||||
|
||||
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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue