Пример #1
0
        public static Anime AnimeCons(AnimeListEntry entry, Jikan jikan)
        {
            var anime = new Anime(entry);

            JikanDotNet.Anime _anime = jikan.GetAnime(anime.MalId).Result;
            return(anime);
        }
Пример #2
0
        public async Task GetAnimeList(CommandContext ctx, [RemainingText] string username)
        {
            var isShort = await IsTitleShort(username, ctx);

            if (isShort == true)
            {
                return;
            }

            IJikan jikan = new Jikan(true);

            UserProfile user = await jikan.GetUserProfile(username);

            var resultEmbed = new DiscordEmbedBuilder
            {
                Title       = $"`{user.Username}`'s anime list: https://myanimelist.net/animelist/{username}$",
                Description =
                    $"\n:blue_circle: `{user.AnimeStatistics.Completed.ToString()}` **Completed**" +
                    $"\n:green_circle: `{user.AnimeStatistics.Watching.ToString()}` **Watching**" +
                    $"\n:yellow_circle: `{user.AnimeStatistics.OnHold.ToString()}` **On Hold**" +
                    $"\n:red_circle: `{user.AnimeStatistics.Dropped.ToString()}` **Dropped**",
                Color = DiscordColor.Azure,
            };

            resultEmbed.AddField("Watch Time :clock9:", $"`{user.AnimeStatistics.DaysWatched.ToString()}` Days Watched");
            resultEmbed.WithFooter("source: MyAnimeList.net");

            await ctx.Channel.SendMessageAsync(embed : resultEmbed);
        }
Пример #3
0
        private static InsertSeiyuuHandler CreateHandler(SeiyuuMoeContext dbContext)
        {
            var scheduleConfiguration = ConfigurationReader.MalBgJobsScheduleConfiguration;

            var animeRepository     = new AnimeRepository(dbContext);
            var seiyuuRepository    = new SeiyuuRepository(dbContext);
            var characterRepository = new CharacterRepository(dbContext);
            var animeRoleRepository = new AnimeRoleRepository(dbContext);
            var seasonRepository    = new SeasonRepository(dbContext);

            var jikanUrl           = ConfigurationReader.JikanUrl;;
            var jikanConfiguration = new JikanClientConfiguration {
                Endpoint = jikanUrl, SuppressException = true
            };
            var jikanClient  = new Jikan(jikanConfiguration);
            var jikanService = new JikanService(jikanClient);

            var s3Client = new S3Service();

            return(new InsertSeiyuuHandler(
                       scheduleConfiguration.InsertSeiyuuBatchSize,
                       scheduleConfiguration.DelayBetweenCallsInSeconds,
                       seiyuuRepository,
                       seasonRepository,
                       characterRepository,
                       animeRepository,
                       animeRoleRepository,
                       jikanService,
                       s3Client
                       ));
        }
Пример #4
0
 private void OnTriggerEnter2D(Collider2D collider)
 {
     if (collider.CompareTag("Key"))
     {
         Key key = collider.gameObject.GetComponent <Key>();
         AddKey(key.GetKeyType());
         key.gameObject.SetActive(false);
         player.setActiveHaveKeyUI(key.GetKeyType().ToString());
     }
     else if (collider.CompareTag("Jikan"))
     {
         Jikan jikan = collider.GetComponent <Jikan>();
         if (ContainsKey(jikan.GetKeyType()))
         {
             jikan.ActiveJikan();
         }
         else
         {
             // Debug.Log("Don't have Jikan Key " + jikan.GetKeyType().ToString());
             player.setActiveNotHaveKeyUI(jikan.GetKeyType().ToString(), true);
         }
     }
     else if (collider.CompareTag("Door"))
     {
         KeyDoor keyDoor = collider.gameObject.GetComponent <KeyDoor>();
         if (ContainsKey(keyDoor.GetKeyType()))
         {
             keyDoor.OpenDoor();
         }
         else
         {
             player.setActiveNotHaveKeyUI(keyDoor.GetKeyType().ToString(), true);
         }
     }
 }
Пример #5
0
        public async static Task <Anime> AnimeConsAsync(AnimeListEntry entry, Jikan jikan)
        {
            var anime = new Anime(entry);

            //MessageBox.Show(anime.Title + ": got the info");
            return(anime);
        }
