Exemplo n.º 1
0
        public void GetMoviebyActress(Actress actress)
        {
            int vediotype = (int)VedioType;

            //根据视频类型选择演员
            cdb = new DataBase();
            List <Movie> models;

            if (actress.id == "")
            {
                models = cdb.SelectMoviesBySql($"SELECT * from movie where actor like '%{actress.name}%'");
            }
            else
            {
                models = cdb.SelectMoviesBySql($"SELECT * from movie where actorid like '%{actress.id}%'");
            }

            cdb.CloseDB();
            MovieList = new ObservableCollection <Movie>();
            models?.ForEach(arg =>
            {
                if (arg.actor.Split(new char[] { ' ', '/' }).Any(m => m.ToUpper() == actress.name.ToUpper()))
                {
                    MovieList.Add(arg);
                }
            });
            Sort();
        }
Exemplo n.º 2
0
        public Actress AddActress(string name, string alias, DateTime birthday, int height, int bust, int waist, int hip, string cup, string code)
        {
            Actress a = new Actress(new ObjectId(ObjectIdGenerator.Generate()), name, alias, birthday, height, bust, waist, hip, cup, code);

            actressList.Add(a);
            return(a);
        }
Exemplo n.º 3
0
        public void ActorFlipOver()
        {
            stopwatch.Restart();
            if (ActorList != null)
            {
                TotalActorPage = (int)Math.Ceiling((double)ActorList.Count / (double)Properties.Settings.Default.ActorDisplayNum);

                //只在翻页时加载图片、显示翻译结果
                int            ActorDisplayNum = Properties.Settings.Default.ActorDisplayNum;
                List <Actress> actresses       = new List <Actress>();
                for (int i = (CurrentActorPage - 1) * ActorDisplayNum; i < CurrentActorPage * ActorDisplayNum; i++)
                {
                    if (i < ActorList.Count)
                    {
                        Actress actress = ActorList[i];
                        actress.smallimage = StaticClass.GetBitmapImage(actress.name, "Actresses");//不加载图片能节约 1s
                        actresses.Add(actress);
                    }
                    else
                    {
                        break;
                    }
                    if (actresses.Count == ActorDisplayNum)
                    {
                        break;
                    }
                }
                CurrentActorList = new ObservableCollection <Actress>();
                CurrentActorList.AddRange(actresses);
            }
            stopwatch.Stop();
            Console.WriteLine($"\n演员翻页用时:{stopwatch.ElapsedMilliseconds} ms");
        }
Exemplo n.º 4
0
        public void GetMoviebyActress(Actress actress)
        {
            Statistic();
            int vediotype = (int)VedioType;
            //根据视频类型选择演员

            List <Movie> movies;

            if (actress.id == "")
            {
                movies = DataBase.SelectMoviesBySql($"SELECT * from movie where actor like '%{actress.name}%'");
            }
            else
            {
                movies = DataBase.SelectMoviesBySql($"SELECT * from movie where actorid like '%{actress.id}%'");
            }


            MovieList = new List <Movie>();
            movies?.ForEach(arg =>
            {
                if (arg.actor.Split(actorSplitDict[arg.vediotype]).Any(m => m.ToUpper() == actress.name.ToUpper()))
                {
                    MovieList.Add(arg);
                }
            });
            CurrentPage = 1;
            FlipOver();
        }
