static void Main(string[] args) { // Create and load themes CreateDefaultThemes(); List <Theme> themes = LoadAllThemes().ToList(); LogoProcessor processor = new LogoProcessor { DesignsFolder = "..\\..\\..\\..\\Designs" }; foreach (Theme theme in themes) { // Test 1: From file ProcessFile(processor, "1_plus_1_International", theme); // Test 2: From repository using (var repo = new LogoRepository { RepositoryUrl = REPOSITORY_URL }) { // Parallel async processing var results = repo.Download(new[] { "Das Erste hd", "sat.1", "zdf hd", "animal planet hd", "discovery channel" }); Task.WaitAll(results.Select(channelAndStream => ProcessStream(processor, channelAndStream.Value, channelAndStream.Key, theme)).ToArray()); // Synchronous processing var stream = repo.Download("zdf"); ProcessStream(processor, stream, "zdf", theme); } } }
static void Main(string[] args) { // Create and load themes CreateDefaultThemes(); List<Theme> themes = LoadAllThemes().ToList(); LogoProcessor processor = new LogoProcessor { DesignsFolder = "..\\..\\..\\..\\Designs" }; foreach (Theme theme in themes) { // Test 1: From file ProcessFile(processor, "1_plus_1_International", theme); // Test 2: From repository using (var repo = new LogoRepository { RepositoryUrl = REPOSITORY_URL }) { // Parallel async processing var results = repo.Download(new[] { "Das Erste hd", "sat.1", "zdf hd", "animal planet hd", "discovery channel" }); Task.WaitAll(results.Select(channelAndStream => ProcessStream(processor, channelAndStream.Value, channelAndStream.Key, theme)).ToArray()); // Synchronous processing var stream = repo.Download("zdf"); ProcessStream(processor, stream, "zdf", theme); } } }
/// <summary> /// Gets a list of <see cref="FanArtImage"/>s for a requested <paramref name="mediaType"/>, <paramref name="fanArtType"/> and <paramref name="name"/>. /// The name can be: Series name, Actor name, Artist name depending on the <paramref name="mediaType"/>. /// </summary> /// <param name="mediaType">Requested FanArtMediaType</param> /// <param name="fanArtType">Requested FanArtType</param> /// <param name="name">Requested name of Series, Actor, Artist...</param> /// <param name="maxWidth">Maximum width for image. <c>0</c> returns image in original size.</param> /// <param name="maxHeight">Maximum height for image. <c>0</c> returns image in original size.</param> /// <param name="singleRandom">If <c>true</c> only one random image URI will be returned</param> /// <param name="result">Result if return code is <c>true</c>.</param> /// <returns><c>true</c> if at least one match was found.</returns> public bool TryGetFanArt(string mediaType, string fanArtType, string name, int maxWidth, int maxHeight, bool singleRandom, out IList <IResourceLocator> result) { result = null; if (mediaType != FanArtMediaTypes.ChannelTv && mediaType != FanArtMediaTypes.ChannelRadio) { return(false); } try { string designsFolder = FileUtils.BuildAssemblyRelativePath("Designs"); ChannelType logoChannelType = mediaType == FanArtMediaTypes.ChannelTv ? ChannelType.Tv : ChannelType.Radio; ThemeHandler themeHandler = new ThemeHandler(); Theme theme = themeHandler.Load(Path.Combine(designsFolder, _settings.LogoTheme)); string logoFolder = Path.Combine(_dataFolder, string.Format("{0}-{1}-{2}", logoChannelType, theme.DesignName, theme.ThemeName)); string logoFileName = Path.Combine(logoFolder, FileUtils.GetSafeFilename(string.Format("{0}.png", name))); if (!Directory.Exists(logoFolder)) { Directory.CreateDirectory(logoFolder); } if (File.Exists(logoFileName)) { result = new List <IResourceLocator> { new ResourceLocator(ResourcePath.BuildBaseProviderPath(LocalFsResourceProviderBase.LOCAL_FS_RESOURCE_PROVIDER_ID, logoFileName)) }; return(true); } LogoProcessor processor = new LogoProcessor { DesignsFolder = designsFolder }; // From repository using (var repo = new LogoRepository { RepositoryUrl = _settings.RepositoryUrl }) { var stream = repo.Download(name, logoChannelType, _country.TwoLetterISORegionName); if (stream == null) { return(false); } using (stream) if (processor.CreateLogo(theme, stream, logoFileName)) { result = new List <IResourceLocator> { new ResourceLocator(ResourcePath.BuildBaseProviderPath(LocalFsResourceProviderBase.LOCAL_FS_RESOURCE_PROVIDER_ID, logoFileName)) }; return(true); } } } catch (Exception ex) { ServiceRegistration.Get <ILogger>().Error("SlimTv Logos: Error processing logo image.", ex); } return(false); }
/// <summary> /// Gets a list of <see cref="FanArtImage"/>s for a requested <paramref name="mediaType"/>, <paramref name="fanArtType"/> and <paramref name="name"/>. /// The name can be: Series name, Actor name, Artist name depending on the <paramref name="mediaType"/>. /// </summary> /// <param name="mediaType">Requested FanArtMediaType</param> /// <param name="fanArtType">Requested FanArtType</param> /// <param name="name">Requested name of Series, Actor, Artist...</param> /// <param name="maxWidth">Maximum width for image. <c>0</c> returns image in original size.</param> /// <param name="maxHeight">Maximum height for image. <c>0</c> returns image in original size.</param> /// <param name="singleRandom">If <c>true</c> only one random image URI will be returned</param> /// <param name="result">Result if return code is <c>true</c>.</param> /// <returns><c>true</c> if at least one match was found.</returns> public bool TryGetFanArt(string mediaType, string fanArtType, string name, int maxWidth, int maxHeight, bool singleRandom, out IList <IResourceLocator> result) { result = null; if (mediaType != FanArtMediaTypes.ChannelTv && mediaType != FanArtMediaTypes.ChannelRadio) { return(false); } try { string designsFolder = _designsFolder ?? FileUtils.BuildAssemblyRelativePath("Designs"); ChannelType logoChannelType = mediaType == FanArtMediaTypes.ChannelTv ? ChannelType.Tv : ChannelType.Radio; ThemeHandler themeHandler = new ThemeHandler(); Theme theme = themeHandler.Load(Path.Combine(designsFolder, _settings.LogoTheme)); string logoFolder = Path.Combine(_dataFolder, string.Format("{0}-{1}-{2}", logoChannelType, theme.DesignName, theme.ThemeName)); string logoFileName = Path.Combine(logoFolder, FileUtils.GetSafeFilename(string.Format("{0}.png", name))); if (!Directory.Exists(logoFolder)) { Directory.CreateDirectory(logoFolder); } if (File.Exists(logoFileName) && IsCacheValid(theme, logoFileName)) { return(BuildLogoResourceLocatorAndReturn(ref result, logoFileName)); } LogoProcessor processor = new LogoProcessor { DesignsFolder = designsFolder }; // From repository using (var repo = new LogoRepository { RepositoryUrl = _settings.RepositoryUrl }) { var stream = repo.Download(name, logoChannelType, _country.TwoLetterISORegionName); if (stream == null) { return(BuildLogoResourceLocatorAndReturn(ref result, logoFileName)); } using (stream) { // First download and process the new logo, but keep the existing file if something fails. string tmpLogoFileName = Path.ChangeExtension(logoFileName, ".tmplogo"); if (processor.CreateLogo(theme, stream, tmpLogoFileName)) { if (File.Exists(logoFileName)) { File.Delete(logoFileName); } File.Move(tmpLogoFileName, logoFileName); } return(BuildLogoResourceLocatorAndReturn(ref result, logoFileName)); } } } catch (Exception ex) { ServiceRegistration.Get <ILogger>().Error("SlimTv Logos: Error processing logo image.", ex); } return(false); }
public IEnumerable <Logo> Get() { return(LogoRepository.FindAll()); }
public bool CreateDefaults() { bool aboutIsEmpty = AboutRepository.IsEmpty().GetAwaiter().GetResult(); //aboutIsEmpty = false; if (aboutIsEmpty == false) { return(false); } if (aboutIsEmpty) { try { var newAbout = new About { created_at = DateTime.Now, updated_at = DateTime.Now, photo = $@"http://res.cloudinary.com/djqq6o8su/image/upload/mkvg51472rnjves4etg0", title = "Mr Photographer", desc = "Photographer based in Somewhere" }; AboutRepository.Insert(newAbout); SaveAsync().GetAwaiter().GetResult(); } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } bool galleryIsEmpty = GalleryRepository.IsEmpty().GetAwaiter().GetResult(); //galleryIsEmpty = false; if (galleryIsEmpty) { try { string[] names = new string[] { "People", "Landscape" }; foreach (var name in names) { var newItem = new Gallery { created_at = DateTime.Now, updated_at = DateTime.Now, name = name }; GalleryRepository.Insert(newItem); } SaveAsync().GetAwaiter().GetResult(); } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } bool linkIsEmpty = LinkRepository.IsEmpty().GetAwaiter().GetResult(); //linkIsEmpty = false; if (linkIsEmpty) { try { string[] names = new string[] { "yourfacebookname", "yourinsntagramname", "yourtwittername", "youryourtubename" }; foreach (var name in names) { var newItem = new Link { created_at = DateTime.Now, updated_at = DateTime.Now, name = name }; LinkRepository.Insert(newItem); } SaveAsync().GetAwaiter().GetResult(); } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } bool logoIsEmpty = LogoRepository.IsEmpty().GetAwaiter().GetResult(); //logoIsEmpty = false; if (logoIsEmpty) { try { string[] photos = new string[] { "http://res.cloudinary.com/djqq6o8su/image/upload/iwrwnlkuxlbypgdn05kp" }; foreach (var photo in photos) { var newItem = new Logo { created_at = DateTime.Now, updated_at = DateTime.Now, photo = photo }; LogoRepository.Insert(newItem); } SaveAsync().GetAwaiter().GetResult(); } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } bool slideIsEmpty = SlideRepository.IsEmpty().GetAwaiter().GetResult(); //slideIsEmpty = false; if (slideIsEmpty) { try { string[] names = new string[] { "http://res.cloudinary.com/djqq6o8su/image/upload/rrcbpzjxm5mesjptu9lc", "http://res.cloudinary.com/djqq6o8su/image/upload/iib9veyowj3wpyirbmlo", "http://res.cloudinary.com/djqq6o8su/image/upload/qgo6zbmwwd0kyanaoynz" }; foreach (var name in names) { var newItem = new Slide { created_at = DateTime.Now, updated_at = DateTime.Now, name = name }; SlideRepository.Insert(newItem); } SaveAsync().GetAwaiter().GetResult(); } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } bool photoIsEmpty = PhotoRepository.IsEmpty().GetAwaiter().GetResult(); //photoIsEmpty = false; if (photoIsEmpty) { try { string[] names = new string[] { "http://res.cloudinary.com/djqq6o8su/image/upload/tub2v7olse0lwbq9vzrv", "http://res.cloudinary.com/djqq6o8su/image/upload/hvxogea37wkzqv5o6kkv", "http://res.cloudinary.com/djqq6o8su/image/upload/dp62d2vwochkoy2y82ee", "http://res.cloudinary.com/djqq6o8su/image/upload/lifml3ceohhebylxgue6", "http://res.cloudinary.com/djqq6o8su/image/upload/ki6pdlhihsvaakimfnml", "http://res.cloudinary.com/djqq6o8su/image/upload/itwquw92jfpht6yi1ilk", "http://res.cloudinary.com/djqq6o8su/image/upload/jplpld8tp4bxvskdpdzr" }; string[] names2 = new string[] { "http://res.cloudinary.com/djqq6o8su/image/upload/vp8ahga7g1h8f6zx2d0x", "http://res.cloudinary.com/djqq6o8su/image/upload/ozljewvxh83ahvob1aml", "http://res.cloudinary.com/djqq6o8su/image/upload/tgrcyaoqx8jwi7mksakd", "http://res.cloudinary.com/djqq6o8su/image/upload/nnsii3wvw6gn40qcldwf", "http://res.cloudinary.com/djqq6o8su/image/upload/e23tgxmvw8jkeje3apjk", "http://res.cloudinary.com/djqq6o8su/image/upload/tb0rpo4gvhxv0cyyb31z", "http://res.cloudinary.com/djqq6o8su/image/upload/k90gojfb903m7hoknvs5", "http://res.cloudinary.com/djqq6o8su/image/upload/yqmqqvltyfgt6wbza9zg", "http://res.cloudinary.com/djqq6o8su/image/upload/vrlwiz6u8gcrygbruzw3", "http://res.cloudinary.com/djqq6o8su/image/upload/xapqjqz9vs5kwhqh0cr5" }; var galleryPeople = GalleryRepository.GetAsync(item => item.name == "People").GetAwaiter().GetResult().FirstOrDefault(); var galleryLandscape = GalleryRepository.GetAsync(item => item.name == "Landscape").GetAwaiter().GetResult().FirstOrDefault(); foreach (var name in names) { var newItem = new Photo { created_at = DateTime.Now, updated_at = DateTime.Now, name = name, Gallery = galleryPeople }; PhotoRepository.Insert(newItem); } foreach (var name in names2) { var newItem = new Photo { created_at = DateTime.Now, updated_at = DateTime.Now, name = name, Gallery = galleryLandscape }; PhotoRepository.Insert(newItem); } SaveAsync().GetAwaiter().GetResult(); } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } bool userIsEmpty = UserManager.Users.Count() == 0; if (userIsEmpty) { //var user = new ApplicationUser //{ // ApiToken = "some", // UserName = "******", // Email = "*****@*****.**", // EmailConfirmed = true, // DateAdd = DateTime.Now, // DateUpd = DateTime.Now //}; //await UserManager.CreateAsync(user, "admin"); ApplicationDbInitializer.SeedRoles(RoleManager); ApplicationDbInitializer.SeedUsers(UserManager, appSettings); //await SaveAsync(); //new SignInManager<User>().SignInAsync //UserManager.Users.ToList().ForEach( async(user)=> { // await _userManager.DeleteAsync(user); //}); } if (aboutIsEmpty || galleryIsEmpty || linkIsEmpty || logoIsEmpty || photoIsEmpty || slideIsEmpty || userIsEmpty) { return(true); } else { return(false); } }