コード例 #1
0
        public IList<BlogEntryDescriptor> GetBlogEntries(BlogDescriptor blogDescriptor)
        {
            var gateway = GetGateway(blogDescriptor);
            var result = new List<BlogEntryDescriptor>();
            var blogId = GetBlogId(gateway, blogDescriptor);

            if (!String.IsNullOrEmpty(blogId))
            {
                var posts = gateway.getRecentPosts(
                    blogId,
                    blogDescriptor.Username,
                    blogDescriptor.Password,
                    20);

                foreach (var post in posts)
                {
                    result.Add(
                        new BlogEntryDescriptor()
                        {
                            Content = post.description,
                            Date = post.dateCreated,
                            Sender = blogDescriptor.Username,
                            Subject = post.title 
                        });
                }
            }
            
            return result;
        }
コード例 #2
0
 /// <summary>
 /// Creates a new instance of the <code>WizardFinishedEventArgs</code> class.
 /// </summary>
 /// <exception cref="ArgumentNullException">
 /// If the specified <code>blogDescriptor</code> is <code>null</code>.
 /// </exception>
 public WizardFinishedEventArgs(Boolean cancelled, BlogDescriptor blogDescriptor)
 {
     if (blogDescriptor == null)
         throw new ArgumentNullException("blogDescriptor");
     Cancelled = cancelled;
     BlogDescriptor = blogDescriptor;
 }
コード例 #3
0
        public IList<BlogEntryDescriptor> GetBlogEntries(BlogDescriptor blogDescriptor)
        {
            var result = new List<BlogEntryDescriptor>();

            foreach (var item in GetGateway().GetEvents(
                new GetEventsRequest()
                {
                    Username = blogDescriptor.Username,
                    Password = blogDescriptor.Password,
                    HowMany = 20,
                    LineEndings = GetLineEndings(),
                    SelectType = "lastn",
                    NoProps = true
                }).Events)
            {
                result.Add(
                    new BlogEntryDescriptor()
                    {
                        Content = item.Content,
                        Sender = String.IsNullOrEmpty(item.Poster) ? blogDescriptor.Username : item.Poster,
                        Subject = item.Subject,
                        Date = DateTime.Parse(item.EventTime)
                    });
            }

            return result;
        }
コード例 #4
0
 private static String GetBlogId(MetaWeblogGateway gateway, BlogDescriptor blogDescriptor)
 {
     var blogs = gateway.getUsersBlogs("", blogDescriptor.Username, blogDescriptor.Password);
     if (blogs != null && blogs.Length > 0)
         return blogs[0].blogid;
     return null;
 }
コード例 #5
0
 /// <summary>
 /// </summary>
 /// <param name="blogDescriptor"></param>
 /// <exception cref="ArgumentNullException">
 /// If the specified <code>blogDescriptor</code> is <code>null</code>.
 /// </exception>
 public void Start(BlogDescriptor blogDescriptor)
 {
     if (blogDescriptor == null)
         throw new ArgumentNullException("blogDescriptor");
     if (_steps.Count == 0)
         return;
     _currentStepIndex = 0;
     _steps[_currentStepIndex].Show(_wizardOwner, blogDescriptor);
 }
コード例 #6
0
 private static MetaWeblogGateway GetGateway(BlogDescriptor blogDescriptor)
 {
     return new MetaWeblogGateway()
     {
         Credentials = new NetworkCredential(blogDescriptor.Username, blogDescriptor.Password),
         KeepAlive = false,
         Url = blogDescriptor.Address
     };
 }
コード例 #7
0
        public IList<BlogEntryDescriptor> GetBlogEntries(BlogDescriptor blogDescriptor)
        {
            if (blogDescriptor == null)
                throw new ArgumentNullException("blogDescriptor");

            try
            {
                return GetBlogEntries(blogDescriptor, GetFeedUri(blogDescriptor));
            }
            catch (gClient.GDataRequestException e)
            {
                Console.WriteLine(e.InnerException.Message);
                return new List<BlogEntryDescriptor>();
            }
        }
コード例 #8
0
        protected override void PreviewShow(BlogDescriptor blogDescriptor)
        {
            var url = "http://www.blogger.com/feeds/default/blogs";

            switch (blogDescriptor.BlogType)
            {
                case BlogType.WordPress:
                    url = "http://nickname.wordpress.com/xmlrpc.php";
                    break;
                case BlogType.LiveJournal:
                    url = "http://www.livejournal.com/interface/xmlrpc";
                    break;
            }

            _addressTextBox.Text = url;
        }
