Ejemplo n.º 1
0
 public static string GetPosterPath(this CL_AniDB_Anime_Relation aniDbAnimeRelationVm)
 {
     if (aniDbAnimeRelationVm.AniDB_Anime != null)
     {
         return(((VM_AniDB_Anime)aniDbAnimeRelationVm.AniDB_Anime).PosterPath);
     }
     return(String.Empty);
 }
Ejemplo n.º 2
0
        public static CL_AniDB_Anime_Relation ToClient(this AniDB_Anime_Relation ar, SVR_AniDB_Anime anime,
                                                       SVR_AnimeSeries ser, int userID)
        {
            CL_AniDB_Anime_Relation cl = new CL_AniDB_Anime_Relation
            {
                AniDB_Anime_RelationID = ar.AniDB_Anime_RelationID,
                AnimeID        = ar.AnimeID,
                RelationType   = ar.RelationType,
                RelatedAnimeID = ar.RelatedAnimeID
            };

            cl.AniDB_Anime = anime?.Contract?.AniDBAnime;
            cl.AnimeSeries = ser?.GetUserContract(userID);
            return(cl);
        }
Ejemplo n.º 3
0
        // triggered when a selection change was made on the facade
        private void onFacadeItemSelected(GUIListItem item, GUIControl parent)
        {
            // if this is not a message from the facade, exit
            //if (parent != m_Facade)
            //	return;

            if (item.TVTag != null)
            {
                CL_AniDB_Anime_Relation ra = item.TVTag as CL_AniDB_Anime_Relation;
                if (ra != null)
                {
                    SetAnime(ra);
                }
            }
        }
Ejemplo n.º 4
0
        private void SetAnime(CL_AniDB_Anime_Relation ra)
        {
            VM_AniDB_Anime anime = (VM_AniDB_Anime)ra.AniDB_Anime;

            ClearGUIProperty(GuiProperty.Related_Status);

            if (dummyHasSeries != null)
            {
                dummyHasSeries.Visible = false;
            }
            if (dummyHasSeries != null && ra.AnimeSeries != null)
            {
                dummyHasSeries.Visible = false;
            }
            if (anime != null)
            {
                SetGUIProperty(GuiProperty.Related_Title, anime.MainTitle);
                SetGUIProperty(GuiProperty.Related_Episodes, anime.EpisodeCountNormal.ToString(Globals.Culture) + " (" + anime.EpisodeCountSpecial.ToString(Globals.Culture) + " " + Translation.Specials + ")");
                SetGUIProperty(GuiProperty.Related_Year, anime.AirDateAsString);
                SetGUIProperty(GuiProperty.Related_Description, anime.ParsedDescription);
                SetGUIProperty(GuiProperty.Related_Genre, anime.TagsFormatted);
                SetGUIProperty(GuiProperty.Related_GenreShort, anime.TagsFormattedShort);

                if (string.IsNullOrEmpty(ra.RelationType))
                {
                    SetGUIProperty(GuiProperty.Related_Relationship, string.Empty);
                }
                else
                {
                    SetGUIProperty(GuiProperty.Related_Relationship, $"({ra.RelationType})");
                }
            }
            else
            {
                ClearGUIProperty(GuiProperty.Related_Title);
                ClearGUIProperty(GuiProperty.Related_Episodes);
                ClearGUIProperty(GuiProperty.Related_Year);
                ClearGUIProperty(GuiProperty.Related_Description);
                ClearGUIProperty(GuiProperty.Related_Genre);
                ClearGUIProperty(GuiProperty.Related_GenreShort);
                ClearGUIProperty(GuiProperty.Related_Relationship);
            }

            SetGUIProperty(GuiProperty.Related_Status, ra.AnimeSeries != null ? (ra.AnimeSeries.MissingEpisodeCount > 0 ? Translation.Collecting : Translation.AllEpisodesAvailable) : Translation.NotInMyCollection);
        }
