public Model.ScanModels.EverythingResult EverythingSearch(string token, string content) { var to = ScanDataBaseManager.GetToken().Token; if (to == token) { var htmlModel = HtmlManager.GetHtmlContentViaUrl("http://*****:*****@"?s=&o=0&j=1&p=c&path_column=1&size_column=1&j=1&q=!c:\ " + EverythingHelper.Extensions + " " + content); if (htmlModel.Success) { var retModel = JsonConvert.DeserializeObject <Model.ScanModels.EverythingResult>(htmlModel.Content); if (retModel != null && retModel.results != null) { retModel.results = retModel.results.OrderByDescending(x => double.Parse(x.size)).ToList(); foreach (var r in retModel.results) { r.sizeStr = FileSize.GetAutoSizeString(double.Parse(r.size), 1); } return(retModel); } } } return(new Model.ScanModels.EverythingResult()); }
public static void Insert115FileSha(List <FileItemModel> models, bool truncate = false) { var files = models.Where(x => !string.IsNullOrEmpty(x.fid)).ToList(); Console.WriteLine($"获取到{files.Count}个文件"); int index = 1; if (files != null && files.Any()) { if (truncate) { ScanDataBaseManager.TruncateOneOneFiveFileShaMapping(); } foreach (var file in files) { Console.WriteLine($"正在处理{index++}"); OneOneFiveFileShaMapping entity = new OneOneFiveFileShaMapping() { FileName = file.n, FileSize = file.s, Sha = file.sha, IsOnLocal = false }; ScanDataBaseManager.InserOneOneFiveFileShaMapping(entity); } } }
public static void CopyFiles(double gigaLimits, string toFolder, string where = "") { double limits = gigaLimits * 1024 * 1024 * 1024; double currentSize = 0d; List <string> froms = new List <string>(); List <string> tos = new List <string>(); var files = ScanDataBaseManager.GetWishList(where); foreach (var f in files) { if (!string.IsNullOrEmpty(f.FilePath) && File.Exists(f.FilePath)) { var temp = new FileInfo(f.FilePath); if (currentSize + temp.Length < limits) { currentSize += temp.Length; froms.Add(f.FilePath); tos.Add(toFolder + temp.Name); } } } //FileUtility.TransferFileUsingSystem(froms, tos, false); }
public static void SyncLocalAnd115FileStatus(string folder = "1834397846621504875", bool update115Maping = false) { var oneOneFiles = Get115FilesModel(folder); var localFiles = GetAllLocalAvs(); var localShaMapping = ScanDataBaseManager.GetAllLocalShaMapping(); if (oneOneFiles != null && oneOneFiles.Any()) { if (update115Maping) { Insert115FileSha(oneOneFiles); } //刷新本地sha,更新本地是否保存 foreach (var oneOneFive in oneOneFiles) { var matchedMapping = localShaMapping.FirstOrDefault(x => x.Sha1 == oneOneFive.sha); if (matchedMapping != null) { ScanDataBaseManager.UpdateOneOneFiveFileShaMapping(matchedMapping.Sha1, true); } } } }
public JsonResult SaveJavSetting(string category, string url, string name) { var ret = 0; try { FaviScan fs = new FaviScan(); fs.Category = category; fs.Url = url; fs.Name = name; ret = ScanDataBaseManager.InsertFaviScan(fs); } catch (Exception ee) { ApplicationLog.Debug(ee.ToString()); } if (ret > 0) { return(Json(new { success = "success" }, JsonRequestBehavior.AllowGet)); } return(Json(new { success = "fail" }, JsonRequestBehavior.AllowGet)); }
public static CookieContainer Get115Cookie() { CookieContainer cc = new CookieContainer(); var sessionCookie = ScanDataBaseManager.GetOneOneFiveCookie(); if (sessionCookie != null && !string.IsNullOrEmpty(sessionCookie.OneOneFiveCookie)) { List <CookieItem> sessionCookieItems = JsonConvert.DeserializeObject <List <CookieItem> >(sessionCookie.OneOneFiveCookie); foreach (var item in sessionCookieItems) { Cookie temp = new Cookie(item.Name, item.Value, "/", "115.com"); cc.Add(temp); } } //cookieData = new ChromeCookieReader().ReadCookies("webapi.115.com"); //foreach (var item in cookieData.Where(x => !x.Value.Contains(",")).Distinct()) //{ // Cookie c = new Cookie(item.Name, item.Value, "/", "115.com"); // cc.Add(c); //} //var tempCc = HtmlManager.GetCookies("http://www.115.com", "utf-8", cc); return(cc); }
public static void GenerateReportDataOnly() { List <ReportItem> items = new List <ReportItem>(); ScanDataBaseManager.DeleteReportItem(); var allAv = JavDataBaseManager.GetAllAV(); var allMatch = GenerateExistingAVs(); Report report = new Report(); report.ExtensionModel = new Dictionary <string, int>(); report.TotalCount = allAv.Count; var reportId = ScanDataBaseManager.InsertReport(report); report.ReportId = reportId; int process = 0; foreach (var av in allAv) { ProcessReportType(av, allMatch, report, items); process++; Console.WriteLine(process + " / " + allAv.Count); } ; ScanDataBaseManager.BatchInserReportItem(items); ScanDataBaseManager.UpdateReport(report); ScanDataBaseManager.UpdateReportFinish(reportId); }
private void ProcessJSON() { if (json.Count > 0 && json[index] != null) { labelStatus.Text = string.Format(status, index + 1, json.Count); var pic = imgFolder + json[index].ID + FileUtility.ReplaceInvalidChar(json[index].Title) + ".jpg"; if (File.Exists(pic)) { pictureBox1.Image = Image.FromFile(pic); } var comments = JavDataBaseManager.GetComment(json[index].ID, FileUtility.ReplaceInvalidChar(json[index].Title)); if (ScanDataBaseManager.HasMatch(json[index].ID)) { labelMark.BackColor = Color.Green; } else { labelMark.BackColor = Color.Red; } ShowContent(comments); } }
public ActionResult Login(string token = "") { string uName = Request.Form["userName"]; string uPwd = Request.Form["userPassword"]; string uValidate = Request.Form["validate"]; string serviceCode = Session["ValidateCode"] as string;//服务器端验证码 if (!string.IsNullOrEmpty(uName) && !string.IsNullOrEmpty(uPwd) && uValidate.Equals(serviceCode)) { try { if (ScanDataBaseManager.IsUser(uName, uPwd)) { Guid guid = Guid.NewGuid(); CookieTools.AddCookie("token", guid.ToString(), ""); CookieTools.AddCookie("uName", uName, ""); CacheTools.CacheInsert(uName, guid.ToString(), DateTime.Now.AddDays(1)); TempData["LoginState"] = 1; return(Redirect("Index")); } } catch (Exception e) { } } return(View("Login")); }
public TaskCommonModel RunTask(string token, string name = "ScanJavJob") { TaskCommonModel ret = new TaskCommonModel(); var to = ScanDataBaseManager.GetToken().Token; if (to == token) { TaskService ts = new TaskService(); var task = ts.FindTask(name); ret.Message = "程序没有执行"; if (task != null && task.State == TaskState.Ready) { task.Run(); ret.Message = "开始执行"; } } else { ret.Message = "没有权限"; } return(ret); }
public TaskCommonModel SiriRunJob(string token, string jobName = "SiriRun", int page = 15) { TaskCommonModel ret = new TaskCommonModel(); var to = ScanDataBaseManager.GetToken().Token; if (to == token) { var parameter = new ScanParameter(); parameter.IsAsc = true; parameter.PageSize = page; parameter.StartingPage = new List <string>() { "http://www.javlibrary.com/cn/vl_update.php?mode=" }; var jobId = ScanDataBaseManager.InsertScanJob(jobName, JsonConvert.SerializeObject(parameter)); ret.Message = "建立成功"; } else { ret.Message = "没有权限"; } return(ret); }
public ActionResult ScanJobList(int pageSize = 20) { var model = ScanDataBaseManager.GetScanJob(pageSize); model.ForEach(x => x.CurrentItemCount = ScanDataBaseManager.GetScanJobItem(x.ScanJobId)); return(View(model)); }
private void Play(ListViewItem current) { if (current != null) { System.Diagnostics.Process.Start(@"" + current.Tag); current.BackColor = Color.Green; ScanDataBaseManager.InsertViewHistory(FileUtility.ReplaceInvalidChar(current.Tag + "")); } }
private static void FaviScan(List <string> urls) { ScanDataBaseManager.DeleteFaviScan(); Parallel.ForEach(urls, new ParallelOptions { MaxDegreeOfParallelism = 10 }, url => { var htmlRes = JavCookieContanierHelper(url); if (htmlRes.Success) { HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(htmlRes.Content); var titlePath = "//div[@class='boxtitle']"; var titleNode = htmlDocument.DocumentNode.SelectSingleNode(titlePath); if (titleNode != null) { var textArray = titleNode.InnerHtml.Trim().Split(' '); var category = ""; var name = textArray[0].Replace(""", ""); if (textArray[1] == "所执导的影片") { category = "director"; } else if (textArray[1] == "识别码搜寻结果") { category = "prfix"; } else if (textArray[1] == "相关的影片") { category = "category"; } else { category = "actress"; } FaviScan fs = new FaviScan { Url = url, Name = name, Category = category }; Console.WriteLine("扫描 " + url + " 分类 " + category + " 名称 " + name); ScanDataBaseManager.InsertFaviScan(fs); } } }); }
private static void UpdateCache() { if (!CacheTools.HasCache("cache-prefix")) { var allPrefix = ScanDataBaseManager.GetPrefix().Select(x => x.Prefix).ToList(); allPrefix = allPrefix.OrderByDescending(x => x.Length).ToList(); CacheTools.CacheInsert("cache-prefix", allPrefix, DateTime.Now.AddDays(1)); } }
async static void DoJob(string arg, int jobId) { await StartJavRefresh("", arg, OutputJavRefresh); ScanDataBaseManager.SetScanJobFinish(jobId, -1, models.Count); await Task.Run(() => UpdateRefreshUi(jobId)); IsFinish = false; }
private void InitAutoComplete() { var source = new AutoCompleteStringCollection(); source.AddRange(ScanDataBaseManager.GetSearchHistory().Select(x => x.Content).ToArray()); textBox1.AutoCompleteCustomSource = source; textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; }
public ActionResult ScanJav() { #region 页面 List <ScanMap> page = new List <ScanMap>(); page.Add(new ScanMap() { Title = "新话题", Url = "http://www.javlibrary.com/cn/vl_update.php?mode=" }); page.Add(new ScanMap() { Title = "新加入", Url = "http://www.javlibrary.com/cn/vl_newentries.php?mode=" }); page.Add(new ScanMap() { Title = "最想要", Url = "http://www.javlibrary.com/cn/vl_mostwanted.php?mode=" }); page.Add(new ScanMap() { Title = "高评价", Url = "http://www.javlibrary.com/cn/vl_bestrated.php?mode=" }); page.Add(new ScanMap() { Title = "新发行", Url = "http://www.javlibrary.com/cn/vl_newrelease.php?mode=" }); ViewData.Add("page", page); #endregion #region 演员 var actress = JavDataBaseManager.GetActress(); ViewData.Add("actress", actress); #endregion #region 类型 var cate = JavDataBaseManager.GetCategories(); ViewData.Add("cate", cate); #endregion #region 收藏 var faviModel = ScanDataBaseManager.GetFaviScan(); var favi = faviModel.GroupBy(x => x.Category).ToDictionary(x => x.Key, x => x.ToList()); ViewData.Add("favi", favi); #endregion return(View()); }
private static void UpdateRefreshUi(int jobId = 0) { Random ran = new Random(); Parallel.ForEach(models, new ParallelOptions { MaxDegreeOfParallelism = 5 }, rm => { RemoteScanMag entity = new RemoteScanMag(); entity.JobId = jobId; Console.WriteLine("处理 --> " + rm.Name + models.IndexOf(rm) + "/" + models.Count); var matchFiles = new EverythingHelper().SearchFile(rm.Id + " | " + rm.Id.Replace("-", ""), EverythingSearchEnum.Video); var list = MagService.SearchSukebei(rm.Id); if (list != null && list.Count > 0) { ScanDataBaseManager.DeleteMagUrlById(rm.Id); if (matchFiles.Count > 0) { entity.SearchStatus = 2; entity.MatchFile = matchFiles.FirstOrDefault(x => x.Length == matchFiles.Max(y => y.Length)).FullName; } else { entity.SearchStatus = 1; } foreach (var seed in list) { entity.AvId = rm.Id; entity.AvName = FileUtility.ReplaceInvalidChar(rm.Name); entity.AvUrl = rm.Url; entity.MagDate = seed.Date; entity.MagSize = seed.Size; entity.MagTitle = FileUtility.ReplaceInvalidChar(seed.Title); entity.MagUrl = seed.MagUrl; //entity.SearchStatus = 1; ScanDataBaseManager.InsertRemoteScanMag(entity); } } else { Console.WriteLine("没搜到"); entity.SearchStatus = 0; } Thread.Sleep(10 * ran.Next(5)); }); }
static void Main(string[] args) { CookieContainer cc = new CookieContainer(); var cookieData = new ChromeCookieReader().ReadCookies("115"); var json = JsonConvert.SerializeObject(cookieData.Where(x => !x.Value.Contains(",")).Distinct()); ScanDataBaseManager.InsertOneOneFiveCookie(new OneOneFiveCookieModel { OneOneFiveCookie = json }); }
private static void UpdateCache() { List <string> allPrefix = new List <string>(); foreach (var name in JavDataBaseManager.GetAllAVId().Select(x => x.ID).ToList()) { if (!allPrefix.Contains(name.Split('-')[0])) { allPrefix.Add(name.Split('-')[0]); ScanDataBaseManager.InsertPrefix(name.Split('-')[0]); } } }
public ActionResult Catelog(int limitGiga = 0, int page = 1, int pageSize = 200) { var scanResult = new List <ScanResult>(); var toBe = new List <ScanResult>(); string scanCache = "scan"; if (CacheTools.HasCache(scanCache)) { scanResult = CacheTools.GetCache <List <ScanResult> >(scanCache); } else { scanResult = ScanDataBaseManager.GetMatchScanResult(); CacheTools.CacheInsert(scanCache, scanResult, DateTime.Now.AddHours(3)); } scanResult = scanResult.Where(x => !string.IsNullOrEmpty(x.Location)).ToList(); if (limitGiga > 0) { double limit = (double)limitGiga * 1024 * 1024 * 1024; ApplicationLog.Debug("catelog -> limitGiga: " + limitGiga + " limit: " + limit); ApplicationLog.Debug("catelog -> beforeCount: " + scanResult.Count); foreach (var s in scanResult) { if (new FileInfo(s.AvFilePath).Length >= limit) { toBe.Add(s); } } ApplicationLog.Debug("catelog -> afterCount: " + toBe.Count); } else { toBe = scanResult; } var pageContent = toBe.OrderByDescending(x => x.ReleaseDate).Skip((page - 1) * pageSize).Take(pageSize).ToList(); ViewData.Add("avs", pageContent); ViewData.Add("count", (int)Math.Ceiling((decimal)toBe.Count / pageSize)); ViewData.Add("size", pageSize); ViewData.Add("current", page); ViewData.Add("total", toBe.Count); ViewData.Add("limit", limitGiga); return(View()); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { WebViewLog log = new WebViewLog(); log.IPAddress = filterContext.RequestContext.HttpContext.Request.UserHostAddress; log.Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; log.UserAgent = filterContext.RequestContext.HttpContext.Request.UserAgent; log.Action = filterContext.ActionDescriptor.ActionName; var arrParameter = filterContext.ActionDescriptor.GetParameters(); string paramter = "?"; foreach (var pName in arrParameter) { var parameterValue = filterContext.ActionParameters[pName.ParameterName]; paramter += pName.ParameterName + "=" + parameterValue.ToString() + "&"; } log.Parameter = paramter; var uNameStr = filterContext.RequestContext.HttpContext.Request.Cookies.AllKeys.FirstOrDefault(x => x == "uName"); var tokenStr = filterContext.RequestContext.HttpContext.Request.Cookies.AllKeys.FirstOrDefault(x => x == "token"); if (uNameStr != null && tokenStr != null) { var uName = filterContext.RequestContext.HttpContext.Request.Cookies.Get("uName"); var token = filterContext.RequestContext.HttpContext.Request.Cookies.Get("token"); var guid = CacheTools.GetCache <string>(uName.Value); if (token.Value == guid) { log.IsLogin = 1; ScanDataBaseManager.InserWebViewLog(log); base.OnActionExecuting(filterContext); } else { ScanDataBaseManager.InserWebViewLog(log); filterContext.RequestContext.HttpContext.Response.Redirect("/webav/NoRights"); } } else { ScanDataBaseManager.InserWebViewLog(log); filterContext.RequestContext.HttpContext.Response.Redirect("/webav/NoRights"); } ScanDataBaseManager.InserWebViewLog(log); }
public JsonResult DeleteScanJob(int jobId) { var ret = 0; ret += ScanDataBaseManager.DeleteScanJob(jobId); ret += ScanDataBaseManager.DeleteRemoteMagScan(jobId); if (ret > 0) { return(Json(new { success = "Success" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = "Fail" }, JsonRequestBehavior.AllowGet)); } }
private void FaviList_Load(object sender, EventArgs e) { listView1.Items.Clear(); var data = ScanDataBaseManager.GetFaviScan(); foreach (var d in data) { ListViewItem lvi = new ListViewItem(d.Category); lvi.SubItems.Add(d.Name); lvi.SubItems.Add(d.Url); listView1.Items.Add(lvi); } }
async static void DoJob(string arg, int jobId, ScanParameter parameter = null) { if (parameter == null) { await StartJavRefresh("", arg, OutputJavRefresh); } else { models = JavBusDownloadHelper.GetJavbusAVList(parameter.StartingPage.FirstOrDefault(), parameter.PageSize, parameter.IsAsc); } ScanDataBaseManager.SetScanJobFinish(jobId, -1, models.Count); await Task.Run(() => UpdateRefreshUi(jobId)); IsFinish = false; }
public string Save115Cookie(string cookie) { List <CookieItem> items = new List <CookieItem>(); CookieContainer cc = new CookieContainer(); var cookieData = new ChromeCookieReader().ReadCookies(".115.com"); if (cookieData != null) { items.AddRange(cookieData); } try { if (!string.IsNullOrEmpty(cookie)) { foreach (var item in cookie.Split(';')) { items.Add(new CookieItem() { Name = item.Split('=')[0].Trim(), Value = item.Split('=')[1].Trim(), }); } } if (items.Count > 0) { ScanDataBaseManager.TruncateOneOneFiveCookie(); ScanDataBaseManager.InsertOneOneFiveCookie(new OneOneFiveCookieModel { OneOneFiveCookie = JsonConvert.SerializeObject(items) }); } } catch (Exception) { return("fail"); } return("success"); }
public static void CheckAvatorMatch() { Dictionary <string, List <string> > matchRecord = new Dictionary <string, List <string> >(); List <string> avators = new List <string>(); var folder = @"G:\Github\AllInOneAV\Setting\avator"; var avs = JavDataBaseManager.GetActress(); foreach (var f in Directory.GetDirectories(folder)) { foreach (var a in Directory.GetFiles(f)) { if (!avators.Contains(a)) { avators.Add(a); } } } foreach (var a in avs) { foreach (var m in avators.OrderByDescending(x => x.Length)) { if (m.Contains(a.Name)) { if (!matchRecord.ContainsKey(a.Name)) { matchRecord.Add(a.Name, new List <string>() { m.Replace(@"G:\Github\AllInOneAV\Setting\", @"\Imgs\").Replace(@"\", "/") }); break; } } } } foreach (var m in matchRecord) { ScanDataBaseManager.UpdateFaviAvator(m.Key, m.Value.FirstOrDefault()); } Console.ReadKey(); }
public NextRunModel GetNextRunTime(string token, string name = "ScanJavJob") { NextRunModel ret = new NextRunModel(); var to = ScanDataBaseManager.GetToken().Token; if (to == token) { TaskService ts = new TaskService(); var task = ts.FindTask("ScanJavJob"); if (task != null) { ret.NextRunTime = task.NextRunTime; ret.NextRunCountMinutes = (int)Math.Ceiling((task.NextRunTime - DateTime.Now).TotalMinutes); } } return(ret); }
public static List <UnmatchVW> GetUnMatch(bool includePlayed) { List <UnmatchVW> ret = new List <UnmatchVW>(); var drivers = Environment.GetLogicalDrives(); var folder = "pt"; foreach (var driver in drivers) { if (Directory.Exists(driver + "\\" + folder)) { List <FileInfo> fi = new List <FileInfo>(); var files = FileUtility.GetFilesRecursive(driver + "\\" + folder, formats, excludes, fi, 500); foreach (var f in fi) { UnmatchVW temp = new UnmatchVW(); temp.FileName = f.Name.Replace(f.Extension, ""); temp.FilePath = f.FullName; temp.FileSize = FileSize.GetAutoSizeString(f.Length, 2); temp.FileExts = f.Extension; if (ScanDataBaseManager.ViewedFile(FileUtility.ReplaceInvalidChar(f.FullName))) { temp.HasPlayed = true; } if (includePlayed) { ret.Add(temp); } else { if (temp.HasPlayed == false) { ret.Add(temp); } } } } } return(ret); }