ttrss-co-pilot/tasks/Publish.cs
Adam R Grey 9d252ee0d3 on publish, another pass to filter distasteful chars in filenames
turns out *nix has _no_ problem with colons, but android does
2023-04-15 08:25:38 -04:00

32 lines
1.2 KiB
C#

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
{
public override string TaskName => "filemovePublish";
public override async Task<Tuple<TaskStatus, WorkOrder>>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, WorkOrder>(TaskStatus.Done, workOrder);
}
}
}