public static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine ("Usage: download_bot url start[;end[;step]] [output dir]"); return; } string url = args [0]; string [] range = args [1].Split (';'); bool hasEnd = range.Length > 1; bool hasStep = range.Length > 2; DateTime dateStart; DateTime dateEnd; TimeSpan timeStep = TimeSpan.FromDays (1.0); long start = 0; long end = -1; int step = 1; bool isDate = DateTime.TryParse (range [0], out dateStart); if (isDate && hasEnd) { isDate = DateTime.TryParse (range [1], out dateEnd); } if (isDate) { if (!hasStep || !TimeSpan.TryParse (range [2], out timeStep)) timeStep = TimeSpan.FromDays (1.0); } else { if (!long.TryParse (range [0], out start)) { Console.WriteLine ("Invalid range format {0}, use numbers or date", range [0]); return; } if (hasEnd) hasEnd = long.TryParse (range [1], out end); if (!hasStep || int.TryParse (range [2], out step)) step = 1; } string dir; if (args.Length > 2) dir = args [2]; else dir = Directory.GetCurrentDirectory (); var mc = new Downloader (dir); if (isDate) mc.DownloadFilesInDateRange (url, dateStart, dateEnd, timeStep, hasEnd); else mc.DownloadFilesInRange (url, start, end, step, hasEnd); }
public static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Usage: download_bot url start[;end[;step]] [output dir]"); return; } string url = args [0]; string [] range = args [1].Split(';'); bool hasEnd = range.Length > 1; bool hasStep = range.Length > 2; DateTime dateStart; DateTime dateEnd; TimeSpan timeStep = TimeSpan.FromDays(1.0); long start = 0; long end = -1; int step = 1; bool isDate = DateTime.TryParse(range [0], out dateStart); if (isDate && hasEnd) { isDate = DateTime.TryParse(range [1], out dateEnd); } if (isDate) { if (!hasStep || !TimeSpan.TryParse(range [2], out timeStep)) { timeStep = TimeSpan.FromDays(1.0); } } else { if (!long.TryParse(range [0], out start)) { Console.WriteLine("Invalid range format {0}, use numbers or date", range [0]); return; } if (hasEnd) { hasEnd = long.TryParse(range [1], out end); } if (!hasStep || int.TryParse(range [2], out step)) { step = 1; } } string dir; if (args.Length > 2) { dir = args [2]; } else { dir = Directory.GetCurrentDirectory(); } var mc = new Downloader(dir); if (isDate) { mc.DownloadFilesInDateRange(url, dateStart, dateEnd, timeStep, hasEnd); } else { mc.DownloadFilesInRange(url, start, end, step, hasEnd); } }