aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/api.php36
-rw-r--r--include/identity.php47
-rw-r--r--mod/settings.php11
-rw-r--r--mod/uexport.php69
4 files changed, 64 insertions, 99 deletions
diff --git a/include/api.php b/include/api.php
index aab7d102f..1864d511e 100644
--- a/include/api.php
+++ b/include/api.php
@@ -515,41 +515,9 @@
return false;
}
- $ret = array();
- $r = q("select * from channel where channel_id = %d limit 1",
- intval(local_user())
- );
- if($r)
- $ret['channel'] = $r[0];
-
- $r = q("select * from profile where uid = %d",
- intval(local_user())
- );
- if($r)
- $ret['profile'] = $r;
-
- $xchans = array();
- $r = q("select * from abook where abook_channel = %d ",
- intval(local_user())
- );
- if($r) {
- $ret['abook'] = $r;
-
- foreach($r as $rr)
- $xchans[] = $rr['abook_xchan'];
- stringify_array_elms($xchans);
- }
+ require_once('include/identity.php');
- if($xchans) {
- $r = q("select * from xchan where xchan_hash in ( " . implode(',',$xchans) . " ) ");
- if($r)
- $ret['xchan'] = $r;
-
- $r = q("select * from hubloc where hubloc_hash in ( " . implode(',',$xchans) . " ) ");
- if($r)
- $ret['hubloc'] = $r;
- }
- json_return_and_die($ret);
+ json_return_and_die(identity_basic_export(api_user()));
}
api_register_func('api/export/basic','api_export_basic', true);
diff --git a/include/identity.php b/include/identity.php
index 2c3730cbc..94de192c6 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -194,3 +194,50 @@ function set_default_login_identity($account_id,$channel_id,$force = true) {
}
}
+function identity_basic_export($channel_id) {
+
+ /*
+ * Red basic channel export
+ */
+
+ $ret = array();
+ $r = q("select * from channel where channel_id = %d limit 1",
+ intval($channel_id)
+ );
+ if($r)
+ $ret['channel'] = $r[0];
+
+ $r = q("select * from profile where uid = %d",
+ intval($channel_id)
+ );
+ if($r)
+ $ret['profile'] = $r;
+
+ $xchans = array();
+ $r = q("select * from abook where abook_channel = %d ",
+ intval($channel_id)
+ );
+ if($r) {
+ $ret['abook'] = $r;
+
+ foreach($r as $rr)
+ $xchans[] = $rr['abook_xchan'];
+ stringify_array_elms($xchans);
+ }
+
+ if($xchans) {
+ $r = q("select * from xchan where xchan_hash in ( " . implode(',',$xchans) . " ) ");
+ if($r)
+ $ret['xchan'] = $r;
+
+ $r = q("select * from hubloc where hubloc_hash in ( " . implode(',',$xchans) . " ) ");
+ if($r)
+ $ret['hubloc'] = $r;
+ }
+
+ return $ret;
+}
+
+
+
+
diff --git a/mod/settings.php b/mod/settings.php
index db204bc50..d75fe3043 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -63,11 +63,18 @@ function settings_init(&$a) {
),
array(
- 'label' => t('Export personal data'),
- 'url' => $a->get_baseurl(true) . '/uexport',
+ 'label' => t('Export channel'),
+ 'url' => $a->get_baseurl(true) . '/uexport/basic',
'selected' => ''
),
+// array(
+// 'label' => t('Export account'),
+// 'url' => $a->get_baseurl(true) . '/uexport/complete',
+// 'selected' => ''
+// ),
+
+
);
$tabtpl = get_markup_template("generic_links_widget.tpl");
diff --git a/mod/uexport.php b/mod/uexport.php
index e1fb22855..3f7b30008 100644
--- a/mod/uexport.php
+++ b/mod/uexport.php
@@ -1,72 +1,15 @@
<?php
function uexport_init(&$a) {
-
if(! local_user())
killme();
- $user = array();
- $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
- local_user()
- );
- if(count($r)) {
- foreach($r as $rr)
- foreach($rr as $k => $v)
- $user[$k] = $v;
-
- }
- $contact = array();
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d ",
- intval(local_user())
- );
- if(count($r)) {
- foreach($r as $rr)
- foreach($rr as $k => $v)
- $contact[][$k] = $v;
-
- }
-
- $profile = array();
- $r = q("SELECT * FROM `profile` WHERE `uid` = %d ",
- intval(local_user())
- );
- if(count($r)) {
- foreach($r as $rr)
- foreach($rr as $k => $v)
- $profile[][$k] = $v;
- }
-
- $output = array('user' => $user, 'contact' => $contact, 'profile' => $profile );
-
- header("Content-type: application/json");
- echo json_encode($output);
-
- $r = q("SELECT count(*) as `total` FROM `item` WHERE `uid` = %d ",
- intval(local_user())
- );
- if(count($r))
- $total = $r[0]['total'];
-
- // chunk the output to avoid exhausting memory
-
- for($x = 0; $x < $total; $x += 500) {
- $item = array();
- $r = q("SELECT * FROM `item` WHERE `uid` = %d LIMIT %d, %d",
- intval(local_user()),
- intval($x),
- intval(500)
- );
- if(count($r)) {
- foreach($r as $rr)
- foreach($rr as $k => $v)
- $item[][$k] = $v;
- }
-
- $output = array('item' => $item);
- echo json_encode($output);
- }
-
+ require_once('include/identity.php');
- killme();
+ if(argc() > 1 && argv(1) === 'basic')
+ json_return_and_die(identity_basic_export(local_user()));
+ if(argc() > 1 && argv(1) === 'complete')
+ json_return_and_die('not yet implemented');
+
} \ No newline at end of file