improve handling of images from immich albums
This commit is contained in:
@@ -303,11 +303,16 @@ bool ImmichClient::extensionAllowed(const QString &filename) const
|
||||
}
|
||||
|
||||
bool ImmichClient::downloadAsset(const QString &assetId, QByteArray &data, QString &contentType)
|
||||
{
|
||||
return downloadAssetWithSize(assetId, QString::fromStdString(config.size), data, contentType);
|
||||
}
|
||||
|
||||
bool ImmichClient::downloadAssetWithSize(const QString &assetId, const QString &sizeOverride, QByteArray &data, QString &contentType)
|
||||
{
|
||||
if (!config.enabled)
|
||||
return false;
|
||||
|
||||
QString size = QString::fromStdString(config.size).trimmed().toLower();
|
||||
QString size = sizeOverride.trimmed().toLower();
|
||||
if (size.isEmpty())
|
||||
size = "fullsize";
|
||||
|
||||
@@ -479,15 +484,31 @@ QString ImmichAssetCache::getCachedPath(const QString &assetId, const QString &a
|
||||
if (detectedExt.isEmpty())
|
||||
{
|
||||
Log("Immich download not an image for asset: ", assetId.toStdString());
|
||||
QString skipName = assetId + "_unsupported.skip";
|
||||
QDir dir(cacheDirPath);
|
||||
QFile skipFile(dir.filePath(skipName));
|
||||
if (skipFile.open(QIODevice::WriteOnly))
|
||||
QByteArray fallbackData;
|
||||
QString fallbackType;
|
||||
if (client.downloadAssetWithSize(assetId, "preview", fallbackData, fallbackType))
|
||||
{
|
||||
skipFile.write("unsupported");
|
||||
skipFile.close();
|
||||
QString fallbackExt = DetectImageExtension(fallbackData);
|
||||
if (!fallbackExt.isEmpty())
|
||||
{
|
||||
Log("Immich fallback to preview succeeded for asset: ", assetId.toStdString());
|
||||
data = fallbackData;
|
||||
contentType = fallbackType;
|
||||
detectedExt = fallbackExt;
|
||||
}
|
||||
}
|
||||
if (detectedExt.isEmpty())
|
||||
{
|
||||
QString skipName = assetId + "_unsupported.skip";
|
||||
QDir dir(cacheDirPath);
|
||||
QFile skipFile(dir.filePath(skipName));
|
||||
if (skipFile.open(QIODevice::WriteOnly))
|
||||
{
|
||||
skipFile.write("unsupported");
|
||||
skipFile.close();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
QString safeName = sanitizeFileName(assetName);
|
||||
|
||||
Reference in New Issue
Block a user