diff src/gui/translate/anime.cc @ 90:c4bb49c2f6eb

config: improve handling of vars : )
author Paper <mrpapersonic@gmail.com>
date Tue, 31 Oct 2023 23:41:53 -0400
parents 9b2b41f83a5e
children f88eda79c60a
line wrap: on
line diff
--- a/src/gui/translate/anime.cc	Tue Oct 31 23:06:33 2023 -0400
+++ b/src/gui/translate/anime.cc	Tue Oct 31 23:41:53 2023 -0400
@@ -7,19 +7,18 @@
 
 std::string ToString(const Anime::ListStatus status) {
 	switch (status) {
-		case Anime::ListStatus::NOT_IN_LIST: return Strings::ToUtf8String(QCoreApplication::tr("Not in list"));
 		case Anime::ListStatus::CURRENT: return Strings::ToUtf8String(QCoreApplication::tr("Currently watching"));
 		case Anime::ListStatus::PLANNING: return Strings::ToUtf8String(QCoreApplication::tr("Plan to watch"));
 		case Anime::ListStatus::COMPLETED: return Strings::ToUtf8String(QCoreApplication::tr("Completed"));
 		case Anime::ListStatus::DROPPED: return Strings::ToUtf8String(QCoreApplication::tr("Dropped"));
 		case Anime::ListStatus::PAUSED: return Strings::ToUtf8String(QCoreApplication::tr("On hold"));
-		default: return "";
+		default:
+		case Anime::ListStatus::NOT_IN_LIST: return Strings::ToUtf8String(QCoreApplication::tr("Not in list"));
 	}
 }
 
 std::string ToString(const Anime::SeriesFormat format) {
 	switch (format) {
-		case Anime::SeriesFormat::UNKNOWN: return Strings::ToUtf8String(QCoreApplication::tr("Unknown"));
 		case Anime::SeriesFormat::TV: return Strings::ToUtf8String(QCoreApplication::tr("TV"));
 		case Anime::SeriesFormat::TV_SHORT: return Strings::ToUtf8String(QCoreApplication::tr("TV short"));
 		case Anime::SeriesFormat::OVA: return Strings::ToUtf8String(QCoreApplication::tr("OVA"));
@@ -27,31 +26,72 @@
 		case Anime::SeriesFormat::SPECIAL: return Strings::ToUtf8String(QCoreApplication::tr("Special"));
 		case Anime::SeriesFormat::ONA: return Strings::ToUtf8String(QCoreApplication::tr("ONA"));
 		case Anime::SeriesFormat::MUSIC: return Strings::ToUtf8String(QCoreApplication::tr("Music"));
-		default: return "";
+		default:
+		case Anime::SeriesFormat::UNKNOWN: return Strings::ToUtf8String(QCoreApplication::tr("Unknown"));
 	}
 }
 
 std::string ToString(const Anime::SeriesSeason season) {
 	switch (season) {
-		case Anime::SeriesSeason::UNKNOWN: return Strings::ToUtf8String(QCoreApplication::tr("Unknown"));
 		case Anime::SeriesSeason::WINTER: return Strings::ToUtf8String(QCoreApplication::tr("Winter"));
 		case Anime::SeriesSeason::SUMMER: return Strings::ToUtf8String(QCoreApplication::tr("Summer"));
 		case Anime::SeriesSeason::FALL: return Strings::ToUtf8String(QCoreApplication::tr("Fall"));
 		case Anime::SeriesSeason::SPRING: return Strings::ToUtf8String(QCoreApplication::tr("Spring"));
-		default: return "";
+		default:
+		case Anime::SeriesSeason::UNKNOWN: return Strings::ToUtf8String(QCoreApplication::tr("Unknown"));
 	}
 }
 
 std::string ToString(const Anime::SeriesStatus status) {
 	switch (status) {
-		case Anime::SeriesStatus::UNKNOWN: return Strings::ToUtf8String(QCoreApplication::tr("Unknown"));
 		case Anime::SeriesStatus::RELEASING: return Strings::ToUtf8String(QCoreApplication::tr("Currently airing"));
 		case Anime::SeriesStatus::FINISHED: return Strings::ToUtf8String(QCoreApplication::tr("Finished airing"));
 		case Anime::SeriesStatus::NOT_YET_RELEASED: return Strings::ToUtf8String(QCoreApplication::tr("Not yet aired"));
 		case Anime::SeriesStatus::CANCELLED: return Strings::ToUtf8String(QCoreApplication::tr("Cancelled"));
 		case Anime::SeriesStatus::HIATUS: return Strings::ToUtf8String(QCoreApplication::tr("On hiatus"));
-		default: return "";
+		default:
+		case Anime::SeriesStatus::UNKNOWN: return Strings::ToUtf8String(QCoreApplication::tr("Unknown"));
+	}
+}
+
+std::string ToString(const Anime::Services service) {
+	switch (service) {
+		case Anime::Services::ANILIST: return Strings::ToUtf8String(QCoreApplication::tr("AniList"));
+		default:
+		case Anime::Services::NONE:    return Strings::ToUtf8String(QCoreApplication::tr("None"));
 	}
 }
 
+Anime::Services ToService(const std::string& str) {
+	const std::unordered_map<std::string, Anime::Services> map = {
+	    {"None",    Anime::Services::NONE   },
+	    {"AniList", Anime::Services::ANILIST}
+	};
+
+	if (map.find(str) == map.end())
+		return Anime::Services::NONE;
+	return map.at(str);
+}
+
+std::string ToString(const Anime::TitleLanguage language) {
+	switch (language) {
+		case Anime::TitleLanguage::NATIVE:  return Strings::ToUtf8String(QCoreApplication::tr("Native"));
+		case Anime::TitleLanguage::ENGLISH: return Strings::ToUtf8String(QCoreApplication::tr("English"));
+		default:
+		case Anime::TitleLanguage::ROMAJI:  return Strings::ToUtf8String(QCoreApplication::tr("Romaji"));
+	}
+}
+
+Anime::TitleLanguage ToLanguage(const std::string& str) {
+	const std::unordered_map<std::string, Anime::TitleLanguage> map = {
+	    {"Romaji", Anime::TitleLanguage::ROMAJI},
+	    {"Native", Anime::TitleLanguage::NATIVE},
+	    {"English", Anime::TitleLanguage::ENGLISH}
+	};
+
+	if (map.find(str) == map.end())
+		return Anime::TitleLanguage::ROMAJI;
+	return map.at(str);
+}
+
 } // namespace Translate