48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
#include "immichpathtraverser.h"
|
|
#include "logger.h"
|
|
|
|
ImmichPathTraverser::ImmichPathTraverser(const ImmichConfig &configIn)
|
|
: PathTraverser(""),
|
|
config(configIn),
|
|
client(configIn),
|
|
cache(configIn)
|
|
{
|
|
loadAssets();
|
|
}
|
|
|
|
ImmichPathTraverser::~ImmichPathTraverser() {}
|
|
|
|
void ImmichPathTraverser::loadAssets()
|
|
{
|
|
assetIds.clear();
|
|
assetNames.clear();
|
|
QVector<ImmichAsset> assets = client.fetchAssets();
|
|
for (const auto &asset : assets)
|
|
{
|
|
if (asset.id.isEmpty())
|
|
continue;
|
|
assetIds.append(asset.id);
|
|
assetNames.insert(asset.id, asset.originalFileName);
|
|
}
|
|
Log("Immich assets loaded: ", assetIds.size());
|
|
}
|
|
|
|
QStringList ImmichPathTraverser::getImages() const
|
|
{
|
|
return assetIds;
|
|
}
|
|
|
|
const std::string ImmichPathTraverser::getImagePath(const std::string image) const
|
|
{
|
|
QString assetId = QString::fromStdString(image);
|
|
QString name = assetNames.value(assetId);
|
|
QString path = cache.getCachedPath(assetId, name, client);
|
|
return path.toStdString();
|
|
}
|
|
|
|
ImageDisplayOptions ImmichPathTraverser::UpdateOptionsForImage(const std::string& filename, const ImageDisplayOptions& options) const
|
|
{
|
|
Q_UNUSED(filename);
|
|
return options;
|
|
}
|