コード例 #9
0
        public void PublishNewEntry(BlogDescriptor blogDescriptor, String title, String content)
        {
            if (blogDescriptor == null)
                throw new ArgumentNullException("blogDescriptor");
            if (String.IsNullOrEmpty(blogDescriptor.Username))
                throw new ArgumentException("blogDescriptor.Username cannot be null or an empty string.");

            var entry = new gClient.AtomEntry();
            entry.Content.Content = content;
            entry.Content.Type = "html";
            entry.Title.Text = title;

            var service = new gClient.Service("blogger", GoogleSucks.GetApplicationName());
            service.Credentials = new gClient.GDataCredentials(blogDescriptor.Username, blogDescriptor.Password);
            service.Insert(new Uri(GetFeedUri(blogDescriptor)), entry);
        }
コード例 #10
0
 public DialogResult ShowDialog(BlogDescriptor blogDescriptor)
 {
     if (blogDescriptor == null)
         throw new ArgumentNullException("blogDescriptor");
     BlogDescriptor = blogDescriptor;
     _blogAddressTextBox.Text = blogDescriptor.Address;
     _blogNameTextBox.Text = blogDescriptor.BlogName;
     _passwordTextBox.Text = blogDescriptor.Password;
     _usernameTextBox.Text = blogDescriptor.Username;
     switch (blogDescriptor.BlogType)
     {
         default:
             _blogList.SelectedIndex = 0;
             break;
     }
     return base.ShowDialog();
 }
コード例 #11
0
        public void PublishNewEntry(BlogDescriptor blogDescriptor, String title, String content)
        {
            var now = DateTime.Now;

            GetGateway().PostEvent(
                new PostRequest()
                {
                    Username = blogDescriptor.Username,
                    Password = blogDescriptor.Password,
                    LineEndings = GetLineEndings(),
                    Subject = title,
                    Content = content,
                    Year = now.Year,
                    Month = now.Month,
                    Day = now.Day,
                    Hour = now.Hour,
                    Minute = now.Minute
                });
        }
コード例 #12
0
        private static IList<BlogEntryDescriptor> GetBlogEntries(BlogDescriptor blogDescriptor, String feedUri)
        {
            IList<BlogEntryDescriptor> result = new List<BlogEntryDescriptor>();

            if (feedUri != null)
            {
                var query = new gClient.FeedQuery(feedUri);
                var service = new gClient.Service("blogger", GoogleSucks.GetApplicationName())
                {
                    Credentials = new gClient.GDataCredentials(blogDescriptor.Username, blogDescriptor.Password)
                };

                var bloggerFeed = service.Query(query);

                while (bloggerFeed != null && bloggerFeed.Entries.Count > 0)
                {
                    foreach (gClient.AtomEntry entry in bloggerFeed.Entries)
                    {
                        result.Add(
                            new BlogEntryDescriptor()
                            {
                                Content = entry.Content.Content,
                                Subject = entry.Title.Text,
                                Sender = entry.Authors[0].Name,
                                Date = entry.Published
                            });
                    }

                    if (bloggerFeed.NextChunk != null)
                    {
                        query.Uri = new Uri(bloggerFeed.NextChunk);
                        bloggerFeed = service.Query(query);
                    }
                    else
                    {
                        bloggerFeed = null;
                    }
                }
            }

            return result;
        }
コード例 #13
0
        private String GetFeedUri(BlogDescriptor blogDescriptor)
        {
            String feedUri = null;
            var blogDescriptorExists = _descriptor2FeedUriMap.Keys.Contains(blogDescriptor);

            if (blogDescriptorExists)
                feedUri = _descriptor2FeedUriMap[blogDescriptor];

            if (String.IsNullOrEmpty(feedUri))
            {
                feedUri = GetFeedUriFromQuery(blogDescriptor);

                if (blogDescriptorExists)
                    _descriptor2FeedUriMap[blogDescriptor] = feedUri;
                else
                    _descriptor2FeedUriMap.Add(blogDescriptor, feedUri);
            }

            return feedUri;
        }
コード例 #14
0
 public void PublishNewEntry(BlogDescriptor blogDescriptor, String title, String content)
 {
     var gateway = GetGateway(blogDescriptor);
     var blogId = GetBlogId(gateway, blogDescriptor);
     if (!String.IsNullOrEmpty(blogId))
     {
         gateway.newPost(
             blogId,
             blogDescriptor.Username,
             blogDescriptor.Password,
             new Post()
             {
                 categories = new[] { "Uncategorized" },
                 dateCreated = DateTime.Now,
                 description = content,
                 title = title
             },
             true);
     }
 }
コード例 #15
0
ファイル: WizardForm.cs プロジェクト: xuchuansheng/GenXSource
 void IWizardStep.Show(Form wizardOwner, BlogDescriptor blogDescriptor)
 {
     BlogDescriptor = blogDescriptor;
     PreviewShow(blogDescriptor);
     Show(wizardOwner);
 }
コード例 #16
0
ファイル: WizardForm.cs プロジェクト: xuchuansheng/GenXSource
 protected virtual void PreviewShow(BlogDescriptor blogDescriptor)
 {
 }
