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); } }
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; } }
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); } }
// 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); } }
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); } }
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); } }
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(""); } }