provide a way to export a single year of items (to potentially keep from exhausting resources either on export or import)
This commit is contained in:
parent
964e461e09
commit
ec249d465b
@ -583,7 +583,7 @@ function identity_basic_export($channel_id, $items = false) {
|
||||
|
||||
/** @warning this may run into memory limits on smaller systems */
|
||||
|
||||
$r = q("select * from item where (item_flags & %d)>0 and not (item_restrict & %d)>0 and uid = %d",
|
||||
$r = q("select * from item where (item_flags & %d)>0 and not (item_restrict & %d)>0 and uid = %d order by created",
|
||||
intval(ITEM_WALL),
|
||||
intval(ITEM_DELETED),
|
||||
intval($channel_id)
|
||||
@ -600,6 +600,35 @@ function identity_basic_export($channel_id, $items = false) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
function identity_export_year($channel_id,$year) {
|
||||
|
||||
if(! $year)
|
||||
return array();
|
||||
|
||||
$ret = array();
|
||||
$mindate = datetime_convert('UTC','UTC',$year . '-01-01 00:00:00');
|
||||
$maxdate = datetime_convert('UTC','UTC',$year+1 . '-01-01 00:00:00');
|
||||
$r = q("select * from item where (item_flags & %d) > 0 and (item_restrict & %d) = 0 and uid = %d and created >= '%s' and created < '%s' order by created ",
|
||||
intval(ITEM_WALL),
|
||||
intval(ITEM_DELETED),
|
||||
intval($channel_id),
|
||||
dbesc($mindate),
|
||||
dbesc($maxdate)
|
||||
);
|
||||
|
||||
if($r) {
|
||||
$ret['item'] = array();
|
||||
xchan_query($r);
|
||||
$r = fetch_post_tags($r,true);
|
||||
foreach($r as $rr)
|
||||
$ret['item'][] = encode_item($rr,true);
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Loads a profile into the App structure.
|
||||
*
|
||||
|
@ -9,9 +9,17 @@ function uexport_init(&$a) {
|
||||
|
||||
require_once('include/identity.php');
|
||||
|
||||
header('content-type: application/octet_stream');
|
||||
header('content-disposition: attachment; filename="' . $channel['channel_address'] . '.json"' );
|
||||
if(argc() > 1 && intval(argv(1)) > 1900) {
|
||||
$year = intval(argv(1));
|
||||
}
|
||||
|
||||
header('content-type: application/octet_stream');
|
||||
header('content-disposition: attachment; filename="' . $channel['channel_address'] . (($year) ? '-' . $year : '') . '.json"' );
|
||||
|
||||
if($year) {
|
||||
echo json_encode(identity_export_year(local_channel(),$year));
|
||||
killme();
|
||||
}
|
||||
|
||||
if(argc() > 1 && argv(1) === 'basic') {
|
||||
echo json_encode(identity_basic_export(local_channel()));
|
||||
|
@ -1 +1 @@
|
||||
2015-07-15.1094
|
||||
2015-07-16.1095
|
||||
|
Reference in New Issue
Block a user