コード例 #1
0
        private static void WallpaperManager_MaximizedEvent(object sender, bool e)
        {
            switch (Setting.Wallpaper.ActionWhenMaximized)
            {
            case ActionWhenMaximized.Play: break;

            case ActionWhenMaximized.Pause:
                if (e)
                {
                    WallpaperManager.Pause();
                }
                else
                {
                    WallpaperManager.Resume();
                }
                break;

            case ActionWhenMaximized.Stop:
                if (e)
                {
                    WallpaperManager.Close();
                }
                else
                {
                    var current = Wallpapers.FirstOrDefault(m => m.AbsolutePath == AppData.Wallpaper);
                    if (current != null)
                    {
                        WallpaperManager.Show(current);
                    }
                    WallpaperManager.Show(current);
                }
                break;
            }
        }
コード例 #2
0
        public static async Task Initlize()
        {
            //开机启动
#if UWP
            AutoStartupHelper.Initlize(AutoStartupType.Store, "LiveWallpaper");
#else
            AutoStartupHelper.Initlize(AutoStartupType.Win32, "LiveWallpaper");
#endif

            //多语言
            Xaml.CustomMaps.Add(typeof(TaskbarIcon), TaskbarIcon.ToolTipTextProperty);
            //不能用Environment.CurrentDirectory,开机启动目录会出错
            ApptEntryDir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            string path = Path.Combine(ApptEntryDir, "Res\\Languages");
            LanService.Init(new JsonDB(path), true, "zh");

            //配置相关
            var appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            AppDataDir        = $"{appData}\\LiveWallpaper";
            UWPRealAppDataDir = Path.Combine(ApplicationData.Current.LocalCacheFolder.Path, "Roaming\\LiveWallpaper");
            SettingPath       = $"{AppDataDir}\\Config\\setting.json";
            //LocalWallpaperDir = $"{AppDataDir}\\Wallpapers";
            //因为uwp store权限问题所以改为 %userprofile%\videos\LivewallpaperCache
            //string videoDir = Environment.GetFolderPath(Environment.SpecialFolder.MyVideos);
            //LocalWallpaperDir = $"{videoDir}\\LivewallpaperCache";

            AppDataPath      = $"{AppDataDir}\\appData.json";
            PurchaseDataPath = $"{AppDataDir}\\purchaseData.json";

            await CheckDefaultSetting();

            //应用程序数据
            AppData = await JsonHelper.JsonDeserializeFromFileAsync <AppData>(AppDataPath);

            if (AppData == null)
            {
                AppData = new AppData();
                await ApplyAppDataAsync();
            }

            //加载壁纸
            await Task.Run(() =>
            {
                RefreshLocalWallpapers();
                //if (AppData.Wallpaper != null)
                //{
                WallpaperManager.MaximizedEvent += WallpaperManager_MaximizedEvent;
                var current = Wallpapers.FirstOrDefault(m => m.AbsolutePath == AppData.Wallpaper);
                if (current != null)
                {
                    WallpaperManager.VideoAspect = Setting.Wallpaper.VideoAspect;
                    WallpaperManager.Show(current);
                }
                WallpaperManager.MonitorMaxiemized(true);
                //}
            });
        }
コード例 #3
0
        public static void FixAllIndexes()
        {
            Wallpapers.Sort(); //Make sure everything is sorted!

            var goodIndexes         = 0;
            var correctedIndexes    = 0;
            var correctedWallpapers = new List <Wallpaper>();

            var lastFranchise = Wallpapers[0].Franchise;
            var startIndex    = 1;
            var nextIndex     = startIndex; //Counting beginning from 1

            foreach (var currentWallpaper in Wallpapers)
            {
                if (lastFranchise != currentWallpaper.Franchise) //Franchise has changed
                {
                    lastFranchise = currentWallpaper.Franchise;  //Set new Franchise to work in
                    nextIndex     = startIndex;                  //Reset the counting index
                }

                //Check the index.
                if (nextIndex != currentWallpaper.Index)
                {
                    //Needs correction
                    currentWallpaper.SetIndexAndCorrectFiles(nextIndex);
                    correctedIndexes++;
                    correctedWallpapers.Add(currentWallpaper);
                }
                else
                {
                    //Everything good, do nothing
                    goodIndexes++;
                }
                nextIndex++;
            }

            Console.WriteLine($"Good: {goodIndexes}");
            Console.WriteLine($"Corrected: {correctedIndexes}");

            if (correctedIndexes > 0)
            {
                Console.WriteLine("\nList of corrected wallpapers:");
                foreach (var currentWallpaper in correctedWallpapers)
                {
                    Console.WriteLine(currentWallpaper);
                }
            }
        }
