]> git.mxchange.org Git - friendica.git/blobdiff - include/items.php
Continued a bit:
[friendica.git] / include / items.php
index c75bc768c2de9a3a7ea6b1d2b40adc932da94339..c2b3d7d1f5c0c50038a628b10be7a2db0f05cd5c 100644 (file)
@@ -820,7 +820,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
        // Store the unescaped version
        $unescaped = $arr;
 
-       dbesc_array($arr);
+       dbm::esc_array($arr, true);
 
        logger('item_store: ' . print_r($arr,true), LOGGER_DATA);
 
@@ -829,9 +829,9 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
 
        $r = dbq("INSERT INTO `item` (`"
                        . implode("`, `", array_keys($arr))
-                       . "`) VALUES ('"
-                       . implode("', '", array_values($arr))
-                       . "')");
+                       . "`) VALUES ("
+                       . implode("", array_values($arr))
+                       . ")");
 
        // And restore it
        $arr = $unescaped;
@@ -857,10 +857,15 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
                }
 
                // Now we store the data in the spool directory
-               $file = 'item-'.round(microtime(true) * 10000).".msg";
-               $spool = get_spoolpath().'/'.$file;
-               file_put_contents($spool, json_encode($arr));
-               logger("Item wasn't stored - Item was spooled into file ".$file, LOGGER_DEBUG);
+               // We use "microtime" to keep the arrival order and "mt_rand" to avoid duplicates
+               $file = 'item-'.round(microtime(true) * 10000).'-'.mt_rand().'.msg';
+
+               $spoolpath = get_spoolpath();
+               if ($spoolpath != "") {
+                       $spool = $spoolpath.'/'.$file;
+                       file_put_contents($spool, json_encode($arr));
+                       logger("Item wasn't stored - Item was spooled into file ".$file, LOGGER_DEBUG);
+               }
                return 0;
        }
 
@@ -955,12 +960,14 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
 
                $r = q('SELECT * FROM `item` WHERE `id` = %d', intval($current_post));
                if ((dbm::is_result($r)) && (count($r) == 1)) {
-                       if ($notify)
+                       if ($notify) {
                                call_hooks('post_local_end', $r[0]);
-                       else
+                       } else {
                                call_hooks('post_remote_end', $r[0]);
-               } else
+                       }
+               } else {
                        logger('item_store: new item not found in DB, id ' . $current_post);
+               }
        }
 
        if ($arr['parent-uri'] === $arr['uri']) {
@@ -994,8 +1001,9 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
 
        check_item_notification($current_post, $uid);
 
-       if ($notify)
+       if ($notify) {
                proc_run(PRIORITY_HIGH, "include/notifier.php", $notify_type, $current_post);
+       }
 
        return $current_post;
 }