Пример #6
0
        public static async Task <Profile> ProfileCons(string Name)
        {
            var           p     = new Profile();
            var           jikan = new Jikan(true);
            UserAnimeList _animeList;

            //p.profile = await jikan.GetUserProfile(Name);

            //_animeList = await jikan.GetUserAnimeList(Name);
            //p.animeList = _animeList.Anime.Select(anime => new Anime(anime));
            //return p;
            try
            {
                p.profile = await jikan.GetUserProfile(Name);

                _animeList = await jikan.GetUserAnimeList(Name);

                //var models = _animeList.Anime.Select(async (anime) => { return await Anime.AnimeCons(anime, jikan); });
                //p.animeList = (await Task.WhenAll(models)).ToList();
                var models = _animeList.Anime.Select((anime) => { return(Anime.AnimeConsAsync(anime, jikan)); });
                p.animeList = await Task.WhenAll(models);

                //MessageBox.Show(string.Join(',', p.animeList.Select(o => o.Title)));
                return(p);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return(null);
            }
            //MessageBox.Show(string.Join("\n", p.animeList.Select(o => o.MalId + ".....")));
        }
Пример #7
0
        public async Task GetRecommendations(CommandContext ctx, [RemainingText] string title = "")
        {
            var isShort = await IsTitleShort(title, ctx);

            if (isShort == true)
            {
                return;
            }

            IJikan jikan = new Jikan();
            var    anime = await GetAnimeFromSearch(title);

            var id = anime.MalId;

            //uses id to fetch info
            Recommendations recommendations = await jikan.GetAnimeRecommendations(id);

            var resultEmbed = new DiscordEmbedBuilder
            {
                Title = $"If you liked {anime.Title} you might also like:",
                Color = DiscordColor.Azure,
            };

            for (int i = 0; i <= 5; i++)
            {
                var recommendation = recommendations.RecommendationCollection.ElementAt(i);
                resultEmbed.AddField(recommendation.Title, recommendation.Url);
            }
            resultEmbed.WithFooter("source: MyAnimeList.net");
            resultEmbed.WithThumbnail(anime.ImageURL);

            await ctx.Channel.SendMessageAsync(embed : resultEmbed);
        }
        public async Task <IActionResult> Index(long id)
        {
            AnimeDetailsModel model = new AnimeDetailsModel();

            Jikan jikan = new Jikan();

            var anime = await jikan.GetAnime(id);

            model.ID           = anime.MalId;
            model.Title        = anime.Title;
            model.EnglishTitle = anime.TitleEnglish;
            model.Studios      = string.Join(", ", anime.Studios);
            model.Synopsis     = anime.Synopsis;
            model.ImageURL     = anime.ImageURL;
            model.Genres       = string.Join(", ", anime.Genres);
            model.Airing       = anime.Airing;
            model.Premiered    = anime.Premiered;

            int episodes;

            if (!int.TryParse(anime.Episodes, out episodes))
            {
                episodes = -1;
            }
            model.Episodes = episodes;

            return(View("AnimeDetailsView", model));
        }
Пример #9
0
        public async Task JikanConstructor_WrongUrl_ShouldNotParseCorrectly()
        {
            IJikan jikan = new Jikan("http://google.com");

            Anime bebop = await jikan.GetAnime(1);

            Assert.Null(bebop);
        }
Пример #10
0
        public async Task JikanConstructor_CustomUrl_ShouldParseCorrectly()
        {
            IJikan jikan = new Jikan("https://seiyuu.moe:8000/v3/");

            Anime bebop = await jikan.GetAnime(1);

            Assert.Equal(1, bebop.MalId);
        }
Пример #11
0
        public async Task JikanConstructor_DefaultUrl_ShouldParseCorrectly()
        {
            IJikan jikan = new Jikan("https://api.jikan.moe/v3/");

            Anime bebop = await jikan.GetAnime(1);

            Assert.Equal(1, bebop.MalId);
        }
Пример #12
0
        public async Task <IActionResult> GetUserWatchlist(string username)
        {
            Jikan jikan = new Jikan();

            var watchlistData = await jikan.GetUserAnimeList(username);

            return(View());
        }
Пример #13
0
        /// <summary>
        /// initialize ui with default values
        /// </summary>
        public PadoruEditor()
        {
            //init ui
            InitializeComponent();

            //create jikan instance
            jikan = new Jikan(true);
        }
