]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Api/Twitter/Statuses/Update.php
Reenable Twitter/Statuses tests
[friendica.git] / src / Module / Api / Twitter / Statuses / Update.php
index bc6a4ff188697b3b76c44a8bae2ec747bce627b6..18cb932f80bc74966bd4355bc59dc6c943149be0 100644 (file)
@@ -24,8 +24,6 @@ namespace Friendica\Module\Api\Twitter\Statuses;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
 use Friendica\Content\Text\Markdown;
-use Friendica\Core\Logger;
-use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
@@ -43,7 +41,7 @@ use HTMLPurifier_Config;
  * Updates the user’s current status.
  *
  * @see https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update
-*/
+ */
 class Update extends BaseApi
 {
        public function post(array $request = [], array $post = [])
@@ -58,7 +56,7 @@ class Update extends BaseApi
                        'in_reply_to_status_id' => 0,
                        'lat'                   => 0,
                        'long'                  => 0,
-                       'media_ids'             => [],
+                       'media_ids'             => '',
                        'source'                => '',
                        'include_entities'      => false,
                ], $request);
@@ -72,7 +70,7 @@ class Update extends BaseApi
                        $config->set('Cache.DefinitionImpl', null);
 
                        $purifier = new HTMLPurifier($config);
-                       $body = $purifier->purify($body);
+                       $body     = $purifier->purify($body);
 
                        $body = HTML::toBBCode($request['htmlstatus']);
                } else {
@@ -85,11 +83,12 @@ class Update extends BaseApi
                        return BBCode::expandTags($body);
                });
 
-               $item = [];
+               $item               = [];
                $item['uid']        = $uid;
                $item['verb']       = Activity::POST;
                $item['contact-id'] = $owner['id'];
-               $item['author-id']  = $item['owner-id'] = Contact::getPublicIdByUserId($uid);
+               $item['author-id']  = Contact::getPublicIdByUserId($uid);
+               $item['owner-id']   = $item['author-id'];
                $item['title']      = $request['title'];
                $item['body']       = $body;
                $item['app']        = $request['source'];
@@ -117,6 +116,7 @@ class Update extends BaseApi
 
                if ($request['in_reply_to_status_id']) {
                        $parent = Post::selectFirst(['uri'], ['id' => $request['in_reply_to_status_id'], 'uid' => [0, $uid]]);
+
                        $item['thr-parent']  = $parent['uri'];
                        $item['gravity']     = GRAVITY_COMMENT;
                        $item['object-type'] = Activity\ObjectType::COMMENT;
@@ -127,9 +127,9 @@ class Update extends BaseApi
                        $item['object-type'] = Activity\ObjectType::NOTE;
                }
 
-               $ids = $request['media_ids'];
-
-               if (!empty($_FILES['media'])) {
+               if (!empty($_REQUEST['media_ids'])) {
+                       $ids = explode(',', $_REQUEST['media_ids']);
+               } elseif (!empty($_FILES['media'])) {
                        // upload the image if we have one
                        $picture = Photo::upload($uid, $_FILES['media']);
                        if (!empty($picture)) {
@@ -154,20 +154,23 @@ class Update extends BaseApi
                                Photo::setPermissionForRessource($media[0]['resource-id'], $uid, $item['allow_cid'], $item['allow_gid'], $item['deny_cid'], $item['deny_gid']);
 
                                $ressources[] = $media[0]['resource-id'];
-                               $phototypes = Images::supportedTypes();
-                               $ext = $phototypes[$media[0]['type']];
-
-                               $attachment = ['type' => Post\Media::IMAGE, 'mimetype' => $media[0]['type'],
-                                       'url' => DI::baseUrl() . '/photo/' . $media[0]['resource-id'] . '-' . $media[0]['scale'] . '.' . $ext,
-                                       'size' => $media[0]['datasize'],
-                                       'name' => $media[0]['filename'] ?: $media[0]['resource-id'],
+                               $phototypes   = Images::supportedTypes();
+                               $ext          = $phototypes[$media[0]['type']];
+
+                               $attachment = [
+                                       'type'        => Post\Media::IMAGE,
+                                       'mimetype'    => $media[0]['type'],
+                                       'url'         => DI::baseUrl() . '/photo/' . $media[0]['resource-id'] . '-' . $media[0]['scale'] . '.' . $ext,
+                                       'size'        => $media[0]['datasize'],
+                                       'name'        => $media[0]['filename'] ?: $media[0]['resource-id'],
                                        'description' => $media[0]['desc'] ?? '',
-                                       'width' => $media[0]['width'],
-                                       'height' => $media[0]['height']];
+                                       'width'       => $media[0]['width'],
+                                       'height'      => $media[0]['height']
+                               ];
 
                                if (count($media) > 1) {
-                                       $attachment['preview'] = DI::baseUrl() . '/photo/' . $media[1]['resource-id'] . '-' . $media[1]['scale'] . '.' . $ext;
-                                       $attachment['preview-width'] = $media[1]['width'];
+                                       $attachment['preview']        = DI::baseUrl() . '/photo/' . $media[1]['resource-id'] . '-' . $media[1]['scale'] . '.' . $ext;
+                                       $attachment['preview-width']  = $media[1]['width'];
                                        $attachment['preview-height'] = $media[1]['height'];
                                }
                                $item['attachments'][] = $attachment;
@@ -181,6 +184,7 @@ class Update extends BaseApi
                                // output the post that we just posted.
                                $status_info = DI::twitterStatus()->createFromUriId($item['uri-id'], $uid, $request['include_entities'])->toArray();
                                DI::apiResponse()->exit('status', ['status' => $status_info], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
+                               return;
                        }
                }
                DI::mstdnError()->InternalError();