Exemplo n.º 5
0
        public string[] GetFavoriteActresses(string myActress, MySqlDbConnection myDbCon)
        {
            if (myDbCon == null)
            {
                // string myDatabase, string myDataSource, string myPort, string myUser, string myPassword
                myDbCon = new MySqlDbConnection();
            }

            List <string> actressList = new List <string>();
            string        queryString = "SELECT label, name FROM av.fav WHERE label = @StoreLabel or name like @LikeName ";

            string labels = "";

            List <MySqlParameter> listSqlParam = new List <MySqlParameter>();
            MySqlDataReader       reader       = null;

            MySqlParameter sqlparam = new MySqlParameter("@StoreLabel", MySqlDbType.VarChar);

            sqlparam.Value = myActress;
            listSqlParam.Add(sqlparam);

            sqlparam       = new MySqlParameter("@LikeName", MySqlDbType.VarChar);
            sqlparam.Value = "%" + myActress + "%";
            listSqlParam.Add(sqlparam);

            myDbCon.SetParameter(listSqlParam.ToArray());
            reader = myDbCon.GetExecuteReader(queryString);

            string label = "", name = "";

            do
            {
                if (reader.IsClosed)
                {
                    //_logger.Debug("av.contents reader.IsClosed");
                    throw new Exception("av.contentsの取得でreaderがクローズされています");
                }

                while (reader.Read())
                {
                    label = MySqlDbExportCommon.GetDbString(reader, 0);
                    name  = MySqlDbExportCommon.GetDbString(reader, 1);
                    if (label.IndexOf(myActress) >= 0)
                    {
                        actressList.AddRange(Actress.AppendMatch(label, actressList));
                    }

                    if (name.IndexOf(myActress) >= 0)
                    {
                        actressList.AddRange(Actress.AppendMatch(name, actressList));
                    }
                }
            } while (reader.NextResult());

            //Debug.Print("totalsize " + total);

            myDbCon.closeConnection();

            return(actressList.ToArray());
        }
Exemplo n.º 6
0
        public virtual void execute(bool isUpdate)
        {
            HtmlDocument html = HAPUtil.D2PassRequest(startPage, webCharset);

            foreach (var e in html.DocumentNode.CssSelect(".movie-panel"))
            {
                Maker mak = getMaker(getMakerNode(e));
                if (mak.enable)
                {
                    Movie mv = new Movie();
                    mv.mvid      = getMvid(e);
                    mv.title     = getTitle(getTitleNode(e));
                    mv.thumbnail = getThumbnail(getThumbnailNode(e));
                    mv.rating    = getRating(getRatingNode(e));
                    var            xpName = getActressName(getActressNode(e));
                    List <Actress> actrs  = new List <Actress>();
                    ActressMovie   actmv  = new ActressMovie();
                    foreach (var xpA in xpName)
                    {
                        Actress actr = new Actress();
                        actr.name = xpA;
                        //actr = dao.QueryOrInsert(actr);
                        actrs.Add(actr);
                    }
                }
            }
        }
Exemplo n.º 7
0
        private static void Main(string[] args)
        {
            WriteLine("Hello fellow addict!!!!");
            ReadKey(true);
            var actressService = new ActressService();

            var newActress = new Actress {
                StageName        = "Nikita Bellucci",
                EyeColor         = EyeColor.Hazel,
                Age              = 28,
                BodyMeasurements = new[] { 34, 26, 30 },
                HairColor        = HairColor.Black,
                CupSize          = CupSize.C,
                Ethnicity        = Ethnicity.French,
                Height           = 5.4f,
                Weight           = 105
            };


            actressService.SaveNewActress(newActress);

            WriteLine("Would you like to see Nikita's stuff...");

            ReadKey(true);

            var savedActress = actressService.GetActressById(1);

            foreach (var propertyInfo in savedActress.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                WriteLine($"{propertyInfo.Name} - {propertyInfo.GetValue(savedActress)}");
            }


            ReadKey(true);
        }
