view src/gui/translate/anilist.cc @ 266:1a6a5d3a94cd

dep/animone: make bsd.cc and x11.cc actually work apparently I broke these, and even now the x11 code *still* doesn't want to work correctly (at least on FreeBSD). half of the PID response codes are just 0 or the PID for the X server itself... wtf? maybe dwm just doesn't support the XRes extension, or I'm just stupid. i don't know.
author Paper <paper@paper.us.eu.org>
date Thu, 11 Apr 2024 22:05:41 -0400
parents 9613d72b097e
children 657fda1b9cac
line wrap: on
line source

#include "gui/translate/anilist.h"
#include <unordered_map>

namespace Translate {
namespace AniList {

Anime::SeriesStatus ToSeriesStatus(std::string status) {
	static const std::unordered_map<std::string, Anime::SeriesStatus> map = {
	    {"FINISHED",         Anime::SeriesStatus::FINISHED        },
	    {"RELEASING",        Anime::SeriesStatus::RELEASING       },
	    {"NOT_YET_RELEASED", Anime::SeriesStatus::NOT_YET_RELEASED},
	    {"CANCELLED",        Anime::SeriesStatus::CANCELLED       },
	    {"HIATUS",           Anime::SeriesStatus::HIATUS          }
    };

	if (map.find(status) == map.end())
		return Anime::SeriesStatus::UNKNOWN;
	return map.at(status);
}

Anime::SeriesSeason ToSeriesSeason(std::string season) {
	static const std::unordered_map<std::string, Anime::SeriesSeason> map = {
	    {"WINTER", Anime::SeriesSeason::WINTER},
	    {"SPRING", Anime::SeriesSeason::SPRING},
	    {"SUMMER", Anime::SeriesSeason::SUMMER},
	    {"FALL",   Anime::SeriesSeason::FALL  }
    };

	if (map.find(season) == map.end())
		return Anime::SeriesSeason::UNKNOWN;
	return map.at(season);
}

Anime::SeriesFormat ToSeriesFormat(std::string format) {
	static const std::unordered_map<std::string, enum Anime::SeriesFormat> map = {
	    {"TV",       Anime::SeriesFormat::TV      },
        {"TV_SHORT", Anime::SeriesFormat::TV_SHORT},
	    {"MOVIE",    Anime::SeriesFormat::MOVIE   },
        {"SPECIAL",  Anime::SeriesFormat::SPECIAL },
	    {"OVA",      Anime::SeriesFormat::OVA     },
        {"ONA",      Anime::SeriesFormat::ONA     },
	    {"MUSIC",    Anime::SeriesFormat::MUSIC   },
        {"MANGA",    Anime::SeriesFormat::MANGA   },
	    {"NOVEL",    Anime::SeriesFormat::NOVEL   },
        {"ONE_SHOT", Anime::SeriesFormat::ONE_SHOT}
    };

	if (map.find(format) == map.end())
		return Anime::SeriesFormat::UNKNOWN;
	return map.at(format);
}

} // namespace AniList
} // namespace Translate