async void FetchClick(object Sender, RoutedEventArgs e) { if (_mwvm.SelectedTab.Module.Provider == null) { return; } List <Post> posts = await MetaWeblogWrapper.GetRecentPosts(blogger, _mwvm.SelectedTab.Module.Cmdlets, providerInfo.FetchPostCount); foreach (CmdletObject cmdlet in _mwvm.SelectedTab.Module.Cmdlets) { Int32 index = posts.IndexOf(new Post { Title = cmdlet.Name }); if (index >= 0) { cmdlet.ArticleIDString = posts[index].PostId; cmdlet.URL = _mwvm.SelectedTab.Module.Provider.ProviderName.ToLower() == "codeplex" ? _mwvm.SelectedTab.Module.Provider.Blog.url + "wikipage?title=" + cmdlet.Name : posts[index].Permalink; if (!Uri.IsWellFormedUriString(cmdlet.URL, UriKind.Absolute)) { var baseUrl = new Uri(_mwvm.SelectedTab.Module.Provider.ProviderURL); cmdlet.URL = String.Format("{0}://{1}{2}", baseUrl.Scheme, baseUrl.DnsSafeHost, cmdlet.URL); } } } }
public void GetRecentPosts() { WeblogInfo weblogInfo = WeblogAddinConfiguration.Current.Weblogs[ConstWeblogName]; var wrapper = new MetaWeblogWrapper(weblogInfo.ApiUrl, weblogInfo.Username, weblogInfo.Password); var posts = wrapper.GetRecentPosts(2).ToList(); Assert.IsTrue(posts.Count == 2); foreach (var post in posts) { Console.WriteLine(post.Title + " " + post.DateCreated); } }
public void GetRecentPost() { WeblogInfo weblogInfo = WeblogAddinConfiguration.Current.Weblogs[ConstWeblogName]; var wrapper = new MetaWeblogWrapper(weblogInfo.ApiUrl, weblogInfo.Username, weblogInfo.Password); var posts = wrapper.GetRecentPosts(2).ToList(); Assert.IsTrue(posts.Count == 2); var postId = posts[0].PostID; var post = wrapper.GetPost(postId.ToString()); Assert.IsNotNull(post); Console.WriteLine(post.Title); // markdown Console.WriteLine(post.CustomFields?[0].Value); }
async void FetchClick(object Sender, RoutedEventArgs e) { if (_mwvm.SelectedTab.Module.Provider == null) { return; } List <Post> posts = await MetaWeblogWrapper.GetRecentPosts(blogger, _mwvm.SelectedTab.Module.Cmdlets, providerInfo.FetchPostCount); foreach (CmdletObject cmdlet in _mwvm.SelectedTab.Module.Cmdlets) { Int32 index = posts.IndexOf(new Post { Title = cmdlet.Name }); if (index >= 0) { cmdlet.ArticleIDString = posts[index].PostId; cmdlet.URL = _mwvm.SelectedTab.Module.Provider.ProviderName.ToLower() == "codeplex" ? _mwvm.SelectedTab.Module.Provider.Blog.url + "wikipage?title=" + cmdlet.Name : posts[index].Permalink; } } }
private async void Button_DownloadPosts_Click(object sender, RoutedEventArgs e) { WeblogInfo weblogInfo = Model.ActiveWeblogInfo; var wrapper = new MetaWeblogWrapper(weblogInfo.ApiUrl, weblogInfo.Username, weblogInfo.DecryptPassword(weblogInfo.Password), weblogInfo.BlogId); Model.Configuration.LastWeblogAccessed = weblogInfo.Name; Dispatcher.Invoke(() => { Model.PostList = new List<Post>(); SetStatusIcon(FontAwesomeIcon.Download, Colors.Orange,true); ShowStatus("Downloading last " + Model.NumberOfPostsToRetrieve + " posts..."); }); WindowUtilities.DoEvents(); List<Post> posts = null; try { bool result = await Task.Run(() => { posts = wrapper.GetRecentPosts(Model.NumberOfPostsToRetrieve).ToList(); return false; }); } catch (XmlRpcException ex) { string message = ex.Message; if (message == "Not Found") message = "Invalid Blog API Url:\r\n" + weblogInfo.ApiUrl; MessageBox.Show("Unable to download posts:\r\n" + message,mmApp.ApplicationName, MessageBoxButton.OK,MessageBoxImage.Warning); return; } catch(Exception ex) { MessageBox.Show("Unable to download posts:\r\n" + ex.Message,mmApp.ApplicationName, MessageBoxButton.OK, MessageBoxImage.Warning); return; } for (int i = 0; i < posts.Count; i++) { var post = posts[i]; post.mt_excerpt = StringUtils.TextAbstract(post.mt_excerpt, 220); } WindowUtilities.DoEvents(); Dispatcher.Invoke(() => { ShowStatus(posts.Count + " posts downloaded.",5000); SetStatusIcon(); Model.PostList = posts; }); }