use Friendica\Network\HTTPException\TooManyRequestsException;
use Friendica\Network\HTTPException\UnauthorizedException;
use Friendica\Object\Image;
-use Friendica\Protocol\Activity;
use Friendica\Security\BasicAuth;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Images;
return $ret;
}
-/**
- * return likes, dislikes and attend status for item
- *
- * @param array $item array
- * @param string $type Return type (atom, rss, xml, json)
- *
- * @return array
- * likes => int count,
- * dislikes => int count
- * @throws BadRequestException
- * @throws ImagickException
- * @throws InternalServerErrorException
- * @throws UnauthorizedException
- */
-function api_format_items_activities($item, $type = "json")
-{
- $activities = [
- 'like' => [],
- 'dislike' => [],
- 'attendyes' => [],
- 'attendno' => [],
- 'attendmaybe' => [],
- 'announce' => [],
- ];
-
- $condition = ['uid' => $item['uid'], 'thr-parent' => $item['uri'], 'gravity' => GRAVITY_ACTIVITY];
- $ret = Post::selectForUser($item['uid'], ['author-id', 'verb'], $condition);
-
- while ($parent_item = Post::fetch($ret)) {
- // not used as result should be structured like other user data
- //builtin_activity_puller($i, $activities);
-
- // get user data and add it to the array of the activity
- $user = DI::twitterUser()->createFromContactId($parent_item['author-id'], $item['uid'])->toArray();
- switch ($parent_item['verb']) {
- case Activity::LIKE:
- $activities['like'][] = $user;
- break;
- case Activity::DISLIKE:
- $activities['dislike'][] = $user;
- break;
- case Activity::ATTEND:
- $activities['attendyes'][] = $user;
- break;
- case Activity::ATTENDNO:
- $activities['attendno'][] = $user;
- break;
- case Activity::ATTENDMAYBE:
- $activities['attendmaybe'][] = $user;
- break;
- case Activity::ANNOUNCE:
- $activities['announce'][] = $user;
- break;
- default:
- break;
- }
- }
-
- DBA::close($ret);
-
- if ($type == "xml") {
- $xml_activities = [];
- foreach ($activities as $k => $v) {
- // change xml element from "like" to "friendica:like"
- $xml_activities["friendica:".$k] = $v;
- // add user data into xml output
- $k_user = 0;
- foreach ($v as $user) {
- $xml_activities["friendica:".$k][$k_user++.":user"] = $user;
- }
- }
- $activities = $xml_activities;
- }
-
- return $activities;
-}
-
/**
*
* @param string $acl_string
throw new NotFoundException('Photo-related item not found.');
}
- $data['photo']['friendica_activities'] = api_format_items_activities($item, $type);
+ $data['photo']['friendica_activities'] = DI::friendicaActivities()->createFromUriId($item['uri-id'], $item['uid'], $type);
// retrieve comments on photo
$condition = ["`parent` = ? AND `uid` = ? AND `gravity` IN (?, ?)",
return ['success' => true, 'gid' => $gid, 'name' => $name, 'status' => $status, 'wrong users' => $errorusers];
}
-/**
- * Get data from $_POST or $_GET
- *
- * @param string $k
- * @return null
- */
-function requestdata($k)
-{
- if (!empty($_POST[$k])) {
- return $_POST[$k];
- }
- if (!empty($_GET[$k])) {
- return $_GET[$k];
- }
- return null;
-}
-
/**
* TWITTER API
*/
BaseApi::checkAllowedScope(BaseApi::SCOPE_READ);
$uid = BaseApi::getCurrentUserID();
- unset($_REQUEST['user_id']);
- unset($_GET['user_id']);
-
- unset($_REQUEST['screen_name']);
- unset($_GET['screen_name']);
-
$skip_status = $_REQUEST['skip_status'] ?? false;
$user_info = DI::twitterUser()->createFromUserId($uid, $skip_status)->toArray();
$_REQUEST['profile_uid'] = $uid;
$_REQUEST['api_source'] = true;
- $txt = requestdata('status') ?? '';
+ $txt = $_REQUEST['status'] ?? '';
if ((strpos($txt, '<') !== false) || (strpos($txt, '>') !== false)) {
$txt = HTML::toBBCodeVideo($txt);
$a = DI::app();
// convert $_POST array items to the form we use for web posts.
- if (requestdata('htmlstatus')) {
- $txt = requestdata('htmlstatus') ?? '';
+ if (!empty($_REQUEST['htmlstatus'])) {
+ $txt = $_REQUEST['htmlstatus'];
if ((strpos($txt, '<') !== false) || (strpos($txt, '>') !== false)) {
$txt = HTML::toBBCodeVideo($txt);
$_REQUEST['body'] = HTML::toBBCode($txt);
}
} else {
- $_REQUEST['body'] = requestdata('status');
+ $_REQUEST['body'] = $_REQUEST['status'] ?? null;
}
- $_REQUEST['title'] = requestdata('title');
+ $_REQUEST['title'] = $_REQUEST['title'] ?? null;
- $parent = requestdata('in_reply_to_status_id');
+ $parent = $_REQUEST['in_reply_to_status_id'] ?? null;
// Twidere sends "-1" if it is no reply ...
if ($parent == -1) {
$_REQUEST['parent_uri'] = $parent;
}
- if (requestdata('lat') && requestdata('long')) {
- $_REQUEST['coord'] = sprintf("%s %s", requestdata('lat'), requestdata('long'));
+ if (!empty($_REQUEST['lat']) && !empty($_REQUEST['long'])) {
+ $_REQUEST['coord'] = sprintf("%s %s", $_REQUEST['lat'], $_REQUEST['long']);
}
$_REQUEST['profile_uid'] = $uid;
}
}
- if (requestdata('media_ids')) {
- $ids = explode(',', requestdata('media_ids') ?? '');
+ if (!empty($_REQUEST['media_ids'])) {
+ $ids = explode(',', $_REQUEST['media_ids']);
} elseif (!empty($_FILES['media'])) {
// upload the image if we have one
$picture = wall_upload_post($a, false);
BaseApi::checkAllowedScope(BaseApi::SCOPE_READ);
$uid = BaseApi::getCurrentUserID();
- $user_info = DI::twitterUser()->createFromUserId($uid)->toArray();
-
- $condition = [
- 'author-id'=> $user_info['pid'],
- 'uid' => $uid,
- 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT],
- 'private' => [Item::PUBLIC, Item::UNLISTED]
- ];
-
- $item = Post::selectFirst(['uri-id', 'id'], $condition);
- if (!empty($item)) {
- $include_entities = strtolower(($_REQUEST['include_entities'] ?? 'false') == 'true');
- $user_info['status'] = DI::twitterStatus()->createFromUriId($item['uri-id'], $item['uid'], $include_entities)->toArray();
- }
+ $user_info = DI::twitterUser()->createFromUserId($uid, false)->toArray();
// "uid" is only needed for some internal stuff, so remove it from here
unset($user_info['uid']);
if (DBA::isResult($contacts)) {
$k = 0;
foreach ($contacts as $contact) {
- $user_info = DI::twitterUser()->createFromContactId($contact['id'], $uid)->toArray();
+ $user_info = DI::twitterUser()->createFromContactId($contact['id'], $uid, false)->toArray();
if ($type == 'xml') {
$userlist[$k++ . ':user'] = $user_info;
if (!empty($_REQUEST['user_id'])) {
foreach (explode(',', $_REQUEST['user_id']) as $cid) {
if (!empty($cid) && is_numeric($cid)) {
- $users[] = DI::twitterUser()->createFromContactId((int)$cid, $uid)->toArray();
+ $users[] = DI::twitterUser()->createFromContactId((int)$cid, $uid, false)->toArray();
}
}
}
BaseApi::checkAllowedScope(BaseApi::SCOPE_READ);
$uid = BaseApi::getCurrentUserID();
- unset($_REQUEST['user_id']);
- unset($_GET['user_id']);
-
- unset($_REQUEST['screen_name']);
- unset($_GET['screen_name']);
-
// get last network messages
// params
BaseApi::checkAllowedScope(BaseApi::SCOPE_READ);
$uid = BaseApi::getCurrentUserID();
- unset($_REQUEST['user_id']);
- unset($_GET['user_id']);
-
- unset($_REQUEST['screen_name']);
- unset($_GET['screen_name']);
-
// get last network messages
// params
$uid = BaseApi::getCurrentUserID();
// params
- $user_info = DI::twitterUser()->createFromUserId($uid)->toArray();
+ $user_info = DI::twitterUser()->createFromUserId($uid, true)->toArray();
$groups = DBA::select('group', [], ['deleted' => 0, 'uid' => $uid]);
BaseApi::checkAllowedScope(BaseApi::SCOPE_READ);
$uid = BaseApi::getCurrentUserID();
- unset($_REQUEST['user_id']);
- unset($_GET['user_id']);
-
- unset($_REQUEST['screen_name']);
- unset($_GET['screen_name']);
-
if (empty($_REQUEST['list_id'])) {
throw new BadRequestException('list_id not specified');
}
$ret = [];
foreach ($r as $cid) {
- $user = DI::twitterUser()->createFromContactId($cid['id'], $uid)->toArray();
+ $user = DI::twitterUser()->createFromContactId($cid['id'], $uid, false)->toArray();
// "uid" is only needed for some internal stuff, so remove it from here
unset($user['uid']);
return;
}
- $sender = DI::twitterUser()->createFromUserId($uid)->toArray();
+ $sender = DI::twitterUser()->createFromUserId($uid, true)->toArray();
$cid = BaseApi::getContactIDForSearchterm($_POST['screen_name'] ?? '', $_POST['user_id'] ?? 0, $uid);
if (empty($cid)) {
if ($id > -1) {
$mail = DBA::selectFirst('mail', [], ['id' => $id]);
- $ret = api_format_messages($mail, DI::twitterUser()->createFromContactId($cid, $uid)->toArray(), $sender);
+ $ret = api_format_messages($mail, DI::twitterUser()->createFromContactId($cid, $uid, true)->toArray(), $sender);
} else {
$ret = ["error" => $id];
}
$user_id = $_REQUEST['user_id'] ?? '';
$screen_name = $_REQUEST['screen_name'] ?? '';
- // caller user info
- unset($_REQUEST['user_id']);
- unset($_GET['user_id']);
-
- unset($_REQUEST['screen_name']);
- unset($_GET['screen_name']);
-
- $user_info = DI::twitterUser()->createFromUserId($uid)->toArray();
+ $user_info = DI::twitterUser()->createFromUserId($uid, true)->toArray();
$profile_url = $user_info["url"];
foreach ($r as $item) {
if ($box == "inbox" || $item['from-url'] != $profile_url) {
$recipient = $user_info;
- $sender = DI::twitterUser()->createFromContactId($item['contact-id'], $uid)->toArray();
+ $sender = DI::twitterUser()->createFromContactId($item['contact-id'], $uid, true)->toArray();
} elseif ($box == "sentbox" || $item['from-url'] == $profile_url) {
- $recipient = DI::twitterUser()->createFromContactId($item['contact-id'], $uid)->toArray();
+ $recipient = DI::twitterUser()->createFromContactId($item['contact-id'], $uid, true)->toArray();
$sender = $user_info;
}
BaseApi::checkAllowedScope(BaseApi::SCOPE_WRITE);
$uid = BaseApi::getCurrentUserID();
- $api_user = DI::twitterUser()->createFromUserId($uid)->toArray();
+ $api_user = DI::twitterUser()->createFromUserId($uid, true)->toArray();
if (!empty($_POST['name'])) {
DBA::update('profile', ['name' => $_POST['name']], ['uid' => $uid]);
$user_element = "users";
$k = 0;
foreach ($members as $member) {
- $user = DI::twitterUser()->createFromContactId($member['contact-id'], $uid)->toArray();
+ $user = DI::twitterUser()->createFromContactId($member['contact-id'], $uid, true)->toArray();
$users[$k++.":user"] = $user;
}
} else {
$user_element = "user";
foreach ($members as $member) {
- $user = DI::twitterUser()->createFromContactId($member['contact-id'], $uid)->toArray();
+ $user = DI::twitterUser()->createFromContactId($member['contact-id'], $uid, true)->toArray();
$users[] = $user;
}
}
'name' => $group['name'],
'id' => intval($gid),
'id_str' => (string) $gid,
- 'user' => DI::twitterUser()->createFromUserId($uid)->toArray()
+ 'user' => DI::twitterUser()->createFromUserId($uid, true)->toArray()
];
return DI::apiResponse()->formatData("lists", $type, ['lists' => $list]);
'name' => $success['name'],
'id' => intval($success['gid']),
'id_str' => (string) $success['gid'],
- 'user' => DI::twitterUser()->createFromUserId($uid)->toArray()
+ 'user' => DI::twitterUser()->createFromUserId($uid, true)->toArray()
];
return DI::apiResponse()->formatData("lists", $type, ['lists' => $grp]);
'name' => $name,
'id' => intval($gid),
'id_str' => (string) $gid,
- 'user' => DI::twitterUser()->createFromUserId($uid)->toArray()
+ 'user' => DI::twitterUser()->createFromUserId($uid, true)->toArray()
];
return DI::apiResponse()->formatData("lists", $type, ['lists' => $list]);
$uid = BaseApi::getCurrentUserID();
// params
- $user_info = DI::twitterUser()->createFromUserId($uid)->toArray();
+ $user_info = DI::twitterUser()->createFromUserId($uid, true)->toArray();
$searchstring = $_REQUEST['searchstring'] ?? '';
// error if no searchstring specified
foreach ($r as $item) {
if ($box == "inbox" || $item['from-url'] != $profile_url) {
$recipient = $user_info;
- $sender = DI::twitterUser()->createFromContactId($item['contact-id'], $uid)->toArray();
+ $sender = DI::twitterUser()->createFromContactId($item['contact-id'], $uid, true)->toArray();
} elseif ($box == "sentbox" || $item['from-url'] == $profile_url) {
- $recipient = DI::twitterUser()->createFromContactId($item['contact-id'], $uid)->toArray();
+ $recipient = DI::twitterUser()->createFromContactId($item['contact-id'], $uid, true)->toArray();
$sender = $user_info;
}