public ImageDownloadEventArgs(string status, ImageDownloadRequest req, ImageDownloadEventType eventType) { Status = status; Req = req; EventType = eventType; ImageType = Req.ImageType; ; }
public ImageDownloadEventArgs(string status, ImageDownloadRequest req, ImageDownloadEventType eventType) { Status = status; Req = req; EventType = eventType; ImageType = Req.ImageType;; }
public static ImageType GetSimpleTypeFromImageType(ImageEntityType type) { switch (type) { case ImageEntityType.TvDB_Cover: case ImageEntityType.MovieDB_Poster: case ImageEntityType.AniDB_Cover: return(ImageType.Poster); case ImageEntityType.TvDB_Banner: return(ImageType.Banner); case ImageEntityType.TvDB_Episode: return(ImageType.Thumb); case ImageEntityType.TvDB_FanArt: case ImageEntityType.MovieDB_FanArt: return(ImageType.Fanart); case ImageEntityType.AniDB_Character: case ImageEntityType.Character: return(ImageType.Character); case ImageEntityType.AniDB_Creator: case ImageEntityType.Staff: return(ImageType.Staff); case ImageEntityType.Static: return(ImageType.Static); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
public Image(int id, ImageEntityType type, bool preferred = false, bool disabled = false) : this(id.ToString(), type, preferred, disabled) { if (type == ImageEntityType.Static) { throw new ArgumentException("Static Resources do not use an integer ID"); } var imagePath = GetImagePath(type, id); if (string.IsNullOrEmpty(imagePath)) { RelativeFilepath = null; Width = null; Height = null; } else { var info = new MagickImageInfo(imagePath); RelativeFilepath = imagePath.Replace(ImageUtils.GetBaseImagesPath(), "").Replace("\\", "/"); if (!RelativeFilepath.StartsWith("/")) { RelativeFilepath = "/" + RelativeFilepath; } Width = info.Width; Height = info.Height; } }
public FanartContainer(ImageEntityType imageType, object poster) { ImageType = imageType; FanartObject = poster; switch (ImageType) { case ImageEntityType.TvDB_FanArt: TvDB_ImageFanartVM tvFanart = FanartObject as TvDB_ImageFanartVM; IsImageEnabled = tvFanart.IsImageEnabled; IsImageDisabled = tvFanart.IsImageDisabled; IsImageDefault = tvFanart.IsImageDefault; IsImageNotDefault = tvFanart.IsImageNotDefault; FanartSource = "TvDB"; break; case ImageEntityType.MovieDB_FanArt: MovieDB_FanartVM movieFanart = FanartObject as MovieDB_FanartVM; IsImageEnabled = movieFanart.IsImageEnabled; IsImageDisabled = movieFanart.IsImageDisabled; IsImageDefault = movieFanart.IsImageDefault; IsImageNotDefault = movieFanart.IsImageNotDefault; FanartSource = "MovieDB"; break; case ImageEntityType.Trakt_Fanart: Trakt_ImageFanartVM traktFanart = FanartObject as Trakt_ImageFanartVM; IsImageEnabled = traktFanart.IsImageEnabled; IsImageDisabled = traktFanart.IsImageDisabled; IsImageDefault = traktFanart.IsImageDefault; IsImageNotDefault = traktFanart.IsImageNotDefault; FanartSource = "Trakt"; break; } }
public FanartContainer(ImageEntityType imageType, object poster) { ImageType = imageType; FanartObject = poster; switch (ImageType) { case ImageEntityType.TvDB_FanArt: TvDB_ImageFanartVM tvFanart = FanartObject as TvDB_ImageFanartVM; IsImageEnabled = tvFanart.Enabled == 1; IsImageDefault = tvFanart.IsImageDefault; FanartSource = "TvDB"; break; case ImageEntityType.MovieDB_FanArt: MovieDB_FanartVM movieFanart = FanartObject as MovieDB_FanartVM; IsImageEnabled = movieFanart.Enabled == 1; IsImageDefault = movieFanart.IsImageDefault; FanartSource = "MovieDB"; break; case ImageEntityType.Trakt_Fanart: Trakt_ImageFanartVM traktFanart = FanartObject as Trakt_ImageFanartVM; IsImageEnabled = traktFanart.Enabled == 1; IsImageDefault = traktFanart.IsImageDefault; FanartSource = "Trakt"; break; } }
public VM_PosterContainer(ImageEntityType imageType, object poster) { ImageType = imageType; PosterObject = poster; switch (ImageType) { case ImageEntityType.AniDB_Cover: VM_AniDB_Anime anime = (VM_AniDB_Anime)PosterObject; IsImageEnabled = anime.IsImageEnabled; IsImageDefault = anime.IsImageDefault; PosterSource = "AniDB"; break; case ImageEntityType.TvDB_Cover: VM_TvDB_ImagePoster tvPoster = (VM_TvDB_ImagePoster)PosterObject; IsImageEnabled = tvPoster.IsImageEnabled; IsImageDefault = tvPoster.IsImageDefault; PosterSource = "TvDB"; break; case ImageEntityType.MovieDB_Poster: VM_MovieDB_Poster moviePoster = (VM_MovieDB_Poster)PosterObject; IsImageEnabled = moviePoster.IsImageEnabled; IsImageDefault = moviePoster.IsImageDefault; PosterSource = "MovieDB"; break; } }
/// <summary> /// Gets the source and type from the ImageEntityTypeEnum /// </summary> /// <param name="source"></param> /// <param name="type"></param> /// <returns></returns> public static string GetSourceAndTypeFromImageType(ImageEntityType type) { switch (type) { case ImageEntityType.AniDB_Cover: return("anidb/poster/"); case ImageEntityType.Character: return("anidb/character/"); case ImageEntityType.Staff: return("anidb/staff/"); case ImageEntityType.TvDB_Cover: return("tvdb/poster"); case ImageEntityType.TvDB_FanArt: return("tvdb/fanart/"); case ImageEntityType.TvDB_Banner: return("tvdb/banner/"); case ImageEntityType.TvDB_Episode: return("tvdb/thumb/"); case ImageEntityType.MovieDB_Poster: return("moviedb/poster/"); case ImageEntityType.MovieDB_FanArt: return("moviedb/fanart/"); } return(null); }
public static CL_AniDB_Anime_DefaultImage ToClient(this AniDB_Anime_DefaultImage defaultImage, ISessionWrapper session) { ImageEntityType imgType = (ImageEntityType)defaultImage.ImageParentType; IImageEntity parentImage = null; switch (imgType) { case ImageEntityType.TvDB_Banner: parentImage = RepoFactory.TvDB_ImageWideBanner.GetByID(session, defaultImage.ImageParentID); break; case ImageEntityType.TvDB_Cover: parentImage = RepoFactory.TvDB_ImagePoster.GetByID(session, defaultImage.ImageParentID); break; case ImageEntityType.TvDB_FanArt: parentImage = RepoFactory.TvDB_ImageFanart.GetByID(session, defaultImage.ImageParentID); break; case ImageEntityType.MovieDB_Poster: parentImage = RepoFactory.MovieDB_Poster.GetByID(session, defaultImage.ImageParentID); break; case ImageEntityType.MovieDB_FanArt: parentImage = RepoFactory.MovieDB_Fanart.GetByID(session, defaultImage.ImageParentID); break; } return(defaultImage.ToClient(parentImage)); }
public static string GetSourceFromType(ImageEntityType type) { switch (type) { case ImageEntityType.AniDB_Cover: case ImageEntityType.AniDB_Character: case ImageEntityType.AniDB_Creator: return("AniDB"); case ImageEntityType.TvDB_Banner: case ImageEntityType.TvDB_Cover: case ImageEntityType.TvDB_Episode: case ImageEntityType.TvDB_FanArt: return("TvDB"); case ImageEntityType.MovieDB_FanArt: case ImageEntityType.MovieDB_Poster: return("MovieDB"); case ImageEntityType.Character: case ImageEntityType.Staff: return("AniDB"); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
public static string GetSimpleTypeFromImageType(ImageEntityType type) { switch (type) { case ImageEntityType.TvDB_Cover: case ImageEntityType.MovieDB_Poster: case ImageEntityType.AniDB_Cover: return("Poster"); case ImageEntityType.TvDB_Banner: return("Banner"); case ImageEntityType.TvDB_Episode: return("Thumb"); case ImageEntityType.TvDB_FanArt: case ImageEntityType.MovieDB_FanArt: return("Fanart"); case ImageEntityType.AniDB_Character: case ImageEntityType.Character: return("Character"); case ImageEntityType.AniDB_Creator: case ImageEntityType.Staff: return("Staff"); case ImageEntityType.Static: return("Shoko"); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
public FanartContainer(ImageEntityType imageType, object poster) { ImageType = imageType; FanartObject = poster; switch (ImageType) { case ImageEntityType.TvDB_FanArt: VM_TvDB_ImageFanart tvFanart = (VM_TvDB_ImageFanart)FanartObject; IsImageEnabled = tvFanart.Enabled == 1; IsImageDefault = tvFanart.IsImageDefault; FanartSource = "TvDB"; break; case ImageEntityType.MovieDB_FanArt: VM_MovieDB_Fanart movieFanart = (VM_MovieDB_Fanart)FanartObject; IsImageEnabled = movieFanart.Enabled == 1; IsImageDefault = movieFanart.IsImageDefault; FanartSource = "MovieDB"; break; case ImageEntityType.Trakt_Fanart: VM_Trakt_ImageFanart traktFanart = (VM_Trakt_ImageFanart)FanartObject; IsImageEnabled = traktFanart.Enabled == 1; IsImageDefault = traktFanart.IsImageDefault; FanartSource = "Trakt"; break; } }
public Image(string id, ImageEntityType type, bool preferred = false, bool disabled = false) { ID = id; Type = GetSimpleTypeFromImageType(type); Source = GetSourceFromType(type); Preferred = preferred; Disabled = disabled; }
public CommandRequest_DownloadImage(int entityID, ImageEntityType entityType, bool forced) { EntityID = entityID; EntityType = (int)entityType; ForceDownload = forced; Priority = (int)DefaultPriority; GenerateCommandID(); }
public Image(HttpContext ctx, int id, ImageEntityType type) { this.id = id; this.type = type.ToString(); source = GetSourceFromType(type); url = APIHelper.ConstructImageLinkFromTypeAndId(ctx, (int)type, id); relative_filepath = GetImagePath(type, id).Replace(ImageUtils.GetBaseImagesPath(), "").Replace("\\", "/"); if (!relative_filepath.StartsWith("/")) { relative_filepath = "/" + relative_filepath; } }
public static byte[] GetImage(string entityID, ImageEntityType imageType, bool thumbNailOnly) { try { byte[] imageArray = JMMServerVM.Instance.imageClient.GetImage(entityID, (int)imageType, thumbNailOnly); return(imageArray); } catch (Exception ex) { BaseConfig.MyAnimeLog.Write(ex.ToString()); return(null); } }
public Image(int id, ImageEntityType type, bool preferred = false, bool disabled = false) : this(id.ToString(), type, preferred, disabled) { if (type == ImageEntityType.Static) { throw new ArgumentException("Static Resources do not use an integer ID"); } RelativeFilepath = GetImagePath(type, id)?.Replace(ImageUtils.GetBaseImagesPath(), "") .Replace("\\", "/"); if (RelativeFilepath != null && !RelativeFilepath.StartsWith("/")) { RelativeFilepath = "/" + RelativeFilepath; } }
public PosterContainer(ImageEntityType imageType, object poster) { ImageType = imageType; PosterObject = poster; switch (ImageType) { case ImageEntityType.AniDB_Cover: AniDB_AnimeVM anime = PosterObject as AniDB_AnimeVM; IsImageEnabled = anime.IsImageEnabled; IsImageDisabled = anime.IsImageDisabled; IsImageDefault = anime.IsImageDefault; IsImageNotDefault = anime.IsImageNotDefault; PosterSource = "AniDB"; break; case ImageEntityType.TvDB_Cover: TvDB_ImagePosterVM tvPoster = PosterObject as TvDB_ImagePosterVM; IsImageEnabled = tvPoster.IsImageEnabled; IsImageDisabled = tvPoster.IsImageDisabled; IsImageDefault = tvPoster.IsImageDefault; IsImageNotDefault = tvPoster.IsImageNotDefault; PosterSource = "TvDB"; break; case ImageEntityType.MovieDB_Poster: MovieDB_PosterVM moviePoster = PosterObject as MovieDB_PosterVM; IsImageEnabled = moviePoster.IsImageEnabled; IsImageDisabled = moviePoster.IsImageDisabled; IsImageDefault = moviePoster.IsImageDefault; IsImageNotDefault = moviePoster.IsImageNotDefault; PosterSource = "MovieDB"; break; case ImageEntityType.Trakt_Poster: Trakt_ImagePosterVM traktPoster = PosterObject as Trakt_ImagePosterVM; IsImageEnabled = traktPoster.IsImageEnabled; IsImageDisabled = traktPoster.IsImageDisabled; IsImageDefault = traktPoster.IsImageDefault; IsImageNotDefault = traktPoster.IsImageNotDefault; PosterSource = "Trakt"; break; } }
public static CL_AniDB_Anime_DefaultImage ToClient(this AniDB_Anime_DefaultImage defaultimage, IImageEntity parentImage) { CL_AniDB_Anime_DefaultImage contract = new CL_AniDB_Anime_DefaultImage { AniDB_Anime_DefaultImageID = defaultimage.AniDB_Anime_DefaultImageID, AnimeID = defaultimage.AnimeID, ImageParentID = defaultimage.ImageParentID, ImageParentType = defaultimage.ImageParentType, ImageType = defaultimage.ImageType }; ImageEntityType imgType = (ImageEntityType)defaultimage.ImageParentType; switch (imgType) { case ImageEntityType.TvDB_Banner: contract.TVWideBanner = (parentImage as TvDB_ImageWideBanner); break; case ImageEntityType.TvDB_Cover: contract.TVPoster = (parentImage as TvDB_ImagePoster); break; case ImageEntityType.TvDB_FanArt: contract.TVFanart = (parentImage as TvDB_ImageFanart); break; case ImageEntityType.MovieDB_Poster: contract.MoviePoster = (parentImage as MovieDB_Poster); break; case ImageEntityType.MovieDB_FanArt: contract.MovieFanart = (parentImage as MovieDB_Fanart); break; } return(contract); }
public PosterContainer(ImageEntityType imageType, object poster) { ImageType = imageType; PosterObject = poster; switch (ImageType) { case ImageEntityType.AniDB_Cover: VM_AniDB_Anime anime = (VM_AniDB_Anime)PosterObject; IsImageEnabled = anime.ImageEnabled == 1; IsImageDefault = anime.IsImageDefault; PosterSource = "AniDB"; break; case ImageEntityType.TvDB_Cover: VM_TvDB_ImagePoster tvPoster = (VM_TvDB_ImagePoster)PosterObject; IsImageEnabled = tvPoster.Enabled == 1; IsImageDefault = tvPoster.IsImageDefault; PosterSource = "TvDB"; break; case ImageEntityType.MovieDB_Poster: VM_MovieDB_Poster moviePoster = (VM_MovieDB_Poster)PosterObject; IsImageEnabled = moviePoster.Enabled == 1; IsImageDefault = moviePoster.IsImageDefault; PosterSource = "MovieDB"; break; /* * case ImageEntityType.Trakt_Poster: * VM_Trakt_ImagePoster traktPoster = (VM_Trakt_ImagePoster)PosterObject; * IsImageEnabled = traktPoster.Enabled == 1; * IsImageDefault = traktPoster.IsImageDefault; * PosterSource = "Trakt"; * break;*/ } }
public PosterContainer(ImageEntityType imageType, object poster) { ImageType = imageType; PosterObject = poster; switch (ImageType) { case ImageEntityType.AniDB_Cover: AniDB_AnimeVM anime = PosterObject as AniDB_AnimeVM; IsImageEnabled = anime.ImageEnabled == 1; IsImageDefault = anime.IsImageDefault; PosterSource = "AniDB"; break; case ImageEntityType.TvDB_Cover: TvDB_ImagePosterVM tvPoster = PosterObject as TvDB_ImagePosterVM; IsImageEnabled = tvPoster.Enabled == 1; IsImageDefault = tvPoster.IsImageDefault; PosterSource = "TvDB"; break; case ImageEntityType.MovieDB_Poster: MovieDB_PosterVM moviePoster = PosterObject as MovieDB_PosterVM; IsImageEnabled = moviePoster.Enabled == 1; IsImageDefault = moviePoster.IsImageDefault; PosterSource = "MovieDB"; break; case ImageEntityType.Trakt_Poster: Trakt_ImagePosterVM traktPoster = PosterObject as Trakt_ImagePosterVM; IsImageEnabled = traktPoster.Enabled == 1; IsImageDefault = traktPoster.IsImageDefault; PosterSource = "Trakt"; break; } }
public static byte[] GetImage(string entityID, ImageEntityType imageType, bool thumbNailOnly) { try { byte[] imageArray = JMMServerVM.Instance.imageClient.GetImage(entityID, (int)imageType, thumbNailOnly); return imageArray; } catch (Exception ex) { BaseConfig.MyAnimeLog.Write(ex.ToString()); return null; } }
public static string GetImagePath(ImageEntityType type, int id) { string path; switch (type) { // 1 case ImageEntityType.AniDB_Cover: SVR_AniDB_Anime anime = Repo.Instance.AniDB_Anime.GetByID(id); if (anime == null) { return(null); } path = anime.PosterPath; if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; // 4 case ImageEntityType.TvDB_Banner: TvDB_ImageWideBanner wideBanner = Repo.Instance.TvDB_ImageWideBanner.GetByID(id); if (wideBanner == null) { return(null); } path = wideBanner.GetFullImagePath(); if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; // 5 case ImageEntityType.TvDB_Cover: TvDB_ImagePoster poster = Repo.Instance.TvDB_ImagePoster.GetByID(id); if (poster == null) { return(null); } path = poster.GetFullImagePath(); if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; // 6 case ImageEntityType.TvDB_Episode: TvDB_Episode ep = Repo.Instance.TvDB_Episode.GetByID(id); if (ep == null) { return(null); } path = ep.GetFullImagePath(); if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; // 7 case ImageEntityType.TvDB_FanArt: TvDB_ImageFanart fanart = Repo.Instance.TvDB_ImageFanart.GetByID(id); if (fanart == null) { return(null); } path = fanart.GetFullImagePath(); if (File.Exists(path)) { return(path); } path = string.Empty; break; // 8 case ImageEntityType.MovieDB_FanArt: MovieDB_Fanart mFanart = Repo.Instance.MovieDB_Fanart.GetByID(id); if (mFanart == null) { return(null); } mFanart = Repo.Instance.MovieDB_Fanart.GetByOnlineID(mFanart.URL); if (mFanart == null) { return(null); } path = mFanart.GetFullImagePath(); if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; // 9 case ImageEntityType.MovieDB_Poster: MovieDB_Poster mPoster = Repo.Instance.MovieDB_Poster.GetByID(id); if (mPoster == null) { return(null); } mPoster = Repo.Instance.MovieDB_Poster.GetByOnlineID(mPoster.URL); if (mPoster == null) { return(null); } path = mPoster.GetFullImagePath(); if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; case ImageEntityType.Character: AnimeCharacter character = Repo.Instance.AnimeCharacter.GetByID(id); if (character == null) { return(null); } path = ImageUtils.GetBaseAniDBCharacterImagesPath() + Path.DirectorySeparatorChar + character.ImagePath; if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; case ImageEntityType.Staff: var staff = Repo.Instance.AnimeStaff.GetByID(id); if (staff == null) { return(null); } path = ImageUtils.GetBaseAniDBCreatorImagesPath() + Path.DirectorySeparatorChar + staff.ImagePath; if (File.Exists(path)) { return(path); } else { path = string.Empty; } break; default: path = string.Empty; break; } return(path); }
public AniDB_Anime_DefaultImage GetByAnimeIDAndImagezSizeTypeAndImageEntityType(int animeid, ImageSizeType imageType, ImageEntityType entityType) { var defaultImage = GetByAnimeIDAndImagezSizeType(animeid, imageType); return(defaultImage != null && defaultImage.ImageParentType == (int)entityType ? defaultImage : null); }
public AniDB_Anime_DefaultImage GetByAnimeIDAndImageEntityType(int animeid, ImageEntityType entityType) { return(Animes.GetMultiple(animeid).FirstOrDefault(a => a.ImageParentType == (int)entityType)); }
/// <summary> /// Internal function that return valid image file path on server that exist /// </summary> /// <param name="id">image id</param> /// <param name="type">image type</param> /// <param name="thumb">thumb mode</param> /// <returns>string</returns> internal string GetImagePath(int type, int id, bool thumb) { ImageEntityType imageType = (ImageEntityType)type; string path; switch (imageType) { // 1 case ImageEntityType.AniDB_Cover: SVR_AniDB_Anime anime = RepoFactory.AniDB_Anime.GetByAnimeID(id); if (anime == null) { return(null); } path = anime.PosterPath; if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath); } break; // 2 case ImageEntityType.AniDB_Character: AniDB_Character chr = RepoFactory.AniDB_Character.GetByCharID(id); if (chr == null) { return(null); } path = chr.GetPosterPath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find AniDB_Character image: {0}", chr.GetPosterPath()); } break; // 3 case ImageEntityType.AniDB_Creator: AniDB_Seiyuu creator = RepoFactory.AniDB_Seiyuu.GetBySeiyuuID(id); if (creator == null) { return(null); } path = creator.GetPosterPath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find AniDB_Creator image: {0}", creator.GetPosterPath()); } break; // 4 case ImageEntityType.TvDB_Banner: TvDB_ImageWideBanner wideBanner = RepoFactory.TvDB_ImageWideBanner.GetByID(id); if (wideBanner == null) { return(null); } path = wideBanner.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.GetFullImagePath()); } break; // 5 case ImageEntityType.TvDB_Cover: TvDB_ImagePoster poster = RepoFactory.TvDB_ImagePoster.GetByID(id); if (poster == null) { return(null); } path = poster.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find TvDB_Cover image: {0}", poster.GetFullImagePath()); } break; // 6 case ImageEntityType.TvDB_Episode: TvDB_Episode ep = RepoFactory.TvDB_Episode.GetByID(id); if (ep == null) { return(null); } path = ep.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find TvDB_Episode image: {0}", ep.GetFullImagePath()); } break; // 7 case ImageEntityType.TvDB_FanArt: TvDB_ImageFanart fanart = RepoFactory.TvDB_ImageFanart.GetByID(id); if (fanart == null) { return(null); } if (thumb) { //ratio path = fanart.GetFullThumbnailPath(); if (System.IO.File.Exists(path)) { return(path); } path = string.Empty; logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.GetFullThumbnailPath()); } else { path = fanart.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } path = string.Empty; logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.GetFullImagePath()); } break; // 8 case ImageEntityType.MovieDB_FanArt: MovieDB_Fanart mFanart = RepoFactory.MovieDB_Fanart.GetByID(id); if (mFanart == null) { return(null); } mFanart = RepoFactory.MovieDB_Fanart.GetByOnlineID(mFanart.URL); if (mFanart == null) { return(null); } path = mFanart.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.GetFullImagePath()); } break; // 9 case ImageEntityType.MovieDB_Poster: MovieDB_Poster mPoster = RepoFactory.MovieDB_Poster.GetByID(id); if (mPoster == null) { return(null); } mPoster = RepoFactory.MovieDB_Poster.GetByOnlineID(mPoster.URL); if (mPoster == null) { return(null); } path = mPoster.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.GetFullImagePath()); } break; case ImageEntityType.Character: AnimeCharacter character = RepoFactory.AnimeCharacter.GetByID(id); if (character == null) { return(null); } path = ImageUtils.GetBaseAniDBCharacterImagesPath() + Path.DirectorySeparatorChar + character.ImagePath; if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find Character image: {0}", ImageUtils.GetBaseAniDBCharacterImagesPath() + Path.DirectorySeparatorChar + character.ImagePath); } break; case ImageEntityType.Staff: var staff = RepoFactory.AnimeStaff.GetByID(id); if (staff == null) { return(null); } path = ImageUtils.GetBaseAniDBCreatorImagesPath() + Path.DirectorySeparatorChar + staff.ImagePath; if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find Staff image: {0}", ImageUtils.GetBaseAniDBCreatorImagesPath() + Path.DirectorySeparatorChar + staff.ImagePath); } break; default: path = string.Empty; break; } return(path); }
private void RemoveImageAndQueueRedownload(ImageEntityType EntityTypeEnum, int EntityID, object Entity) { CommandRequest_DownloadImage cmd; switch (EntityTypeEnum) { case ImageEntityType.TvDB_Episode: TvDB_Episode episode = Entity as TvDB_Episode; if (episode == null) { return; } try { if (File.Exists(episode.GetFullImagePath())) { File.Delete(episode.GetFullImagePath()); } } catch (Exception e) { logger.Error($"Unable to delete {episode.GetFullImagePath()} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.TvDB_Episode, true); break; case ImageEntityType.TvDB_FanArt: TvDB_ImageFanart fanart = Entity as TvDB_ImageFanart; if (fanart == null) { return; } try { if (File.Exists(fanart.GetFullImagePath())) { File.Delete(fanart.GetFullImagePath()); } } catch (Exception e) { logger.Error($"Unable to delete {fanart.GetFullImagePath()} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.TvDB_FanArt, true); break; case ImageEntityType.TvDB_Cover: TvDB_ImagePoster poster = Entity as TvDB_ImagePoster; if (poster == null) { return; } try { if (File.Exists(poster.GetFullImagePath())) { File.Delete(poster.GetFullImagePath()); } } catch (Exception e) { logger.Error($"Unable to delete {poster.GetFullImagePath()} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.TvDB_Cover, true); break; case ImageEntityType.TvDB_Banner: TvDB_ImageWideBanner wideBanner = Entity as TvDB_ImageWideBanner; if (wideBanner == null) { return; } try { if (File.Exists(wideBanner.GetFullImagePath())) { File.Delete(wideBanner.GetFullImagePath()); } } catch (Exception e) { logger.Error($"Unable to delete {wideBanner.GetFullImagePath()} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.TvDB_Banner, true); break; case ImageEntityType.MovieDB_Poster: MovieDB_Poster moviePoster = Entity as MovieDB_Poster; if (moviePoster == null) { return; } try { if (File.Exists(moviePoster.GetFullImagePath())) { File.Delete(moviePoster.GetFullImagePath()); } } catch (Exception e) { logger.Error($"Unable to delete {moviePoster.GetFullImagePath()} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.MovieDB_Poster, true); break; case ImageEntityType.MovieDB_FanArt: MovieDB_Fanart movieFanart = Entity as MovieDB_Fanart; if (movieFanart == null) { return; } try { if (File.Exists(movieFanart.GetFullImagePath())) { File.Delete(movieFanart.GetFullImagePath()); } } catch (Exception e) { logger.Error($"Unable to delete {movieFanart.GetFullImagePath()} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.MovieDB_FanArt, true); break; case ImageEntityType.AniDB_Cover: string coverpath = (Entity as SVR_AniDB_Anime)?.PosterPath; if (string.IsNullOrEmpty(coverpath)) { return; } try { if (File.Exists(coverpath)) { File.Delete(coverpath); } } catch (Exception e) { logger.Error($"Unable to delete {coverpath} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.AniDB_Cover, true); break; case ImageEntityType.AniDB_Creator: string creatorpath = (Entity as AniDB_Seiyuu)?.GetPosterPath(); if (string.IsNullOrEmpty(creatorpath)) { return; } try { if (File.Exists(creatorpath)) { File.Delete(creatorpath); } } catch (Exception e) { logger.Error($"Unable to delete {creatorpath} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.AniDB_Creator, true); break; case ImageEntityType.AniDB_Character: string characterpath = (Entity as AniDB_Character)?.GetPosterPath(); if (string.IsNullOrEmpty(characterpath)) { return; } try { if (File.Exists(characterpath)) { File.Delete(characterpath); } } catch (Exception e) { logger.Error($"Unable to delete {characterpath} - {e.Message}"); } cmd = new CommandRequest_DownloadImage(EntityID, ImageEntityType.AniDB_Character, true); break; default: return; } cmd.Save(); }
private string GetRandomImagePath(int type) { ImageEntityType imageType = (ImageEntityType)type; string path; switch (imageType) { // 1 case ImageEntityType.AniDB_Cover: SVR_AniDB_Anime anime = RepoFactory.AniDB_Anime.GetAll() .Where(a => a?.PosterPath != null && !a.GetAllTags().Contains("18 restricted")) .GetRandomElement(); if (anime == null) { return(null); } path = anime.PosterPath; if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath); } break; // 2 case ImageEntityType.AniDB_Character: var chr = RepoFactory.AniDB_Anime.GetAll() .Where(a => a != null && !a.GetAllTags().Contains("18 restricted")) .SelectMany(a => a.GetAnimeCharacters()).Select(a => a.GetCharacter()).Where(a => a != null) .GetRandomElement(); if (chr == null) { return(null); } path = chr.GetPosterPath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find AniDB_Character image: {0}", chr.GetPosterPath()); } break; // 3 -- this will likely be slow case ImageEntityType.AniDB_Creator: var creator = RepoFactory.AniDB_Anime.GetAll() .Where(a => a != null && !a.GetAllTags().Contains("18 restricted")) .SelectMany(a => a.GetAnimeCharacters()) .SelectMany(a => RepoFactory.AniDB_Character_Seiyuu.GetByCharID(a.CharID)) .Select(a => RepoFactory.AniDB_Seiyuu.GetBySeiyuuID(a.SeiyuuID)).Where(a => a != null) .GetRandomElement(); if (creator == null) { return(null); } path = creator.GetPosterPath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find AniDB_Creator image: {0}", creator.GetPosterPath()); } break; // 4 case ImageEntityType.TvDB_Banner: // TvDB doesn't allow H content, so we get to skip the check! TvDB_ImageWideBanner wideBanner = RepoFactory.TvDB_ImageWideBanner.GetAll().GetRandomElement(); if (wideBanner == null) { return(null); } path = wideBanner.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.GetFullImagePath()); } break; // 5 case ImageEntityType.TvDB_Cover: // TvDB doesn't allow H content, so we get to skip the check! TvDB_ImagePoster poster = RepoFactory.TvDB_ImagePoster.GetAll().GetRandomElement(); if (poster == null) { return(null); } path = poster.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find TvDB_Cover image: {0}", poster.GetFullImagePath()); } break; // 6 case ImageEntityType.TvDB_Episode: // TvDB doesn't allow H content, so we get to skip the check! TvDB_Episode ep = RepoFactory.TvDB_Episode.GetAll().GetRandomElement(); if (ep == null) { return(null); } path = ep.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find TvDB_Episode image: {0}", ep.GetFullImagePath()); } break; // 7 case ImageEntityType.TvDB_FanArt: // TvDB doesn't allow H content, so we get to skip the check! TvDB_ImageFanart fanart = RepoFactory.TvDB_ImageFanart.GetAll().GetRandomElement(); if (fanart == null) { return(null); } path = fanart.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } path = string.Empty; logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.GetFullImagePath()); break; // 8 case ImageEntityType.MovieDB_FanArt: MovieDB_Fanart mFanart = RepoFactory.MovieDB_Fanart.GetAll().GetRandomElement(); if (mFanart == null) { return(null); } path = mFanart.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.GetFullImagePath()); } break; // 9 case ImageEntityType.MovieDB_Poster: MovieDB_Poster mPoster = RepoFactory.MovieDB_Poster.GetAll().GetRandomElement(); if (mPoster == null) { return(null); } path = mPoster.GetFullImagePath(); if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.GetFullImagePath()); } break; case ImageEntityType.Character: var character = RepoFactory.AniDB_Anime.GetAll() .Where(a => a != null && !a.GetAllTags().Contains("18 restricted")) .SelectMany(a => RepoFactory.CrossRef_Anime_Staff.GetByAnimeID(a.AnimeID)) .Where(a => a.RoleType == (int)StaffRoleType.Seiyuu && a.RoleID.HasValue) .Select(a => RepoFactory.AnimeCharacter.GetByID(a.RoleID.Value)).GetRandomElement(); if (character == null) { return(null); } path = ImageUtils.GetBaseAniDBCharacterImagesPath() + Path.DirectorySeparatorChar + character.ImagePath; if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find Character image: {0}", ImageUtils.GetBaseAniDBCharacterImagesPath() + Path.DirectorySeparatorChar + character.ImagePath); } break; case ImageEntityType.Staff: var staff = RepoFactory.AniDB_Anime.GetAll() .Where(a => a != null && !a.GetAllTags().Contains("18 restricted")) .SelectMany(a => RepoFactory.CrossRef_Anime_Staff.GetByAnimeID(a.AnimeID)) .Select(a => RepoFactory.AnimeStaff.GetByID(a.StaffID)).GetRandomElement(); if (staff == null) { return(null); } path = ImageUtils.GetBaseAniDBCreatorImagesPath() + Path.DirectorySeparatorChar + staff.ImagePath; if (System.IO.File.Exists(path)) { return(path); } else { path = string.Empty; logger.Trace("Could not find Staff image: {0}", ImageUtils.GetBaseAniDBCreatorImagesPath() + Path.DirectorySeparatorChar + staff.ImagePath); } break; default: path = string.Empty; break; } return(path); }
public ImageDownloadRequest(ImageEntityType imageType, object data, bool forceDownload) { this.ImageType = imageType; this.ImageData = data; this.ForceDownload = forceDownload; }
public string GetImagePath(int imageId, int imageType, bool?thumnbnailOnly) { ImageEntityType it = (ImageEntityType)imageType; switch (it) { case ImageEntityType.AniDB_Cover: SVR_AniDB_Anime anime = Repo.Instance.AniDB_Anime.GetByID(imageId); if (anime == null) { return(null); } if (File.Exists(anime.PosterPath)) { return(anime.PosterPath); } else { logger.Trace("Could not find AniDB_Cover image: {0}", anime.PosterPath); return(string.Empty); } case ImageEntityType.AniDB_Character: AniDB_Character chr = Repo.Instance.AniDB_Character.GetByID(imageId); if (chr == null) { return(null); } if (File.Exists(chr.GetPosterPath())) { return(chr.GetPosterPath()); } else { logger.Trace("Could not find AniDB_Character image: {0}", chr.GetPosterPath()); return(string.Empty); } case ImageEntityType.AniDB_Creator: AniDB_Seiyuu creator = Repo.Instance.AniDB_Seiyuu.GetByID(imageId); if (creator == null) { return(string.Empty); } if (File.Exists(creator.GetPosterPath())) { return(creator.GetPosterPath()); } else { logger.Trace("Could not find AniDB_Creator image: {0}", creator.GetPosterPath()); return(string.Empty); } case ImageEntityType.TvDB_Cover: TvDB_ImagePoster poster = Repo.Instance.TvDB_ImagePoster.GetByID(imageId); if (poster == null) { return(null); } if (File.Exists(poster.GetFullImagePath())) { return(poster.GetFullImagePath()); } else { logger.Trace("Could not find TvDB_Cover image: {0}", poster.GetFullImagePath()); return(string.Empty); } case ImageEntityType.TvDB_Banner: TvDB_ImageWideBanner wideBanner = Repo.Instance.TvDB_ImageWideBanner.GetByID(imageId); if (wideBanner == null) { return(null); } if (File.Exists(wideBanner.GetFullImagePath())) { return(wideBanner.GetFullImagePath()); } else { logger.Trace("Could not find TvDB_Banner image: {0}", wideBanner.GetFullImagePath()); return(string.Empty); } case ImageEntityType.TvDB_Episode: TvDB_Episode ep = Repo.Instance.TvDB_Episode.GetByID(imageId); if (ep == null) { return(null); } if (File.Exists(ep.GetFullImagePath())) { return(ep.GetFullImagePath()); } else { logger.Trace("Could not find TvDB_Episode image: {0}", ep.GetFullImagePath()); return(string.Empty); } case ImageEntityType.TvDB_FanArt: TvDB_ImageFanart fanart = Repo.Instance.TvDB_ImageFanart.GetByID(imageId); if (fanart == null) { return(null); } if (thumnbnailOnly.HasValue && thumnbnailOnly.Value) { if (File.Exists(fanart.GetFullThumbnailPath())) { return(fanart.GetFullThumbnailPath()); } logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.GetFullThumbnailPath()); return(string.Empty); } else { if (File.Exists(fanart.GetFullImagePath())) { return(fanart.GetFullImagePath()); } logger.Trace("Could not find TvDB_FanArt image: {0}", fanart.GetFullImagePath()); return(string.Empty); } case ImageEntityType.MovieDB_Poster: MovieDB_Poster mPoster = Repo.Instance.MovieDB_Poster.GetByID(imageId); if (mPoster == null) { return(null); } // now find only the original size mPoster = Repo.Instance.MovieDB_Poster.GetByOnlineID(mPoster.URL); if (mPoster == null) { return(null); } if (File.Exists(mPoster.GetFullImagePath())) { return(mPoster.GetFullImagePath()); } else { logger.Trace("Could not find MovieDB_Poster image: {0}", mPoster.GetFullImagePath()); return(string.Empty); } case ImageEntityType.MovieDB_FanArt: MovieDB_Fanart mFanart = Repo.Instance.MovieDB_Fanart.GetByID(imageId); if (mFanart == null) { return(null); } mFanart = Repo.Instance.MovieDB_Fanart.GetByOnlineID(mFanart.URL); if (mFanart == null) { return(null); } if (File.Exists(mFanart.GetFullImagePath())) { return(mFanart.GetFullImagePath()); } else { logger.Trace("Could not find MovieDB_FanArt image: {0}", mFanart.GetFullImagePath()); return(string.Empty); } default: return(string.Empty); } }
public ImageDownloadRequest(ImageEntityType imageType, object data, bool forceDownload) { this.ImageType = imageType; this.ImageData = data; this.ForceDownload = forceDownload; }