provide any single year of exported items
This commit is contained in:
parent
4299ae65a4
commit
3c60a0c22c
@ -583,8 +583,14 @@ function identity_basic_export($channel_id, $items = false) {
|
|||||||
|
|
||||||
/** @warning this may run into memory limits on smaller systems */
|
/** @warning this may run into memory limits on smaller systems */
|
||||||
|
|
||||||
$r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d",
|
/** export one year of posts. If you want to export and import all posts you have to start with
|
||||||
intval($channel_id)
|
* the first year and export/import them in ascending order.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d and created > %s - INTERVAL %s",
|
||||||
|
intval($channel_id),
|
||||||
|
db_utcnow(),
|
||||||
|
db_quoteinterval('1 YEAR')
|
||||||
);
|
);
|
||||||
if($r) {
|
if($r) {
|
||||||
$ret['item'] = array();
|
$ret['item'] = array();
|
||||||
@ -598,6 +604,33 @@ 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_wall = 1 and item_deleted = 0 and uid = %d and created >= '%s' and created < '%s' ",
|
||||||
|
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.
|
* @brief Loads a profile into the App structure.
|
||||||
*
|
*
|
||||||
|
@ -4389,7 +4389,6 @@ function first_post_date($uid,$wall = false) {
|
|||||||
$r = q("select id, created from item
|
$r = q("select id, created from item
|
||||||
where uid = %d and id = parent $item_normal $wall_sql
|
where uid = %d and id = parent $item_normal $wall_sql
|
||||||
order by created asc limit 1",
|
order by created asc limit 1",
|
||||||
intval(ITEM_VISIBLE),
|
|
||||||
intval($uid)
|
intval($uid)
|
||||||
|
|
||||||
);
|
);
|
||||||
|
@ -9,9 +9,17 @@ function uexport_init(&$a) {
|
|||||||
|
|
||||||
require_once('include/identity.php');
|
require_once('include/identity.php');
|
||||||
|
|
||||||
header('content-type: application/octet_stream');
|
if(argc() > 1 && intval(argv(1)) > 1900) {
|
||||||
header('content-disposition: attachment; filename="' . $channel['channel_address'] . '.json"' );
|
$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') {
|
if(argc() > 1 && argv(1) === 'basic') {
|
||||||
echo json_encode(identity_basic_export(local_channel()));
|
echo json_encode(identity_basic_export(local_channel()));
|
||||||
@ -34,7 +42,9 @@ function uexport_content(&$a) {
|
|||||||
'$basictitle' => t('Export Channel'),
|
'$basictitle' => t('Export Channel'),
|
||||||
'$basic' => t('Export your basic channel information to a small file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new hub, but does not contain your content.'),
|
'$basic' => t('Export your basic channel information to a small file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new hub, but does not contain your content.'),
|
||||||
'$fulltitle' => t('Export Content'),
|
'$fulltitle' => t('Export Content'),
|
||||||
'$full' => t('Export your channel information and all the content to a JSON backup. This backs up all of your connections, permissions, profile data and all of your content, but is generally not suitable for importing a channel to a new hub as this file may be VERY large. Please be patient - it may take several minutes for this download to begin.')
|
'$full' => t('Export your channel information and all the content to a JSON backup. This backs up all of your connections, permissions, profile data and the last year of posts. This file may be VERY large. Please be patient - it may take several minutes for this download to begin.'),
|
||||||
|
'$by_year' => t('Export your posts from a given year.'),
|
||||||
|
|
||||||
));
|
));
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user