2023-04-07 22:24:31 -04:00
|
|
|
using System.Linq;
|
|
|
|
using System.Diagnostics;
|
|
|
|
using ttrss_co_client.ttrss;
|
|
|
|
using ttrss_co_client.ttrss.datastructures;
|
|
|
|
|
|
|
|
namespace ttrss_co_client.tasks
|
|
|
|
{
|
|
|
|
///<summary>Move to output</summary>
|
|
|
|
public class Publish : Phase2Task
|
|
|
|
{
|
2023-04-08 02:33:38 -04:00
|
|
|
public override string TaskName => "filemovePublish";
|
2023-04-07 22:24:31 -04:00
|
|
|
public override async Task<Tuple<TaskStatus, WorkOrder>>ActOn(WorkOrder workOrder)
|
|
|
|
{
|
2023-04-10 15:25:47 -04:00
|
|
|
var targetDirectory = workOrder.data["publish-target"];
|
2023-04-09 17:01:25 -04:00
|
|
|
if(!Directory.Exists(targetDirectory))
|
|
|
|
{
|
|
|
|
Directory.CreateDirectory(targetDirectory);
|
|
|
|
}
|
2023-04-15 08:25:38 -04:00
|
|
|
|
|
|
|
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);
|
2023-04-09 17:01:25 -04:00
|
|
|
var article = (await TtrssClient.GetArticles(workOrder.articleId))?.FirstOrDefault();
|
2023-04-09 18:00:28 -04:00
|
|
|
await TtrssClient.UpdateArticleNote($"{article.note}\n[{DateTime.Now.ToString("o")}] - copied", article.id);
|
2023-04-09 17:01:25 -04:00
|
|
|
return new Tuple<TaskStatus, WorkOrder>(TaskStatus.Done, workOrder);
|
2023-04-07 22:24:31 -04:00
|
|
|
}
|
|
|
|
}
|
2023-04-08 02:33:38 -04:00
|
|
|
}
|