Example #1
0
 public IEnumerable<Activity> FetchArchive(StorageSession session, String param, IDictionary<String, String> args)
 {
     Account account = session.Query(StorageObjectExpressionQuery.Activity(
         new ActivityTuple
         {
             Name = "ScreenName",
             Value = args["target"],
         }
     ))
         .OrderByDescending(a => a)
         .First()
         .Account;
     DateTime date = args.ContainsKey("date") ? DateTime.ParseExact(args["date"], "yyMMdd", null) : DateTime.Now;
     return new StringReader("<_>" +
         new StringReader("<html>" + new WebClient()
             .Dispose(c => Encoding.UTF8.GetString(c.DownloadData(
                 String.Format(
                     "http://twilog.org/source.cgi?id={0}&date={1}&order=asc&word={2}&cate=&filter=&type=div",
                     args["target"],
                     args["date"],
                     args.ContainsKey("word") ? args["word"] : ""
                 )
             ))) + "</html>"
         )
             .Dispose(sr => XmlReader.Create(sr)
                 .Dispose(xr => xr
                     .Apply(_ => _.ReadToFollowing("textarea"))
                     .ReadElementContentAsString()
                 )
             ) + "</_>"
     )
         .Dispose(sr => XmlReader.Create(sr)
             .Dispose(xr => XDocument.Load(xr))
         )
         .Descendants("div")
         .Select(xe => account.Act(
             "Status",
             Int64.Parse(xe.XPathEvaluate<String>("substring-after(p[@class='tl-posted']/a/@href,'status/')")),
             date + TimeSpan.ParseExact(xe.XPathEvaluate<String>("string(p[@class='tl-posted']/a)"), @"hh\:mm\:ss", null),
             a => a.Act("Body", xe.XPathEvaluate<String>("string(p[@class='tl-text'])"))
         ))
         .ToArray();
 }
Example #2
0
 public IEnumerable<Advertisement> GetAdvertisements(StorageSession session, String param, IDictionary<String, String> args)
 {
     return session.Query(StorageObjectDynamicQuery.Advertisement(args.GetValueOrDefault("query")));
 }
Example #3
0
 public IEnumerable<Activity> GetActivities(StorageSession session, String param, IDictionary<String, String> args)
 {
     return session.Query(StorageObjectDynamicQuery.Activity(args.GetValueOrDefault("query")));
 }