summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@jolla.com>2026-02-12 16:06:03 +0100
committerAndrew Branson <andrew.branson@jolla.com>2026-02-12 16:06:03 +0100
commit1d26869ade9165b65f6f5c45bbd2f8d6708a6ddc (patch)
treec0f5bac164dffd8ba06c243aa22764661b8efc9f
parent7e10e89d72cc3a2b5eb314aa76c340793e5e26dd (diff)
Support video uploads in Mastodon plugin
-rw-r--r--README.md2
-rw-r--r--transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp1
-rw-r--r--transferengine-plugins/mastodontransferplugin/mastodonuploader.cpp10
3 files changed, 8 insertions, 5 deletions
diff --git a/README.md b/README.md
index cfb2db2..6ce2dfb 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@ Sailfish OS account integration for Mastodon.
- `mastodontransferplugin/`: media upload + status creation.
- Single share UI entry: `MastodonSharePost.qml` handles both media and text/link posting.
- Supports:
- - image sharing (`image/jpeg`, `image/png`)
+ - media sharing (`image/jpeg`, `image/png`, `video/mp4`)
- link/text sharing (`text/x-url`, `text/plain`) with title/link extraction from share resources.
### `icons/`
diff --git a/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp b/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp
index a9cc1b7..d2fffc4 100644
--- a/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp
+++ b/transferengine-plugins/mastodonshareplugin/mastodonplugininfo.cpp
@@ -7,6 +7,7 @@ MastodonPluginInfo::MastodonPluginInfo()
{
m_capabilities << QLatin1String("image/jpeg")
<< QLatin1String("image/png")
+ << QLatin1String("video/mp4")
<< QLatin1String("text/x-url")
<< QLatin1String("text/plain");
diff --git a/transferengine-plugins/mastodontransferplugin/mastodonuploader.cpp b/transferengine-plugins/mastodontransferplugin/mastodonuploader.cpp
index 050df18..c025bdc 100644
--- a/transferengine-plugins/mastodontransferplugin/mastodonuploader.cpp
+++ b/transferengine-plugins/mastodontransferplugin/mastodonuploader.cpp
@@ -89,7 +89,8 @@ void MastodonUploader::startUploading()
}
const QString mimeType = mediaItem()->value(MediaItem::MimeType).toString();
- if (mimeType.startsWith(QLatin1String("image/"))) {
+ if (mimeType.startsWith(QLatin1String("image/"))
+ || mimeType.startsWith(QLatin1String("video/"))) {
postImage();
} else if (mimeType.contains(QLatin1String("text/plain"))
|| mimeType.contains(QLatin1String("text/x-url"))) {
@@ -154,7 +155,8 @@ void MastodonUploader::postImage()
QMimeDatabase db;
const QMimeType mime = db.mimeTypeForFile(sourceFile);
- const bool isJpeg = mime.name() == QLatin1String("image/jpeg");
+ const bool isImage = mediaItem()->value(MediaItem::MimeType).toString().startsWith(QLatin1String("image/"));
+ const bool isJpeg = isImage && mime.name() == QLatin1String("image/jpeg");
if (isJpeg && mediaItem()->value(MediaItem::MetadataStripped).toBool()) {
m_useTmpFile = true;
@@ -167,7 +169,7 @@ void MastodonUploader::postImage()
}
const qreal scale = mediaItem()->value(MediaItem::ScalePercent).toReal();
- if (0 < scale && scale < 1) {
+ if (isImage && 0 < scale && scale < 1) {
m_useTmpFile = true;
m_filePath = ImageOperation::scaleImage(sourceFile, scale, m_filePath);
if (m_filePath.isEmpty()) {
@@ -192,7 +194,7 @@ void MastodonUploader::postImage()
setStatus(MediaTransferInterface::TransferStarted);
} else {
setStatus(MediaTransferInterface::TransferInterrupted);
- qWarning() << Q_FUNC_INFO << "Failed to upload image";
+ qWarning() << Q_FUNC_INFO << "Failed to upload media";
}
}