From 82376e4f1714c3d0a1848e94c0097baf912b19e0 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 9 Mar 2023 06:37:02 +0000 Subject: [PATCH 1/2] Tumblr: Transmit multiple photos --- tumblr/tumblr.php | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php index fb844ffb..674d6e9e 100644 --- a/tumblr/tumblr.php +++ b/tumblr/tumblr.php @@ -15,8 +15,10 @@ use Friendica\Core\Logger; use Friendica\Core\Renderer; use Friendica\DI; use Friendica\Model\Item; +use Friendica\Model\Photo; use Friendica\Model\Post; use Friendica\Model\Tag; +use Friendica\Util\Network; function tumblr_install() { @@ -308,7 +310,6 @@ function tumblr_post_local(array &$b) function tumblr_send(array &$b) { - if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) { return; } @@ -321,7 +322,7 @@ function tumblr_send(array &$b) return; } - $b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], DI::contentItem()->addSharedPost($b)); + $b['body'] = BBCode::removeAttachment($b['body']); $oauth_token = DI::pConfig()->get($b['uid'], 'tumblr', 'oauth_token'); $oauth_token_secret = DI::pConfig()->get($b['uid'], 'tumblr', 'oauth_token_secret'); @@ -359,15 +360,21 @@ function tumblr_send(array &$b) $body = BBCode::removeShareInformation($b['body']); - if ($photo != false) { + if ($photo !== false) { $params['type'] = 'photo'; - if (!empty($body)) { - $params['caption'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS); - } elseif (!empty($params['caption'])) { - $params['caption'] = $media[$photo]['description']; + $params['caption'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS); + $params['data'] = []; + foreach ($media as $photo) { + if ($photo['type'] == Post\Media::IMAGE) { + if (Network::isLocalLink($photo['url']) && ($data = Photo::getResourceData($photo['url']))) { + $photo = Photo::selectFirst([], ["`resource-id` = ? AND `scale` > ?", $data['guid'], 0]); + if (!empty($photo)) { + $params['data'][] = Photo::getImageDataForPhoto($photo); + } + } + } } - $params['source'] = $media[$photo]['url']; - } elseif ($link != false) { + } elseif ($link !== false) { $params['type'] = 'link'; $params['title'] = $media[$link]['name']; $params['url'] = $media[$link]['url']; @@ -381,14 +388,12 @@ function tumblr_send(array &$b) } if (!empty($media[$link]['author-name'])) { $params['author'] = $media[$link]['author-name']; - } elseif (!empty($media[$link]['publisher-name'])) { - $params['author'] = $media[$link]['publisher-name']; } - } elseif ($audio != false) { + } elseif ($audio !== false) { $params['type'] = 'audio'; $params['external_url'] = $media[$audio]['url']; $params['caption'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS); - } elseif ($video != false) { + } elseif ($video !== false) { $params['type'] = 'video'; $params['embed'] = $media[$video]['url']; $params['caption'] = BBCode::convertForUriId($b['uri-id'], $body, BBCode::CONNECTORS); @@ -413,11 +418,11 @@ function tumblr_send(array &$b) $ret_code = $tum_oauth->http_code; if ($ret_code == 201) { - Logger::notice('tumblr_send: success'); + Logger::info('success', ['blog' => $tmbl_blog, 'params' => $params]); } elseif ($ret_code == 403) { - Logger::notice('tumblr_send: authentication failure'); + Logger::notice('authentication failure', ['blog' => $tmbl_blog, 'params' => $params]); } else { - Logger::notice('tumblr_send: general error', ['error' => $x]); + Logger::notice('general error', ['blog' => $tmbl_blog, 'params' => $params, 'error' => $x]); } } } From 888dec1593ab5206bd3053298152f1e0e6783ee3 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 9 Mar 2023 20:59:42 +0000 Subject: [PATCH 2/2] Remove media to avoid duplicated images --- tumblr/tumblr.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php index 674d6e9e..41512ff2 100644 --- a/tumblr/tumblr.php +++ b/tumblr/tumblr.php @@ -359,6 +359,7 @@ function tumblr_send(array &$b) ]; $body = BBCode::removeShareInformation($b['body']); + $body = Post\Media::removeFromEndOfBody($body); if ($photo !== false) { $params['type'] = 'photo';