Ejemplo n.º 1
0
        public static Title Localize(this IEnumerable <Title> titles, TitlePreferenceType preference, string metadataLanguage)
        {
            var titlesList = titles as IList <Title> ?? titles.ToList();

            if (preference == TitlePreferenceType.Localized)
            {
                // prefer an official title, else look for a synonym
                var localized = titlesList.FirstOrDefault(t => t.Language == metadataLanguage && t.Type == "main") ??
                                titlesList.FirstOrDefault(t => t.Language == metadataLanguage && t.Type == "official") ??
                                titlesList.FirstOrDefault(t => t.Language == metadataLanguage && t.Type == "synonym");

                if (localized != null)
                {
                    return(localized);
                }
            }

            if (preference == TitlePreferenceType.Japanese)
            {
                // prefer an official title, else look for a synonym
                var japanese = titlesList.FirstOrDefault(t => t.Language == "ja" && t.Type == "main") ??
                               titlesList.FirstOrDefault(t => t.Language == "ja" && t.Type == "official") ??
                               titlesList.FirstOrDefault(t => t.Language == "ja" && t.Type == "synonym");

                if (japanese != null)
                {
                    return(japanese);
                }
            }

            // return the main title (romaji)
            return(titlesList.FirstOrDefault(t => t.Language == "x-jat" && t.Type == "main") ??
                   titlesList.FirstOrDefault(t => t.Type == "main") ??
                   titlesList.FirstOrDefault());
        }
Ejemplo n.º 2
0
        /// <summary>
        ///  WebContent API call to select a prefence title
        /// </summary>
        /// <param name="WebContent"></param>
        /// <param name="preference"></param>
        /// <param name="language"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        private async Task <string> SelectName(string WebContent, TitlePreferenceType preference, string language, CancellationToken cancellationToken)
        {
            if (preference == TitlePreferenceType.Localized && language == "en")
            {
                return(await Get_title("en", WebContent));
            }
            if (preference == TitlePreferenceType.Japanese)
            {
                return(await Get_title("jap", WebContent));
            }

            return(await Get_title("jap_r", WebContent));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// API call to select the lang
        /// </summary>
        /// <param name="WebContent"></param>
        /// <param name="preference"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        private string SelectName(RootObject WebContent, TitlePreferenceType preference, string language)
        {
            if (preference == TitlePreferenceType.Localized && language == "en")
            {
                return(WebContent.data.Media.title.english);
            }
            if (preference == TitlePreferenceType.Japanese)
            {
                return(WebContent.data.Media.title.native);
            }

            return(WebContent.data.Media.title.romaji);
        }
Ejemplo n.º 4
0
        private string SelectName(Anime anime, TitlePreferenceType preference, string language)
        {
            if (preference == TitlePreferenceType.Localized && language == "en")
            {
                return(anime.title_english);
            }

            if (preference == TitlePreferenceType.Japanese)
            {
                return(anime.title_japanese);
            }

            return(anime.title_romaji);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Get the title in configured language
        /// </summary>
        /// <param name="language"></param>
        /// <returns></returns>
        public string GetPreferredTitle(TitlePreferenceType preference, string language)
        {
            if (preference == TitlePreferenceType.Localized)
            {
                if (language == "en")
                {
                    return(this.title.english);
                }
                if (language == "jap")
                {
                    return(this.title.native);
                }
            }
            if (preference == TitlePreferenceType.Japanese)
            {
                return(this.title.native);
            }

            return(this.title.romaji);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Get the right name lang
        /// </summary>
        /// <param name="WebContent"></param>
        /// <param name="preference"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        private static async Task <string> SelectName(string WebContent, TitlePreferenceType preference, string language)
        {
            if (preference == TitlePreferenceType.Localized && language == "en")
            {
                return(await Get_title("en", WebContent));
            }
            if (preference == TitlePreferenceType.Localized && language == "de")
            {
                return(await Get_title("de", WebContent));
            }
            if (preference == TitlePreferenceType.Localized && language == "ger")
            {
                return(await Get_title("de", WebContent));
            }
            if (preference == TitlePreferenceType.Japanese)
            {
                return(await Get_title("jap", WebContent));
            }

            return(await Get_title("jap_r", WebContent));
        }