using System.Linq; using System.Diagnostics; using ttrss_co_client.ttrss; using ttrss_co_client.ttrss.datastructures; namespace ttrss_co_client.tasks { ///Move to output public class Publish : Phase2Task { public override string TaskName => "filemovePublish"; public override async Task>ActOn(WorkOrder workOrder) { var targetDirectory = workOrder.data["publish-target"]; if(!Directory.Exists(targetDirectory)) { Directory.CreateDirectory(targetDirectory); } var outputFilename = Path.Combine(workOrder.data["publish-target"], Path.GetFileName(workOrder.data["path"])); foreach(char c in "'\":\\?") { outputFilename = outputFilename.Replace(c, ' '); } File.Move(workOrder.data["path"], outputFilename, true); var article = (await TtrssClient.GetArticles(workOrder.articleId))?.FirstOrDefault(); await TtrssClient.UpdateArticleNote($"{article.note}\n[{DateTime.Now.ToString("o")}] - copied", article.id); return new Tuple(TaskStatus.ContinueNow, workOrder); } } }