Lint api.php

This commit is contained in:
Pierre Rudloff 2017-12-24 00:27:45 +01:00
parent 1fd62ee626
commit 0305aa2d82

View file

@ -186,7 +186,7 @@ function api_login(App $a)
} }
if (!x($_SERVER, 'PHP_AUTH_USER')) { if (!x($_SERVER, 'PHP_AUTH_USER')) {
logger('API_login: ' . print_r($_SERVER,true), LOGGER_DEBUG); logger('API_login: ' . print_r($_SERVER, true), LOGGER_DEBUG);
header('WWW-Authenticate: Basic realm="Friendica"'); header('WWW-Authenticate: Basic realm="Friendica"');
throw new UnauthorizedException("This API requires login"); throw new UnauthorizedException("This API requires login");
} }
@ -367,12 +367,13 @@ function api_call(App $a)
break; break;
case "json": case "json":
header("Content-Type: application/json"); header("Content-Type: application/json");
foreach ($r as $rr) foreach ($r as $rr) {
$json = json_encode($rr); $json = json_encode($rr);
if (x($_GET, 'callback')) { }
$json = $_GET['callback'] . "(" . $json . ")"; if (x($_GET, 'callback')) {
} $json = $_GET['callback'] . "(" . $json . ")";
return $json; }
return $json;
break; break;
case "rss": case "rss":
header("Content-Type: application/rss+xml"); header("Content-Type: application/rss+xml");
@ -1737,7 +1738,8 @@ function api_statuses_public_timeline($type)
$sql_extra = 'AND `thread`.`iid` <= ' . intval($max_id); $sql_extra = 'AND `thread`.`iid` <= ' . intval($max_id);
} }
$r = dba::p("SELECT " . item_fieldlists() . " $r = dba::p(
"SELECT " . item_fieldlists() . "
FROM `thread` FROM `thread`
STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid` STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid`
" . item_joins() . " " . item_joins() . "
@ -1766,7 +1768,8 @@ function api_statuses_public_timeline($type)
$sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id); $sql_extra .= ' AND `item`.`parent` = ' . intval($conversation_id);
} }
$r = dba::p("SELECT " . item_fieldlists() . " $r = dba::p(
"SELECT " . item_fieldlists() . "
FROM `item` FROM `item`
" . item_joins() . " " . item_joins() . "
STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid` STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid`
@ -1837,7 +1840,8 @@ function api_statuses_networkpublic_timeline($type)
$sql_extra = 'AND `thread`.`iid` <= ' . intval($max_id); $sql_extra = 'AND `thread`.`iid` <= ' . intval($max_id);
} }
$r = dba::p("SELECT " . item_fieldlists() . " $r = dba::p(
"SELECT " . item_fieldlists() . "
FROM `thread` FROM `thread`
STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid` STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid`
" . item_joins() . " " . item_joins() . "
@ -2009,10 +2013,12 @@ function api_conversation_show($type)
AND `item`.`uid` = %d AND `item`.`verb` = '%s' AND `item`.`uid` = %d AND `item`.`verb` = '%s'
AND `item`.`id`>%d $sql_extra AND `item`.`id`>%d $sql_extra
ORDER BY `item`.`id` DESC LIMIT %d ,%d", ORDER BY `item`.`id` DESC LIMIT %d ,%d",
intval($id), intval(api_user()), intval($id),
intval(api_user()),
dbesc(ACTIVITY_POST), dbesc(ACTIVITY_POST),
intval($since_id), intval($since_id),
intval($start), intval($count) intval($start),
intval($count)
); );
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
@ -2321,7 +2327,7 @@ function api_statuses_user_timeline($type)
} }
/// @TODO move to top of file or somwhere better /// @TODO move to top of file or somwhere better
api_register_func('api/statuses/user_timeline','api_statuses_user_timeline', true); api_register_func('api/statuses/user_timeline', 'api_statuses_user_timeline', true);
/** /**
* Star/unstar an item * Star/unstar an item
@ -2372,7 +2378,7 @@ function api_favorites_create_destroy($type)
throw new BadRequestException("Invalid action ".$action); throw new BadRequestException("Invalid action ".$action);
} }
$r = q("UPDATE item SET starred=%d WHERE id=%d AND uid=%d", $item[0]['starred'], $itemid, api_user()); $r = q("UPDATE item SET starred=%d WHERE id=%d AND uid=%d", $item[0]['starred'], $itemid, api_user());
q("UPDATE thread SET starred=%d WHERE iid=%d AND uid=%d", $item[0]['starred'], $itemid, api_user()); q("UPDATE thread SET starred=%d WHERE iid=%d AND uid=%d", $item[0]['starred'], $itemid, api_user());
@ -2719,8 +2725,9 @@ function api_get_entitities(&$text, $bbcode)
foreach ($images[1] as $image) { foreach ($images[1] as $image) {
//$start = strpos($text, $url, $offset); //$start = strpos($text, $url, $offset);
$start = iconv_strpos($text, $image, 0, "UTF-8"); $start = iconv_strpos($text, $image, 0, "UTF-8");
if (!($start === false)) if (!($start === false)) {
$ordered_images[$start] = $image; $ordered_images[$start] = $image;
}
} }
//$entities["media"] = array(); //$entities["media"] = array();
$offset = 0; $offset = 0;
@ -2729,8 +2736,9 @@ function api_get_entitities(&$text, $bbcode)
$display_url = str_replace(array("http://www.", "https://www."), array("", ""), $url); $display_url = str_replace(array("http://www.", "https://www."), array("", ""), $url);
$display_url = str_replace(array("http://", "https://"), array("", ""), $display_url); $display_url = str_replace(array("http://", "https://"), array("", ""), $display_url);
if (strlen($display_url) > 26) if (strlen($display_url) > 26) {
$display_url = substr($display_url, 0, 25).""; $display_url = substr($display_url, 0, 25)."";
}
$start = iconv_strpos($text, $url, $offset, "UTF-8"); $start = iconv_strpos($text, $url, $offset, "UTF-8");
if (!($start === false)) { if (!($start === false)) {
@ -2881,8 +2889,9 @@ function api_format_items_activities(&$item, $type = "json")
$xml_activities["friendica:".$k] = $v; $xml_activities["friendica:".$k] = $v;
// add user data into xml output // add user data into xml output
$k_user = 0; $k_user = 0;
foreach ($v as $user) foreach ($v as $user) {
$xml_activities["friendica:".$k][$k_user++.":user"] = $user; $xml_activities["friendica:".$k][$k_user++.":user"] = $user;
}
} }
$activities = $xml_activities; $activities = $xml_activities;
} }
@ -3355,7 +3364,7 @@ api_register_func('api/statusnet/version', 'api_statusnet_version', false);
/** /**
* @todo use api_format_data() to return data * @todo use api_format_data() to return data
*/ */
function api_ff_ids($type,$qtype) function api_ff_ids($type, $qtype)
{ {
$a = get_app(); $a = get_app();
@ -3409,9 +3418,13 @@ function api_direct_messages_new($type)
$a = get_app(); $a = get_app();
if (api_user() === false) throw new ForbiddenException(); if (api_user() === false) {
throw new ForbiddenException();
}
if (!x($_POST, "text") || (!x($_POST, "screen_name") && !x($_POST, "user_id"))) return; if (!x($_POST, "text") || (!x($_POST, "screen_name") && !x($_POST, "user_id"))) {
return;
}
$sender = api_get_user($a); $sender = api_get_user($a);
@ -3466,7 +3479,6 @@ function api_direct_messages_new($type)
} }
return api_format_data("direct-messages", $type, $data); return api_format_data("direct-messages", $type, $data);
} }
/// @TODO move to top of file or somewhere better /// @TODO move to top of file or somewhere better
@ -3545,7 +3557,6 @@ function api_direct_messages_destroy($type)
} }
} }
/// @todo return JSON data like Twitter API not yet implemented /// @todo return JSON data like Twitter API not yet implemented
} }
/// @TODO move to top of file or somewhere better /// @TODO move to top of file or somewhere better
@ -3727,8 +3738,9 @@ function api_fr_photoalbum_delete($type)
intval(api_user()), intval(api_user()),
dbesc($album) dbesc($album)
); );
if (!DBM::is_result($r)) if (!DBM::is_result($r)) {
throw new BadRequestException("album not available"); throw new BadRequestException("album not available");
}
// function for setting the items to "deleted = 1" which ensures that comments, likes etc. are not shown anymore // function for setting the items to "deleted = 1" which ensures that comments, likes etc. are not shown anymore
// to the user and the contacts of the users (drop_items() performs the federation of the deletion to other networks // to the user and the contacts of the users (drop_items() performs the federation of the deletion to other networks
@ -4264,7 +4276,8 @@ function save_media_to_database($mediatype, $media, $type, $album, $allow_cid, $
} }
logger( logger(
"File upload src: " . $src . " - filename: " . $filename . "File upload src: " . $src . " - filename: " . $filename .
" - size: " . $filesize . " - type: " . $filetype, LOGGER_DEBUG " - size: " . $filesize . " - type: " . $filetype,
LOGGER_DEBUG
); );
// check if there was a php upload error // check if there was a php upload error
@ -4663,8 +4676,9 @@ function api_share_as_retweet(&$item)
$posted = ""; $posted = "";
preg_match("/posted='(.*?)'/ism", $attributes, $matches); preg_match("/posted='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "") if ($matches[1] != "") {
$posted = $matches[1]; $posted = $matches[1];
}
preg_match('/posted="(.*?)"/ism', $attributes, $matches); preg_match('/posted="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "") { if ($matches[1] != "") {
@ -4686,7 +4700,6 @@ function api_share_as_retweet(&$item)
$reshared_item["edited"] = $posted; $reshared_item["edited"] = $posted;
return $reshared_item; return $reshared_item;
} }
function api_get_nick($profile) function api_get_nick($profile)
@ -4781,9 +4794,11 @@ function api_in_reply_to($item)
$in_reply_to['screen_name'] = null; $in_reply_to['screen_name'] = null;
if (($item['thr-parent'] != $item['uri']) && (intval($item['parent']) != intval($item['id']))) { if (($item['thr-parent'] != $item['uri']) && (intval($item['parent']) != intval($item['id']))) {
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1", $r = q(
"SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
intval($item['uid']), intval($item['uid']),
dbesc($item['thr-parent'])); dbesc($item['thr-parent'])
);
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$in_reply_to['status_id'] = intval($r[0]['id']); $in_reply_to['status_id'] = intval($r[0]['id']);
@ -4793,7 +4808,8 @@ function api_in_reply_to($item)
$in_reply_to['status_id_str'] = (string) intval($in_reply_to['status_id']); $in_reply_to['status_id_str'] = (string) intval($in_reply_to['status_id']);
$r = q("SELECT `contact`.`nick`, `contact`.`name`, `contact`.`id`, `contact`.`url` FROM item $r = q(
"SELECT `contact`.`nick`, `contact`.`name`, `contact`.`id`, `contact`.`url` FROM item
STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`author-id` STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`author-id`
WHERE `item`.`id` = %d LIMIT 1", WHERE `item`.`id` = %d LIMIT 1",
intval($in_reply_to['status_id']) intval($in_reply_to['status_id'])
@ -4878,39 +4894,56 @@ function api_best_nickname(&$contacts)
{ {
$best_contact = array(); $best_contact = array();
if (count($contact) == 0) if (count($contact) == 0) {
return; return;
}
foreach ($contacts as $contact) foreach ($contacts as $contact) {
if ($contact["network"] == "") { if ($contact["network"] == "") {
$contact["network"] = "dfrn"; $contact["network"] = "dfrn";
$best_contact = array($contact); $best_contact = array($contact);
} }
}
if (sizeof($best_contact) == 0) if (sizeof($best_contact) == 0) {
foreach ($contacts as $contact) foreach ($contacts as $contact) {
if ($contact["network"] == "dfrn") if ($contact["network"] == "dfrn") {
$best_contact = array($contact); $best_contact = array($contact);
}
}
}
if (sizeof($best_contact) == 0) if (sizeof($best_contact) == 0) {
foreach ($contacts as $contact) foreach ($contacts as $contact) {
if ($contact["network"] == "dspr") if ($contact["network"] == "dspr") {
$best_contact = array($contact); $best_contact = array($contact);
}
}
}
if (sizeof($best_contact) == 0) if (sizeof($best_contact) == 0) {
foreach ($contacts as $contact) foreach ($contacts as $contact) {
if ($contact["network"] == "stat") if ($contact["network"] == "stat") {
$best_contact = array($contact); $best_contact = array($contact);
}
}
}
if (sizeof($best_contact) == 0) if (sizeof($best_contact) == 0) {
foreach ($contacts as $contact) foreach ($contacts as $contact) {
if ($contact["network"] == "pump") if ($contact["network"] == "pump") {
$best_contact = array($contact); $best_contact = array($contact);
}
}
}
if (sizeof($best_contact) == 0) if (sizeof($best_contact) == 0) {
foreach ($contacts as $contact) foreach ($contacts as $contact) {
if ($contact["network"] == "twit") if ($contact["network"] == "twit") {
$best_contact = array($contact); $best_contact = array($contact);
}
}
}
if (sizeof($best_contact) == 1) { if (sizeof($best_contact) == 1) {
$contacts = $best_contact; $contacts = $best_contact;
@ -4924,7 +4957,9 @@ function api_friendica_group_show($type)
{ {
$a = get_app(); $a = get_app();
if (api_user() === false) throw new ForbiddenException(); if (api_user() === false) {
throw new ForbiddenException();
}
// params // params
$user_info = api_get_user($a); $user_info = api_get_user($a);
@ -4939,8 +4974,9 @@ function api_friendica_group_show($type)
intval($gid) intval($gid)
); );
// error message if specified gid is not in database // error message if specified gid is not in database
if (!DBM::is_result($r)) if (!DBM::is_result($r)) {
throw new BadRequestException("gid not available"); throw new BadRequestException("gid not available");
}
} else { } else {
$r = q( $r = q(
"SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d", "SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d",
@ -5035,7 +5071,9 @@ function api_friendica_group_create($type)
{ {
$a = get_app(); $a = get_app();
if (api_user() === false) throw new ForbiddenException(); if (api_user() === false) {
throw new ForbiddenException();
}
// params // params
$user_info = api_get_user($a); $user_info = api_get_user($a);
@ -5045,8 +5083,9 @@ function api_friendica_group_create($type)
$users = $json['user']; $users = $json['user'];
// error if no name specified // error if no name specified
if ($name == "") if ($name == "") {
throw new BadRequestException('group name not specified'); throw new BadRequestException('group name not specified');
}
// get data of the specified group name // get data of the specified group name
$rname = q( $rname = q(
@ -5055,8 +5094,9 @@ function api_friendica_group_create($type)
dbesc($name) dbesc($name)
); );
// error message if specified group name already exists // error message if specified group name already exists
if (DBM::is_result($rname)) if (DBM::is_result($rname)) {
throw new BadRequestException('group name already exists'); throw new BadRequestException('group name already exists');
}
// check if specified group name is a deleted group // check if specified group name is a deleted group
$rname = q( $rname = q(
@ -5065,8 +5105,9 @@ function api_friendica_group_create($type)
dbesc($name) dbesc($name)
); );
// error message if specified group name already exists // error message if specified group name already exists
if (DBM::is_result($rname)) if (DBM::is_result($rname)) {
$reactivate_group = true; $reactivate_group = true;
}
// create group // create group
$ret = Group::create($uid, $name); $ret = Group::create($uid, $name);
@ -5108,7 +5149,9 @@ function api_friendica_group_update($type)
{ {
$a = get_app(); $a = get_app();
if (api_user() === false) throw new ForbiddenException(); if (api_user() === false) {
throw new ForbiddenException();
}
// params // params
$user_info = api_get_user($a); $user_info = api_get_user($a);
@ -5119,12 +5162,14 @@ function api_friendica_group_update($type)
$users = $json['user']; $users = $json['user'];
// error if no name specified // error if no name specified
if ($name == "") if ($name == "") {
throw new BadRequestException('group name not specified'); throw new BadRequestException('group name not specified');
}
// error if no gid specified // error if no gid specified
if ($gid == "") if ($gid == "") {
throw new BadRequestException('gid not specified'); throw new BadRequestException('gid not specified');
}
// remove members // remove members
$members = Contact::getByGroupId($gid); $members = Contact::getByGroupId($gid);
@ -5170,7 +5215,9 @@ function api_friendica_activity($type)
{ {
$a = get_app(); $a = get_app();
if (api_user() === false) throw new ForbiddenException(); if (api_user() === false) {
throw new ForbiddenException();
}
$verb = strtolower($a->argv[3]); $verb = strtolower($a->argv[3]);
$verb = preg_replace("|\..*$|", "", $verb); $verb = preg_replace("|\..*$|", "", $verb);
@ -5212,16 +5259,21 @@ function api_friendica_notification($type)
{ {
$a = get_app(); $a = get_app();
if (api_user() === false) throw new ForbiddenException(); if (api_user() === false) {
if ($a->argc!==3) throw new BadRequestException("Invalid argument count"); throw new ForbiddenException();
}
if ($a->argc!==3) {
throw new BadRequestException("Invalid argument count");
}
$nm = new NotificationsManager(); $nm = new NotificationsManager();
$notes = $nm->getAll(array(), "+seen -date", 50); $notes = $nm->getAll(array(), "+seen -date", 50);
if ($type == "xml") { if ($type == "xml") {
$xmlnotes = array(); $xmlnotes = array();
foreach ($notes as $note) foreach ($notes as $note) {
$xmlnotes[] = array("@attributes" => $note); $xmlnotes[] = array("@attributes" => $note);
}
$notes = $xmlnotes; $notes = $xmlnotes;
} }
@ -5241,14 +5293,20 @@ function api_friendica_notification_seen($type)
{ {
$a = get_app(); $a = get_app();
if (api_user() === false) throw new ForbiddenException(); if (api_user() === false) {
if ($a->argc!==4) throw new BadRequestException("Invalid argument count"); throw new ForbiddenException();
}
if ($a->argc!==4) {
throw new BadRequestException("Invalid argument count");
}
$id = (x($_REQUEST, 'id') ? intval($_REQUEST['id']) : 0); $id = (x($_REQUEST, 'id') ? intval($_REQUEST['id']) : 0);
$nm = new NotificationsManager(); $nm = new NotificationsManager();
$note = $nm->getByID($id); $note = $nm->getByID($id);
if (is_null($note)) throw new BadRequestException("Invalid argument"); if (is_null($note)) {
throw new BadRequestException("Invalid argument");
}
$nm->setSeen($note); $nm->setSeen($note);
if ($note['otype']=='item') { if ($note['otype']=='item') {
@ -5505,15 +5563,15 @@ api_register_func('api/saved_searches/list', 'api_saved_searches_list', true);
/* /*
@TODO Maybe open to implement? @TODO Maybe open to implement?
To.Do: To.Do:
[pagename] => api/1.1/statuses/lookup.json [pagename] => api/1.1/statuses/lookup.json
[id] => 605138389168451584 [id] => 605138389168451584
[include_cards] => true [include_cards] => true
[cards_platform] => Android-12 [cards_platform] => Android-12
[include_entities] => true [include_entities] => true
[include_my_retweet] => 1 [include_my_retweet] => 1
[include_rts] => 1 [include_rts] => 1
[include_reply_count] => true [include_reply_count] => true
[include_descendent_reply_count] => true [include_descendent_reply_count] => true
(?) (?)