2 using System.Collections.Generic;
7 namespace Azyobuzi.HatenaDiaryClient.Models.Hatena
9 public class HatenaDiary
11 private string userName;
12 private string password;
14 public HatenaDiary(string userName, string password)
16 this.userName = userName;
17 this.password = password;
20 public Tuple<string, IEnumerable<BlogEntry>> GetEntrys(int page)
22 var xdoc = WsseAtomConnection.Get(
23 string.Format("http://d.hatena.ne.jp/{0}/atom/blog?page={1}", this.userName, page),
26 var title = xdoc.Root.Element(XmlNamespaces.Atom + "title").Value;
27 var entrys = xdoc.Root.Elements(XmlNamespaces.Atom + "entry").Select(_ => new BlogEntry(_));
28 return Tuple.Create(title, entrys);
31 public BlogEntry PostEntry(string title, string content, DateTime? updated = null)
33 var elm = new XElement(XmlNamespaces.Atom02Spec + "entry",
34 new XElement(XmlNamespaces.Atom02Spec + "title", title),
35 new XElement(XmlNamespaces.Atom02Spec + "content", new XAttribute("type", "text/plain"), content));
37 elm.Add(new XElement(XmlNamespaces.Atom02Spec + "updated", updated.Value.ToString("o")));
38 var reXml = WsseAtomConnection.Post(
39 string.Format("http://d.hatena.ne.jp/{0}/atom/blog", this.userName),
43 return new BlogEntry(reXml.Root)
45 HatenaSyntax = content