+
+ /* check for create date and expire time */
+ $uid = intval($arr['uid']);
+ $r = q("SELECT expire FROM user WHERE uid = %d", $uid);
+ if(count($r)) {
+ $expire_interval = $r[0]['expire'];
+ if ($expire_interval>0) {
+ $expire_date = new DateTime( '- '.$expire_interval.' days', new DateTimeZone('UTC'));
+ $created_date = new DateTime($arr['created'], new DateTimeZone('UTC'));
+ if ($created_date < $expire_date) {
+ logger('item-store: item created ('.$arr['created'].') before expiration time ('.$expire_date->format(DateTime::W3C).'). ignored. ' . print_r($arr,true), LOGGER_DEBUG);
+ return 0;
+ }
+ }
+ }
+
+ // If there is no guid then take the same guid that was taken before for the same uri
+ if ((trim($arr['guid']) == "") AND (trim($arr['uri']) != "")) {
+ logger('item_store: checking for an existing guid for uri '.$arr['uri'], LOGGER_DEBUG);
+ $r = q("SELECT `guid` FROM `item` WHERE `uri` = '%s' AND `guid` != '' LIMIT 1",
+ dbesc(trim($arr['uri']))
+ );
+
+ if(count($r)) {
+ $arr['guid'] = $r[0]["guid"];
+ logger('item_store: found guid '.$arr['guid'].' for uri '.$arr['uri'], LOGGER_DEBUG);
+ }
+ }
+
+ // Shouldn't happen but we want to make absolutely sure it doesn't leak from a plugin.
+ // Deactivated, since the bbcode parser can handle with it - and it destroys posts with some smileys that contain "<"
+ //if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false))
+ // $arr['body'] = strip_tags($arr['body']);