Merge pull request #201 from wabbajack-tools/yet-more-fixes

Added extensions to the game enum, fixed the cache server (again)
This commit is contained in:
Timothy Baldridge 2019-11-22 15:19:38 -07:00 committed by GitHub
commit c9ce84453e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 16 deletions

View File

@ -75,24 +75,37 @@ namespace Wabbajack.CacheServer
private string HandleCacheCall(dynamic arg) private string HandleCacheCall(dynamic arg)
{ {
string param = (string)arg.request; try
var url = new Uri(Encoding.UTF8.GetString(param.FromHex()));
var path = Path.Combine(NexusApiClient.LocalCacheDir, arg.request + ".json");
if (!File.Exists(path))
{ {
Utils.Log($"{DateTime.Now} - Not Cached - {url}"); string param = (string)arg.request;
var client = new HttpClient(); var url = new Uri(Encoding.UTF8.GetString(param.FromHex()));
var builder = new UriBuilder(url) {Host = "localhost", Port = Request.Url.Port ?? 80}; var path = Path.Combine(NexusApiClient.LocalCacheDir, arg.request + ".json");
client.DefaultRequestHeaders.Add("apikey", Request.Headers["apikey"]);
client.GetStringSync(builder.Uri.ToString());
if (!File.Exists(path)) if (!File.Exists(path))
throw new InvalidDataException("Invalid Data"); {
Utils.Log($"{DateTime.Now} - Not Cached - {url}");
var client = new HttpClient();
var builder = new UriBuilder(url) {Host = "localhost", Port = Request.Url.Port ?? 8080, Scheme = "http"};
client.DefaultRequestHeaders.Add("apikey", Request.Headers["apikey"]);
client.GetStringSync(builder.Uri.ToString());
if (!File.Exists(path))
{
Utils.Log($"Still not cached : {path}");
throw new InvalidDataException("Invalid Data");
}
Utils.Log($"Is Now Cached : {path}");
}
Utils.Log($"{DateTime.Now} - From Cached - {url}");
return File.ReadAllText(path);
}
catch (Exception ex)
{
Utils.Log(ex.ToString());
return "ERROR";
} }
Utils.Log($"{DateTime.Now} - From Cached - {url}");
return File.ReadAllText(path);
} }
} }
} }

View File

@ -41,6 +41,14 @@ namespace Wabbajack.Common
Witcher3 Witcher3
} }
public static class GameExtentions
{
public static GameMetaData MetaData(this Game game)
{
return GameRegistry.Games[game];
}
}
public class GameMetaData public class GameMetaData
{ {
public ModManager SupportedModManager { get; internal set; } public ModManager SupportedModManager { get; internal set; }

View File

@ -303,7 +303,7 @@ namespace Wabbajack.Lib.NexusApi
public ModInfo GetModInfo(Game game, string modId) public ModInfo GetModInfo(Game game, string modId)
{ {
var url = $"https://api.nexusmods.com/v1/games/{GameRegistry.Games[game].NexusName}/mods/{modId}.json"; var url = $"https://api.nexusmods.com/v1/games/{game.MetaData().NexusName}/mods/{modId}.json";
return GetCached<ModInfo>(url); return GetCached<ModInfo>(url);
} }