Exemplo n.º 8
0
        public async Task <IActionResult> Edit(int id, [Bind("ActressId,ActressName,Age,NetWorth,MovieName")] Actress actress)
        {
            if (id != actress.ActressId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(actress);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ActressExists(actress.ActressId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MovieName"] = new SelectList(_context.Movie, "MovieName", "MovieName", actress.MovieName);
            return(View(actress));
        }
Exemplo n.º 9
0
 public void ActorFlipOver()
 {
     if (ActorList != null)
     {
         //只在翻页时加载图片、显示翻译结果
         int ActorDisplayNum = Properties.Settings.Default.ActorDisplayNum;
         CurrentActorList = new ObservableCollection <Actress>();
         for (int i = (CurrentActorPage - 1) * ActorDisplayNum; i < CurrentActorPage * ActorDisplayNum; i++)
         {
             if (i < ActorList.Count)
             {
                 Actress actress = ActorList[i];
                 actress.smallimage = StaticClass.GetBitmapImage(actress.name, "Actresses");
                 App.Current.Dispatcher.BeginInvoke((Action) delegate { CurrentActorList.Add(actress); });
             }
             else
             {
                 break;
             }
             if (CurrentActorList.Count == ActorDisplayNum)
             {
                 break;
             }
         }
     }
 }
Exemplo n.º 10
0
 public ActionResult Edit(Actress actress)
 {
     if (ModelState.IsValid)
     {
         db.Entry(actress).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(actress));
 }
Exemplo n.º 11
0
        public void UpdateActress(ObjectId id, Dictionary <string, object> property)
        {
            Actress a = this.GetActress(id);

            if (a != null)
            {
                a.Update(property);
                a.NeedUpdate = true;
            }
        }
Exemplo n.º 12
0
        public ActionResult Create(Actress actress)
        {
            if (ModelState.IsValid)
            {
                db.Actresses.Add(actress);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(actress));
        }
Exemplo n.º 13
0
        public ActionResult Create(Actress actress)
        {
            if (ModelState.IsValid)
            {
                db.Actresses.Add(actress);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(actress);
        }
Exemplo n.º 14
0
        public async Task <IActionResult> Create([Bind("ActressId,ActressName,Age,NetWorth,MovieName")] Actress actress)
        {
            if (ModelState.IsValid)
            {
                _context.Add(actress);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MovieName"] = new SelectList(_context.Movie, "MovieName", "MovieName", actress.MovieName);
            return(View(actress));
        }
Exemplo n.º 15
0
        public async Task TestSearchFirst()
        {
            var result = await WarashiClient.SearchFirst("Hiyori Yoshioka").ConfigureAwait(false);

            var expected = new Actress(
                id: "s-2-0/3806",
                name: "Hiyori Yoshioka",
                birthdate: DateTime.Parse("August 08, 1999"),
                birthplace: "Japan",
                cover: "http://warashi-asian-pornstars.fr/WAPdB-img/pornostars-f/h/i/3806/hiyori-yoshioka/profil-0/large/wapdb-hiyori-yoshioka-pornostar-asiatique.warashi-asian-pornstars.fr.jpg");

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 16
0
        public async Task TestLoadActress()
        {
            var result = await WarashiClient.LoadActress("s-2-0/2714").ConfigureAwait(false);

            var expected = new Actress(
                id: "s-2-0/2714",
                name: "Aki Sasaki",
                birthdate: DateTime.Parse("December 24, 1979"),
                birthplace: "Japan, Saitama prefecture",
                cover: "http://warashi-asian-pornstars.fr/WAPdB-img/pornostars-f/a/k/2714/aki-sasaki/profil-0/large/wapdb-aki-sasaki-pornostar-asiatique.warashi-asian-pornstars.fr.jpg");

            Assert.AreEqual(expected, result);
        }
        public async Task TestLoadActress()
        {
            var result = await this.client.LoadActress("koharu_suzuki2").ConfigureAwait(false);

            var expected = new Actress(
                id: "koharu_suzuki2",
                name: "Koharu Suzuki",
                birthdate: DateTime.Parse("1993-12-1"),
                birthplace: "Kanagawa",
                cover: "https://www.asianscreens.com/products/400000/portraits/koharu_suzuki.jpg");

            Assert.AreEqual(expected, result);
        }
        public async Task TestSearchFirst()
        {
            var result = await this.client.SearchFirst("Ai Uehara").ConfigureAwait(false);

            var expected = new Actress(
                id: "ai_uehara2",
                name: "Ai Uehara",
                birthdate: DateTime.Parse("1992-11-22"),
                birthplace: null,
                cover: "https://www.asianscreens.com/products/400000/portraits/ai_uehara.jpg");

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 19
0
        public ActionResult DeleteConfirmed(int id)
        {
            foreach (var movie in db.Movies.Where(m => m.ActressId == id))
            {
                movie.ActressId = null;
            }

            Actress actress = db.Actresses.Find(id);

            db.Actresses.Remove(actress);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public async Task TestLoadActressMinimalMetadata()
        {
            var result = await this.client.LoadActress("amika_tsuboi2").ConfigureAwait(false);

            var expected = new Actress(
                id: "amika_tsuboi2",
                name: "Amika Tsuboi",
                birthdate: null,
                birthplace: null,
                cover: null);

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 21
0
        // GET: /Actresses/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Actress actress = db.Actresses.Find(id);

            if (actress == null)
            {
                return(HttpNotFound());
            }
            return(PartialView("_Edit", actress));
        }
Exemplo n.º 22
0
        public async Task TestSearchFirstFemalePornstar()
        {
            var result = await WarashiClient.SearchFirst("Ruka Aoi").ConfigureAwait(false);

            // Parsing for female-pornstar results isn't done yet.
            var expected = new Actress(
                id: "s-4-1/14028",
                name: "Ruka Aoi - 藍井る加",
                birthdate: null,
                birthplace: null,
                cover: "http://warashi-asian-pornstars.fr/WAPdB-img/pornostars-f/r/u/786/ruka-aoi/preview/mini/wapdb-ruka-aoi-pornostar-asiatique.warashi-asian-pornstars.fr.jpg");

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 23
0
        /// <summary>
        /// 解析从javbus上获取到的html
        /// </summary>
        /// <param name="html"></param>
        /// <param name="code"></param>
        /// <param name="v"></param>
        /// <returns></returns>
        public Video CreateVideoFromJav(string html, string code, Video v)
        {
            // 判断是否有码
            v.HasMask = !html.Contains("ovie-box-uncensored.css");
            //<a class="bigImage" href="https://images.javbus.info/cover/d7k_b.jpg"><img
            v.ImgUrl = Regex.Match(html, "<a class=\"bigImage\".*_b.jpg\"><img").ToString().Replace("<a class=\"bigImage\" href=\"", "").Replace("\"><img", "");
            // <h3>LAF-41 ラフォーレ ガール Vol.41 天使と悪魔 : 大橋未久 </h3>
            v.Name = Regex.Match(html, "<h3>.*</h3>").ToString().Replace("<h3>", "").Replace("</h3>", "");
            //:#CC0000;">LAF-41</span>
            v.Code = Regex.Match(html, ":#CC0000;\">\\w+-\\d+</span>").ToString().Replace(":#CC0000;\">", "").Replace("</span>", "");
            v.Date = DateTime.Parse(Regex.Match(html, @"\d{4}-\d{2}-\d{2}").ToString());

            /*
             * <span class="genre"><a href="https://www.javbus.me/genre/e">巨乳</a></span>
             */
            var    tdList = Regex.Matches(html, "<span class=\"genre\"><a href=\"https://www.javbus.me/genre/[a-z0-9]+.*</a></span>");
            string item;

            for (int i = 0; i < tdList.Count; i++)
            {
                item = tdList[i].ToString();
                item = Strings.StrConv(item, VbStrConv.SimplifiedChinese);
                item = Regex.Replace(item.Replace("</a></span>", ""), "<span class=\"genre\"><a href=\"https://www.javbus.me/genre/[a-z0-9]+\">", "");
                ClassType classType = ClassTypeManager.GetInstance().GetClassType(item);
                if (!v.ClassList.Contains(classType.ID))
                {
                    v.ClassList.Add(classType.ID);
                }
            }
            //<a href="https://www.javbus.me/star/2yl">あやみ旬果</a>
            Actress a = null;

            //<a href="https://www.javbus.me/uncensored/star/78x">大橋未久</a>
            tdList = Regex.Matches(html, "<a href=\"https://www.javbus.me/(uncensored/)?star/[a-z0-9]+\">\\w+</a>");
            for (int i = 0; i < tdList.Count; i++)
            {
                item = tdList[i].ToString();
                item = Regex.Replace(item.Replace("</a>", ""), "<a href=\"https://www.javbus.me/(uncensored/)?star/[a-z0-9]+\">", "");
                a    = ActressManager.GetInstance().GetActress(item, true);
                if (a != null)
                {
                    if (!v.ActressList.Contains(a.ID))
                    {
                        v.ActressList.Add(a.ID);
                    }
                }
            }
            return(v);
        }
Exemplo n.º 24
0
        private static string FormatOverview(Actress a)
        {
            string G(string k, string v)
            {
                return(!string.IsNullOrWhiteSpace(v) ? $"{k}: {v}\n" : string.Empty);
            }

            var overview = string.Empty;

            overview += G("身高", a.Height);
            overview += G("血型", a.Blood_Type);
            overview += G("罩杯", a.Cup_Size);
            overview += G("三围", a.Measurements);
            return(overview);
        }
Exemplo n.º 25
0
        public ActressDetailPage(Actress actress)
        {
            InitializeComponent();

            IsBackButtonEnabled = true;
            PageTitle           = "Actress Details";
            IsTitleVisible      = true;

            ActressDetailViewModel.Selected = actress;
            _viewModel = new ActressDetailViewModel()
            {
                Navigation = Navigation
            };

            BindingContext = _viewModel;
        }
Exemplo n.º 26
0
        public static int InsertActress(Actress c)
        {
            var sql = @"INSERT INTO Actress (Name, URL, CreateTime) VALUES (@name, @url, @createTime)";

            SqlParameter[] paras =
            {
                new SqlParameter("@name",       SqlDbType.NVarChar, 100),
                new SqlParameter("@url",        SqlDbType.NVarChar, 300),
                new SqlParameter("@CreateTime", SqlDbType.DateTime)
            };

            paras[0].Value = c.Name;
            paras[1].Value = c.URL;
            paras[2].Value = DateTime.Now;

            return(SqlHelper.ExecuteNonQuery(con, CommandType.Text, sql, paras));
        }
Exemplo n.º 27
0
        //根据视频类型选择演员
        public void GetMoviebyActressAndVetioType(Actress actress)
        {
            List <Movie> movies;

            if (actress.id == "")
            {
                if (VedioType == 0)
                {
                    movies = DataBase.SelectMoviesBySql($"SELECT * from movie where actor like '%{actress.name}%'");
                }
                else
                {
                    movies = DataBase.SelectMoviesBySql($"SELECT * from movie where actor like '%{actress.name}%' and vediotype={(int)VedioType}");
                }
            }
            else
            {
                if (VedioType == 0)
                {
                    movies = DataBase.SelectMoviesBySql($"SELECT * from movie where actorid like '%{actress.id}%'");
                }
                else
                {
                    movies = DataBase.SelectMoviesBySql($"SELECT * from movie where actorid like '%{actress.id}%' and vediotype={(int)VedioType}");
                }
            }


            MovieList = new List <Movie>();
            if (movies != null || movies.Count > 0)
            {
                movies.ForEach(arg =>
                {
                    try { if (arg.actor.Split(actorSplitDict[arg.vediotype]).Any(m => m.ToUpper() == actress.name.ToUpper()))
                          {
                              MovieList.Add(arg);
                          }
                    }
                    catch (Exception e)
                    {
                        Logger.LogE(e);
                    }
                });
            }
            CurrentPage = 1;
        }
Exemplo n.º 28
0
        //根据视频类型选择演员
        public void GetMoviebyActressAndVetioType(Actress actress)
        {
            cdb = new DataBase();
            List <Movie> movies;

            if (actress.id == "")
            {
                if (VedioType == 0)
                {
                    movies = cdb.SelectMoviesBySql($"SELECT * from movie where actor like '%{actress.name}%'");
                }
                else
                {
                    movies = cdb.SelectMoviesBySql($"SELECT * from movie where actor like '%{actress.name}%' and vediotype={(int)VedioType}");
                }
            }
            else
            {
                if (VedioType == 0)
                {
                    movies = cdb.SelectMoviesBySql($"SELECT * from movie where actorid like '%{actress.id}%'");
                }
                else
                {
                    movies = cdb.SelectMoviesBySql($"SELECT * from movie where actorid like '%{actress.id}%' and vediotype={(int)VedioType}");
                }
            }
            cdb.CloseDB();

            MovieList = new ObservableCollection <Movie>();
            if (movies != null || movies.Count > 0)
            {
                movies.ForEach(arg =>
                {
                    try { if (arg.actor.Split(new char[] { ' ', '/' }).Any(m => m.ToUpper() == actress.name.ToUpper()))
                          {
                              MovieList.Add(arg);
                          }
                    }catch (Exception e)
                    {
                        Logger.LogE(e);
                    }
                });
                Sort();
            }
        }
Exemplo n.º 29
0
 void ParseActresses(SessionBase session, ImdbRoot imdbRoot)
 {
     using (FileStream stream = File.OpenRead(System.IO.Path.Combine(imdbTextFilesDir, "actresses.list.gz")))
     {
         using (GZipStream decompress = new GZipStream(stream, CompressionMode.Decompress))
         {
             using (System.IO.StreamReader file = new System.IO.StreamReader(decompress))
             {
                 string line;
                 int    lineNumber = 0;
                 while ((line = file.ReadLine()) != null)
                 { // skip all the intro stuff
                     lineNumber++;
                     if (line.Length > 5 && line[0] == '-' && line[5] == '\t')
                     {
                         break;
                     }
                 }
                 while ((line = file.ReadLine()) != null)
                 {
                     lineNumber++;
                     string actorName = new string(line.TakeWhile(aChar => aChar != '\t').ToArray <char>()); // end of name
                     if (line.Length > 10 && line[0] == '-' && line[1] == '-' && line[2] == '-' && line[3] == '-')
                     {
                         break; // signals end of input
                     }
                     line = line.Substring(actorName.Length + 1);
                     Actress actress = new Actress(actorName, session);
                     session.Persist(actress);
                     imdbRoot.ActressSet.Add(actress);
                     parseMovie(session, line, imdbRoot, actress);
                     while ((line = file.ReadLine()) != null)
                     {
                         if (line.Length == 0)
                         {
                             break;
                         }
                         lineNumber++;
                         parseMovie(session, line, imdbRoot, actress);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 30
0
        internal Actress QueryOrInsert(Actress act)
        {
            var q = (from actress in dataContext.Actress
                     where actress.name == act.name
                     select actress).Take(1);

            if (q.Count() == 0)
            {
                System.Console.WriteLine("insert Actress ++++++++ " + act.name);
                dataContext.Actress.InsertOnSubmit(act);
                dataContext.SubmitChanges();
                return(act);
            }
            else
            {
                System.Console.WriteLine("query Actress -- " + act.name);
                return(q.First());
            }
        }
Exemplo n.º 31
0
 public ActionResult Edit(Actress actress)
 {
     if (ModelState.IsValid)
     {
         db.Entry(actress).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     return View(actress);
 }
Exemplo n.º 32
0
        public static CookieContainer StartDownload(string url, string oriURL, int currentItem, int totalItem, CookieContainer cc)
        {
            var ret = InitHelper.InitManager.UpdateCookie(cc, url);

            cc = ret.CC;
            var res = ret.Content;

            try
            {
                if (res.Success)
                {
                    _logger.WriteLog(url, string.IsNullOrWhiteSpace(res.Content) ? "空" : res.Content);

                    Console.WriteLine(string.Format("Start to download {0}, {1}/{2}", oriURL, currentItem, totalItem));

                    AV av = new AV();

                    var m = Regex.Matches(res.Content, detailIDPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var data = item.Groups[1].Value;
                        Console.WriteLine(string.Format("Get AV {0}, ID -> {1}", url, data));
                        av.ID = data;
                    }

                    m = Regex.Matches(res.Content, detailTitlePattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var data = item.Groups[2].Value.Replace(av.ID + " ", "");
                        Console.WriteLine(string.Format("Get AV {0}, Title -> {1}", url, data));
                        av.Name = FileUtility.ReplaceInvalidChar(data);
                    }

                    m = Regex.Matches(res.Content, detailImgPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var data = item.Groups[1].Value.StartsWith("http") ? item.Groups[1].Value : "http:" + item.Groups[1].Value;
                        Console.WriteLine(string.Format("Get AV {0}, IMG -> {1}", url, data));
                        av.PictureURL = data;
                    }

                    m = Regex.Matches(res.Content, detailDatePattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var data = item.Groups[1].Value;
                        Console.WriteLine(string.Format("Get AV {0}, Date -> {1}", url, data));
                        av.ReleaseDate = DateTime.Parse(data);
                    }

                    m = Regex.Matches(res.Content, detailLengthPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var data = item.Groups[1].Value;
                        Console.WriteLine(string.Format("Get AV {0}, Length -> {1}", url, data));
                        av.AvLength = int.Parse(data);
                    }

                    m = Regex.Matches(res.Content, detailDirectorPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var u    = item.Groups[1].Value;
                        var data = item.Groups[2].Value;
                        Console.WriteLine(string.Format("Get AV {0}, Director -> {1}", url, data));
                        av.Director += data + ",";
                        Director d = new Director
                        {
                            CreateTime = DateTime.Now,
                            Name       = data,
                            URL        = prefix + directorPrefix + u
                        };

                        if (!JavDataBaseManager.HasDirector(d.URL))
                        {
                            JavDataBaseManager.InsertDirector(d);
                        }
                    }

                    m = Regex.Matches(res.Content, detailCompanyPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var u    = item.Groups[1].Value;
                        var data = item.Groups[2].Value;
                        Console.WriteLine(string.Format("Get AV {0}, Company -> {1}", url, data));
                        av.Company += data + ",";
                        Company c = new Company
                        {
                            CreateTime = DateTime.Now,
                            Name       = data,
                            URL        = prefix + companyPrefix + u
                        };

                        if (!JavDataBaseManager.HasCompany(c.URL))
                        {
                            JavDataBaseManager.InsertCompany(c);
                        }
                    }

                    m = Regex.Matches(res.Content, detailPublisherPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var u    = item.Groups[1].Value;
                        var data = item.Groups[2].Value;
                        Console.WriteLine(string.Format("Get AV {0}, Publisher -> {1}", url, data));
                        av.Publisher += data + ",";
                        Publisher p = new Publisher
                        {
                            CreateTime = DateTime.Now,
                            Name       = data,
                            URL        = prefix + publisherPrefix + u
                        };

                        if (!JavDataBaseManager.HasPublisher(p.URL))
                        {
                            JavDataBaseManager.InsertPublisher(p);
                        }
                    }

                    m = Regex.Matches(res.Content, detailCategoryPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var data = item.Groups[2].Value;
                        Console.WriteLine(string.Format("Get AV {0}, Category -> {1}", url, data));
                        av.Category += data + ",";
                    }

                    m = Regex.Matches(res.Content, detailActressPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    foreach (Match item in m)
                    {
                        var u    = item.Groups[1].Value;
                        var data = item.Groups[2].Value;
                        Console.WriteLine(string.Format("Get AV {0}, Actress -> {1}", url, data));
                        av.Actress += data + ",";
                        Actress a = new Actress
                        {
                            CreateTime = DateTime.Now,
                            Name       = data,
                            URL        = prefix + actressPrefix + u
                        };

                        if (!JavDataBaseManager.HasActress(a.URL))
                        {
                            JavDataBaseManager.InsertActress(a);
                        }
                    }

                    //m = Regex.Matches(res.Content, detailCommentPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    //foreach (Match item in m)
                    //{
                    //    var data = item.Groups[1].Value;
                    //    Console.WriteLine(string.Format("Get AV {0}, Comments -> {1}", url, data));
                    //    Comments c = new Comments
                    //    {
                    //        Comment = data,
                    //        AvID = av.ID,
                    //        AvTitle = av.Name,
                    //        CreateTime = DateTime.Now
                    //    };
                    //    if (!JavDataBaseManager.HasComment(c))
                    //    {
                    //        JavDataBaseManager.InsertComment(c);
                    //    }
                    //}
                    av.URL = url;

                    if (!JavDataBaseManager.HasAv(av.URL))
                    {
                        JavDataBaseManager.InsertAV(av);
                    }

                    string result = "";
                    if (!File.Exists(imgFolder + av.ID + av.Name + ".jpg"))
                    {
                        result = Utils.DownloadHelper.DownloadFile(av.PictureURL, imgFolder + av.ID + av.Name + ".jpg");
                    }
                    JavDataBaseManager.UpdateScanURL(oriURL);

                    if (!string.IsNullOrEmpty(result))
                    {
                        _logger.WriteExceptionLog(url, string.Format("Download picture failed {0}", imgFolder + av.ID + av.Name + ".jpg"));
                    }
                }
                else
                {
                    _logger.WriteExceptionLog(url, string.Format("Download failed {0}", url));
                }
            }
            catch (Exception e)
            {
                _logger.WriteExceptionLog(url, string.Format("Download failed {0}", e.ToString()));
            }

            return(cc);
        }