diff --git a/approot/messages.xml b/approot/messages.xml
index 070c40f2..58700fbd 100644
--- a/approot/messages.xml
+++ b/approot/messages.xml
@@ -101,11 +101,11 @@
Cannot get track duration
-Unable to read the image at index {1}
+Unable to read the image at index {1}: {2}
Cannot parse artist info file
Cannot parse audio file
Cannot read file ({1})
-Cannot parse image file
+Cannot parse image file: {1}
Cannot parse lyrics file
Cannot parse playlist file
Compact the database. Caution: this may take a while and will block the whole application during the compact step!
diff --git a/approot/messages_es.xml b/approot/messages_es.xml
index 0bce3785..a0b1bdc5 100644
--- a/approot/messages_es.xml
+++ b/approot/messages_es.xml
@@ -101,11 +101,11 @@
No ha sido posible obtener la duración de la pista
-No se puede leer la imagen en el índice {1}
+No se puede leer la imagen en el índice {1} : {2}
No ha sido posible analizar el fichero de información sobre el artista
No ha sido posible analizar el fichero de audio
No ha sido posible leer el fichero ({1})
-No ha sido posible analizar del fichero de imagen
+No ha sido posible analizar del fichero de imagen : {1}
No ha sido posible analizar el fichero de letras
No ha sido posible analizar el fichero de la lista de distribución
Compactar la base de datos. ¡Atención!: esta operación puede tardar bastante tiempo y la aplicación se bloqueará mientras dura la operación de compactación
diff --git a/approot/messages_fr.xml b/approot/messages_fr.xml
index c8c654b0..5ed3d408 100644
--- a/approot/messages_fr.xml
+++ b/approot/messages_fr.xml
@@ -101,11 +101,11 @@
Impossible de récupérer la durée de la piste
-Impossible de lire l'image à l'indice {1}
+Impossible de lire l'image à l'indice {1} : {2}
Impossible d'analyser le fichier d'informations sur l'artiste
Impossible d'analyser le fichier audio
Impossible de lire le fichier ({1})
-Impossible d'analyser le fichier image
+Impossible d'analyser le fichier image : {1}
Impossible d'analyser le fichier de paroles
Impossible d'analyser le fichier de liste de lecture
Compacter la base de données. Attention : cette opération peut prendre du temps et va vérouiller l'application pendant toute l'étape de compactage!
diff --git a/approot/messages_it.xml b/approot/messages_it.xml
index 42a157a5..6fadb396 100644
--- a/approot/messages_it.xml
+++ b/approot/messages_it.xml
@@ -101,11 +101,11 @@
Non sono stato in grado di determinare la durata della traccia
-Impossibile leggere l'immagine all'indice {1}
+Impossibile leggere l'immagine all'indice {1} : {2}
Impossibile analizzare il file delle informazioni sull'artista
Impossibile analizzare il file audio
Non in grado di leggere il file ({1})
-Impossibile analizzare il file immagine
+Impossibile analizzare il file immagine : {1}
Impossibile analizzare il file dei testi
Impossibile analizzare il file della playlist
Compatta il database. Attenzione: ciò potrebbe richiedere del tempo e bloccherà l'intera applicazione durante il passaggio di compattazione!
diff --git a/approot/messages_pl.xml b/approot/messages_pl.xml
index 5adcdb87..1f1b811c 100644
--- a/approot/messages_pl.xml
+++ b/approot/messages_pl.xml
@@ -102,11 +102,11 @@
Nie udało się ustalić długości ścieżki
-Nie można odczytać obrazu pod indeksem {1}
+Nie można odczytać obrazu pod indeksem {1} : {2}
Nie można przetworzyć pliku z informacjami o artyście"
Nie można przeanalizować pliku audio
Nie udało się odczytać pliku ({1})
-Nie można przeanalizować pliku obrazu
+Nie można przeanalizować pliku obrazu : {1}
Nie można przetworzyć pliku z tekstem
Nie można przeanalizować pliku playlisty
Sprasuj bazę danych. Uwaga: może to trochę zająć, a cała aplikacja będzie w tym czasie zablokowana!
diff --git a/src/libs/image/impl/graphicsmagick/RawImage.cpp b/src/libs/image/impl/graphicsmagick/RawImage.cpp
index eec24463..8dff9e4d 100644
--- a/src/libs/image/impl/graphicsmagick/RawImage.cpp
+++ b/src/libs/image/impl/graphicsmagick/RawImage.cpp
@@ -41,12 +41,12 @@ namespace lms::image::GraphicsMagick
catch (Magick::Warning& e)
{
LMS_LOG(COVER, WARNING, "Caught Magick warning: " << e.what());
- throw Exception{ std::string{ "Magick read warning: " } + e.what() };
+ throw Exception{ std::string{ "Read warning: " } + e.what() };
}
catch (Magick::Exception& e)
{
LMS_LOG(COVER, ERROR, "Caught Magick exception: " << e.what());
- throw Exception{ std::string{ "Magick read error: " } + e.what() };
+ throw Exception{ std::string{ "Read error: " } + e.what() };
}
}
@@ -63,12 +63,12 @@ namespace lms::image::GraphicsMagick
catch (Magick::Warning& e)
{
LMS_LOG(COVER, WARNING, "Caught Magick warning: " << e.what());
- throw Exception{ std::string{ "Magick read warning: " } + e.what() };
+ throw Exception{ std::string{ "Read warning: " } + e.what() };
}
catch (Magick::Exception& e)
{
LMS_LOG(COVER, ERROR, "Caught Magick exception: " << e.what());
- throw Exception{ std::string{ "Magick read error: " } + e.what() };
+ throw Exception{ std::string{ "Read error: " } + e.what() };
}
}
@@ -93,7 +93,7 @@ namespace lms::image::GraphicsMagick
catch (Magick::Exception& e)
{
LMS_LOG(COVER, ERROR, "Caught Magick exception while resizing: " << e.what());
- throw Exception{ std::string{ "Magick resize error: " } + e.what() };
+ throw Exception{ std::string{ "Resize error: " } + e.what() };
}
}
diff --git a/src/libs/image/impl/stb/Exception.cpp b/src/libs/image/impl/stb/Exception.cpp
index 4554e39e..91cfb11c 100644
--- a/src/libs/image/impl/stb/Exception.cpp
+++ b/src/libs/image/impl/stb/Exception.cpp
@@ -23,14 +23,17 @@
namespace lms::image
{
- StbiException::StbiException(std::string_view desc)
- : Exception{ std::string{ desc } + ": " + getLastFailureReason() }
+ namespace
{
- }
+ std::string getLastStbiFailureReason()
+ {
+ const char* failureReason{ ::stbi_failure_reason() };
+ return failureReason ? failureReason : "unknown reason";
+ }
+ } // namespace
- std::string StbiException::getLastFailureReason()
+ StbiException::StbiException(std::string_view desc)
+ : Exception{ std::string{ desc } + ": " + getLastStbiFailureReason() }
{
- const char* failureReason{ ::stbi_failure_reason() };
- return failureReason ? failureReason : "unknown reason";
}
} // namespace lms::image
\ No newline at end of file
diff --git a/src/libs/image/impl/stb/Exception.hpp b/src/libs/image/impl/stb/Exception.hpp
index 0de16d49..01718c16 100644
--- a/src/libs/image/impl/stb/Exception.hpp
+++ b/src/libs/image/impl/stb/Exception.hpp
@@ -29,8 +29,5 @@ namespace lms::image
{
public:
StbiException(std::string_view desc);
-
- private:
- static std::string getLastFailureReason();
};
} // namespace lms::image
\ No newline at end of file
diff --git a/src/libs/services/scanner/impl/scanners/AudioFileScanOperation.cpp b/src/libs/services/scanner/impl/scanners/AudioFileScanOperation.cpp
index 02671a43..284c713e 100644
--- a/src/libs/services/scanner/impl/scanners/AudioFileScanOperation.cpp
+++ b/src/libs/services/scanner/impl/scanners/AudioFileScanOperation.cpp
@@ -526,7 +526,7 @@ namespace lms::scanner
}
catch (const image::Exception& e)
{
- addError(getFilePath(), index);
+ addError(getFilePath(), index, e.what());
}
index++;
diff --git a/src/libs/services/scanner/impl/scanners/ImageFileScanner.cpp b/src/libs/services/scanner/impl/scanners/ImageFileScanner.cpp
index b84e4672..166a43fd 100644
--- a/src/libs/services/scanner/impl/scanners/ImageFileScanner.cpp
+++ b/src/libs/services/scanner/impl/scanners/ImageFileScanner.cpp
@@ -62,7 +62,7 @@ namespace lms::scanner
catch (const image::Exception& e)
{
_parsedImageProperties.reset();
- addError(getFilePath());
+ addError(getFilePath(), e.what());
}
}
diff --git a/src/libs/services/scanner/impl/steps/ScanErrorLogger.cpp b/src/libs/services/scanner/impl/steps/ScanErrorLogger.cpp
index c42b8523..c82aa81e 100644
--- a/src/libs/services/scanner/impl/steps/ScanErrorLogger.cpp
+++ b/src/libs/services/scanner/impl/steps/ScanErrorLogger.cpp
@@ -43,7 +43,7 @@ namespace lms::scanner
void ScanErrorLogger::visit(const scanner::EmbeddedImageScanError& error)
{
- LMS_LOG(DBUPDATER, ERROR, "Failed to parse image in track file " << error.path << " at index " << error.index);
+ LMS_LOG(DBUPDATER, ERROR, "Failed to parse image in track file " << error.path << " at index " << error.index << ": " << error.errorMsg);
}
void ScanErrorLogger::visit(const scanner::NoAudioTrackFoundError& error)
@@ -68,7 +68,7 @@ namespace lms::scanner
void ScanErrorLogger::visit(const scanner::ImageFileScanError& error)
{
- LMS_LOG(DBUPDATER, ERROR, "Failed to read image file " << error.path);
+ LMS_LOG(DBUPDATER, ERROR, "Failed to read image file " << error.path << ": " << error.errorMsg);
}
void ScanErrorLogger::visit(const scanner::LyricsFileScanError& error)
diff --git a/src/libs/services/scanner/include/services/scanner/ScanErrors.hpp b/src/libs/services/scanner/include/services/scanner/ScanErrors.hpp
index b57c44f6..abf4ee14 100644
--- a/src/libs/services/scanner/include/services/scanner/ScanErrors.hpp
+++ b/src/libs/services/scanner/include/services/scanner/ScanErrors.hpp
@@ -95,9 +95,12 @@ namespace lms::scanner
struct EmbeddedImageScanError : public AudioFileScanError
{
- EmbeddedImageScanError(const std::filesystem::path& p, unsigned i)
+ EmbeddedImageScanError(const std::filesystem::path& p, unsigned i, std::string_view e)
: AudioFileScanError{ p }
- , index{ i } {}
+ , index{ i }
+ , errorMsg{ e }
+ {
+ }
void accept(ScanErrorVisitor& visitor) const override
{
@@ -105,6 +108,7 @@ namespace lms::scanner
}
unsigned index;
+ std::string errorMsg;
};
struct NoAudioTrackFoundError : public AudioFileScanError
@@ -149,12 +153,16 @@ namespace lms::scanner
struct ImageFileScanError : public ScanError
{
- using ScanError::ScanError;
+ ImageFileScanError(const std::filesystem::path& p, std::string_view e)
+ : ScanError{ p }
+ , errorMsg{ e } {}
void accept(ScanErrorVisitor& visitor) const override
{
visitor.visit(*this);
}
+
+ std::string errorMsg;
};
struct LyricsFileScanError : public ScanError
diff --git a/src/lms/ui/admin/ScannerReportResource.cpp b/src/lms/ui/admin/ScannerReportResource.cpp
index 5279d1a8..da29fc53 100644
--- a/src/lms/ui/admin/ScannerReportResource.cpp
+++ b/src/lms/ui/admin/ScannerReportResource.cpp
@@ -55,7 +55,7 @@ namespace lms::ui
}
void visit(const scanner::EmbeddedImageScanError& error) override
{
- _os << error.path << ": " << Wt::WString::tr("Lms.Admin.ScannerController.bad-embedded-image").arg(error.index).toUTF8() << '\n';
+ _os << error.path << ": " << Wt::WString::tr("Lms.Admin.ScannerController.bad-embedded-image").arg(error.index).arg(Wt::WString::fromUTF8(error.errorMsg)).toUTF8() << '\n';
}
void visit(const scanner::NoAudioTrackFoundError& error) override
{
@@ -75,7 +75,7 @@ namespace lms::ui
}
void visit(const scanner::ImageFileScanError& error) override
{
- _os << error.path << ": " << Wt::WString::tr("Lms.Admin.ScannerController.cannot-read-image-file").toUTF8() << '\n';
+ _os << error.path << ": " << Wt::WString::tr("Lms.Admin.ScannerController.cannot-read-image-file").arg(Wt::WString::fromUTF8(error.errorMsg)).toUTF8() << '\n';
}
void visit(const scanner::LyricsFileScanError& error) override
{