コード例 #4
0
        public static void FullScan()
        {
            var allFiles = WallpaperDirectory.GetFiles("*", SearchOption.AllDirectories);

            foreach (var currentFile in allFiles)
            {
                if (WallpaperFileHelper.IsImage(currentFile))
                {
                    if (!currentFile.Name.Contains("#o"))
                    {
                        _ = new Wallpaper(currentFile, WallpaperCreationMode.Scan);
                    }
                }
            }
            Wallpapers.Sort();
        }
コード例 #5
0
        private async void LoadWallpapers()
        {
            if (LoadingWallpapersVisibility)
            {
                return;
            }

            LoadingWallpapersVisibility = true;
            Wallpapers?.Clear();
            var wallpapers = await AnimeWallpapersQuery.GetAllWallpapers(CurrentPage);

            if (wallpapers != null)
            {
                Wallpapers = new ObservableCollection <WallpaperItemViewModel>(wallpapers.Select(data => new WallpaperItemViewModel(data)));
            }
            LoadingWallpapersVisibility  = false;
            NoWallpapersNoticeVisibility = Wallpapers?.Any() ?? true;
        }
コード例 #6
0
        private static void ShowCurrentWallpapers()
        {
            if (AppData.Wallpapers == null)
            {
                return;
            }

            foreach (var item in AppData.Wallpapers)
            {
                var w = Wallpapers.FirstOrDefault(m => m.AbsolutePath == item.Path);
                if (w == null)
                {
                    continue;
                }

                logger.Info($"ShowCurrentWallpapers {w.AbsolutePath} , {item.DisplayIndex}");
                WallpaperManager.Show(w, item.DisplayIndex);
            }
        }
コード例 #7
0
        public Wallpapers Wallpapers(string tag, int pag)
        {
            using (HttpClient AruppiClient = new HttpClient())
            {
                string url = _iconfiguration.GetSection("Keys").GetSection("UrlBaseImages").Value + string.Format("{0}?type=json&search_tag={1}", pag, tag);

                AruppiClient.BaseAddress = new Uri(url);

                StringBuilder path = new StringBuilder(url);

                Wallpapers respuesta = new Wallpapers();


                using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, new Uri(path.ToString())))
                {
                    try
                    {
                        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                        HttpResponseMessage response = AruppiClient.GetAsync(url).Result;

                        string jsonString = response.Content.ReadAsStringAsync().Result;

                        if (response.IsSuccessStatusCode && response.StatusCode.Equals(System.Net.HttpStatusCode.OK))
                        {
                            respuesta = JsonConvert.DeserializeObject <Wallpapers>(jsonString);
                        }
                        else
                        {
                            throw new Exception();
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }

                    return(respuesta);
                }
            }
        }
コード例 #8
0
        public async Task <ReadOnlyCollection <WallpaperServerObj> > LoadWallpapers()
        {
            if (SelectedTag == null || SelectedSort == null)
            {
                return(null);
            }

            var service = IoC.Get <AppService>();

            if (_pageIndex >= 2 && AppService.IsLocked(service.Setting.Server.ServerUrl))
            {
#pragma warning disable UWP003 // UWP-only
                MessageDialog msg = new MessageDialog("更多壁纸请加群 641405255 免费解锁");
#pragma warning restore UWP003 // UWP-only
                var result = await msg.ShowAsync();

                return(null);
            }

            if (Wallpapers == null)
            {
                Wallpapers = new List <WallpaperServerObj>();
            }
            else if (_pageIndex == 1)
            {
                Wallpapers.Clear();
            }

            var tempList = await _localServer.GetWallpapers(SelectedTag.ID, SelectedSort.ID, _pageIndex ++);

            if (tempList == null)
            {
                return(null);
            }

            tempList.ForEach(m => Wallpapers.Add(m));

            return(new ReadOnlyCollection <WallpaperServerObj>(Wallpapers));
        }
