get_channel(); $is_owner = (local_user() && (local_user() == $channel['channel_id'])); //maintenance - see if a file got dropped and remove it systemwide - this should possibly go to include/poller $x = q("SELECT * FROM item WHERE verb = '%s' AND obj_type = '%s' AND uid = %d", dbesc(ACTIVITY_UPDATE), dbesc(ACTIVITY_OBJ_FILE), intval(local_user()) ); if($x) { foreach($x as $xx) { $object = json_decode($xx['object'],true); $hash = $object['hash']; //If object has a mid it's an update activity - the inlcuded mid is the latest and should not be removed $update = (($object['mid']) ? true : false); if($update) { $mid = $object['mid']; unset($object['mid']); //remove mid from object to match the post activity object $y = q("DELETE FROM item WHERE (mid != '%s' AND obj_type = '%s') AND (object = '%s' AND verb = '%s') OR (object = '%s' AND verb = '%s')", dbesc($mid), dbesc(ACTIVITY_OBJ_FILE), dbesc(json_encode($object)), dbesc(ACTIVITY_POST), dbesc($xx['object']), dbesc(ACTIVITY_UPDATE) ); } else { $z = q("DELETE FROM item WHERE (obj_type = '%s' AND object = '%s') AND (verb = '%s' OR verb = '%s')", dbesc(ACTIVITY_OBJ_FILE), dbesc($xx['object']), dbesc(ACTIVITY_POST), dbesc(ACTIVITY_UPDATE) ); } } } //drop single file - localuser if((argc() > 2) && (argv(2) === 'drop')) { $id = intval(argv(1)); q("DELETE FROM item WHERE id = %d AND uid = %d", intval($id), intval(local_user()) ); goaway(z_root() . '/sharedwithme'); } //drop all files - localuser if((argc() > 1) && (argv(1) === 'dropall')) { q("DELETE FROM item WHERE verb = '%s' AND obj_type = '%s' AND uid = %d", dbesc(ACTIVITY_POST), dbesc(ACTIVITY_OBJ_FILE), intval(local_user()) ); goaway(z_root() . '/sharedwithme'); } //list files $r = q("SELECT * FROM item WHERE verb = '%s' AND obj_type = '%s' AND uid = %d AND owner_xchan != '%s'", dbesc(ACTIVITY_POST), dbesc(ACTIVITY_OBJ_FILE), intval(local_user()), dbesc($channel['channel_hash']) ); $o = profile_tabs($a, $is_owner, $channel['channel_address']); $o .= '