public virtual async Task <string> GetDmmPlot(string num) { const string dmm = "dmm"; if (string.IsNullOrWhiteSpace(num)) { return(null); } num = num.Replace("-", "").Replace("_", ""); using (await locker.LockAsync(num)) { var item = Plugin.Instance.db.Plots.Find(o => o.num == num && o.provider == dmm).FirstOrDefault(); if (item != null) { return(item.plot); } var url = $"https://www.dmm.co.jp/mono/dvd/-/detail/=/cid={num}/"; var doc = await GetHtmlDocumentAsync(url); if (doc == null) { return(null); } var plot = doc.DocumentNode.SelectSingleNode("//tr/td/div[@class='mg-b20 lh4']/p[@class='mg-b20']")?.InnerText?.Trim(); if (string.IsNullOrWhiteSpace(plot) == false) { var dt = DateTime.Now; item = new Data.Plot() { created = dt, modified = dt, num = num, plot = plot, provider = dmm, url = url }; Plugin.Instance.db.Plots.Insert(item); } return(plot); } }
public PlotAgent() : base(1) { this._Plot = new Data.Plot(); }