@@ -1260,8 +1268,9 @@ function tag_deliver($uid,$item_id) {
        $c = q("select name, url, thumb from contact where self = 1 and uid = %d limit 1",
                intval($u[0]['uid'])
        );
-       if (! count($c))
+       if (! dbm::is_result($c)) {
                return;
+       }
 
        // also reset all the privacy bits to the forum default permissions
 
@@ -1269,8 +1278,8 @@ function tag_deliver($uid,$item_id) {
 
        $forum_mode = (($prvgroup) ? 2 : 1);
 
-       q("update item set wall = 1, origin = 1, forum_mode = %d, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s',
-               `private` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s'  where id = %d",
+       q("UPDATE `item` SET `wall` = 1, `origin` = 1, `forum_mode` = %d, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s',
+               `private` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s'  WHERE `id` = %d",
                intval($forum_mode),
                dbesc($c[0]['name']),
                dbesc($c[0]['url']),
@@ -1292,8 +1301,6 @@ function tag_deliver($uid,$item_id) {
 
 function tgroup_check($uid,$item) {
 
-       $a = get_app();
-
        $mention = false;
 
        // check that the message originated elsewhere and is a top-level post
@@ -1322,7 +1329,7 @@ function tgroup_check($uid,$item) {
 
        $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER);
        if ($cnt) {
-               foreach($matches as $mtch) {
+               foreach ($matches as $mtch) {
                        if (link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) {
                                $mention = true;
                                logger('tgroup_check: mention found: ' . $mtch[2]);
@@ -1330,13 +1337,12 @@ function tgroup_check($uid,$item) {
                }
        }
 
-       if (! $mention)
-               return false;
-
-       if ((! $community_page) && (! $prvgroup))
+       if (! $mention) {
                return false;
+       }
 
-       return true;
+       /// @TODO Combines both return statements into one
+       return (($community_page) || ($prvgroup));
 }
 
 /*
@@ -1348,15 +1354,16 @@ function tgroup_check($uid,$item) {
   assumes the update has been seen before and should be ignored.
   */
 function edited_timestamp_is_newer($existing, $update) {
-    if (!x($existing,'edited') || !$existing['edited']) {
-       return true;
-    }
-    if (!x($update,'edited') || !$update['edited']) {
-       return false;
-    }
-    $existing_edited = datetime_convert('UTC', 'UTC', $existing['edited']);
-    $update_edited = datetime_convert('UTC', 'UTC', $update['edited']);
-    return (strcmp($existing_edited, $update_edited) < 0);
+       if (!x($existing,'edited') || !$existing['edited']) {
+               return true;
+       }
+       if (!x($update,'edited') || !$update['edited']) {
+               return false;
+       }
+
+       $existing_edited = datetime_convert('UTC', 'UTC', $existing['edited']);
+       $update_edited = datetime_convert('UTC', 'UTC', $update['edited']);
+       return (strcmp($existing_edited, $update_edited) < 0);
 }
 
 /**
@@ -1489,17 +1496,19 @@ function item_is_remote_self($contact, &$datarray) {
        return true;
 }
 
-function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
+function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
        $url = notags(trim($datarray['author-link']));
        $name = notags(trim($datarray['author-name']));
        $photo = notags(trim($datarray['author-avatar']));
 
        if (is_object($item)) {
                $rawtag = $item->get_item_tags(NAMESPACE_ACTIVITY,'actor');
-               if ($rawtag && $rawtag[0]['child'][NAMESPACE_POCO]['preferredUsername'][0]['data'])
+               if ($rawtag && $rawtag[0]['child'][NAMESPACE_POCO]['preferredUsername'][0]['data']) {
                        $nick = $rawtag[0]['child'][NAMESPACE_POCO]['preferredUsername'][0]['data'];
-       } else
+               }
+       } else {
                $nick = $item;
+       }
 
        if (is_array($contact)) {
                if (($contact['network'] == NETWORK_OSTATUS && $contact['rel'] == CONTACT_IS_SHARING)
@@ -1537,11 +1546,9 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
                        update_contact_avatar($photo, $importer["uid"], $contact_record["id"], true);
                }
 
-
                $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
                        intval($importer['uid'])
                );
-               $a = get_app();
 
                if (dbm::is_result($r) AND !in_array($r[0]['page-flags'], array(PAGE_SOAPBOX, PAGE_FREELOVE))) {
 
@@ -1560,8 +1567,9 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
 
                        $def_gid = get_default_group($importer['uid'], $contact_record["network"]);
 
-                       if (intval($def_gid))
-                               group_add_member($importer['uid'],'',$contact_record['id'],$def_gid);
+                       if (intval($def_gid)) {
+                               group_add_member($importer['uid'], '', $contact_record['id'], $def_gid);
+                       }
 
                        if (($r[0]['notify-flags'] & NOTIFY_INTRO) &&
                                in_array($r[0]['page-flags'], array(PAGE_NORMAL))) {
@@ -1592,7 +1600,7 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
        }
 }
 
-function lose_follower($importer,$contact,$datarray = array(),$item = "") {
+function lose_follower($importer, $contact, array $datarray = array(), $item = "") {
 
        if (($contact['rel'] == CONTACT_IS_FRIEND) || ($contact['rel'] == CONTACT_IS_SHARING)) {
                q("UPDATE `contact` SET `rel` = %d WHERE `id` = %d",
@@ -1604,7 +1612,7 @@ function lose_follower($importer,$contact,$datarray = array(),$item = "") {
        }
 }
 
-function lose_sharer($importer,$contact,$datarray = array(),$item = "") {
+function lose_sharer($importer, $contact, array $datarray = array(), $item = "") {
 
        if (($contact['rel'] == CONTACT_IS_FRIEND) || ($contact['rel'] == CONTACT_IS_FOLLOWER)) {
                q("UPDATE `contact` SET `rel` = %d WHERE `id` = %d",
@@ -1616,7 +1624,7 @@ function lose_sharer($importer,$contact,$datarray = array(),$item = "") {
        }
 }
 
-function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') {
+function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') {
 
        $a = get_app();