private static async void RefreshModelRssFeed(ProgressBarHelper progressBarHelper) { App.MainViewModel.RssItems.Clear(); string url = PreferenceHelper.GetPreference("RSS_FollowerPath"); if (string.IsNullOrEmpty(url)) { progressBarHelper.PopTask(); return; } RestClient client = new RestClient(); RestRequest request = new RestRequest(); client.Authority = url; request.Method = Method.Get; RestResponse response = await client.BeginRequest(request); if(response.Error == RestError.ERROR_SUCCESS && response.Content != null) { try { SyndicationFeed feed = new SyndicationFeed(); feed.Load(response.Content); foreach (SyndicationItem item in feed.Items) { ItemViewModel model = RSSFeedConverter.ConvertFeedToCommon(item); if (model != null) { App.MainViewModel.RssItems.Add(model); } } } catch (System.Exception ex) { DialogHelper.ShowToastDialog("RSS获取中发生错误,可能是网络问题,也可能是对应站点地址变更"); } finally { progressBarHelper.PopTask(); } } else { DialogHelper.ShowToastDialog("RSS获取中发生错误,可能是网络问题,也可能是对应站点地址变更"); progressBarHelper.PopTask(); } }
public static void RefreshMainViewModel(ProgressBarHelper progressBarHelper) { Task.Run(() => { if (progressBarHelper == null) return; progressBarHelper.PushTask("SinaWeibo"); progressBarHelper.PushTask("Rss"); progressBarHelper.PushTask("Renren"); progressBarHelper.PushTask("Douban"); // 1.Weibo RefreshModelSinaWeibo(progressBarHelper); // 2.Rss RefreshModelRssFeed(progressBarHelper); // 3.Renren RefreshModelRenren(progressBarHelper); // 4.Douban RefreshModelDouban(progressBarHelper); }); }
private async void SearchByKey(String key) { if (m_progressBarHelper == null) m_progressBarHelper = new ProgressBarHelper(LoadProgessBar, () => { }); m_progressBarHelper.PushTask(); RestClient client = new RestClient(); RestRequest request = new RestRequest(); client.Authority = "http://www.search4rss.com/search.php"; request.Method = Method.Get; request.AddParameter("lang", "en"); request.AddParameter("q", key); RestResponse response = await client.BeginRequest(request); if (response.Error == RestError.ERROR_SUCCESS && response.Content != null) { HandleHtml(response.Content); } else { DialogHelper.ShowMessageDialog("网络无法连接,请检查当前网络状态。"); m_progressBarHelper.PopTask(); } }
private void RefreshComments() { if (m_itemViewModel == null) return; if (m_progressBarHelper == null) { m_progressBarHelper = new ProgressBarHelper(CommentProgessBar, () => { }); } m_progressBarHelper.PushTask(); EntryType type = m_itemViewModel.Type; if (type == EntryType.SinaWeibo) { RefreshCommentsForSinaWeibo(); } else if (type == EntryType.Renren) { RefreshCommentsForRenren(); } else if (type == EntryType.Douban) { RefreshCommentsForDouban(); } }
private void Refresh_Tapped(object sender, TappedRoutedEventArgs e) { topAppBar.IsOpen = false; bottomAppBar.IsOpen = false; if (m_progressBarHelper == null) { m_progressBarHelper = new ProgressBarHelper(MainProgessBar, RefreshViewerHelper.RefreshViewItems); } RefreshViewerHelper.RefreshMainViewModel(m_progressBarHelper); }
private void Page_Loaded(object sender, RoutedEventArgs e) { if (App.MainViewModel.IsChanged) { App.MainViewModel.IsChanged = false; if (m_progressBarHelper == null) { m_progressBarHelper = new ProgressBarHelper(MainProgessBar, RefreshViewerHelper.RefreshViewItems); } RefreshViewerHelper.RefreshMainViewModel(m_progressBarHelper); } }
private static async void RefreshModelSinaWeibo(ProgressBarHelper progressBarHelper) { App.MainViewModel.SinaWeiboPicItems.Clear(); App.MainViewModel.SinaWeiboItems.Clear(); // 1.检查有没有登陆 if (String.IsNullOrEmpty(PreferenceHelper.GetPreference("SinaWeibo_ID"))) { progressBarHelper.PopTask("Sina"); return; } // 2.检查有没有指定帐号 String followerID = PreferenceHelper.GetPreference("SinaWeibo_FollowerID"); if (String.IsNullOrEmpty(followerID)) { //DialogHelper.ShowToastDialog("尚未设置新浪微博关注对象"); progressBarHelper.PopTask(); return; } // 3.检查有授权有没有过期 if (App.SinaWeiboAPI.IsAccessTokenOutOfDate()) { DialogHelper.ShowToastDialog("新浪授权已过期,请重新登陆"); PreferenceHelper.RemoveSinaWeiboLoginAccountPreference(); progressBarHelper.PopTask(); } String strCount = PreferenceHelper.GetPreference("SinaWeibo_RecentCount"); if (String.IsNullOrEmpty(strCount)) { strCount = "40"; } int nCount; try { nCount = int.Parse(strCount); } catch (System.Exception ex) { nCount = 40; } SinaWeiboSDK.GetUserTimelineResponse response = await App.SinaWeiboAPI.StatuesAPI.GetUserTimeline(followerID, nCount); if (response.Error == RestBase.RestError.ERROR_SUCCESS && response.statuses != null) { foreach (SinaWeiboSDK.Status status in response.statuses) { ItemViewModel model = SinaWeiboConverter.ConvertItemToCommon(status); if (model != null) { App.MainViewModel.SinaWeiboItems.Add(model); } } progressBarHelper.PopTask(); } else { if (response.Error == RestBase.RestError.ERROR_EXPIRED) { DialogHelper.ShowMessageDialog("新浪微博帐号已过期,请重新登陆", "温馨提示"); PreferenceHelper.RemoveSinaWeiboLoginAccountPreference(); } progressBarHelper.PopTask(); } }
private static async void RefreshModelRenren(ProgressBarHelper progressBarHelper) { App.MainViewModel.RenrenPicItems.Clear(); App.MainViewModel.RenrenItems.Clear(); // 1.检查有没有登陆 if (String.IsNullOrEmpty(PreferenceHelper.GetPreference("Renren_ID"))) { progressBarHelper.PopTask("Renren"); return; } // 2.检查有没有指定帐号 String followerID = PreferenceHelper.GetPreference("Renren_FollowerID"); if (String.IsNullOrEmpty(followerID)) { //DialogHelper.ShowToastDialog("尚未设置人人关注对象"); progressBarHelper.PopTask(); return; } // 3.检查有授权有没有过期 if (App.RenrenAPI.IsAccessTokenOutOfDate()) { DialogHelper.ShowToastDialog("人人授权已过期,请重新登陆"); PreferenceHelper.RemoveRenrenLoginAccountPreference(); progressBarHelper.PopTask(); } String strCount = PreferenceHelper.GetPreference("Renren_RecentCount"); if (String.IsNullOrEmpty(strCount)) { strCount = "40"; } int nCount; try { nCount = int.Parse(strCount); } catch (System.Exception ex) { nCount = 40; } RenrenSDK.GetUserTimelineResponse response = await App.RenrenAPI.FeedAPI.GetUserTimeline(followerID, "10,30,32" ,nCount); if (response.Error == RestBase.RestError.ERROR_SUCCESS && response.ListRenrenNews != null) { foreach (RenrenSDK.RenrenNews news in response.ListRenrenNews) { ItemViewModel model = RenrenConverter.ConvertRenrenNewsToCommon(news); if (model != null) { App.MainViewModel.RenrenItems.Add(model); } } progressBarHelper.PopTask(); } else { if (response.Error == RestBase.RestError.ERROR_EXPIRED) { DialogHelper.ShowMessageDialog("人人帐号已过期或者出现了网络问题,请重新登陆", "温馨提示"); PreferenceHelper.RemoveSinaWeiboLoginAccountPreference(); } progressBarHelper.PopTask(); } }
private static async void RefreshModelDouban(ProgressBarHelper progressBarHelper) { //App.MainViewModel.DoubanPicItems.Clear(); App.MainViewModel.DoubanItems.Clear(); // 1.检查有没有登陆 if (String.IsNullOrEmpty(PreferenceHelper.GetPreference("Douban_ID"))) { progressBarHelper.PopTask("Douban"); return; } // 2.检查有没有指定帐号 String followerID = PreferenceHelper.GetPreference("Douban_FollowerID"); if (String.IsNullOrEmpty(followerID)) { progressBarHelper.PopTask(); return; } // 3.检查有授权有没有过期 if (App.DoubanAPI.IsAccessTokenOutOfDate()) { // 1)先尝试用refresh_token刷新 DoubanSDK.GetTokenByCodeResponse response = await App.DoubanAPI.AuthorityAPI.GetTokenByRefreshToken(); if (response.Error == RestError.ERROR_SUCCESS && !String.IsNullOrEmpty(response.access_token)) { // 成功,则重新把这个函数跑一遍 PreferenceHelper.SetPreference("Douban_Token", response.access_token); RefreshModelDouban(progressBarHelper); } // 2)刷新不了,提示错误信息 else { DialogHelper.ShowToastDialog("豆瓣授权已过期,请重新登陆"); PreferenceHelper.RemoveDoubanLoginAccountPreference(); progressBarHelper.PopTask(); } } else { String strCount = PreferenceHelper.GetPreference("Douban_RecentCount"); if (String.IsNullOrEmpty(strCount)) { strCount = "40"; } int nCount; try { nCount = int.Parse(strCount); } catch (System.Exception ex) { nCount = 40; } DoubanSDK.GetUserTimelineResponse response = await App.DoubanAPI.ShuoAPI.GetUserTimeline(followerID, nCount); if (response.Error == RestBase.RestError.ERROR_SUCCESS && response.ListStatus != null) { foreach (DoubanSDK.Status status in response.ListStatus) { ItemViewModel model = DoubanConverter.ConvertDoubanUnionStatues(status); if (model != null) { App.MainViewModel.DoubanItems.Add(model); } } progressBarHelper.PopTask(); } else { if (response.Error == RestBase.RestError.ERROR_EXPIRED) { DialogHelper.ShowMessageDialog("豆瓣帐号已过期,请重新登陆", "温馨提示"); PreferenceHelper.RemoveDoubanLoginAccountPreference(); } progressBarHelper.PopTask(); } } }
private void RefreshMainViewModel() { if (m_progressBarHelper == null) { m_progressBarHelper = new ProgressBarHelper(MainProgessBar, RefreshViewerHelper.RefreshViewItems); } RefreshViewerHelper.RefreshMainViewModel(m_progressBarHelper); }
private void Refresh() { Name1 = ""; Name2 = ""; Name3 = ""; Value1 = 0; Value2 = 0; Value3 = 0; if (m_progressBarHelper == null) { m_progressBarHelper = new ProgressBarHelper(LoadProgessBar, () => { }); } m_progressBarHelper.PushTask(); BaseFetcher fetcher = null; switch (m_type) { case EntryType.SinaWeibo: fetcher = new SinaWeiboFetcher(); AvatarSource = PreferenceHelper.GetPreference("SinaWeibo_FollowerAvatar2"); Name = PreferenceHelper.GetPreference("SinaWeibo_FollowerNickName"); m_herID = PreferenceHelper.GetPreference("SinaWeibo_FollowerID"); break; case EntryType.Renren: fetcher = new RenrenFetcher(); AvatarSource = PreferenceHelper.GetPreference("Renren_FollowerAvatar2"); Name = PreferenceHelper.GetPreference("Renren_FollowerNickName"); m_herID = PreferenceHelper.GetPreference("Renren_FollowerID"); break; case EntryType.Douban: fetcher = new DoubanFetcher(); AvatarSource = PreferenceHelper.GetPreference("Douban_FollowerAvatar2"); Name = PreferenceHelper.GetPreference("Douban_FollowerNickName"); m_herID = PreferenceHelper.GetPreference("Douban_FollowerID"); break; default: fetcher = SelectDefaultFetcher(); break; } if (fetcher == null) { DialogHelper.ShowMessageDialog("请至少登陆一个平台并设置好关注人"); m_progressBarHelper.PopTask(); return; } fetcher.FetchCommentManList((List<CommentMan> list) => { m_listMan = list; if (list == null) { m_progressBarHelper.PopTask(); return; } GetData(); ControlPanel.Children.Clear(); ControlPanel.Children.Add(new PotentialEnemyControl(Name1, Value1, Name2, Value2, Name3, Value3)); m_progressBarHelper.PopTask(); }); }
private void Refresh_Tapped(object sender, TappedRoutedEventArgs e) { if (m_progressBarHelper == null) m_progressBarHelper = new ProgressBarHelper(LoadProgessBar, () => { }); RefreshViewerHelper.RefreshMainViewModel(m_progressBarHelper); }