protected override void ProcessRecord() { WriteVerbose("Getting wallpaper..."); var wallheavenClient = new WallhavenClient(new WebClientFactory()); List <WallpaperInfo> wallpaperInfos = new List <WallpaperInfo>(); if (Latest.IsPresent) { wallpaperInfos = wallheavenClient.GetLatest(PageNumber); } else if (Random.IsPresent) { wallpaperInfos = wallheavenClient.GetRandom(PageNumber); } else if (Search.IsPresent) { var searchParams = new SearchParameter { Page = PageNumber, Categories = GetCategory(), Sorting = SearchSorting, Order = SearchOrder, Query = SearchQuery, Purity = GetPurity(), Ratios = Ratios, Resolutions = Resolutions }; wallpaperInfos = wallheavenClient.Search(searchParams); } WriteVerbose($"Got {wallpaperInfos.Count} wallpaper"); wallpaperInfos.ForEach(WriteObject); }
public void GetLatest_NoPageNumber_CallsUrlWithoutPageNumber() { var webClientMock = CreateWebClientMock(new Uri("https://alpha.wallhaven.cc/latest")); var webClientFactory = CreateWebClientFactory(webClientMock.Object); var client = new WallhavenClient(webClientFactory); client.GetLatest(); webClientMock.VerifyAll(); }
public void GetRandom_NoPageNumber_CallsUrlWithPageNumber(int pageNumber) { var webClientMock = CreateWebClientMock(new Uri($"https://alpha.wallhaven.cc/random?page={pageNumber}")); var webClientFactory = CreateWebClientFactory(webClientMock.Object); var client = new WallhavenClient(webClientFactory); client.GetRandom(pageNumber); webClientMock.VerifyAll(); }
public void GetRandom_NoPageNumber_ReturnsTheImagesOfFirstPage() { var webClientMock = CreateWebClientMock(includeDetailPageData: true); var webClientFactory = CreateWebClientFactory(webClientMock.Object); var client = new WallhavenClient(webClientFactory); List <WallpaperInfo> latestWallpapers = client.GetRandom(); Assert.That(latestWallpapers, Is.Not.Empty); Assert.That(latestWallpapers.All(IsValidWallpaperInfo), Is.True); }
public void Search_SearchParamsWithIllegalPageNumber_CallsSearchUrlWithPageNumberOne(int?pageNumber) { var searchParam = new SearchParameter { Page = pageNumber }; var webClientMock = CreateWebClientMock(new Uri("https://alpha.wallhaven.cc/search?page=1")); var webClientFactory = CreateWebClientFactory(webClientMock.Object); var wallhavenClient = new WallhavenClient(webClientFactory); wallhavenClient.Search(searchParam); webClientMock.VerifyAll(); }
public void test_interval() { var wh = new WallhavenClient(); var item = wh.search("Sasuke -Yellow", "random", "1M", true).Result?.data?.FirstOrDefault(); if (item != null) { var data = wh.downloadWallpaper(item).Result; if (data != null) { var endPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Path.GetFileName(item.path)); File.WriteAllBytes(endPath, data); App.DisplayPicture(endPath); } } }
public void Search_SearchParams_CallsSearchUrlWithQueryParameter() { var searchParam = new SearchParameter { Page = 2, Sorting = Sorting.Views }; var uri = new Uri($"https://alpha.wallhaven.cc/search?page={searchParam.Page}&sorting={searchParam.Sorting}"); var webClientMock = CreateWebClientMock(uri); var webClientFactory = CreateWebClientFactory(webClientMock.Object); var wallhavenClient = new WallhavenClient(webClientFactory); wallhavenClient.Search(searchParam); webClientMock.VerifyAll(); }
public void Search_SearchParams_ReturnsWallpaperInfos() { var webClientMock = CreateWebClientMock(includeDetailPageData: true); var webClientFactory = CreateWebClientFactory(webClientMock.Object); var wallhavenClient = new WallhavenClient(webClientFactory); var searchParam = new SearchParameter { Sorting = Sorting.Views, Order = Order.Descending, Categories = new Category(CategoryValue.General) }; List <WallpaperInfo> wallpaperInfos = wallhavenClient.Search(searchParam); Assert.That(wallpaperInfos, Is.Not.Empty); Assert.That(wallpaperInfos.All(IsValidWallpaperInfo), Is.True); }
public void startChangeProcess() { Config = new AppConfig(); Config.Load().Wait(); var wh = new WallhavenClient(); var bgInterval = App.Config.ChangeInterval; var changeOnStart = App.Config.ChangeOnStart; var bgChanger = new Timer(bgInterval); var wpPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wallpapers"); bgChanger.Elapsed += (s, e) => { try { bgChanger.Stop(); var item = wh.search(Config.SearchQuery, Config.selectedSort, Config.selectedTopRange, true).Result?.data?.FirstOrDefault(); if (item != null) { var data = wh.downloadWallpaper(item).Result; if (data != null) { if (!Directory.Exists(wpPath)) { Directory.CreateDirectory(wpPath); } var endPath = Path.Combine(wpPath, Path.GetFileName(item.path)); File.WriteAllBytes(endPath, data); if (File.Exists(endPath)) { DisplayPicture(endPath); } bgChanger.Start(); } } } catch (Exception ex) { File.WriteAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "error.log"), ex.ToString()); bgChanger.Start(); } }; bgChanger.Start(); Task.Delay(-1).Wait(); }
public BaseService(WallhavenClient client) { this._client = client; }
public ActivityService(WallhavenClient client) : base(client) { }
public AppService(WallhavenClient client) : base(client) { }
public ConfigService(WallhavenClient client) : base(client) { }
public CommandHandler(WallhavenClient client, CommandService commands) { _commands = commands; _client = client; }
public WallhavenCommandContext(WallhavenClient client, SocketUserMessage msg) : base(client, msg) { this.Client = client; }