using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading.Tasks; using CommandLine; using CommandLine.Text; namespace TaskRunner { public class Options { [Option("server", HelpText="Task source server", Required = true)] public string server { get; set; } [HelpOption] public string GetUsage() { return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current)); } } public class Program { public static void Main(string[] args) { MainAsync(args).Wait(); } static async Task MainAsync(string[] args) { var options = new Options(); if (Parser.Default.ParseArguments(args, options)) { Console.WriteLine($"Waiting for tasks from server: {options.server}"); var server = new ServerApi(new Uri(options.server)); try { var task = await server.GetTask(); var src = await server.GetStream("asdf", task.SourceStreamId); var dest = await server.GetStream("asdf", task.DestinationStreamId); Console.WriteLine($"Got task {task.TaskId}"); Console.WriteLine($"Source: {src.MimeType}"); Console.WriteLine($"Dest: {dest.MimeType}"); foreach (var strUri in src.Uris) { var uri = new Uri(strUri["Uri"]); var fs = new FileStorage(@"\Users\Arti.Zirk\Documents\files"); var path = await fs.DownloadFile(uri); Console.WriteLine(path); } } catch (FailedToGetTaskException) { Console.WriteLine("No tasks available"); return; } var taskManager = new TaskManager(); await taskManager.RunFfmpeg(); } else { //Console.WriteLine(options.GetUsage()); } } } }