Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
54d2afac8d | |||
983a57b3d7 | |||
c30deeed49 | |||
2b0586b0ac | |||
a832635a21 |
@ -11,6 +11,7 @@ namespace ttrss_co_client
|
||||
public string OnDoneCopy { get; set; }
|
||||
public string WorkingDirectory { get; set; } = "./working/";
|
||||
public string ChatScript { get; set; }
|
||||
public string UserAgent { get; set; }
|
||||
public IEnumerable<FeedAction> feedActions { get; set; }
|
||||
public class FeedAction
|
||||
{
|
||||
|
31
Program.cs
31
Program.cs
@ -152,18 +152,24 @@ namespace ttrss_co_client
|
||||
{
|
||||
var wo = await lingeringTask;
|
||||
var wop = Path.Combine(conf.WorkingDirectory, wo.Item2.guid.ToString(), "workorder.json");
|
||||
File.WriteAllText(wop, JsonConvert.SerializeObject(wo.Item2));
|
||||
//if you tell me it's done, or you need to continue now.... I believe you.
|
||||
switch (wo.Item1)
|
||||
{
|
||||
case Phase2Task.TaskStatus.Done:
|
||||
File.Delete(wop);
|
||||
Directory.Delete(Path.Combine(conf.WorkingDirectory, wo.Item2.guid.ToString()));
|
||||
var workingSubDir = Path.Combine(conf.WorkingDirectory, wo.Item2.guid.ToString());
|
||||
foreach(var file in Directory.GetFiles(workingSubDir, "*.*", SearchOption.AllDirectories))
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
//imo this next line should also handle the above, but apparently I'm alone in that.
|
||||
Directory.Delete(workingSubDir, true);
|
||||
break;
|
||||
case Phase2Task.TaskStatus.ContinueNow:
|
||||
remainingWork.Add(wo.Item2);
|
||||
break;
|
||||
case Phase2Task.TaskStatus.TryLater:
|
||||
|
||||
File.WriteAllText(wop, JsonConvert.SerializeObject(wo.Item2));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -173,6 +179,25 @@ namespace ttrss_co_client
|
||||
await ttrssClient.Logout();
|
||||
Console.WriteLine($"logged out of ttrss.");
|
||||
|
||||
#region cleanup
|
||||
Console.WriteLine("===== phase 3 =====");
|
||||
//loop through working directory looking for other work orders to add
|
||||
var subdirs = Directory.GetDirectories(conf.WorkingDirectory);
|
||||
foreach(var subdir in subdirs)
|
||||
{
|
||||
if(Directory.GetFiles(subdir)?.Length == 0)
|
||||
{
|
||||
Console.WriteLine($"{subdir} is empty");
|
||||
Directory.Delete(subdir);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"{subdir} is not empty: {string.Join(", ", Directory.GetFiles(subdir))}");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
Console.WriteLine($"done for real");
|
||||
}
|
||||
static Configuration Configure(string configurationPath = "appsettings.json")
|
||||
|
@ -6,6 +6,7 @@
|
||||
"onDoneCopy":"./",
|
||||
"workingDirectory":"working/",
|
||||
"chatScript": "miscChat.sh",
|
||||
"userAgent": "Mozilla/5.0 (compatible; wget-is-not-a-crime/1.0)",
|
||||
"feedActions":
|
||||
[
|
||||
{
|
||||
|
@ -15,7 +15,10 @@ public class ChatMessage : Phase2Task
|
||||
public override async Task<Tuple<TaskStatus, WorkOrder>> ActOn(WorkOrder workOrder)
|
||||
{
|
||||
await Process.Start(ChatScript,
|
||||
workOrder.data["chatmessage"] + (await TtrssClient.GetArticles(workOrder.articleId)).First().feed_title
|
||||
workOrder.data["chatmessage"] +
|
||||
(await TtrssClient.GetArticles(workOrder.articleId)).First().feed_title +
|
||||
": " +
|
||||
(await TtrssClient.GetArticles(workOrder.articleId)).First().title
|
||||
).WaitForExitAsync();
|
||||
return new Tuple<TaskStatus, WorkOrder>(TaskStatus.Done, workOrder);
|
||||
}
|
||||
|
@ -25,10 +25,16 @@ namespace ttrss_co_client.tasks
|
||||
var extensionUpstream = attachmentLink.Substring(attachmentLink.LastIndexOf('.'));
|
||||
var downloadPath = Path.Combine(workingFolder, headline.title) + extensionUpstream;
|
||||
var downloader = new HttpClient();
|
||||
downloader.DefaultRequestHeaders.UserAgent.ParseAdd(Conf.UserAgent);
|
||||
sw.Start();
|
||||
File.WriteAllBytes(downloadPath, await (await downloader.GetAsync(attachmentLink)).Content.ReadAsByteArrayAsync());
|
||||
var dlResult = (await downloader.GetAsync(attachmentLink));
|
||||
File.WriteAllBytes(downloadPath, await dlResult.Content.ReadAsByteArrayAsync());
|
||||
sw.Stop();
|
||||
var outputStr = $"{(File.Exists(downloadPath) ? "Success" : "fail")} in {sw.Elapsed}";
|
||||
var outputStr = $"{(dlResult.IsSuccessStatusCode ? "Success" : "fail")} in {sw.Elapsed}";
|
||||
if(!dlResult.IsSuccessStatusCode)
|
||||
{
|
||||
outputStr += $"\n\t{dlResult.StatusCode} - {dlResult.ReasonPhrase}";
|
||||
}
|
||||
|
||||
Console.WriteLine($" {attachmentLink}\n{outputStr}");
|
||||
await TtrssClient.SetArticleLabel(labelsWRTArticle.First(l => l.caption?.ToLower() == this.TriggerLabel.ToLower()).id, false, headline.id);
|
||||
@ -45,7 +51,7 @@ namespace ttrss_co_client.tasks
|
||||
Console.WriteLine($"article {headline.id} - podcastifying; {podcastTitle}");
|
||||
|
||||
await TtrssClient.UpdateArticleNote($"{headline.note}\n[{DateTime.Now.ToString("o")}] - podcastify attachment (dl): {outputStr}", headline.id);
|
||||
if (!File.Exists(downloadPath))
|
||||
if (!dlResult.IsSuccessStatusCode)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user