Exemple #1
0
        public async Task <ImageInfo> SelectArtwork()
        {
            await ListUpdate();

            ImageInfo img = null;

            while (true)
            {
                if (illustQueue == null)
                {
                    return(null);
                }
                else
                {
                    if (illustQueue.Count != 0)
                    {
                        illustQueue.TryDequeue(out img);
                        if (img != null && img.WHratio >= 1.33 && !img.isR18)
                        {
                            return(img);
                        }
                    }
                    else if (!await ListUpdate())
                    {
                        string       title = loader.GetString("EmptyQueue");
                        ToastMessage tm    = new ToastMessage(title, null, ToastMessage.ToastMode.OtherMessage);
                        tm.ToastPush(60);
                        return(null);
                    }
                }
            }
        }
        /// <summary>
        /// 列表更新方式2
        /// </summary>
        /// <param name="flag">是否强制更新</param>
        /// <returns></returns>
        public async Task <bool> ListUpdate(bool flag = false, string imgId = null)
        {
            if (flag || Recomm == null || Recomm.Count == 0)
            {
                var t = await pixiv.getRecommenList(imgId, nextUrl);

                Recomm  = t.Item1;
                nextUrl = t.Item2;
                if (Recomm != null)
                {
                    return(true);
                }
                else
                {
                    string       title   = loader.GetString("FailToGetQueue");
                    string       content = loader.GetString("FailToGetQueueExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(60);
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Exemple #3
0
        public async Task <bool> ListUpdate(bool flag = false)
        {
            if (flag || illustQueue == null || illustQueue.Count == 0)
            {
                var t = await pixiv.getIllustFollowList(nextUrl);

                illustQueue = t.Item1;
                nextUrl     = t.Item2;
                if (illustQueue != null)
                {
                    return(true);
                }
                else
                {
                    string       title   = loader.GetString("FailToGetFollowingUserUpdatingQueue");
                    string       content = loader.GetString("FailToGetQueueExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(60);
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        private async void RegistTask()
        {
            // Otherwise request access
            var status = await BackgroundExecutionManager.RequestAccessAsync();

            if (status == BackgroundAccessStatus.DeniedBySystemPolicy || status == BackgroundAccessStatus.Unspecified)
            {
                string       title   = loader.GetString("BackgroundTaskDenied");
                string       content = loader.GetString("BackgroundTaskDeniedExplanation");
                ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.BatterySetting);
                tm.ToastPush(120);
            }
            else
            {
                foreach (var i in BackgroundTaskRegistration.AllTasks.Values)
                {
                    if (i.Name.Equals("TimeBackgroundTrigger"))
                    {
                        i.Unregister(true);//将之前的时间触发器任务注销
                    }
                }
                //注册新的时间触发器
                BackgroundTaskBuilder timeBuilder = new BackgroundTaskBuilder();
                timeBuilder.Name = "TimeBackgroundTrigger";
                timeBuilder.SetTrigger(new TimeTrigger(Convert.ToUInt32(c.time), true));
                timeBuilder.IsNetworkRequested = true;
                timeBuilder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable));
                BackgroundTaskRegistration task = timeBuilder.Register();
            }
        }
        private async void BeginExtendedExecution()
        {
            // The previous Extended Execution must be closed before a new one can be requested.
            ClearExtendedExecution();

            var newSession = new ExtendedExecutionSession();

            newSession.Reason      = ExtendedExecutionReason.Unspecified;
            newSession.Description = "Raising periodic toasts";
            newSession.Revoked    += SessionRevoked;
            ExtendedExecutionResult result = await newSession.RequestExtensionAsync();

            switch (result)
            {
            case ExtendedExecutionResult.Allowed:
                session = newSession;
                break;

            default:
            case ExtendedExecutionResult.Denied:
                newSession.Dispose();
                //建立Toast通知
                string       title   = loader.GetString("ExtendedExecutionDenied");
                string       content = loader.GetString("ExtendedExcutionDeniedExplanation");
                ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.BatterySetting);
                tm.ToastPush(120);
                break;
            }
        }
        public async Task <bool> ListUpdate(string rankingMode, bool flag = false)
        {
            if (flag || illustQueue == null || illustQueue.Count == 0 || this.rankingMode != rankingMode)
            {
                //日期参数依旧存在问题
                if (rankingMode == "day")
                {
                    ValueTuple <ConcurrentQueue <ImageInfo>, string> vt = new ValueTuple <ConcurrentQueue <ImageInfo>, string>();
                    if (date.Year == 1)
                    {
                        vt = await pixiv.getRankingList(mode : rankingMode, date : null, nextUrl : nextUrl);
                    }
                    else
                    {
                        vt = await pixiv.getRankingList(mode : rankingMode, date : date.ToString("yyyy-MM-dd"), nextUrl : nextUrl);
                    }
                    illustQueue = vt.Item1;
                    nextUrl     = vt.Item2;
                    if (nextUrl == "begin")
                    {
                        date = date.AddDays(-1);
                    }

                    /*
                     * else
                     * {
                     *  string dt = System.Web.HttpUtility.ParseQueryString(new Uri(nextUrl).Query).Get("date");
                     *  date = DateTime.ParseExact(System.Web.HttpUtility.ParseQueryString(new Uri(nextUrl).Query).Get("date"),
                     *      "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
                     * }
                     */
                }
                else
                {
                    var t = await pixiv.getRankingList(mode : rankingMode, nextUrl : nextUrl);

                    illustQueue = t.Item1;
                    nextUrl     = t.Item2;
                }
                if (illustQueue != null)
                {
                    return(true);
                }
                else
                {
                    string       title   = loader.GetString("FailToGetRankingUpdatingQueue");
                    string       content = loader.GetString("FailToGetQueueExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(60);
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
 private async void share_btn_Click(object sender, RoutedEventArgs e)       //访问p站
 {
     if (c.lastImg != null)
     {
         DataPackage dataPackage = new DataPackage();
         dataPackage.RequestedOperation = DataPackageOperation.Copy;
         dataPackage.SetText(@"https://www.pixiv.net/artworks/" + c.lastImg.imgId);
         string title = loader.GetString("CopyLink");
         Clipboard.SetContent(dataPackage);
         string       content = "";
         ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
         tm.ToastPush(1);
         if (c.mode == "Recommendation")
         {
             if (recommend == null)
             {
                 recommend = new PixivRecommendation(loader, pixiv);
             }
             await recommend.ListUpdate(true, c.lastImg.imgId);
         }
     }
 }
        public static async Task GetToken(string uri)
        {
            Console.WriteLine(uri);
            try
            {
                string[] uriSplit = uri.Split('=', '&');
                string   monitor  = uriSplit[1];
                var      res      = await baseAPI.Code2Token(uriSplit[1]);

                var currentUser = res.Response.User;
                pixiv             = new Pixiv(baseAPI, currentUser);
                conf.RefreshToken = res.Response.RefreshToken;
                frame.Navigate(typeof(MainPage), new ValueTuple <Pixiv, Conf>(pixiv, conf));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                string       title   = lp.loader.GetString("FailToLogin");
                ToastMessage message = new ToastMessage(title, "", ToastMessage.ToastMode.OtherMessage);
                message.ToastPush(30);
            }
        }
        private async void refresh_btn_Click(object sender, RoutedEventArgs e)
        {
            switch (c.mode)
            {
            case "Bookmark":
                if (bookmark == null)
                {
                    bookmark = new PixivBookmark(loader, pixiv);
                }
                if (await bookmark.ListUpdate(true))
                {
                    string       title   = loader.GetString("BookmarkUpdate");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;

            case "FollowIllust":
                if (follow == null)
                {
                    follow = new PixivFollowingIllust(loader, pixiv);
                }
                if (await follow.ListUpdate(true))
                {
                    string       title   = loader.GetString("FollowingUserUpdatingUpdate");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;

            case "Recommendation":
                if (recommend == null)
                {
                    recommend = new PixivRecommendation(loader, pixiv);
                }
                if (await recommend.ListUpdate(true))
                {
                    string       title   = loader.GetString("RecommendedRefresh");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                await recommend.ListUpdate(true);

                break;

            case "Ranking":
                if (ranking == null)
                {
                    ranking = new PixivRanking(loader, pixiv);
                    break;
                }
                if (await ranking.ListUpdate(c.rankingMode, true))
                {
                    string       title   = loader.GetString("RankingRefresh");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;

            default:
                if (recommend == null)
                {
                    recommend = new PixivRecommendation(loader, pixiv);
                }
                if (await recommend.ListUpdate(true))
                {
                    string       title   = loader.GetString("RecommendedRefresh");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;
            }
        }
        public async void SetWallpaper(bool done)
        {
            if (done)
            {
                var dialog = new MessageDialog("");
                if (!UserProfilePersonalizationSettings.IsSupported())
                {
                    string       title   = loader.GetString("NotSupport");
                    string       content = " ";
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(60);
                    return;
                }
                UserProfilePersonalizationSettings settings = UserProfilePersonalizationSettings.Current;
                StorageFile file = null;
                try
                {
                    file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appdata:///local/illusts/" + c.lastImg.imgId + '.' + c.lastImg.format));
                }
                catch (Exception)
                {
                    timer.Interval = TimeSpan.FromSeconds(2);
                    timer.Start();
                }

                if (c.lockscr)
                {
                    //更换锁屏
                    bool lockscr = await settings.TrySetLockScreenImageAsync(file);

                    if (!lockscr)
                    {
                        string       title   = loader.GetString("FailToChangeLock");
                        string       content = " ";
                        ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                        tm.ToastPush(60);
                    }
                }
                //更换壁纸
                bool deskscr = await settings.TrySetWallpaperImageAsync(file);

                if (!deskscr)
                {
                    string       title   = loader.GetString("FailToChangeWallpaper");
                    string       content = " ";
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(60);
                }
                else
                {
                    //推送Toast通知
                    string title   = loader.GetString("Success");
                    string content = c.lastImg.title + "\r\n"
                                     + "id: " + c.lastImg.imgId + "\r\n"
                                     + loader.GetString("Illustrator") + c.lastImg.userName;
                    string       imagePath = file.Path;
                    ToastMessage tm        = new ToastMessage(title, content, ToastMessage.ToastMode.WallpaperUpdate, imagePath);
                    tm.ToastPush(10);
                }
            }
        }