Пример #14
0
        public MangaDetailsPageViewModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService)
        {
            Title = "Manga";
            jikan = new Jikan(true);

            MangaCharacters = new ObservableCollection <CharactersFromModels>();
            MangaNews       = new ObservableCollection <NewsFromModels>();
        }
Пример #15
0
        public AnimeDetailsPageViewModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService)
        {
            Title = "Anime";
            jikan = new Jikan(true);

            AnimeStaff = new ObservableCollection <StaffFromModels>();
            AnimeNews  = new ObservableCollection <NewsFromModels>();
        }
Пример #16
0
        public async Task <AnimeSearchEntry> GetAnimeFromSearch(string title)
        {
            IJikan            jikan    = new Jikan();
            AnimeSearchResult searches = await jikan.SearchAnime(title);

            var anime = searches.Results.First();

            return(anime);
        }
Пример #17
0
        private UpdateSeasonsHandler CreateHandler(SeiyuuMoeContext dbContext)
        {
            var seasonRepository = new SeasonRepository(dbContext);

            var jikanUrl     = ConfigurationReader.JikanUrl;
            var jikanClient  = new Jikan(jikanUrl);
            var jikanService = new JikanService(jikanClient);

            return(new UpdateSeasonsHandler(seasonRepository, jikanService));
        }
Пример #18
0
        private static UpdateCharacterHandler CreateHandler(SeiyuuMoeContext dbContext)
        {
            var characterRepository = new CharacterRepository(dbContext);

            var jikanUrl     = ConfigurationReader.JikanUrl;
            var jikanClient  = new Jikan(jikanUrl);
            var jikanService = new JikanService(jikanClient);

            return(new UpdateCharacterHandler(characterRepository, jikanService));
        }
Пример #19
0
        public void JikanConstructorUri_WrongUrlNoSurpress_ShouldThrowJikanException()
        {
            // Given
            var jikan = new Jikan(new Uri("http://google.com"), false);

            // When
            Func <Task <Anime> > func = jikan.Awaiting(x => x.GetAnime(1));

            // Then
            func.Should().ThrowExactlyAsync <JikanRequestException>();
        }
Пример #20
0
        public void JikanConstructor_WrongUrl_ShouldNotParseCorrectly()
        {
            // When
            IJikan jikan = new Jikan("http://google.com");

            // When
            Func <Task <Anime> > func = jikan.Awaiting(x => x.GetAnime(1));

            // Then
            func.Should().ThrowExactlyAsync <JikanRequestException>();
        }
Пример #21
0
        public async Task JikanConstructor_CustomUrl_ShouldParseCorrectly()
        {
            // Given
            IJikan jikan = new Jikan("https://seiyuu.moe:8000/v3/");

            // When
            Anime bebop = await jikan.GetAnime(1);

            // Then
            bebop.MalId.Should().Be(1);
        }
Пример #22
0
        public async Task JikanConstructor_DefaultUrl_ShouldParseCorrectly()
        {
            // Given
            IJikan jikan = new Jikan("https://api.jikan.moe/v3/");

            // When
            Anime bebop = await jikan.GetAnime(1);

            // Then
            bebop.MalId.Should().Be(1);
        }
Пример #23
0
        public MangaPageViewModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService)
        {
            Title = "Manga";
            jikan = new Jikan(true);

            Mangas    = new ObservableCollection <MangaFromModels>();
            TopMangas = new ObservableCollection <MangaFromModels>();

            this.pageDialogService = pageDialogService;

            TopMangasInit();
        }
Пример #24
0
        private static UpdateCharacterHandler CreateHandler(SeiyuuMoeContext dbContext)
        {
            var characterRepository = new CharacterRepository(dbContext);

            var jikanUrl           = ConfigurationReader.JikanUrl;;
            var jikanConfiguration = new JikanClientConfiguration {
                Endpoint = jikanUrl, SuppressException = true
            };
            var jikanClient  = new Jikan(jikanConfiguration);
            var jikanService = new JikanService(jikanClient);

            return(new UpdateCharacterHandler(characterRepository, jikanService));
        }
