view src/gui/translate/anilist.cc @ 118:39521c47c7a3

*: another huge megacommit, SORRY The torrents page works a lot better now Added the edit option to the anime list right click menu Vectorized currently playing files Available player and extensions are now loaded at runtime from files in (dotpath)/players.json and (dotpath)/extensions.json These paths are not permanent and will likely be moved to (dotpath)/recognition ... ... ...
author Paper <mrpapersonic@gmail.com>
date Tue, 07 Nov 2023 23:40:54 -0500
parents 9b2b41f83a5e
children 9613d72b097e
line wrap: on
line source

#include "gui/translate/anilist.h"

namespace Translate {
namespace AniList {

Anime::SeriesStatus ToSeriesStatus(std::string status) {
	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) {
	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) {
	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