Transmit the media type

This commit is contained in:
Michael 2023-08-09 23:13:37 +00:00
parent c0eac366fe
commit e004e20352

View file

@ -46,6 +46,7 @@ use Friendica\Model\Item;
use Friendica\Model\Post; use Friendica\Model\Post;
use Friendica\Core\Config\Util\ConfigFileManager; use Friendica\Core\Config\Util\ConfigFileManager;
use Friendica\Model\Photo; use Friendica\Model\Photo;
use Friendica\Util\Images;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack; use GuzzleHttp\HandlerStack;
use GuzzleHttp\Subscriber\Oauth\Oauth1; use GuzzleHttp\Subscriber\Oauth\Oauth1;
@ -219,7 +220,7 @@ function twitter_post_hook(array &$b)
} catch (\Throwable $th) { } catch (\Throwable $th) {
Logger::warning('Error while uploading image', ['image' => $image, 'code' => $th->getCode(), 'message' => $th->getMessage()]); Logger::warning('Error while uploading image', ['image' => $image, 'code' => $th->getCode(), 'message' => $th->getMessage()]);
Worker::defer(); Worker::defer();
break; return;
} }
} }
} }
@ -265,13 +266,17 @@ function twitter_upload_image(int $uid, array $image)
$photo = Photo::createPhotoForExternalResource($image['url']); $photo = Photo::createPhotoForExternalResource($image['url']);
} }
$picturedata = Photo::getImageForPhoto($photo);
$mimetype = $photo['type'] ?: Images::getMimeTypeByData($picturedata);
$parameters = [ $parameters = [
'name' => 'media_data', 'name' => 'media_data',
'contents' => base64_encode(Photo::getImageForPhoto($photo)) 'contents' => base64_encode($picturedata)
]; ];
Logger::info('Uploading', ['uid' => $uid, 'image' => $image]); Logger::info('Uploading', ['uid' => $uid, 'size' => strlen($parameters['contents']), 'image' => $image]);
$media = twitter_post($uid, 'https://upload.twitter.com/1.1/media/upload.json', 'multipart', [$parameters]); $media = twitter_post($uid, 'https://upload.twitter.com/1.1/media/upload.json?' . http_build_query(['media_type' => $mimetype]), 'multipart', [$parameters]);
if (isset($media->media_id_string)) { if (isset($media->media_id_string)) {
$media_id = $media->media_id_string; $media_id = $media->media_id_string;
@ -287,7 +292,7 @@ function twitter_upload_image(int $uid, array $image)
Logger::info('Metadata create', ['uid' => $uid, 'data' => $data, 'return' => $ret]); Logger::info('Metadata create', ['uid' => $uid, 'data' => $data, 'return' => $ret]);
} }
} else { } else {
Logger::error('Failed upload', ['uid' => $uid, 'image' => $image['url'], 'return' => $media]); Logger::error('Failed upload', ['uid' => $uid, 'size' => strlen($parameters['contents']), 'image' => $image['url'], 'return' => $media]);
throw new Exception('Failed upload of ' . $image['url']); throw new Exception('Failed upload of ' . $image['url']);
} }