From 8df38df5cb394e7631b5631e98340989a48afd76 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Thu, 14 Jan 2016 22:05:03 +0100 Subject: [PATCH] Get uploaded media_ids via File::getByID() Filters out failed ones... --- actions/apistatusesupdate.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/actions/apistatusesupdate.php b/actions/apistatusesupdate.php index 0dc6a72279..8f381534c7 100644 --- a/actions/apistatusesupdate.php +++ b/actions/apistatusesupdate.php @@ -173,10 +173,11 @@ class ApiStatusesUpdateAction extends ApiAuthAction if (preg_match_all('/\d+/', $this->trimmed('media_ids'), $matches) !== false) { foreach (array_unique($matches[0]) as $match) { try { - $this->media_ids[$match] = true; // = File::getByID($match); - } catch (Exception $e) { - // Either $match was 0 (EmptyIdException) or File was not found (NoResultException) - // Do we abort and report to the client? + $this->media_ids[$match] = File::getByID($match); + } catch (EmptyIdException $e) { + // got a zero from the client, at least Twidere does this on occasion + } catch (NoResultException $e) { + // File ID was not found. Do we abort and report to the client? } } } @@ -261,6 +262,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction foreach(array_keys($this->media_ids) as $media_id) { // FIXME: Validation on this... Worst case is that if someone sends bad media_ids then // we'll fill the notice with non-working links, so no real harm, done, but let's fix. + // The File objects are in the array, so we could get URLs from them directly. $this->status .= ' ' . common_local_url('attachment', array('attachment' => $media_id)); }