コード例 #17
0
ファイル: Blog.aspx.cs プロジェクト: xuchuansheng/GenXSource
    public int CrossPost(string BlogService, string Username, string Password, string WPAddress, bool AutoSubmit)
    {
        member = (Member)Session["Member"];
        int Result = 0;

        BlogDescriptor bDescr = new BlogDescriptor();
        bDescr.Username = Username;
        bDescr.Password = Password;

        string Title = "Next2Friends test post";
        string Body = "If you are reading this post then your username and password have been entered correctly";

        bool LoginOK = false;

        try
        {
            switch (BlogService)
            {
                case "blogger":
                    bDescr.BlogType = BlogType.Blogger;
                    bDescr.Address = "http://www.blogger.com";
                    Service service = new Service("blogger", "");
                    service.Credentials = new GDataCredentials(Username, Password);
                    Uri blogPostUri = SelectUserBlog(service);
                    AtomEntry createdEntry = PostNewEntry(service, blogPostUri, Title, Body);
                    LoginOK = true;
                    break;

                case "wordpress":
                    bDescr.BlogType = BlogType.WordPress;
                    bDescr.Address = WPAddress;

                    WordPressEngine wpe = new WordPressEngine();
                    wpe.PublishNewEntry(bDescr, Title, Body);
                    LoginOK = true;
                    break;

                case "livejournal":
                    bDescr.BlogType = BlogType.LiveJournal;
                    bDescr.Address = "http://www.livejournal.com";

                    LiveJournalEngine lje = new LiveJournalEngine();
                    lje.PublishNewEntry(bDescr, Title, Body);
                    LoginOK = true;
                    break;

                default:
                    break;
            }

            Result = 0;

        }
        catch (Exception ex)
        {
            Result = 1;
        }

        //if (LoginOK)
        if (true) // always save
        {
            MemberBlogSettings memberBlogSettings = MemberBlogSettings.GetMemberBlogSettingsByMemberID(member.MemberID);

            switch (BlogService)
            {
                case "blogger":
                    memberBlogSettings.BloggerUserName = Username;
                    memberBlogSettings.BloggerPassword = Password;
                    memberBlogSettings.BloggerAutoSubmit = AutoSubmit;
                    break;

                case "wordpress":
                    memberBlogSettings.WordPressUserName = Username;
                    memberBlogSettings.WordPressPassword = Password;
                    memberBlogSettings.WordPressURL = WPAddress;
                    memberBlogSettings.WordPressAutoSubmit = AutoSubmit;
                    break;

                case "livejournal":
                    memberBlogSettings.LiveJournalUserName = Username;
                    memberBlogSettings.LiveJournalPassword = Password;
                    memberBlogSettings.LiveJournalAutoSubmit = AutoSubmit;
                    break;

                default:
                    break;
            }

            memberBlogSettings.Save();
        }

        return Result;
    }
コード例 #18
0
ファイル: MainForm.cs プロジェクト: xuchuansheng/GenXSource
 private void RefreshBlogEntries(BlogDescriptor blogDescriptor)
 {
     var blogEntries = BlogEngineFactory.GetEngine(blogDescriptor.BlogType).GetBlogEntries(blogDescriptor);
     _blogEntries.BeginUpdate();
     _blogEntries.Items.Clear();
     foreach (BlogEntryDescriptor entry in blogEntries)
         _blogEntries.Items.Add(
             new ListViewItem(
                 new[] {
                     entry.Subject,
                     entry.Sender,
                     String.Format(CultureInfo.CurrentUICulture, "{0} {1}", entry.Date.ToShortDateString(), entry.Date.ToShortTimeString())
                 }) { Tag = entry.Content });
     _blogEntries.EndUpdate();
 }
コード例 #19
0
        private static String GetFeedUriFromQuery(BlogDescriptor blogDescriptor)
        {
            var query = new gClient.FeedQuery(blogDescriptor.Address);
            var service = new gClient.Service("blogger", GoogleSucks.GetApplicationName())
            {
                Credentials = new gClient.GDataCredentials(blogDescriptor.Username, blogDescriptor.Password)
            };

            var bloggerFeed = service.Query(query);
            var feeds = new List<gClient.AtomEntry>();

            while (bloggerFeed != null && bloggerFeed.Entries.Count > 0)
            {
                foreach (gClient.AtomEntry entry in bloggerFeed.Entries)
                    feeds.Add(entry);

                if (bloggerFeed.NextChunk != null)
                {
                    query.Uri = new Uri(bloggerFeed.NextChunk);
                    bloggerFeed = service.Query(query);
                }
                else
                {
                    bloggerFeed = null;
                }
            }

            foreach (gClient.AtomEntry entry in feeds)
                if (entry != null)
                    foreach (gClient.AtomLink link in entry.Links)
                        if (link.Rel == gClient.BaseNameTable.ServiceFeed)
                            return link.HRef.ToString();

            return null;
        }