]> git.mxchange.org Git - friendica.git/commitdiff
Preloading of items in the cache when receiving them.
authorMichael Vogel <icarus@dabo.de>
Thu, 17 Jan 2013 22:20:40 +0000 (23:20 +0100)
committerMichael Vogel <icarus@dabo.de>
Thu, 17 Jan 2013 22:20:40 +0000 (23:20 +0100)
include/conversation.php
include/items.php
include/tags.php
include/text.php
mod/item.php
object/Item.php

index 7665342739f1341f6d564d3d235d9a3ed3f77e8e..7c4e606a72e4b50b0f8b9f7b2854a68ae71ba833 100644 (file)
@@ -524,7 +524,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
                                $hashtags = array();
                                $mentions = array();
 
-                               $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)",
+                               $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
                                                intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
 
                                foreach($taglist as $tag) {
index b93f56e17921d59edcbc1b3d296783dd68d133c4..377912684018a81a44ed50ee87c4add1f1cea981 100755 (executable)
@@ -6,6 +6,7 @@ require_once('include/salmon.php');
 require_once('include/crypto.php');
 require_once('include/Photo.php');
 require_once('include/tags.php');
+require_once('include/text.php');
 
 function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
 
@@ -238,7 +239,7 @@ function construct_activity_object($item) {
                                        $r->link = str_replace('&','&amp;', $r->link);
                                $r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
                                $o .= $r->link;
-                       }                                       
+                       }
                        else
                                $o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
                }
@@ -270,7 +271,7 @@ function construct_activity_target($item) {
                                        $r->link = str_replace('&','&amp;', $r->link);
                                $r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
                                $o .= $r->link;
-                       }                                       
+                       }
                        else
                                $o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
                }
@@ -882,7 +883,7 @@ function item_store($arr,$force_parent = false) {
                $arr['gravity'] = 0;
        elseif(activity_match($arr['verb'],ACTIVITY_POST))
                $arr['gravity'] = 6;
-       else      
+       else
                $arr['gravity'] = 6;   // extensible catchall
 
        if(! x($arr,'type'))
@@ -1072,10 +1073,9 @@ function item_store($arr,$force_parent = false) {
 
        if(count($r)) {
                $current_post = $r[0]['id'];
-               create_tags_from_item($r[0]['id']);
                logger('item_store: created item ' . $current_post);
-       }
-       else {
+               create_tags_from_item($r[0]['id']);
+       else {
                logger('item_store: could not locate created item');
                return 0;
        }
@@ -1153,6 +1153,15 @@ function item_store($arr,$force_parent = false) {
 
        tag_deliver($arr['uid'],$current_post);
 
+       // Store the fresh generated item into the cache
+       $cachefile = get_cachefile($arr["guid"]."-".hash("md5", $arr['body']));
+
+       if (($cachefile != '') AND !file_exists($cachefile)) {
+               $s = prepare_text($arr['body']);
+               file_put_contents($cachefile, $s);
+               logger('item_store: put item '.$current_post.' into cachefile '.$cachefile);
+       }
+
        return $current_post;
 }
 
index 6a5728a9ba54115aad3e01eb8cba87658dc18c35..b02adc3d83f85918c2601c891fa66bf80564b197 100644 (file)
@@ -25,7 +25,7 @@ function create_tags_from_item($itemid) {
 
        $searchpath = $a->get_baseurl()."/search?tag=";
 
-       $messages = q("SELECT `uri`, `uid`, `id`, `created`, `edited`, `commented`, `received`, `changed`, `deleted`, `title`, `body`, `tag` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
+       $messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `title`, `body`, `tag` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
 
        if (!$messages)
                return;
@@ -42,6 +42,14 @@ function create_tags_from_item($itemid) {
        if ($message["deleted"])
                return;
 
+       $cachefile = get_cachefile($message["guid"]."-".hash("md5", $message['body']));
+
+       if (($cachefile != '') AND !file_exists($cachefile)) {
+               $s = prepare_text($message['body']);
+               file_put_contents($cachefile, $s);
+               logger('create_tags_from_item: put item '.$message["id"].' into cachefile '.$cachefile);
+       }
+
        $taglist = explode(",", $message["tag"]);
 
        $tags = "";
index 5b64ef2f9404705cca7f268e12a7ab3adc84a8bd..54c9f39fa6a8e50f1be98594c88aa9bbd4b47849 100644 (file)
@@ -1019,7 +1019,8 @@ function prepare_body($item,$attach = false) {
        $a = get_app();
        call_hooks('prepare_body_init', $item);
 
-       $cachefile = get_cachefile($item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']));
+       //$cachefile = get_cachefile($item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']));
+       $cachefile = get_cachefile($item["guid"]."-".hash("md5", $item['body']));
 
        if (($cachefile != '')) {
                if (file_exists($cachefile))
@@ -1027,6 +1028,7 @@ function prepare_body($item,$attach = false) {
                else {
                        $s = prepare_text($item['body']);
                        file_put_contents($cachefile, $s);
+                       logger('prepare_body: put item '.$item["id"].' into cachefile '.$cachefile);
                }
        } else
                $s = prepare_text($item['body']);
index 7096239b0f9dcff6a53ab1cc659ca54dfc76ca0a..452ec8a36de917d90b8f18b194895793239782b6 100644 (file)
@@ -757,6 +757,15 @@ function item_post(&$a) {
                // update filetags in pconfig
                 file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
 
+               // Store the fresh generated item into the cache
+               $cachefile = get_cachefile($datarray["guid"]."-".hash("md5", $datarray['body']));
+
+               if (($cachefile != '') AND !file_exists($cachefile)) {
+                       $s = prepare_text($datarray['body']);
+                       file_put_contents($cachefile, $s);
+                       logger('mod_item: put item '.$r[0]['id'].' into cachefile '.$cachefile);
+               }
+
                if($parent) {
 
                        // This item is the last leaf and gets the comment box, clear any ancestors
index 648b5580714b1ab35766c86647fecac24855b594..de28da464239e37b61bbbab816f80209cd9842af 100644 (file)
@@ -150,7 +150,7 @@ class Item extends BaseObject {
                $hashtags = array();
                $mentions = array();
 
-               $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)",
+               $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
                                intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
 
                foreach($taglist as $tag) {