12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // See https://aka.ms/new-console-template for more information
- using PuppeteerSharp;
- using StationProbe;
- if (args.Length == 0)
- {
- Console.WriteLine("Use one of 'create','run','list' commands to start this application.");
- }
- else
- {
- var command = args[0];
- if (command == "create")
- {
- var name = args[1];
- var start = DateTime.Parse(args[2]);
- var end = DateTime.Parse(args[3]);
- using (var db = new Database())
- {
- db.AddBatchTask(new BatchTask() { Name = name, Start = start, End = end });
- }
- }
- else if (command == "run")
- {
- var batchTaskId = int.Parse(args[1]);
- var batchTask = new Database().GetBatchTask(batchTaskId);
- if (batchTask == null)
- {
- Console.WriteLine($"No batch task for id:{batchTaskId}, please create batch task before run it.");
- }
- else
- {
- Console.WriteLine("Downloading headless browser...");
- await new BrowserFetcher().DownloadAsync();
- bool error = true;
- while (error)
- {
- try
- {
- await using (var browser = (Browser)await Puppeteer.LaunchAsync(new LaunchOptions
- {
- Headless = true
- }))
- {
- await using (var page = await browser.NewPageAsync())
- {
- await page.SetViewportAsync(new ViewPortOptions
- {
- Width = 1920,
- Height = 1080
- });
- var superImageTask = new SuperImageTask(batchTask, 15);
- await superImageTask.RunAsync(page);
- error = false;
- }
- }
- }
- catch (Exception ex)
- {
- Logger.WriteLine($"Run super image task error:{ex}");
- error = true;
- }
- }
- }
- }
- else if (command == "list")
- {
- using (var db = new Database())
- {
- Console.WriteLine($"Id \t Name \t Pages \t Exams \t Start \t End ");
- var batchTasks = db.GetBatchTasks();
- foreach (var batchTask in batchTasks)
- {
- Console.WriteLine($"{batchTask.Id} \t {batchTask.Name} \t {batchTask.PageCount} \t {batchTask.ExamCount} \t {batchTask.Start:yyyy-MM-dd} \t {batchTask.End:yyyy-MM-dd}");
- }
- }
- }
- else
- {
- Console.WriteLine("Use one of 'create','run','list' commands to start this application.");
- }
- }
|