示例#1
0
        public static void Init(StringBuilder sb)
        {
            if (!Directory.Exists(RootFolder))
            {
                sb.AppendLine(string.Format("没有找到{0},创建文件夹", RootFolder));
                Directory.CreateDirectory(RootFolder);
            }

            var lastOperationEndDate = SisDataBaseManager.GetLastOperationEndDate();

            sb.AppendLine(string.Format("上次执行时间: {0}", lastOperationEndDate.ToString("yyyy-MM-dd")));

            List <string> listChannel = new List <string>();

            //listChannel.Add(AsiaUncensoredAuthorshipSeed);
            //sb.AppendLine(string.Format("添加频道: {0}", "AsiaUncensoredAuthorshipSeed"));
            //listChannel.Add(AsiaUncensoredSection);
            //sb.AppendLine(string.Format("添加频道: {0}", "AsiaUncensoredSection"));
            //listChannel.Add(WesternUncensoredAuthorshipSeed);
            //sb.AppendLine(string.Format("添加频道: {0}", "WesternUncensoredAuthorshipSeed"));
            //listChannel.Add(WesternUncensored);
            //sb.AppendLine(string.Format("添加频道: {0}", "WesternUncensored"));
            listChannel.Add(AsiaCensoredAuthorshipSeed);
            sb.AppendLine(string.Format("添加频道: {0}", "AsiaCensoredAuthorshipSeed"));
            listChannel.Add(AsiaCensoredSection);
            sb.AppendLine(string.Format("添加频道: {0}", "AsiaCensoredSection"));

            foreach (var channel in listChannel)
            {
                var page = 1;

                while (page < 6)
                {
                    var url = string.Format(channel, page);
                    //Console.WriteLine("Get content from " + string.Format(channel, page));
                    sb.AppendLine(string.Format("正在处理URL: {0}, 页码: {1}", url, page));
                    var res = HtmlManager.GetHtmlContentViaUrl(url, "gbk");

                    if (res.Success)
                    {
                        sb.AppendLine("    URL内容获取成功");
                        page = GetTargetThread(res.Content, ChannelMapping[channel], lastOperationEndDate, string.Format(channel, page), sb, page);
                    }
                    else
                    {
                        sb.AppendLine("    URL内容获取失败");
                    }

                    sb.AppendLine("*******************************************************************************");

                    page++;
                }
            }
        }
示例#2
0
        private void SetInfo(List <FileInfo> fi)
        {
            URL            = "";
            this.ForeColor = Color.Black;

            if (pictureBox1.Image != null)
            {
                pictureBox1.Image.Dispose();
            }

            if (image != null)
            {
                image.Dispose();
            }

            GC.Collect();

            var fullName = fi[index].FullName;
            var fileName = fi[index].Name;

            textBox3.Text = fullName;
            var picFolder = fullName.Replace(fi[index].Extension, "") + "/";

            picsFolder = Directory.GetFiles(picFolder).Where(x => x.ToLower().Contains(".jpg")).ToList();

            URL = SisDataBaseManager.GetURLFromName(fileName.Replace(fi[index].Extension, ""));

            if (picFolder.Count() > 1)
            {
                this.ForeColor = Color.Red;
            }

            try
            {
                textBox2.Text     = picsFolder[picIndex];
                textBox4.Text     = (picIndex + 1) + "/" + picsFolder.Count + " total " + (index + 1) + "/" + fi.Count;
                image             = Image.FromFile(picsFolder[picIndex]);
                pictureBox1.Image = image;
            }
            catch (Exception e)
            {
                pictureBox1.Image = null;
            }
        }
示例#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++);
        }
示例#4
0
        public static DateTime Start(StringBuilder sb)
        {
            var targets = SisDataBaseManager.GetScanThread().Where(x => x.IsDownloaded != 1).OrderBy(x => x.Channel);
            int current = 1;
            int total   = targets.Count();

            sb.AppendLine(string.Format("SisDownload下载总共有{0}帖子", targets.Count()));

            DateTime res = DateTime.Today;

            foreach (var item in targets)
            {
                sb.AppendLine(string.Format("开始下载{0}", item.Url));
                res = DoDownload(item, sb);
                Console.WriteLine(string.Format("{0} / {1}", current, total));
                current++;
            }

            return(res);
        }
示例#5
0
        public static void Start()
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                sb.AppendLine(string.Format("SisDownload start at {0}", DateTime.Now.ToLongTimeString()));
                ScanHelper.ScanHelper.Init(sb);
                SisDataBaseManager.InsertLastOperationEndDate(DownloadHelper.DownloadHelper.Start(sb));
            }
            catch (Exception e)
            {
                sb.AppendLine(e.ToString());
            }
            finally
            {
                sb.AppendLine(string.Format("SisDownload end at {0}", DateTime.Now.ToLongTimeString()));

                var root = "C:/AvLog/";
                var file = "SisDownload" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss") + "-log.txt";
                LogHelper.WriteLog(file, sb.ToString());
                EmailHelper.SendEmail("SisDownloadLog", "详情见附件", new[] { "*****@*****.**" }, new[] { root + file });
            }
        }
示例#6
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);
        }