public void Start(string host, string url, string novelName, string maxPage, string updateMode) { try { IsRunning = true; StartTime = DateTime.Now; LogFile = DateTime.Now.ToString("yyyyMMdd_HHmmssfff") + ".txt"; novelName = FileDownloadUtil.GetInvalidPath(novelName); SaveTo = string.Format("{0}/Downloads", AppDomain.CurrentDomain.BaseDirectory); if (string.IsNullOrEmpty(novelName)) { mLogSaveToFileUrl = "Downloads/" + LogFile; } else { mLogSaveToFileUrl = "Downloads/" + novelName + "/" + LogFile; } mSaveToDirectory = SaveTo + System.IO.Path.DirectorySeparatorChar + novelName; SetLog(mSaveToDirectory); Url = url; Host = host; ProgressArgs arg = new ProgressArgs(); arg.Progress = ProgressEnum.Progressing; FireOnProgressChangedEvent(arg); if (string.IsNullOrEmpty(novelName)) { Logger.Instance.Error("Novel Name can't be empty"); EndTime = DateTime.Now; arg.Progress = ProgressEnum.FinishFailed; FireOnProgressChangedEvent(arg); return; } NovelName = novelName; if (!int.TryParse(maxPage, out MaxPages)) { MaxPages = 1000; Logger.Instance.Error("Use Default Max Pages 1000"); } UpdateMode = !updateMode.Equals("YES", StringComparison.OrdinalIgnoreCase); if (Host.TrimStart().TrimEnd().Equals("BIQUGE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("BIQUGE.COM", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("BIQUGE.CO", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeCODownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("DAYANWENXUE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("DAYANWENXUE.COM", StringComparison.OrdinalIgnoreCase)) { download = new DayanwenxueDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("XIAOSHUOM", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("XIAOSHUOM.COM", StringComparison.OrdinalIgnoreCase)) { download = new XiaoshuomDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("SHUKEJU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("SHUKEJU.COM", StringComparison.OrdinalIgnoreCase)) { download = new ShukejuDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("WENXUELOU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("WENXUELOU.COM", StringComparison.OrdinalIgnoreCase)) { download = new WenxuelouDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("BIQUGE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("BIQUGE.CC", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeCCDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else { Logger.Instance.Error("Can't find plug-in for this host"); EndTime = DateTime.Now; arg.Progress = ProgressEnum.FinishFailed; FireOnProgressChangedEvent(arg); return; } if (download != null) { download.CopyFiles(); download.OnProgressChanged += new ProgressChangeDelegate(download_OnProgressChanged); thread = new Thread(new ThreadStart(download.ProcessAllOneByOne)); thread.Start(); } } catch (Exception ex) { Logger.Instance.Error(ex.ToString()); ProgressArgs arg = new ProgressArgs(); arg.Progress = ProgressEnum.FinishFailed; FireOnProgressChangedEvent(arg); } finally { IsRunning = false; } }
static void Main(string[] args) { try { ConsoleLogger.Instance.Info("Init Console Log"); Logger.Instance.Info("Init Log"); Logger.Instance.Info("Start Processing"); if (ParseArgs(args)) { Logger.Instance.Info("************************ Parameters ****************************"); Logger.Instance.Info(string.Format("Host: {0}", Host)); Logger.Instance.Info(string.Format("Url: {0}", Url)); Logger.Instance.Info(string.Format("SaveTo: {0}", SaveTo)); Logger.Instance.Info(string.Format("NovelName: {0}", NovelName)); Logger.Instance.Info(string.Format("MaxPages: {0}", MaxPages)); Logger.Instance.Info(string.Format("UpdateMode: {0}", UpdateMode)); Logger.Instance.Info("******************************************************************"); string outNovelBaseDir = string.Empty; IDownloadImagesText download = null; if (Host.TrimStart().TrimEnd().Equals("BIQUGE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("BIQUGE.COM", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("BIQUGE.CO", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeCODownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("DAYANWENXUE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("DAYANWENXUE.COM", StringComparison.OrdinalIgnoreCase)) { download = new DayanwenxueDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("XIAOSHUOM", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("XIAOSHUOM.COM", StringComparison.OrdinalIgnoreCase)) { download = new XiaoshuomDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("SHUKEJU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("SHUKEJU.COM", StringComparison.OrdinalIgnoreCase)) { download = new ShukejuDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("WENXUELOU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("WENXUELOU.COM", StringComparison.OrdinalIgnoreCase)) { download = new WenxuelouDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("BIQUGE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("BIQUGE.CC", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeCCDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("1KANSHU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("1KANSHU.COM", StringComparison.OrdinalIgnoreCase)) { download = new YaokanShuDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("AOYECC", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("AOYE.CC", StringComparison.OrdinalIgnoreCase)) { download = new AoyeCCDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } if (download != null) { if (StartFromIndex > 0) { Logger.Instance.Info("Start From Index: " + StartFromIndex); download.Argument.StartFromIndex = StartFromIndex; } string argumentsLine = string.Empty; foreach (string argument in args) { if (argument.Equals("s", StringComparison.OrdinalIgnoreCase)) { argumentsLine += argument + " "; } } if (!string.IsNullOrEmpty(argumentsLine) && !selfExec) { download.SaveLastWorkingArguments(argumentsLine); } if (!selfExec) { download.CopyFiles(); download.SaveToConfig(); } download.ProcessAllOneByOne(); Logger.Instance.Info("Finish Processing"); Console.Read(); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void Start(string host, string url, string novelName, string maxPage, string updateMode, string saveTo) { try { IsRunning = true; StartTime = DateTime.Now; Url = url; Host = host; ProgressArgs arg = new ProgressArgs(); arg.Progress = ProgressEnum.Progressing; FireOnProgressChangedEvent(arg); if (string.IsNullOrEmpty(novelName)) { Logger.Instance.Error("Novel Name can't be empty"); EndTime = DateTime.Now; arg.Progress = ProgressEnum.FinishFailed; FireOnProgressChangedEvent(arg); return; } SaveTo = saveTo; NovelName = novelName; if (string.IsNullOrEmpty(SaveTo)) { SaveTo = string.Format("{0}\\DOWNLOAD", AppDomain.CurrentDomain.BaseDirectory); } if (!int.TryParse(maxPage, out MaxPages)) { MaxPages = 1000; Logger.Instance.Error("Use Default Max Pages 1000"); } UpdateMode = !updateMode.Equals("YES", StringComparison.OrdinalIgnoreCase); if (Host.TrimStart().TrimEnd().Equals("BIQUGE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("BIQUGE.COM", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("BIQUGE.CO", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeCODownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("DAYANWENXUE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("DAYANWENXUE.COM", StringComparison.OrdinalIgnoreCase)) { download = new DayanwenxueDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("XIAOSHUOM", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("XIAOSHUOM.COM", StringComparison.OrdinalIgnoreCase)) { download = new XiaoshuomDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("SHUKEJU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("SHUKEJU.COM", StringComparison.OrdinalIgnoreCase)) { download = new ShukejuDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("WENXUELOU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("WENXUELOU.COM", StringComparison.OrdinalIgnoreCase)) { download = new WenxuelouDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("BIQUGE", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("BIQUGE.CC", StringComparison.OrdinalIgnoreCase)) { download = new BiqugeCCDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("1KANSHU", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("1KANSHU.COM", StringComparison.OrdinalIgnoreCase)) { download = new YaokanShuDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else if (Host.TrimStart().TrimEnd().Equals("AOYECC", StringComparison.OrdinalIgnoreCase) || Host.TrimStart().TrimEnd().Equals("AOYE.CC", StringComparison.OrdinalIgnoreCase)) { download = new AoyeCCDownloadImagesText(Url, SaveTo, NovelName, UpdateMode, MaxPages); } else { Logger.Instance.Error("Can't find plug-in for this host"); EndTime = DateTime.Now; arg.Progress = ProgressEnum.FinishFailed; FireOnProgressChangedEvent(arg); return; } if (download != null) { download.CopyFiles(); download.SaveToConfig(); string arguments = BuildArguments(host, url, novelName, maxPage, updateMode, saveTo); download.SaveLastWorkingArguments(arguments); download.OnProgressChanged += new ProgressChangeDelegate(download_OnProgressChanged); thread = new Thread(new ThreadStart(download.ProcessAllOneByOne)); thread.Start(); } } catch (Exception ex) { Logger.Instance.Error(ex.ToString()); ProgressArgs arg = new ProgressArgs(); arg.Progress = ProgressEnum.FinishFailed; FireOnProgressChangedEvent(arg); } }