public void DownloadTvDBWideBanner(VM_TvDB_ImageWideBanner wideBanner, bool forceDownload)
        {
            if (string.IsNullOrEmpty(wideBanner.BannerPath))
            {
                return;
            }

            try
            {
                ImageDownloadRequest req = new ImageDownloadRequest(ImageEntityType.TvDB_Banner, wideBanner, forceDownload);

                // check if this file has already been downloaded and exists
                if (!req.ForceDownload)
                {
                    // check to make sure the file actually exists
                    if (!File.Exists(wideBanner.FullImagePath))
                    {
                        imagesToDownload.Enqueue(req);
                        OnQueueUpdateEvent(new QueueUpdateEventArgs(QueueCount));
                        return;
                    }

                    // the file exists so don't download it again
                    return;
                }

                imagesToDownload.Enqueue(req);
                OnQueueUpdateEvent(new QueueUpdateEventArgs(QueueCount));
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
Beispiel #2
0
        protected override void OnShowContextMenu()
        {
            try
            {
                GUIListItem currentitem = m_Facade.SelectedListItem;
                if (currentitem == null || !(currentitem.TVTag is VM_TvDB_ImageWideBanner))
                {
                    return;
                }
                VM_TvDB_ImageWideBanner selectedBanner = currentitem.TVTag as VM_TvDB_ImageWideBanner;
                bool isDisabled = selectedBanner.Enabled == 0;

                ContextMenu cmenu = new ContextMenu(Translation.WideBanner);
                cmenu.AddAction(isDisabled ? Translation.Enable : Translation.Disable, () =>
                {
                    ShokoServerHelper.EnableDisableWideBanner(isDisabled, selectedBanner, AnimeID);
                    ShowWideBanners();
                });
                if (!isDisabled)
                {
                    cmenu.AddAction(selectedBanner.IsImageDefault ? Translation.RemoveAsDefault : Translation.SetAsDefault, () =>
                    {
                        ShokoServerHelper.SetDefaultWideBanner(!selectedBanner.IsImageDefault, selectedBanner, AnimeID);
                        ShowWideBanners();
                    });
                }
                cmenu.Show();
            }
            catch (Exception ex)
            {
                BaseConfig.MyAnimeLog.Write("Exception in Wide Banner Chooser Context Menu: " + ex.Message);
                return;
            }
        }
Beispiel #3
0
        private void SetWideBannerProperties(VM_TvDB_ImageWideBanner banner)
        {
            string source = Translation.TheTVDB;

            string isDisabled = banner.Enabled == 0 ? Translation.Yes : Translation.No;
            string isDefault  = (banner.IsImageDefault) ? Translation.Yes : Translation.No;

            SetGUIProperty(GuiProperty.WideBanners_SelectedSource, source);
            SetGUIProperty(GuiProperty.WideBanners_SelectedBannerIsDefault, isDefault);
            SetGUIProperty(GuiProperty.WideBanners_SelectedBannerIsDisabled, isDisabled);
        }
        private string GetEntityID(ImageDownloadRequest req)
        {
            switch (req.ImageType)
            {
            case ImageEntityType.AniDB_Cover:

                VM_AniDB_Anime anime = req.ImageData as VM_AniDB_Anime;
                return(anime?.AnimeID.ToString());

            case ImageEntityType.TvDB_Cover:

                VM_TvDB_ImagePoster poster = req.ImageData as VM_TvDB_ImagePoster;
                return(poster?.TvDB_ImagePosterID.ToString());

            case ImageEntityType.TvDB_Banner:

                VM_TvDB_ImageWideBanner banner = req.ImageData as VM_TvDB_ImageWideBanner;
                return(banner?.TvDB_ImageWideBannerID.ToString());

            case ImageEntityType.TvDB_Episode:

                VM_TvDB_Episode episode = req.ImageData as VM_TvDB_Episode;
                return(episode?.TvDB_EpisodeID.ToString());

            case ImageEntityType.TvDB_FanArt:

                VM_TvDB_ImageFanart fanart = req.ImageData as VM_TvDB_ImageFanart;
                return(fanart?.TvDB_ImageFanartID.ToString());

            case ImageEntityType.MovieDB_Poster:

                VM_MovieDB_Poster moviePoster = req.ImageData as VM_MovieDB_Poster;
                return(moviePoster?.MovieDB_PosterID.ToString());

            case ImageEntityType.MovieDB_FanArt:

                VM_MovieDB_Fanart movieFanart = req.ImageData as VM_MovieDB_Fanart;
                return(movieFanart?.MovieDB_FanartID.ToString());

            case ImageEntityType.AniDB_Character:

                VM_AniDB_Character chr = req.ImageData as VM_AniDB_Character;
                return(chr?.AniDB_CharacterID.ToString());

            case ImageEntityType.AniDB_Creator:

                VM_AniDB_Seiyuu cre = req.ImageData as VM_AniDB_Seiyuu;
                return(cre?.AniDB_SeiyuuID.ToString());

            default:
                return(string.Empty);
            }
        }
Beispiel #5
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 && parent != m_Facade.ThumbnailLayout)
            {
                return;
            }

            VM_TvDB_ImageWideBanner banner = item.TVTag as VM_TvDB_ImageWideBanner;

            if (banner != null)
            {
                SetWideBannerProperties(banner);
            }
        }
