friendica/mod/uexport.php

72 wiersze
1.4 KiB
PHP

<?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 str_replace('\\/','/',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 str_replace('\\/','/',json_encode($output));
}
killme();
}