private static IWallpaperSetter CreateWallpaperSetter() { IWallpaperSetter setter = null; //If Windows if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { setter = new WindowsWallpaperImageSetter(); } //If OSX if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { setter = new MacOSWallpaperImageSetter(); } //If Linux if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { var desktopEnvironment = Environment.GetEnvironmentVariable("DESKTOP_SESSION") ?? Environment.GetEnvironmentVariable("XDG_CURRENT_DESKTOP") ?? Environment.GetEnvironmentVariable("XDG_SESSION_DESKTOP"); switch (desktopEnvironment.ToLower()) { case "gnome": setter = new LinuxGnomeWallpaperImageSetter(); break; } } return(setter); }
public static void Main(string[] args) { Console.WriteLine("App Started"); Console.WriteLine("Talking to Reddit..."); Reddit reddit = new Reddit(); RedditReponse response = reddit.GetPostsAsync().Result; string topImage = response.data.children[0].data.url; Console.WriteLine("Reddit data retrieved: " + topImage); Console.WriteLine("Downloading file..."); IFileSaver saver = new FileDownloader(); string path = saver.Save(topImage); Console.WriteLine("File downloaded to: " + path); Console.WriteLine("Setting desktop wallpaper..."); IWallpaperSetter setter = CreateWallpaperSetter(); if (setter == null) { Console.Error.WriteLine("Platform not detected."); return; } setter.SetWallpaper(path); Console.WriteLine("Done!"); }
public MainController() { window = new MainWindow(this); collection = new WallpaperCollection(); collection.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(window.CollectionChanged); wallpaperSetter = new WindowsWallpaperSetter(); wallpaperDAO = new SQLWallpaperDAO(); delayInterval = 1; }
public static void Main(string[] args) { Console.WriteLine("App Started"); Reddit reddit = new Reddit(); IFileSaver saver = new FileDownloader(); IWallpaperSetter setter = CreateWallpaperSetter(); if (setter == null) { Console.Error.WriteLine("Platform not detected."); return; } Console.WriteLine("Getting top image from /r/earthporn..."); //Get the top image to start with. RedditReponse response = reddit.GetPostsAsync(limit: 1).Result; bool liked = false; while (!liked) { Child post = response.data.children[0]; Console.WriteLine("Downloading image: " + post.data.url); string path = saver.Save(post.data.url); Console.WriteLine("Image downloaded to: " + path); Console.WriteLine("Setting desktop wallpaper..."); setter.SetWallpaper(path); Console.WriteLine("Do you like it? [Y/N]"); var input = Console.ReadLine().Trim(); liked = input.ToLower().Equals("y", StringComparison.OrdinalIgnoreCase); //If they didn't like it, get the next post and try again. if (!liked) { Console.WriteLine("Getting the next image from /r/earthporn..."); response = reddit.GetPostsAsync(limit: 1).Result; Console.WriteLine("Reddit data retrieved."); } } Console.WriteLine("Finished!"); }
public MainWindowViewModel(IGetLatestWallpapersUseCase useCase, IGetLatestWallpapersOutputPort output, UrlImageConverter imgConverter, IWallpaperSetter wallpaperSetter) { _useCase = useCase; _output = (LatestWallpapersPresenter)output; _imgConverter = imgConverter; _wallpaperSetter = wallpaperSetter; _sorts = new string[] { "Latest", "Top (1 day)", "Top (3 days)", "Top (1 week)", "Top (1 month)", "Top (3 months)", "Top (6 months)", "Top (1 year)" }; _selectedSort = _sorts.First(); }
public WallpaperChanger(Database database, IWallpaperSaver savewallpaper, IThumbnailCacheBuilder thumbnailCacheBuilder, ISearchUrlProvider searchUrlProvider, IImageInfoProvider imageInfoProvider, IImageLoader imageLoader, IWallpaperSetter wallpaperSetter, ICurrentWallpaperHolder currentWallpaperHolder) { Database = database; Savewallpaper = savewallpaper; ThumbnailCacheBuilder = thumbnailCacheBuilder; SearchUrlProvider = searchUrlProvider; ImageInfoProvider = imageInfoProvider; ImageLoader = imageLoader; WallpaperSetter = wallpaperSetter; CurrentWallpaperHolder = currentWallpaperHolder; HistoryList = new HashSet <string>(); }
public LatestWallpapersPresenter(IWallpaperSetter setter, Random rng) { _setter = setter; _rng = rng; }