Пример #25
0
        public void JikanConstructor_WrongUrlNoSurpress_ShouldThrowJikanException()
        {
            // When
            var jikan = new Jikan(new JikanClientConfiguration {
                Endpoint = "http://google.com", SuppressException = false
            });

            // When
            Func <Task <BaseJikanResponse <Anime> > > func = jikan.Awaiting(x => x.GetAnimeAsync(1));

            // Then
            func.Should().ThrowExactlyAsync <JikanRequestException>();
        }
Пример #26
0
        public void JikanConstructor_WrongUrl_ShouldNotParseCorrectly()
        {
            // When
            var jikan = new Jikan(new JikanClientConfiguration {
                Endpoint = "http://google.com"
            });

            // When
            Func <Task <BaseJikanResponse <Anime> > > func = jikan.Awaiting(x => x.GetAnimeAsync(1));

            // Then
            func.Should().ThrowExactlyAsync <JikanRequestException>();
        }
Пример #27
0
        public AnimePageViewModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService)
        {
            Title = "Anime";
            jikan = new Jikan(true);

            Animes       = new ObservableCollection <AnimeFromModels>();
            LatestAnimes = new ObservableCollection <AnimeFromModels>();
            TopAnimes    = new ObservableCollection <AnimeFromModels>();

            this.pageDialogService = pageDialogService;

            LatestAnime();
            TopAnime();
        }
Пример #28
0
        public async void GetMangas(string name)
        {
            IJikan            jikan     = new Jikan();
            MangaSearchResult searching = await jikan.SearchManga(name);

            if (searching?.Results.Count > 0)
            {
                OnMangaHasBeenFoundedEventHandler?.Invoke(CastIntoMangaView(searching.Results));
            }
            else
            {
                OnMangasHasNotBeenFoundedEventHandler?.Invoke();
            }
        }
Пример #29
0
        public async Task JikanConstructor_CustomUrl_ShouldParseCorrectly()
        {
            Skip.IfNot(_isV4CustomEndpointReady);
            // Given
            var jikan = new Jikan(new JikanClientConfiguration {
                Endpoint = "https://seiyuu.moe:8000/v4-alpha/"
            });

            // When
            var bebop = await jikan.GetAnimeAsync(1);

            // Then
            bebop.Data.MalId.Should().Be(1);
        }
Пример #30
0
        public async Task mal(string keys)
        {
            // Initialize JikanWrapper
            IJikan jikan = new Jikan(true);

            // Send request to search anime with "haibane" key word
            AnimeSearchResult animeSearchResult = await jikan.SearchAnime(keys);

            await ReplyAsync(animeSearchResult.Results.First().Title);

            //// Send request to search anime with "gundam" key word, second page of results
            //animeSearchResult = await jikan.SearchAnime(keys, 2);

            //AnimeSearchConfig animeSearchConfig = new AnimeSearchConfig()
            //{
            //    Type = AnimeType.Movie,
            //    Score = 7
            //};
            //await ReplyAsync(animeSearchResult.Results.First().Title);
            //// Send request to search anime with "gundam" key word, movies with score bigger than 7 only.
            //animeSearchResult = await jikan.SearchAnime(keys, animeSearchConfig);

            //animeSearchConfig = new AnimeSearchConfig()
            //{
            //    Genres = { GenreSearch.Action, GenreSearch.Adventure },
            //    GenreIncluded = true
            //};
            //await ReplyAsync(animeSearchResult.Results.First().Title);
            //// Send request to search anime with "samurai" key word, with action and/or adventure genre.
            //animeSearchResult = await jikan.SearchAnime(keys, animeSearchConfig);

            //animeSearchConfig = new AnimeSearchConfig()
            //{
            //    Genres = { GenreSearch.Mecha, GenreSearch.Romance },
            //    GenreIncluded = false
            //};
            //await ReplyAsync(animeSearchResult.Results.First().Title);
            //// Send request to search anime with "samurai" key word, without mecha and/or romance genre.
            //animeSearchResult = await jikan.SearchAnime(keys, animeSearchConfig);
            //animeSearchConfig = new AnimeSearchConfig()

            //{
            //    Rating = AgeRating.RX
            //};
            //await ReplyAsync(animeSearchResult.Results.First().Title);
            //// Send request to search anime with "xxx" key word, adult anime only, second page of results
            //animeSearchResult = await jikan.SearchAnime(keys, 2, animeSearchConfig);
            //await ReplyAsync(animeSearchResult.Results.First().Title);
        }