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);
            }
        }
Beispiel #2
0
 public PlotAgent()
     : base(1)
 {
     this._Plot = new Data.Plot();
 }