more api work
This commit is contained in:
parent
fabf278633
commit
db3d230ad9
@ -17,16 +17,14 @@ class Wall_upload extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
if($using_api) {
|
if($using_api) {
|
||||||
require_once('include/api.php');
|
require_once('include/api.php');
|
||||||
$user_info = api_get_user($a);
|
if(api_user())
|
||||||
$nick = $user_info['screen_name'];
|
$channel = channelx_by_n(api_user());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(argc() > 1)
|
if(argc() > 1)
|
||||||
$nick = argv(1);
|
$channel = get_channel_by_nick(argv(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
$channel = (($nick) ? get_channel_by_nick($nick) : false);
|
|
||||||
|
|
||||||
if(! $channel) {
|
if(! $channel) {
|
||||||
if($using_api)
|
if($using_api)
|
||||||
return;
|
return;
|
||||||
|
167
include/api.php
167
include/api.php
@ -25,7 +25,7 @@ require_once('include/api_zot.php');
|
|||||||
|
|
||||||
// All commands which require authentication accept a "channel" parameter
|
// All commands which require authentication accept a "channel" parameter
|
||||||
// which is the left hand side of the channel address/nickname.
|
// which is the left hand side of the channel address/nickname.
|
||||||
// If provided, the desired channel is selected before caarying out the command.
|
// If provided, the desired channel is selected before carrying out the command.
|
||||||
// If not provided, the default channel associated with the account is used.
|
// If not provided, the default channel associated with the account is used.
|
||||||
// If channel selection fails, the API command requiring login will fail.
|
// If channel selection fails, the API command requiring login will fail.
|
||||||
|
|
||||||
@ -180,171 +180,6 @@ require_once('include/api_zot.php');
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns user info array.
|
|
||||||
*/
|
|
||||||
|
|
||||||
function api_get_user($contact_id = null, $contact_xchan = null){
|
|
||||||
|
|
||||||
$user = null;
|
|
||||||
$extra_query = '';
|
|
||||||
|
|
||||||
|
|
||||||
if(! is_null($contact_xchan)) {
|
|
||||||
$user = local_channel();
|
|
||||||
$extra_query = " and abook_xchan = '" . dbesc($contact_xchan) . "' ";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(! is_null($contact_id)){
|
|
||||||
$user = $contact_id;
|
|
||||||
$extra_query = " AND abook_id = %d ";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(is_null($user) && x($_GET, 'user_id')) {
|
|
||||||
$user = intval($_GET['user_id']);
|
|
||||||
$extra_query = " AND abook_id = %d ";
|
|
||||||
}
|
|
||||||
if(is_null($user) && x($_GET, 'screen_name')) {
|
|
||||||
$user = dbesc($_GET['screen_name']);
|
|
||||||
$extra_query = " AND xchan_addr like '%s@%%' ";
|
|
||||||
if(api_user() !== false)
|
|
||||||
$extra_query .= " AND abook_channel = " . intval(api_user());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $user) {
|
|
||||||
if (api_user() === false) {
|
|
||||||
api_login($a);
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
$user = local_channel();
|
|
||||||
$extra_query = " AND abook_channel = %d AND abook_self = 1 ";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
logger('api_user: ' . $extra_query . ', user: ' . $user, LOGGER_DATA, LOG_INFO);
|
|
||||||
|
|
||||||
// user info
|
|
||||||
|
|
||||||
$uinfo = q("SELECT * from abook left join xchan on abook_xchan = xchan_hash
|
|
||||||
WHERE true
|
|
||||||
$extra_query",
|
|
||||||
$user
|
|
||||||
);
|
|
||||||
|
|
||||||
if (! $uinfo) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$following = false;
|
|
||||||
|
|
||||||
if(intval($uinfo[0]['abook_self'])) {
|
|
||||||
$usr = q("select * from channel where channel_id = %d limit 1",
|
|
||||||
intval(api_user())
|
|
||||||
);
|
|
||||||
$profile = q("select * from profile where uid = %d and is_default = 1 limit 1",
|
|
||||||
intval(api_user())
|
|
||||||
);
|
|
||||||
|
|
||||||
$item_normal = item_normal();
|
|
||||||
|
|
||||||
// count public wall messages
|
|
||||||
$r = q("SELECT COUNT(id) as total FROM item
|
|
||||||
WHERE uid = %d
|
|
||||||
AND item_wall = 1 $item_normal
|
|
||||||
AND allow_cid = '' AND allow_gid = '' AND deny_cid = '' AND deny_gid = ''
|
|
||||||
AND item_private = 0 ",
|
|
||||||
intval($usr[0]['channel_id'])
|
|
||||||
);
|
|
||||||
if($r) {
|
|
||||||
$countitms = $r[0]['total'];
|
|
||||||
$following = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$r = q("SELECT COUNT(id) as total FROM item
|
|
||||||
WHERE author_xchan = '%s'
|
|
||||||
AND allow_cid = '' AND allow_gid = '' AND deny_cid = '' AND deny_gid = ''
|
|
||||||
AND item_private = 0 ",
|
|
||||||
intval($uinfo[0]['xchan_hash'])
|
|
||||||
);
|
|
||||||
if($r) {
|
|
||||||
$countitms = $r[0]['total'];
|
|
||||||
}
|
|
||||||
$following = ((get_abconfig($uinfo[0]['abook_channel'],$uinfo[0]['abook_xchan'],'my_perms','view_stream')) ? true : false );
|
|
||||||
}
|
|
||||||
|
|
||||||
// count friends
|
|
||||||
if($usr) {
|
|
||||||
$r = q("SELECT COUNT(abook_id) as total FROM abook
|
|
||||||
WHERE abook_channel = %d AND abook_self = 0 ",
|
|
||||||
intval($usr[0]['channel_id'])
|
|
||||||
);
|
|
||||||
if($r) {
|
|
||||||
$countfriends = $r[0]['total'];
|
|
||||||
$countfollowers = $r[0]['total'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("SELECT count(id) as total FROM item where item_starred = 1 and uid = %d " . item_normal(),
|
|
||||||
intval($uinfo[0]['channel_id'])
|
|
||||||
);
|
|
||||||
if($r)
|
|
||||||
$starred = $r[0]['total'];
|
|
||||||
|
|
||||||
if(! intval($uinfo[0]['abook_self'])) {
|
|
||||||
$countfriends = 0;
|
|
||||||
$countfollowers = 0;
|
|
||||||
$starred = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$ret = array(
|
|
||||||
'id' => intval($uinfo[0]['abook_id']),
|
|
||||||
'self' => (intval($uinfo[0]['abook_self']) ? 1 : 0),
|
|
||||||
'uid' => intval($uinfo[0]['abook_channel']),
|
|
||||||
'guid' => $uinfo[0]['xchan_hash'],
|
|
||||||
'name' => (($uinfo[0]['xchan_name']) ? $uinfo[0]['xchan_name'] : substr($uinfo[0]['xchan_addr'],0,strpos($uinfo[0]['xchan_addr'],'@'))),
|
|
||||||
'screen_name' => substr($uinfo[0]['xchan_addr'],0,strpos($uinfo[0]['xchan_addr'],'@')),
|
|
||||||
'location' => ($usr) ? $usr[0]['channel_location'] : '',
|
|
||||||
'profile_image_url' => $uinfo[0]['xchan_photo_l'],
|
|
||||||
'url' => $uinfo[0]['xchan_url'],
|
|
||||||
'contact_url' => z_root() . '/connections/'.$uinfo[0]['abook_id'],
|
|
||||||
'protected' => false,
|
|
||||||
'friends_count' => intval($countfriends),
|
|
||||||
'created_at' => api_date($uinfo[0]['abook_created']),
|
|
||||||
'utc_offset' => '+00:00',
|
|
||||||
'time_zone' => 'UTC', //$uinfo[0]['timezone'],
|
|
||||||
'geo_enabled' => false,
|
|
||||||
'statuses_count' => intval($countitms), //#XXX: fix me
|
|
||||||
'lang' => App::$language,
|
|
||||||
'description' => (($profile) ? $profile[0]['pdesc'] : ''),
|
|
||||||
'followers_count' => intval($countfollowers),
|
|
||||||
'favourites_count' => intval($starred),
|
|
||||||
'contributors_enabled' => false,
|
|
||||||
'follow_request_sent' => true,
|
|
||||||
'profile_background_color' => 'cfe8f6',
|
|
||||||
'profile_text_color' => '000000',
|
|
||||||
'profile_link_color' => 'FF8500',
|
|
||||||
'profile_sidebar_fill_color' =>'AD0066',
|
|
||||||
'profile_sidebar_border_color' => 'AD0066',
|
|
||||||
'profile_background_image_url' => '',
|
|
||||||
'profile_background_tile' => false,
|
|
||||||
'profile_use_background_image' => false,
|
|
||||||
'notifications' => false,
|
|
||||||
'following' => $following,
|
|
||||||
'verified' => true // #XXX: fix me
|
|
||||||
);
|
|
||||||
|
|
||||||
$x = api_get_status($uinfo[0]['xchan_hash']);
|
|
||||||
if($x)
|
|
||||||
$ret['status'] = $x;
|
|
||||||
|
|
||||||
// logger('api_get_user: ' . print_r($ret,true));
|
|
||||||
|
|
||||||
return $ret;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function api_client_register($type) {
|
function api_client_register($type) {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user