Esempio n. 1
0
 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();
     }
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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";
        }
Esempio n. 5
0
 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();
     }
 }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 public static DateTime DoDownload(ScanThread st, StringBuilder sb)
 {
     return(DoParse(st, sb));
 }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 private void ScanThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     //CREATE LOOP
     ScanThread.RunWorkerAsync();
 }