X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fitems.php;h=c2b3d7d1f5c0c50038a628b10be7a2db0f05cd5c;hb=8bdc906013461464b475c4f10918adff8730dea6;hp=c75bc768c2de9a3a7ea6b1d2b40adc932da94339;hpb=c0df692f5fc4eaadb322614069b2c7ed40453fa1;p=friendica.git diff --git a/include/items.php b/include/items.php index c75bc768c2..c2b3d7d1f5 100644 --- a/include/items.php +++ b/include/items.php @@ -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();