private void timer1_Tick(object sender, EventArgs e) { //IF GTADIR IS OK... START SCAN if (Properties.Settings.Default.gta_directory.Length > 1) { timer1.Stop(); ScanThread.RunWorkerAsync(); } }
/// <summary> /// Verwendete Ressourcen bereinigen. /// </summary> /// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param> protected override void Dispose(bool disposing) { ScanThread.Abort(); if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }
private static int ProcessHtml(string content, string channel, DateTime lastDate, string oriUrl, StringBuilder sb, int page) { if (!string.IsNullOrEmpty(content)) { List <ScanThread> temp = new List <ScanThread>(); var m = Regex.Matches(content, ListPattern, RegexOptions.Multiline | RegexOptions.IgnoreCase); foreach (Match item in m) { ScanThread tempItem = new ScanThread { Channel = channel, IsDownloaded = 0, Name = FileUtility.ReplaceInvalidChar(item.Groups[4].Value), Url = Prefix + "thread-" + item.Groups[2].Value + ".html", ScannedDate = DateTime.Now }; //Console.WriteLine(string.Format(" Add thread {0} url --> {1}", tempItem.Name, tempItem.Url)); sb.AppendLine(string.Format(" Add thread {0} url --> {1}", tempItem.Name, tempItem.Url)); temp.Add(tempItem); } foreach (var item in temp) { if (!SisDataBaseManager.IsExistScanThread(item)) { SisDataBaseManager.InsertScanThread(item); //Console.WriteLine(string.Format(" 插入帖子 {0} of channel {1} url --> {2} 日期 {3}", item.Name, item.Channel, item.Url, item.ScannedDate)); sb.AppendLine(string.Format(" 插入帖子 {0} of channel {1} url --> {2} 日期 {3}", item.Name, item.Channel, item.Url, item.ScannedDate)); } else { sb.AppendLine(string.Format(" 已有此贴{0},不再插入", item.Url)); } } } return(page++); }
private void ScanButton_Click(object sender, System.EventArgs e) { if (md == null) { return; } ScanThread st = new ScanThread(storagePath, fileName, interval); do { //waits until the processing is done, displaying the //number of the file we are currently saving Thread.Sleep(1000); label1.Text = "Saving: " + counter.ToString(); label1.Invalidate(); label1.Update(); } while (st.t.IsAlive); label1.Text = "Saving: DONE"; }
void ScannerClerk() { while (true) { new SendIdleMessage(ipaddress, port); //Console.WriteLine("IDLE"); DataReceive dr = new DataReceive("10001"); string ip = dr.getData(); string path = dr.getData(); //Console.WriteLine(ip); //Console.WriteLine(path); ScanThread st = new ScanThread(@"C:\Program Files\ClamWin\bin\"); string temp = path; //Console.WriteLine("file Path" + temp); st.Working = true; st.SetWork(temp); while (st.Working == true) ; //Console.ReadLine(); } }
public static int InsertScanThread(ScanThread st) { var sql = @"INSERT INTO AlreadyScaned (Channel, Url, Name, ScannedDate, IsDownloaded) VALUES (@channel, @url, @name, @scannedDate, @isDownloaded)"; SqlParameter[] paras = { new SqlParameter("@channel", SqlDbType.NVarChar, 100), new SqlParameter("@url", SqlDbType.NVarChar, 100), new SqlParameter("@name", SqlDbType.NVarChar, 500), new SqlParameter("@scannedDate", SqlDbType.DateTime), new SqlParameter("@isDownloaded", SqlDbType.Int) }; paras[0].Value = st.Channel; paras[1].Value = st.Url; paras[2].Value = st.Name; paras[3].Value = st.ScannedDate; paras[4].Value = st.IsDownloaded; return(SqlHelper.ExecuteNonQuery(con, CommandType.Text, sql, paras)); }
public static DateTime DoParse(ScanThread st, StringBuilder sb) { var url = st.Url; var res = HtmlManager.GetHtmlContentViaUrl(url, "gbk"); DateTime today = DateTime.Today; if (res.Success) { sb.AppendLine(string.Format(" 获取内容成功")); string subFolder = today.ToString("yyyy年MM月dd日") + "/" + st.Channel + "/"; if (!string.IsNullOrEmpty(res.Content)) { var m = Regex.Matches(res.Content, DetailAttach, RegexOptions.Multiline | RegexOptions.IgnoreCase); var attachFolder = ""; var attachName = ""; var innerSubFolder = ""; foreach (Match item in m) { attachFolder = FileUtility.ReplaceInvalidChar(st.Name); attachName = FileUtility.ReplaceInvalidChar(st.Name) + ".torrent"; innerSubFolder = subFolder + attachFolder + "/"; if (!Directory.Exists(RootFolder + innerSubFolder)) { Directory.CreateDirectory(RootFolder + innerSubFolder); } var attach = Prefix + DetailAttachPrefix + item.Groups[1].Value + "&clickDownload=1"; var path = RootFolder + subFolder + attachName; //Console.WriteLine(string.Format("Download {0} to {1} and create folder {2} for picture", attach, path, innerSubFolder)); sb.AppendLine(string.Format(" Download {0} to {1} and create folder {2} for picture", attach, path, innerSubFolder)); if (!string.IsNullOrEmpty(Utils.DownloadHelper.DownloadFile(attach, path))) { sb.AppendLine(string.Format(" 下载附件失败")); } var ps = Regex.Matches(res.Content, DetailImg, RegexOptions.Multiline | RegexOptions.IgnoreCase); int index = 1; foreach (Match p in ps) { if (p.Groups[1].Value.ToLower().StartsWith("http")) { var pic = p.Groups[1].Value; var picPath = RootFolder + innerSubFolder + index + ".jpg"; //Console.WriteLine(string.Format("Download Picture {0} to {1}", pic, picPath)); sb.AppendLine(string.Format(" Download Picture {0} to {1}", pic, picPath)); if (string.IsNullOrEmpty(Utils.DownloadHelper.DownloadFile(pic, picPath))) { sb.AppendLine(string.Format(" 下载图片失败")); } Console.Write("."); index++; } } sb.AppendLine(string.Format(" 更新{0}的下载状态", url)); SisDataBaseManager.UpdateDownload(url); Console.WriteLine(); } } } else { sb.AppendLine(string.Format(" 获取{0}内容失败", st.Url)); } sb.AppendLine("*******************************************************************************"); return(today); }
public static DateTime DoDownload(ScanThread st, StringBuilder sb) { return(DoParse(st, sb)); }
public static bool IsExistScanThread(ScanThread st) { var sql = @"SELECT TOP 1 * FROM AlreadyScaned WHERE Url = '" + st.Url + "'"; return(SqlHelper.ExecuteDataTable(con, CommandType.Text, sql).ToModel <ScanThread>() == null ? false : true); }
private void ScanThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { //CREATE LOOP ScanThread.RunWorkerAsync(); }