From f6823259241484a761bc7e69ce44db281a6cb825 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 17 Aug 2015 22:20:10 -0700 Subject: provide ability to export by month as well as by year --- include/identity.php | 17 ++++++++++++++--- mod/uexport.php | 6 +++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/include/identity.php b/include/identity.php index 23c099bbd..daa985c2f 100644 --- a/include/identity.php +++ b/include/identity.php @@ -601,14 +601,25 @@ function identity_basic_export($channel_id, $items = false) { -function identity_export_year($channel_id,$year) { +function identity_export_year($channel_id,$year,$month = 0) { if(! $year) return array(); + if($month && $month <= 12) { + $target_month = sprintf('%02d',$month); + $target_month_plus = sprintf('%02d',$month+1); + } + else + $target_month = '01'; + $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'); + $mindate = datetime_convert('UTC','UTC',$year . '-' . $target_month . '-01 00:00:00'); + if($month && $month < 12) + $maxdate = datetime_convert('UTC','UTC',$year . '-' . $target_month_plus . '-01 00:00:00'); + else + $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), diff --git a/mod/uexport.php b/mod/uexport.php index b0bb11afa..66bb1e851 100644 --- a/mod/uexport.php +++ b/mod/uexport.php @@ -13,11 +13,15 @@ function uexport_init(&$a) { $year = intval(argv(1)); } + if(argc() > 2 && intval(argv(2)) > 1 && intval(argv(2)) <= 12) { + $month = intval(argv(2)); + } + 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)); + echo json_encode(identity_export_year(local_channel(),$year,$month)); killme(); } -- cgit v1.2.3