function item_store($arr,$force_parent = false, $notify = false, $dontcache = false) {
+ $perfdb = $a->performance["database"];
+ $perfdbw = $a->performance["database_write"];
+ $perfnet = $a->performance["network"];
+ $perffile = $a->performance["file"];
+
+ logger("Performance: Start", LOGGER_DEBUG);
+
// If it is a posting where users should get notifications, then define it as wall posting
if ($notify) {
$arr['wall'] = 1;
$arr['inform'] = ((x($arr,'inform')) ? trim($arr['inform']) : '');
$arr['file'] = ((x($arr,'file')) ? trim($arr['file']) : '');
+ // Items cannot be stored before they happen ...
+ if ($arr['created'] > datetime_convert())
+ $arr['created'] = datetime_convert();
+
+ // We haven't invented time travel by now.
+ if ($arr['edited'] > datetime_convert())
+ $arr['edited'] = datetime_convert();
if (($arr['author-link'] == "") AND ($arr['owner-link'] == ""))
logger("Both author-link and owner-link are empty. Called by: ".App::callstack(), LOGGER_DEBUG);
"photo" => $arr['author-avatar'], "name" => $arr['author-name']));
}
+ if ($arr["author-id"] == 0)
+ $arr["author-id"] = get_contact($arr["author-link"], 0);
+
+ if ($arr["owner-id"] == 0)
+ $arr["owner-id"] = get_contact($arr["owner-link"], 0);
+
if ($arr['guid'] != "") {
// Checking if there is already an item with the same guid
logger('checking for an item for user '.$arr['uid'].' on network '.$arr['network'].' with the guid '.$arr['guid'], LOGGER_DEBUG);
add_shadow_entry($arr);
}
+ $perfdb = $a->performance["database"] - $perfdb;
+ $perfdbw = $a->performance["database_write"] - $perfdbw;
+ $perfnet = $a->performance["network"] - $perfnet;
+ $perffile = $a->performance["file"] - $perffile;
+
+ logger("Performance: DB-R: ".round($perfdb - $perfdbw, 2)." - DB-W: ".round($perfdbw, 2)." - Net: ".round($perfnet, 2)." - File: ".round($perffile, 2), LOGGER_DEBUG);
+ //logger("Performance: DB-R: ".round($perfdb - $perfdbw, 2)." - DB-W: ".round($perfdbw, 2)." - Net: ".round($perfnet, 2), LOGGER_DEBUG);
+
check_item_notification($current_post, $uid);
if ($notify)
- proc_run('php', "include/notifier.php", $notify_type, $current_post);
+ proc_run(PRIORITY_HIGH, "include/notifier.php", $notify_type, $current_post);
return $current_post;
}
);
update_thread($item_id);
- proc_run('php','include/notifier.php','tgroup',$item_id);
+ proc_run(PRIORITY_HIGH,'include/notifier.php', 'tgroup', $item_id);
}
dbesc($url)
);
if(count($r)) {
- $contact_record = $r[0];
-
- $photos = import_profile_photo($photo,$importer["uid"],$contact_record["id"]);
-
- q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `id` = %d",
- dbesc($photos[0]),
- dbesc($photos[1]),
- dbesc($photos[2]),
- intval($contact_record["id"])
- );
+ $contact_record = $r[0];
+ update_contact_avatar($photo, $importer["uid"], $contact_record["id"], true);
}
} else
$range = "AND `created` < UTC_TIMESTAMP() - INTERVAL %d DAY ";
- $r = q("SELECT * FROM `item`
+ $r = q("SELECT `file`, `resource-id`, `starred`, `type`, `id` FROM `item`
WHERE `uid` = %d $range
AND `id` = `parent`
$sql_extra
drop_item($item['id'],false);
}
- proc_run('php',"include/notifier.php","expire","$uid");
+ proc_run(PRIORITY_HIGH,"include/notifier.php", "expire", $uid);
}
// multiple threads may have been deleted, send an expire notification
if($uid)
- proc_run('php',"include/notifier.php","expire","$uid");
+ proc_run(PRIORITY_HIGH,"include/notifier.php", "expire", $uid);
}
// send the notification upstream/downstream as the case may be
- proc_run('php',"include/notifier.php","drop","$drop_id");
+ proc_run(PRIORITY_HIGH,"include/notifier.php", "drop", $drop_id);
if(! $interactive)
return $owner;