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);
                    }
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
                }
            }
        }
Esempio n. 5
0
        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;
            });

                       
        }