示例#1
0
        public void SetBingWallpaper(string location)
        {
            if (bingObject == null)
            {
                bingObject = new BingObject();
            }
            bingImageFile = BingUtils.GetWallpaperFromBing(location, ref bingObject);

            Utils.SetWallpaper(bingImageFile);

            if (bingObject.config != null && bingObject.config.setLockScreen)
            {
                Utils.SetLockScreen(bingImageFile);
            }

            if (bingObject.images != null)
            {
                string info = bingObject.images.FirstOrDefault().copyright;
                if (info != null)
                {
                    this.TextCopyright = Regex.Match(info, @"\(([^)]*)\)").Groups[1].Value;
                    this.TextTitle     = info.Replace(Regex.Match(info, @"\(([^)]*)\)").Groups[0].Value, "");
                }
            }
        }
示例#2
0
        public static BingObject ReadConfig()
        {
            BingObject result = null;

            if (File.Exists(LOCAL_CONFIGURATION_FILE_JSON))
            {
                string fileJson = File.ReadAllText(LOCAL_CONFIGURATION_FILE_JSON);
                result = JsonConvert.DeserializeObject <BingObject>(fileJson);
            }
            return(result);
        }
示例#3
0
 public static string GetWallpaperFromBing(string location, ref BingObject bingObject)
 {
     try
     {
         bingObject = Step1_DownloadBingConfigFile(location);
         string url = string.Format("{0}{1}{2}", BING_URL, bingObject?.images?.FirstOrDefault()?.urlbase, BING_RESOLUTION);
         Debug.Print("La imagen está en: {0}", url);
         Step2_DownloadImageFile(url);
     }
     catch (Exception ex) {
         Debug.Print(ex.Message);
     }
     return(LOCAL_IMAGE_FILE_JPG);
 }
示例#4
0
        public MainWindow()
        {
            CloseSameProcesses();

            InitializeComponent();
            this.DataContext = this;

            bingObject = BingUtils.ReadConfig();
            InitializeSettingsTab();

            SetBingWallpaper(defaultLanguage);

            Minimize();
        }
示例#5
0
        private static BingObject Step1_DownloadBingConfigFile(string location)
        {
            BingObject newBingObject = null, actualBingObject = null;
            string     json = string.Empty;

            try
            {
                string url = string.Format("{0}{1}", BING_IMG_URL_JSON, location);
                if (Utils.IsInternetAvailable())
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                        using (Stream stream = response.GetResponseStream())
                            using (StreamReader reader = new StreamReader(stream))
                            {
                                json          = reader.ReadToEnd();
                                newBingObject = JsonConvert.DeserializeObject <BingObject>(json);

                                if (File.Exists(LOCAL_CONFIGURATION_FILE_JSON))
                                {
                                    string fileJson = File.ReadAllText(LOCAL_CONFIGURATION_FILE_JSON);
                                    actualBingObject     = JsonConvert.DeserializeObject <BingObject>(fileJson);
                                    newBingObject.config = actualBingObject.config;
                                    File.Delete(LOCAL_CONFIGURATION_FILE_JSON);
                                }
                                File.WriteAllText(LOCAL_CONFIGURATION_FILE_JSON, JsonConvert.SerializeObject(newBingObject));
                            }
                }
                else
                {
                    throw new WebException();
                }
            }
            catch
            {
                //Fallo en la red, obtenemos el temporal
                json          = File.ReadAllText(LOCAL_CONFIGURATION_FILE_JSON);
                newBingObject = JsonConvert.DeserializeObject <BingObject>(json);
            }
            return(newBingObject);
        }