Beispiel #6
0
        public static void EnableDisableWideBanner(bool enabled, VM_TvDB_ImageWideBanner banner, int animeID)
        {
            try
            {
                if (!enabled && banner.IsImageDefault)
                {
                    SetDefaultWideBanner(false, banner, animeID);
                }

                VM_ShokoServer.Instance.ShokoServices.EnableDisableImage(enabled, banner.TvDB_ImageWideBannerID, (int)ImageEntityType.TvDB_Banner);
                banner.Enabled = enabled ? 1 : 0;
            }
            catch (Exception ex)
            {
                BaseConfig.MyAnimeLog.Write("SetDefaultPoster: " + ex.Message);
            }
        }
Beispiel #7
0
        public static void SetDefaultWideBanner(bool isDefault, VM_TvDB_ImageWideBanner banner, int animeID)
        {
            if (!VM_ShokoServer.Instance.ServerOnline)
            {
                return;
            }

            try
            {
                VM_ShokoServer.Instance.ShokoServices.SetDefaultImage(isDefault, animeID,
                                                                      banner.TvDB_ImageWideBannerID, (int)ImageEntityType.TvDB_Banner, (int)ImageSizeType.WideBanner);
                banner.IsImageDefault = isDefault;
            }
            catch (Exception ex)
            {
                BaseConfig.MyAnimeLog.Write("SetDefaultPoster: " + ex.Message);
            }
        }
