mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 06:15:11 +00:00
First pass at endpoints for exporting users and channels in bulk as admin.
This commit is contained in:
parent
11c8cabf28
commit
49d6605377
1 changed files with 90 additions and 0 deletions
|
@ -2416,6 +2416,96 @@ logger('Req: ' . var_export($req,true));
|
||||||
api_register_func('api/oauth/request_token', 'api_oauth_request_token', false);
|
api_register_func('api/oauth/request_token', 'api_oauth_request_token', false);
|
||||||
api_register_func('api/oauth/access_token', 'api_oauth_access_token', false);
|
api_register_func('api/oauth/access_token', 'api_oauth_access_token', false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function api_export_users(&$a,$type) {
|
||||||
|
|
||||||
|
if (! is_site_admin()){
|
||||||
|
header('HTTP/1.0 401 Unauthorized');
|
||||||
|
die('Only admin accounts may use this endpoint.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM account");
|
||||||
|
|
||||||
|
// TODO: paginating!
|
||||||
|
|
||||||
|
$ret = array();
|
||||||
|
foreach($r as $u){
|
||||||
|
$ret[] = $u;
|
||||||
|
}
|
||||||
|
|
||||||
|
json_return_and_die(array('status' => 'OK',
|
||||||
|
'users' => $u));
|
||||||
|
}
|
||||||
|
api_register_func('api/export/users','api_export_users', true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function api_export_channel_hashes(&$a, $type) {
|
||||||
|
|
||||||
|
if (! is_site_admin()){
|
||||||
|
header('HTTP/1.0 401 Unauthorized');
|
||||||
|
die('Only admin accounts may use this endpoint.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if( $_REQUEST['account_id'] == ''){
|
||||||
|
header('HTTP/1.0 422 Unprocessable Entity');
|
||||||
|
die('Must supply account_id parameter.');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$c = q("select * from channel where channel_account_id = '%d'",
|
||||||
|
intval($_REQUEST['account_id']));
|
||||||
|
|
||||||
|
if(! $c){
|
||||||
|
header('HTTP/1.0 404 Not Found');
|
||||||
|
die('No such account_id '. $_REQUEST['account_id']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$ret = array();
|
||||||
|
foreach ($c as $r){
|
||||||
|
$ret[] = $r['channel_hash'];
|
||||||
|
}
|
||||||
|
json_return_and_die(array('status' => 'OK',
|
||||||
|
'channel_hashes' => $ret));
|
||||||
|
}
|
||||||
|
api_register_func('api/export/channels','api_export_channel_hashes', true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function api_export_identity(&$a, $type) {
|
||||||
|
|
||||||
|
if (! is_site_admin()){
|
||||||
|
header('HTTP/1.0 401 Unauthorized');
|
||||||
|
die('Only admin accounts may use this endpoint.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if( $_REQUEST['channel_hash'] == ''){
|
||||||
|
header('HTTP/1.0 422 Unprocessable Entity');
|
||||||
|
die('Must supply channel_hash parameter.');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once('include/identity.php');
|
||||||
|
|
||||||
|
$c = q("select channel_id from channel where channel_hash = '%s' LIMIT 1",
|
||||||
|
dbesc($_REQUEST['channel_hash']));
|
||||||
|
|
||||||
|
if(! $c){
|
||||||
|
header('HTTP/1.0 404 Not Found');
|
||||||
|
die('No such channel '. $_REQUEST['channel_hash']);
|
||||||
|
|
||||||
|
}
|
||||||
|
json_return_and_die(
|
||||||
|
identity_basic_export($c[0]['channel_id'],
|
||||||
|
(($_REQUEST['posts']) ? intval($_REQUEST['posts']) : 0 )));
|
||||||
|
}
|
||||||
|
api_register_func('api/export/identity','api_export_identity', true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Not implemented by now:
|
Not implemented by now:
|
||||||
statuses/retweets_of_me
|
statuses/retweets_of_me
|
||||||
|
|
Loading…
Reference in a new issue