added description downloading await

This commit is contained in:
timerix 2023-04-04 01:02:16 +06:00
parent 3d550da77c
commit 01e414e78e
2 changed files with 9 additions and 5 deletions

View File

@ -63,7 +63,7 @@ public static class Program
1), 1),
new LaunchArgument(new []{"desc"}, new LaunchArgument(new []{"desc"},
"Downloads mod description from steam to new file in outDir. Requires -o", "Downloads mod description from steam to new file in outDir. Requires -o",
id=>Workshop.CreateDescFile(id, outPath), id=>Workshop.CreateDescFile(id, outPath).GetAwaiter().GetResult(),
"mod_id", "mod_id",
1) 1)
).ParseAndHandle(args); ).ParseAndHandle(args);

View File

@ -1,5 +1,6 @@
using System.Linq; using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using DTLib.Ben.Demystifier; using DTLib.Ben.Demystifier;
using HtmlAgilityPack; using HtmlAgilityPack;
@ -17,6 +18,8 @@ static class Workshop
{ {
var moddirs = Directory.GetDirectories(workshopDir); var moddirs = Directory.GetDirectories(workshopDir);
Log("b", $"found {moddirs.Length} mod dirs"); Log("b", $"found {moddirs.Length} mod dirs");
Task[] create_desc_tasks = new Task[moddirs.Length];
for (int i = 0; i < moddirs.Length; i++) for (int i = 0; i < moddirs.Length; i++)
{ {
string modId = moddirs[i].LastName().ToString(); string modId = moddirs[i].LastName().ToString();
@ -47,9 +50,7 @@ static class Workshop
IOPath outModDir=Path.Concat(outDir, Path.ReplaceRestrictedChars(modname)); IOPath outModDir=Path.Concat(outDir, Path.ReplaceRestrictedChars(modname));
File.Copy(descriptorPath, Path.Concat(outModDir, "descriptor.mod"), true); File.Copy(descriptorPath, Path.Concat(outModDir, "descriptor.mod"), true);
CreateDescFile(modId, outModDir); create_desc_tasks[i] = CreateDescFile(modId, outModDir);
var subdirs = Directory.GetDirectories(moddirs[i]); var subdirs = Directory.GetDirectories(moddirs[i]);
for (sbyte n = 0; n < subdirs.Length; n++) for (sbyte n = 0; n < subdirs.Length; n++)
@ -90,11 +91,14 @@ static class Workshop
if (Directory.Exists("_UNZIP")) Directory.Delete("_UNZIP"); if (Directory.Exists("_UNZIP")) Directory.Delete("_UNZIP");
} }
Task.WaitAll(create_desc_tasks);
} }
private static HttpClient http = new HttpClient(); private static HttpClient http = new HttpClient();
public static async void CreateDescFile(string workshopId, IOPath outDir)
public static async Task CreateDescFile(string workshopId, IOPath outDir)
{ {
try try
{ {