function item_expire($uid, $days) { if (!$uid || $days < 1) { return; } // $expire_network_only = save your own wall posts // and just expire conversations started by others // do not enable this until we can pass bulk delete messages through zot // $expire_network_only = get_pconfig($uid,'expire','network_only'); $expire_network_only = 1; $expire_limit = get_config('system', 'expire_limit'); if (!intval($expire_limit)) { $expire_limit = 5000; } $sql_extra = intval($expire_network_only) ? " AND (item_flags & " . intval(ITEM_WALL) . ") = 0 " : ""; $r = q("SELECT * FROM `item`\n\t\tWHERE `uid` = %d\n\t\tAND `created` < %s - INTERVAL %s\n\t\tAND `id` = `parent`\n\t\t{$sql_extra}\n\t\tAND ( item_flags & %d ) = 0\n\t\tAND ( item_restrict = 0 ) LIMIT {$expire_limit} ", intval($uid), db_utcnow(), db_quoteinterval(intval($days) . ' DAY'), intval(ITEM_RETAINED)); if (!$r) { return; } $r = fetch_post_tags($r, true); foreach ($r as $item) { // don't expire filed items $terms = get_terms_oftype($item['term'], TERM_FILE); if ($terms) { retain_item($item['id']); continue; } // Only expire posts, not photos and photo comments if ($item['resource_type'] === 'photo') { retain_item($item['id']); continue; } if ($item['item_flags'] & ITEM_STARRED) { retain_item($item['id']); continue; } drop_item($item['id'], false); } // proc_run('php',"include/notifier.php","expire","$uid"); }
function item_expire($uid, $days) { if (!$uid || $days < 1) { return; } // $expire_network_only = save your own wall posts // and just expire conversations started by others // do not enable this until we can pass bulk delete messages through zot // $expire_network_only = get_pconfig($uid,'expire','network_only'); $expire_network_only = 1; $sql_extra = intval($expire_network_only) ? " AND item_wall = 0 " : ""; $expire_limit = get_config('system', 'expire_limit'); if (!intval($expire_limit)) { $expire_limit = 5000; } $item_normal = item_normal(); $r = q("SELECT id FROM item\n\t\tWHERE uid = %d\n\t\tAND created < %s - INTERVAL %s\n\t\tAND item_retained = 0\n\t\tAND item_thread_top = 1\n\t\tAND resource_type = ''\n\t\tAND item_starred = 0\n\t\t{$sql_extra} {$item_normal} LIMIT {$expire_limit} ", intval($uid), db_utcnow(), db_quoteinterval(intval($days) . ' DAY')); if (!$r) { return; } $r = fetch_post_tags($r, true); foreach ($r as $item) { // don't expire filed items $terms = get_terms_oftype($item['term'], TERM_FILE); if ($terms) { retain_item($item['id']); continue; } drop_item($item['id'], false); } // Zotlabs\Daemon\Master::Summon(array('Notifier','expire',$uid)); }