コード例 #9
0
 private void cleanButton_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show(CleanUpWarningText, Title,
                         MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel)
         == MessageBoxResult.OK)
     {
         var dir = new DirectoryInfo(
             (Default.DownloadPath == "" || Default.DownloadPath == @"\")
                 ? AppDomain.CurrentDomain.SetupInformation.ApplicationBase
                 : Default.DownloadPath);
         var jpg   = dir.GetFiles("*.jpg", SearchOption.TopDirectoryOnly);
         var png   = dir.GetFiles("*.png", SearchOption.TopDirectoryOnly);
         var files = new FileInfo [jpg.Length + png.Length];
         Array.Copy(jpg, files, jpg.Length);
         Array.Copy(png, 0, files, jpg.Length, png.Length);
         foreach (var file in files)
         {
             if (!Wallpapers.Contains(file.FullName))
             {
                 file.Delete();
             }
         }
     }
 }
コード例 #10
0
 public static void Reset()
 {
     Types.Clear();
     Franchises.Clear();
     Wallpapers.Clear();
 }
コード例 #11
0
        public async Task Start(Action <Wallpaper, Phrase> callBack = null)
        {
            if (IsRunning)
            {
                return;
            }

            _userWallpaper = WinAPI.GetWallpaper();
            _userStyle     = WinAPI.GetWallpaperStyle();

            if (Wallpapers.Count == 0)
            {
                MessageBox.Show("List of wallpapers is empty", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
            if (Wallpapers.All(i => i.IsFixed == false))
            {
                MessageBox.Show("Select a phrase display point of any wallpaper", "Failed attempt",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
            if (PhrasesGroups.Count == 0 || PhrasesGroups.All(i => i.Phrases.Count == 0) || !PhrasesGroups.Any(i => i.IsEnabled))
            {
                MessageBox.Show("List of phrases is empty", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            _currentWallpaperIndex = 0;
            _currentPhraseIndex    = 0;

            PhrasesGroup phrasesGroup = null;

            try
            {
                foreach (PhrasesGroup group in PhrasesGroups)
                {
                    if (!group.IsEnabled)
                    {
                        continue;
                    }

                    phrasesGroup = group;
                    await phrasesGroup.TranslateRequireded(_translator);
                }
            }
            catch (GoogleTranslateIPBannedException e)
            {
                MessageBox.Show($"You have been banned on https://translate.google.{_translator.Domain}.\n" +
                                $"Try to use a proxy or wait a few hours.", "Oops!", MessageBoxButton.OK, MessageBoxImage.Error);
                Easy.Logger.Log4NetService.Instance.GetLogger <Wallpaper>().Info(e);
                //TODO: PROXY
            }
            catch (Exception e)
            {
                Easy.Logger.Log4NetService.Instance.GetLogger <WallpaperController>().Error(e);
                MessageBox.Show($"An error occurred while trying to translate a group \"{phrasesGroup.GroupName}\"\n" +
                                "Group was disabled.", "Translation Fail",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                phrasesGroup.IsEnabled = false;
            }


            _tempPhrases = PhraseUpdateOrder == UpdateOrder.Randomly
                                ? PhrasesGroups.GetShuffledPhrases()
                                : (from grp in PhrasesGroups where grp.IsEnabled from phrase in grp.Phrases select phrase).ToArray();

            if (_tempPhrases.Length == 0)
            {
                MessageBox.Show("Run is stopped", "Failed attempt", MessageBoxButton.OK, MessageBoxImage.Stop);
                return;
            }

            _tempWallpapers = WallpaperUpdateOrder == UpdateOrder.Randomly
                                ? Wallpapers.OrderBy(i => _random.Next()).ToArray()
                                : (from wallpaper in Wallpapers where wallpaper.IsFixed select wallpaper).ToArray();

            _callBack = callBack;
            _timer.Change(TimeSpan.Zero, UpdateFrequency);
            IsRunning = true;
        }
コード例 #12
0
 public void RemoveWallpaper(Wallpaper wallpaper)
 {
     Wallpapers.Remove(wallpaper);
 }
コード例 #13
0
 public void AddWallpaper(Wallpaper wallpaper)
 {
     Wallpapers.Add(wallpaper);
 }
コード例 #14
0
        public Wallpapers Wallpapers(string tag = "samurai", int pag = 0)
        {
            Wallpapers images = _client.Wallpapers(tag, pag);

            return(images);
        }