diff --git a/TODO b/TODO index 42c48858..b0ce8da0 100644 --- a/TODO +++ b/TODO @@ -38,6 +38,7 @@ - "signal not exposed" problem if a user logout and login again. bad resource destruction? [admin/DB] - Do not make the update start time field active when update perdiod is "Never" + - refresh the audio/video view when the database directories have been updated [user/transcoding] - Prefered codecs for audio/video? diff --git a/metadata/AvFormat.cpp b/metadata/AvFormat.cpp index 6c35b664..00c28b31 100644 --- a/metadata/AvFormat.cpp +++ b/metadata/AvFormat.cpp @@ -99,11 +99,11 @@ AvFormat::parse(const boost::filesystem::path& p, Items& items) for (it = metadata.begin(); it != metadata.end(); ++it) { if (boost::iequals(it->first, "artist")) - items.insert( std::make_pair(MetaData::Artist, string_to_utf8(it->second)) ); + items.insert( std::make_pair(MetaData::Artist, string_trim( string_to_utf8(it->second)) )); else if (boost::iequals(it->first, "album")) - items.insert( std::make_pair(MetaData::Album, string_to_utf8(it->second) )); + items.insert( std::make_pair(MetaData::Album, string_trim( string_to_utf8(it->second)) )); else if (boost::iequals(it->first, "title")) - items.insert( std::make_pair(MetaData::Title, string_to_utf8(it->second) )); + items.insert( std::make_pair(MetaData::Title, string_trim( string_to_utf8(it->second)) )); else if (boost::iequals(it->first, "track")) { std::size_t number; if (readAs(it->second, number)) diff --git a/metadata/Utils.hpp b/metadata/Utils.hpp index 045399c8..c5c217dc 100644 --- a/metadata/Utils.hpp +++ b/metadata/Utils.hpp @@ -20,6 +20,23 @@ static inline bool readAs(const std::string& str, T& data) return iss >> data; } + + +std::string +static inline string_trim(const std::string& str, + const std::string& whitespace = " \t") +{ + const auto strBegin = str.find_first_not_of(whitespace); + if (strBegin == std::string::npos) + return ""; // no content + + const auto strEnd = str.find_last_not_of(whitespace); + const auto strRange = strEnd - strBegin + 1; + + return str.substr(strBegin, strRange); +} + + std::string static inline string_to_utf8(const std::string& str) {