Merge pull request #422 from annando/master

Speed improvements, better diaspora export
This commit is contained in:
friendica 2012-08-02 03:47:02 -07:00
commit ad25336d10
10 changed files with 42 additions and 11 deletions

View file

@ -570,6 +570,9 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `moderated` (`moderated`),
KEY `spam` (`spam`),
KEY `author-name` (`author-name`),
KEY `uid_commented` (`uid`, `commented`),
KEY `uid_created` (`uid`, `created`),
KEY `uid_unseen` (`uid`, `unseen`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
FULLTEXT KEY `allow_cid` (`allow_cid`),

View file

@ -202,9 +202,9 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
// the following was added on 10-January-2012 due to an inability of Diaspora's
// new javascript markdown processor to handle links with images as the link "text"
// It is not optimal and may be removed if this ability is restored in the future
if ($fordiaspora)
$Text = preg_replace("/\[url\=([^\[\]]*)\]\s*\[img\](.*?)\[\/img\]\s*\[\/url\]/ism",
"[url]$1[/url]\n[img]$2[/img]", $Text);
//if ($fordiaspora)
// $Text = preg_replace("/\[url\=([^\[\]]*)\]\s*\[img\](.*?)\[\/img\]\s*\[\/url\]/ism",
// "[url]$1[/url]\n[img]$2[/img]", $Text);
// Convert it to HTML - don't try oembed
$Text = bbcode($Text, $preserve_nl, false);

View file

@ -224,6 +224,12 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Check for list text
$Text = str_replace("[*]", "<li>", $Text);
// Check for style sheet commands
$Text = preg_replace("(\[style=(.*?)\](.*?)\[\/style\])ism","<span style=\"$1;\">$2</span>",$Text);
// Check for CSS classes
$Text = preg_replace("(\[class=(.*?)\](.*?)\[\/class\])ism","<span class=\"$1\">$2</span>",$Text);
// handle nested lists
$endlessloop = 0;

View file

@ -686,6 +686,10 @@ class Markdownify {
# [1]: mailto:mail@example.com Title
$tag['href'] = 'mailto:'.$bufferDecoded;
}
$this->out('['.$buffer.']('.$tag['href'].' "'.$tag['title'].'")', true);
/*
# [This link][id]
foreach ($this->stack['a'] as $tag2) {
if ($tag2['href'] == $tag['href'] && $tag2['title'] === $tag['title']) {
@ -699,6 +703,7 @@ class Markdownify {
}
$this->out('['.$buffer.']['.$tag['linkID'].']', true);
*/
}
}
/**
@ -737,7 +742,7 @@ class Markdownify {
// ![Alt text](/path/to/img.jpg "Optional title")
if ($this->parser->tagAttributes['title'] != "")
$this->out('!['.$this->parser->tagAttributes['alt'].']('.$this->parser->tagAttributes['src'].'"'.$this->parser->tagAttributes['title'].'")', true);
$this->out('!['.$this->parser->tagAttributes['alt'].']('.$this->parser->tagAttributes['src'].' "'.$this->parser->tagAttributes['title'].'")', true);
else
$this->out('!['.$this->parser->tagAttributes['alt'].']('.$this->parser->tagAttributes['src'].')', true);

View file

@ -802,7 +802,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
$s = htmlspecialchars_decode($s);
$matches = null;
$c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
$c = preg_match_all('/\[img.*?\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
if($c) {
require_once('include/Photo.php');
foreach($matches as $mtch) {
@ -823,6 +823,12 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
$scaled = $mtch[1];
$i = fetch_url($scaled);
$cache = get_config('system','itemcache');
if (($cache != '') and is_dir($cache)) {
$cachefile = $cache."/".hash("md5", $scaled);
file_put_contents($cachefile, $i);
}
// guess mimetype from headers or filename
$type = guess_image_type($mtch[1],true);

View file

@ -176,6 +176,9 @@ function parseurl_getsiteinfo($url) {
}
} else {
$src = completeurl($siteinfo["image"], $url);
unset($siteinfo["image"]);
$photodata = getimagesize($src);
if (($photodata[0] > 10) and ($photodata[1] > 10))
@ -292,8 +295,7 @@ function parse_url_content(&$a) {
$siteinfo = parseurl_getsiteinfo($url);
if($siteinfo["title"] == "") {
echo print_r($siteinfo, true);
//echo sprintf($template,$url,$url,'') . $str_tags;
echo sprintf($template,$url,$url,'') . $str_tags;
killme();
} else {
$text = $siteinfo["text"];
@ -302,7 +304,7 @@ function parse_url_content(&$a) {
$image = "";
if($siteinfo["image"] != ""){
if(sizeof($siteinfo["images"]) > 0){
/*
Execute below code only if image is present in siteinfo
*/

5
mods/readme.txt Normal file
View file

@ -0,0 +1,5 @@
Site speed can be improved when the following indexes are set. They cannot be set through the update script because on large sites they will block the site for several minutes.
CREATE INDEX `uid_commented` ON `item` (`uid`, `commented`);
CREATE INDEX `uid_created` ON `item` (`uid`, `created`);
CREATE INDEX `uid_unseen` ON `item` (`uid`, `unseen`);

View file

@ -1343,4 +1343,3 @@ function update_1153() {
if(!$r) return UPDATE_FAILED;
return UPDATE_SUCCESS;
}

View file

@ -2550,3 +2550,8 @@ list-style-type: disc;
float: left;
width: 175px;
}
.item-image-preview {
float: left;
margin-right: 10px;
}