Ejemplo n.º 5
0
        protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType)
        {
            //BaseConfig.MyAnimeLog.Write("OnClicked: {0}", controlId.ToString());

            MainMenu menu = new MainMenu();

            menu.Add(btnGetMissingInfo, () =>
            {
                SetGUIProperty(GuiProperty.Related_DownloadStatus, Translation.WaitingOnServer + "...");
                m_Facade.Focus = true;
                MainWindow.ServerHelper.DownloadRelatedAnime(mainAnime.AnimeID);
            });
            if (menu.Check(control))
            {
                return;
            }

            if (control == this.m_Facade)
            {
                CL_AniDB_Anime_Relation ra = m_Facade.SelectedListItem.TVTag as CL_AniDB_Anime_Relation;
                if (ra != null && ra.AnimeSeries != null && ra.AnimeSeries.AnimeSeriesID != 0)
                {
                    // show relations for this anime
                    MainWindow.GlobalSeriesID = ra.AnimeSeries.AnimeSeriesID;
                    GUIWindowManager.CloseCurrentWindow();
                    GUIWindowManager.ActivateWindow(Constants.WindowIDs.RELATIONS, false);
                }
                else
                {
                    Utils.DialogMsg(Translation.Error, Translation.YouDontHaveTheSeries);
                    return;
                }
            }


            base.OnClicked(controlId, control, actionType);
        }
Ejemplo n.º 6
0
        private void ShowRelations()
        {
            GUIControl.ClearControl(this.GetID, m_Facade.GetID);

            if (dummyRelationsExist != null)
            {
                if (relations.Count > 0)
                {
                    dummyRelationsExist.Visible = true;
                }
                else
                {
                    dummyRelationsExist.Visible = false;
                }
            }


            string imagePathMissing   = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_question_poster.png";
            string imagePathNoPicture = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png";

            BaseConfig.MyAnimeLog.Write("CharWindow.GlobalSeriesID = {0}", MainWindow.GlobalSeriesID.ToString());
            BaseConfig.MyAnimeLog.Write("CharWindow.Relations count = " + relations.Count);

            if (relations?.Count > 0)
            {
                foreach (CL_AniDB_Anime_Relation ra in relations)
                {
                    string imagePath = "";

                    if (ra.AniDB_Anime != null && ra.AnimeSeries != null)
                    {
                        BaseConfig.MyAnimeLog.Write("AnimeID: " + MainWindow.GlobalSeriesID + ", Related ID: " +
                                                    ra.AniDB_Anime.AnimeID.ToString());
                        BaseConfig.MyAnimeLog.Write("Poster Path: " + ((VM_AniDB_Anime)ra.AniDB_Anime).DefaultPosterPath);

                        VM_AniDB_Anime anime = (VM_AniDB_Anime)ra.AniDB_Anime;
                        // try and load the series
                        VM_AnimeSeries_User serAnime = (VM_AnimeSeries_User)ra.AnimeSeries;

                        if (serAnime != null)
                        {
                            string posterName = ImageAllocator.GetSeriesImageAsFileName(serAnime,
                                                                                        GUIFacadeControl.Layout.Filmstrip);
                            if (File.Exists(posterName))
                            {
                                imagePath = posterName;
                            }
                        }

                        if (imagePath.Length == 0)
                        {
                            if (anime.DefaultPosterPath.Trim().Length > 0 && File.Exists(anime.DefaultPosterPath))
                            {
                                imagePath = anime.DefaultPosterPath;
                            }
                            else
                            {
                                imagePath = imagePathNoPicture;
                            }
                        }
                    }
                    else
                    {
                        imagePath = imagePathMissing;
                    }

                    // If it has no title skip it as it's probably an invalid item
                    if (!string.IsNullOrEmpty(ra.AniDB_Anime?.MainTitle))
                    {
                        GUIListItem item = new GUIListItem();
                        item.IconImage       = item.IconImageBig = imagePath;
                        item.TVTag           = ra;
                        item.OnItemSelected += new GUIListItem.ItemSelectedHandler(onFacadeItemSelected);
                        m_Facade.Add(item);
                    }
                }
            }

            if (m_Facade.Count > 0)
            {
                m_Facade.SelectedListItemIndex = 0;

                CL_AniDB_Anime_Relation ra = m_Facade.SelectedListItem?.TVTag as CL_AniDB_Anime_Relation;
                if (ra != null)
                {
                    SetAnime(ra);
                }
            }

            //GUIControl.FocusControl(GetID, 50);
        }