Beispiel #8
0
        private void ShowWideBanners()
        {
            GUIControl.ClearControl(this.GetID, m_Facade.GetID);

            VM_AnimeSeries_User ser = ShokoServerHelper.GetSeries(MainWindow.GlobalSeriesID);

            if (ser != null)
            {
                if (ser.CrossRefAniDBTvDBV2 != null && ser.CrossRefAniDBTvDBV2.Count > 0)
                {
                    AnimeID = ser.CrossRefAniDBTvDBV2[0].AnimeID;
                }
            }

            if (ser != null)
            {
                List <VM_TvDB_ImageWideBanner> tvDBWideBanners = ser.Anime.AniDB_AnimeCrossRefs.TvDBImageWideBanners;

                GUIListItem item = null;
                foreach (VM_TvDB_ImageWideBanner banner in tvDBWideBanners)
                {
                    item                 = new GUIListItem();
                    item.IconImage       = item.IconImageBig = banner.FullImagePath;
                    item.TVTag           = banner;
                    item.OnItemSelected += new GUIListItem.ItemSelectedHandler(onFacadeItemSelected);
                    m_Facade.Add(item);
                }


                if (m_Facade.Count > 0)
                {
                    m_Facade.SelectedListItemIndex = 0;
                    VM_TvDB_ImageWideBanner selectedBanner = m_Facade.SelectedListItem.TVTag as VM_TvDB_ImageWideBanner;
                    if (selectedBanner != null)
                    {
                        SetWideBannerProperties(selectedBanner);
                    }

                    GUIControl.FocusControl(GetID, 50);
                }
            }
        }
        private string GetFileName(ImageDownloadRequest req, bool thumbNailOnly)
        {
            switch (req.ImageType)
            {
            case ImageEntityType.AniDB_Cover:

                VM_AniDB_Anime anime = req.ImageData as VM_AniDB_Anime;
                return(anime?.PosterPathNoDefaultPlain);

            case ImageEntityType.TvDB_Cover:

                VM_TvDB_ImagePoster poster = req.ImageData as VM_TvDB_ImagePoster;
                return(poster?.FullImagePathPlain);

            case ImageEntityType.TvDB_Banner:

                VM_TvDB_ImageWideBanner banner = req.ImageData as VM_TvDB_ImageWideBanner;
                return(banner?.FullImagePathPlain);

            case ImageEntityType.TvDB_Episode:

                VM_TvDB_Episode episode = req.ImageData as VM_TvDB_Episode;
                return(episode?.FullImagePathPlain);

            case ImageEntityType.TvDB_FanArt:

                VM_TvDB_ImageFanart fanart = req.ImageData as VM_TvDB_ImageFanart;

                if (thumbNailOnly)
                {
                    return(fanart?.FullThumbnailPathPlain);
                }
                else
                {
                    return(fanart?.FullImagePathPlain);
                }

            case ImageEntityType.MovieDB_Poster:

                VM_MovieDB_Poster moviePoster = req.ImageData as VM_MovieDB_Poster;
                return(moviePoster?.FullImagePathPlain);

            case ImageEntityType.MovieDB_FanArt:

                VM_MovieDB_Fanart movieFanart = req.ImageData as VM_MovieDB_Fanart;
                return(movieFanart?.FullImagePathPlain);

            case ImageEntityType.AniDB_Character:

                VM_AniDB_Character chr = req.ImageData as VM_AniDB_Character;
                return(chr?.ImagePathPlain);

            case ImageEntityType.AniDB_Creator:

                VM_AniDB_Seiyuu cre = req.ImageData as VM_AniDB_Seiyuu;
                return(cre?.ImagePathPlain);

            default:
                return(string.Empty);
            }
        }
        private string GetEntityID(ImageDownloadRequest req)
        {
            switch (req.ImageType)
            {
            case ImageEntityType.AniDB_Cover:

                VM_AniDB_Anime anime = req.ImageData as VM_AniDB_Anime;
                return(anime.AnimeID.ToString());

            case ImageEntityType.TvDB_Cover:

                VM_TvDB_ImagePoster poster = req.ImageData as VM_TvDB_ImagePoster;
                return(poster.TvDB_ImagePosterID.ToString());

            case ImageEntityType.TvDB_Banner:

                VM_TvDB_ImageWideBanner banner = req.ImageData as VM_TvDB_ImageWideBanner;
                return(banner.TvDB_ImageWideBannerID.ToString());

            case ImageEntityType.TvDB_Episode:

                VM_TvDB_Episode episode = req.ImageData as VM_TvDB_Episode;
                return(episode.TvDB_EpisodeID.ToString());

            case ImageEntityType.TvDB_FanArt:

                VM_TvDB_ImageFanart fanart = req.ImageData as VM_TvDB_ImageFanart;
                return(fanart.TvDB_ImageFanartID.ToString());

            case ImageEntityType.MovieDB_Poster:

                VM_MovieDB_Poster moviePoster = req.ImageData as VM_MovieDB_Poster;
                return(moviePoster.MovieDB_PosterID.ToString());

            case ImageEntityType.MovieDB_FanArt:

                VM_MovieDB_Fanart movieFanart = req.ImageData as VM_MovieDB_Fanart;
                return(movieFanart.MovieDB_FanartID.ToString());

            case ImageEntityType.Trakt_Poster:

                VM_Trakt_ImagePoster traktPoster = req.ImageData as VM_Trakt_ImagePoster;
                return(traktPoster.Trakt_ImagePosterID.ToString());

            case ImageEntityType.Trakt_Fanart:

                VM_Trakt_ImageFanart trakFanart = req.ImageData as VM_Trakt_ImageFanart;
                return(trakFanart.Trakt_ImageFanartID.ToString());

            case ImageEntityType.Trakt_CommentUser:

                VM_Trakt_CommentUser traktShoutUser = req.ImageData as VM_Trakt_CommentUser;
                return(traktShoutUser.User.Trakt_FriendID.ToString());

            case ImageEntityType.Trakt_Episode:

                VM_Trakt_Episode trakEp = req.ImageData as VM_Trakt_Episode;
                return(trakEp.Trakt_EpisodeID.ToString());

            case ImageEntityType.AniDB_Character:

                VM_AniDB_Character chr = req.ImageData as VM_AniDB_Character;
                return(chr.AniDB_CharacterID.ToString());

            case ImageEntityType.AniDB_Creator:

                VM_AniDB_Seiyuu cre = req.ImageData as VM_AniDB_Seiyuu;
                return(cre.AniDB_SeiyuuID.ToString());

            default:
                return("");
            }
        }