Skip to content

Commit

Permalink
3rd drop
Browse files Browse the repository at this point in the history
  • Loading branch information
EliphasNUIT committed Nov 18, 2024
1 parent bff5363 commit 1b08816
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 54 deletions.
40 changes: 20 additions & 20 deletions GW2EIDPSReport/DPSReportController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ public GetUploadsParameters()
}
///////////////// URL Utilities

private static readonly string MainEntryPoint = "https://dps.report";
private static readonly string SecondaryEntryPoint = "http://a.dps.report";
private static readonly string TertiaryEntryPoint = "https://b.dps.report";
private const string MainEntryPoint = "https://dps.report";
private const string SecondaryEntryPoint = "http://a.dps.report";
private const string TertiaryEntryPoint = "https://b.dps.report";

private static readonly string UploadContentURL = "/uploadContent";
private static readonly string GetUploadsURL = "/getUploads";
private static readonly string GetUserTokenURL = "/getUserToken";
private static readonly string GetUploadMetadataURL = "/getUploadMetadata";
private static readonly string GetJsonURL = "/getJson";
private const string UploadContentURL = "/uploadContent";
private const string GetUploadsURL = "/getUploads";
private const string GetUserTokenURL = "/getUserToken";
private const string GetUploadMetadataURL = "/getUploadMetadata";
private const string GetJsonURL = "/getJson";

// https://stackoverflow.com/questions/273313/randomize-a-listt
private static readonly Random rng = new();
Expand Down Expand Up @@ -142,7 +142,7 @@ private static List<string> GetUserTokenURLs()
};
return Shuffle(urls);
}
private static List<string> GetUploadMetadataURLs(string id, string permalink)
private static List<string> GetUploadMetadataURLs(string? id, string? permalink)
{
string url = GetUploadMetadataURL;
if (id != null)
Expand All @@ -161,7 +161,7 @@ private static List<string> GetUploadMetadataURLs(string id, string permalink)
};
return Shuffle(urls);
}
private static List<string> GetJsonURLs(string id, string permalink)
private static List<string> GetJsonURLs(string? id, string? permalink)
{
string url = GetJsonURL;
if (id != null)
Expand All @@ -181,7 +181,7 @@ private static List<string> GetJsonURLs(string id, string permalink)
return Shuffle(urls);
}
///////////////// APIs
public static DPSReportUploadObject UploadUsingEI(FileInfo fi, TraceHandler traceHandler, string userToken, bool anonymous = false, bool detailedWvW = false)
public static DPSReportUploadObject? UploadUsingEI(FileInfo fi, TraceHandler traceHandler, string userToken, bool anonymous = false, bool detailedWvW = false)
{
string fileName = fi.Name;
byte[] fileContents = File.ReadAllBytes(fi.FullName);
Expand All @@ -194,36 +194,36 @@ HttpContent contentCreator()
return multiPartContent;
}

DPSReportUploadObject response = GetDPSReportResponse<DPSReportUploadObject>("UploadUsingEI", GetUploadContentURLs(userToken, anonymous, detailedWvW), traceHandler, contentCreator);
DPSReportUploadObject? response = GetDPSReportResponse<DPSReportUploadObject>("UploadUsingEI", GetUploadContentURLs(userToken, anonymous, detailedWvW), traceHandler, contentCreator);
if (response != null && response.Error != null)
{
traceHandler("UploadUsingEI generated an error - " + response.Error);
}
return response;
}

public static DPSReportGetUploadsObject GetUploads(TraceHandler traceHandler, string userToken, GetUploadsParameters parameters)
public static DPSReportGetUploadsObject? GetUploads(TraceHandler traceHandler, string userToken, GetUploadsParameters parameters)
{
return GetDPSReportResponse<DPSReportGetUploadsObject>("GetUploads", GetGetUploadsURLs(parameters, userToken), traceHandler);
}
public static string GenerateUserToken(TraceHandler traceHandler)
{
DPSReportUserTokenResponse responseItem = GetDPSReportResponse<DPSReportUserTokenResponse>("GenerateUserToken", GetUserTokenURLs(), traceHandler);
DPSReportUserTokenResponse? responseItem = GetDPSReportResponse<DPSReportUserTokenResponse>("GenerateUserToken", GetUserTokenURLs(), traceHandler);
if (responseItem != null)
{
return responseItem.UserToken;
}
return "";
}
public static DPSReportUploadObject GetUploadMetaDataWithID(string id, TraceHandler traceHandler)
public static DPSReportUploadObject? GetUploadMetaDataWithID(string id, TraceHandler traceHandler)
{
if (id == null || id.Length == 0)
{
throw new InvalidDataException("Missing ID for GetUploadMetaData end point");
}
return GetDPSReportResponse<DPSReportUploadObject>("GetUploadMetaDataWithID", GetUploadMetadataURLs(id, null), traceHandler);
}
public static DPSReportUploadObject GetUploadMetaDataWithPermalink(string permalink, TraceHandler traceHandler)
public static DPSReportUploadObject? GetUploadMetaDataWithPermalink(string permalink, TraceHandler traceHandler)
{
if (permalink == null || permalink.Length == 0)
{
Expand All @@ -232,15 +232,15 @@ public static DPSReportUploadObject GetUploadMetaDataWithPermalink(string permal
return GetDPSReportResponse<DPSReportUploadObject>("GetUploadMetaDataWithPermalink", GetUploadMetadataURLs(null, permalink), traceHandler);
}

public static T GetJsonWithID<T>(string id, TraceHandler traceHandler)
public static T? GetJsonWithID<T>(string id, TraceHandler traceHandler)
{
if (id == null || id.Length == 0)
{
throw new InvalidDataException("Missing ID for GetJson end point");
}
return GetDPSReportResponse<T>("GetJsonWithID", GetJsonURLs(id, null), traceHandler);
}
public static T GetJsonWithPermalink<T>(string permalink, TraceHandler traceHandler)
public static T? GetJsonWithPermalink<T>(string permalink, TraceHandler traceHandler)
{
if (permalink == null || permalink.Length == 0)
{
Expand All @@ -249,7 +249,7 @@ public static T GetJsonWithPermalink<T>(string permalink, TraceHandler traceHand
return GetDPSReportResponse<T>("GetJsonWithPermalink", GetJsonURLs(null, permalink), traceHandler);
}
///////////////// Response Utilities
private static T GetDPSReportResponse<T>(string requestName, List<string> URIs, TraceHandler traceHandler, Func<HttpContent> content = null)
private static T? GetDPSReportResponse<T>(string requestName, List<string> URIs, TraceHandler traceHandler, Func<HttpContent>? content = null)
{
const int tentatives = 2;
for (int i = 0; i < tentatives; i++)
Expand Down Expand Up @@ -280,7 +280,7 @@ private static T GetDPSReportResponse<T>(string requestName, List<string> URIs,
if (responseContent != null)
{
var stringContents = responseContent.ReadAsStringAsync().Result;
T item = JsonSerializer.Deserialize<T>(stringContents, DeserializerSettings);
T item = JsonSerializer.Deserialize<T>(stringContents, DeserializerSettings)!;
traceHandler(requestName + " tentative successful");
return item;
}
Expand Down
6 changes: 3 additions & 3 deletions GW2EIDPSReport/DPSReportJsons/DPSReportUploadObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ public Dictionary<string, DPSReportUploadPlayerObject> Players
{
get
{
var json = PlayersJson.ToString();
var json = PlayersJson.ToString()!;
try
{
return JsonSerializer.Deserialize<Dictionary<string, DPSReportUploadPlayerObject>>(json);
return JsonSerializer.Deserialize<Dictionary<string, DPSReportUploadPlayerObject>>(json)!;
}
catch
{
return new Dictionary<string, DPSReportUploadPlayerObject>();
return [];
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions GW2EIDPSReport/GW2EIDPSReport.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<TargetFramework>net8</TargetFramework>
<LangVersion>12.0</LangVersion>
<Nullable>disable</Nullable>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Configurations>Debug;Release;NoRewards;Trace</Configurations>
</PropertyGroup>
Expand Down
4 changes: 2 additions & 2 deletions GW2EIDiscord/GW2EIDiscord.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<TargetFramework>net8</TargetFramework>
<LangVersion>12.0</LangVersion>
<Nullable>disable</Nullable>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Configurations>Debug;Release;NoRewards;Trace</Configurations>
<DebugSymbols>true</DebugSymbols>
Expand Down
6 changes: 3 additions & 3 deletions GW2EIParserCommons/ProgramHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -185,11 +185,11 @@ private string[] UploadOperation(FileInfo fInfo, ParsedEvtcLog originalLog, Oper
originalLog.FightData.Logic.ParseMode == GW2EIEvtcParser.EncounterLogic.FightLogic.ParseModeEnum.Benchmark
);
//Upload Process
string[] uploadresult = new string[2] { "", "" };
string[] uploadresult = ["", ""];
if (Settings.UploadToDPSReports)
{
originalController.UpdateProgressWithCancellationCheck("DPSReport: Uploading");
DPSReportUploadObject response = DPSReportController.UploadUsingEI(fInfo, str => originalController.UpdateProgress("DPSReport: " + str), Settings.DPSReportUserToken,
DPSReportUploadObject? response = DPSReportController.UploadUsingEI(fInfo, str => originalController.UpdateProgress("DPSReport: " + str), Settings.DPSReportUserToken,
originalLog.ParserSettings.AnonymousPlayers,
originalLog.ParserSettings.DetailedWvWParse);
uploadresult[0] = response != null ? response.Permalink : "Upload process failed";
Expand Down Expand Up @@ -218,7 +218,7 @@ private string[] UploadOperation(FileInfo fInfo, ParsedEvtcLog originalLog, Oper
}
else
{
string? accName = originalLog.LogData.PoV != null ? originalLog.LogData.PoVAccount : null;
string accName = originalLog.LogData.PoV != null ? originalLog.LogData.PoVAccount : "-";

if (WingmanController.CheckUploadPossible(fInfo, accName, originalLog.FightData.TriggerID, str => originalController.UpdateProgress("Wingman: " + str)))
{
Expand Down
4 changes: 2 additions & 2 deletions GW2EIWingman/GW2EIWingman.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<TargetFramework>net8</TargetFramework>
<LangVersion>12.0</LangVersion>
<Nullable>disable</Nullable>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Configurations>Debug;Release;NoRewards;Trace</Configurations>
</PropertyGroup>
Expand Down
44 changes: 22 additions & 22 deletions GW2EIWingman/WingmanController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ public static class WingmanController

///////////////// URL Utilities
private const string BaseURL = "https://gw2wingman.nevermindcreations.de/";
private readonly static string TestConnectionURL = BaseURL + "testConnection";
private const string TestConnectionURL = BaseURL + "testConnection";

private const string BaseAPIURL = BaseURL + "api/";
private readonly static string EIVersionURL = BaseAPIURL + "EIversion";
private readonly static string ImportLogQueuedURL = BaseAPIURL + "importLogQueued";
private readonly static string CheckLogQueuedURL = BaseAPIURL + "checkLogQueued";
private readonly static string CheckLogQueuedOrDBURL = BaseAPIURL + "checkLogQueuedOrDB";
private readonly static string CheckUploadURL = BaseURL + "checkUpload";
private readonly static string UploadProcessedURL = BaseURL + "uploadProcessed";
private const string EIVersionURL = BaseAPIURL + "EIversion";
private const string ImportLogQueuedURL = BaseAPIURL + "importLogQueued";
private const string CheckLogQueuedURL = BaseAPIURL + "checkLogQueued";
private const string CheckLogQueuedOrDBURL = BaseAPIURL + "checkLogQueuedOrDB";
private const string CheckUploadURL = BaseURL + "checkUpload";
private const string UploadProcessedURL = BaseURL + "uploadProcessed";

private static bool IsDPSReportLinkValid(string dpsReportLink, TraceHandler traceHandler)
{
Expand Down Expand Up @@ -72,7 +72,7 @@ private static bool CheckConnection(TraceHandler traceHandler)

private static bool VerifyEIVersion(Version parserVersion, TraceHandler traceHandler)
{
string returnedVersion = _GetWingmanResponse("EIVersionURL", EIVersionURL, traceHandler, HttpMethod.Get);
string? returnedVersion = _GetWingmanResponse("EIVersionURL", EIVersionURL, traceHandler, HttpMethod.Get);
if (returnedVersion == null)
{
traceHandler("Could not fetch version from Wingman");
Expand All @@ -90,21 +90,21 @@ private static bool VerifyEIVersion(Version parserVersion, TraceHandler traceHan
return true;
}

public static bool CanBeUsed(Version parserVersion, TraceHandler traceHandler)
public static bool CanBeUsed(Version? parserVersion, TraceHandler traceHandler)
{
return CheckConnection(traceHandler) && (parserVersion == null || VerifyEIVersion(parserVersion, traceHandler));
}
//

public static WingmanCheckLogQueuedOrDBObject GetCheckLogQueuedOrDB(string dpsReportLink, TraceHandler traceHandler)
public static WingmanCheckLogQueuedOrDBObject? GetCheckLogQueuedOrDB(string dpsReportLink, TraceHandler traceHandler)
{
if (!IsDPSReportLinkValid(dpsReportLink, traceHandler))
{
return null;
}
try
{
return JsonConvert.DeserializeObject<WingmanCheckLogQueuedOrDBObject>(GetWingmanResponse("CheckLogQueuedOrDB", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post), new JsonSerializerSettings
return JsonConvert.DeserializeObject<WingmanCheckLogQueuedOrDBObject>(GetWingmanResponse("CheckLogQueuedOrDB", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post)!, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
ContractResolver = DefaultJsonContractResolver,
Expand All @@ -118,15 +118,15 @@ public static WingmanCheckLogQueuedOrDBObject GetCheckLogQueuedOrDB(string dpsRe
}
}

public static WingmanCheckLogQueuedObject GetCheckLogQueued(string dpsReportLink, TraceHandler traceHandler)
public static WingmanCheckLogQueuedObject? GetCheckLogQueued(string dpsReportLink, TraceHandler traceHandler)
{
if (!IsDPSReportLinkValid(dpsReportLink, traceHandler))
{
return null;
}
try
{
return JsonConvert.DeserializeObject<WingmanCheckLogQueuedObject>(GetWingmanResponse("CheckLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post), new JsonSerializerSettings
return JsonConvert.DeserializeObject<WingmanCheckLogQueuedObject>(GetWingmanResponse("CheckLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post)!, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
ContractResolver = DefaultJsonContractResolver,
Expand All @@ -140,15 +140,15 @@ public static WingmanCheckLogQueuedObject GetCheckLogQueued(string dpsReportLink
}
}

public static WingmanImportLogQueuedObject ImportLogQueued(string dpsReportLink, TraceHandler traceHandler)
public static WingmanImportLogQueuedObject? ImportLogQueued(string dpsReportLink, TraceHandler traceHandler)
{
if (!IsDPSReportLinkValid(dpsReportLink, traceHandler))
{
return null;
}
try
{
return JsonConvert.DeserializeObject<WingmanImportLogQueuedObject>(GetWingmanResponse("ImportLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post), new JsonSerializerSettings
return JsonConvert.DeserializeObject<WingmanImportLogQueuedObject>(GetWingmanResponse("ImportLogQueued", GetCheckLogQueuedOrDBURL(dpsReportLink), traceHandler, null, HttpMethod.Post)!, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
ContractResolver = DefaultJsonContractResolver,
Expand All @@ -165,7 +165,7 @@ public static WingmanImportLogQueuedObject ImportLogQueued(string dpsReportLink,
public static bool UploadToWingmanUsingImportLogQueued(string dpsReportLink, TraceHandler traceHandler)
{
// Check if the URL is already present on Wingman
WingmanCheckLogQueuedOrDBObject wingmanCheck = GetCheckLogQueuedOrDB(dpsReportLink, traceHandler);
WingmanCheckLogQueuedOrDBObject? wingmanCheck = GetCheckLogQueuedOrDB(dpsReportLink, traceHandler);
if (wingmanCheck != null)
{
if (wingmanCheck.InDB || wingmanCheck.InQueue)
Expand All @@ -175,7 +175,7 @@ public static bool UploadToWingmanUsingImportLogQueued(string dpsReportLink, Tra
}
else
{
WingmanImportLogQueuedObject wingmanUpload = ImportLogQueued(dpsReportLink, traceHandler);
WingmanImportLogQueuedObject? wingmanUpload = ImportLogQueued(dpsReportLink, traceHandler);
if (wingmanUpload != null)
{
if (wingmanUpload.Success != 1)
Expand Down Expand Up @@ -205,7 +205,7 @@ public static bool CheckUploadPossible(FileInfo fi, string account, long trigger
{ "file", fi.Name } ,
{ "triggerID", triggerID.ToString() }
};
Func<HttpContent> contentCreator = () =>
HttpContent contentCreator()
{
var multiPartContent = new MultipartFormDataContent();
foreach (KeyValuePair<string, string> pair in data)
Expand All @@ -214,7 +214,7 @@ public static bool CheckUploadPossible(FileInfo fi, string account, long trigger
multiPartContent.Add(content, pair.Key);
}
return multiPartContent;
};
}
return GetWingmanResponse("CheckUploadPossible", CheckUploadURL, traceHandler, null, HttpMethod.Post, contentCreator) == "True";
}
public static bool UploadProcessed(FileInfo fi, string account, byte[] jsonFile, byte[] htmlFile, string suffix, TraceHandler traceHandler, Version parserVersion)
Expand Down Expand Up @@ -247,12 +247,12 @@ public static bool UploadProcessed(FileInfo fi, string account, byte[] jsonFile,
return multiPartContent;
};

string response = GetWingmanResponse("UploadProcessed", UploadProcessedURL, traceHandler, null, HttpMethod.Post, contentCreator);
string? response = GetWingmanResponse("UploadProcessed", UploadProcessedURL, traceHandler, null, HttpMethod.Post, contentCreator);
return response != null && response != "False";
}

//
private static string _GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, HttpMethod method, Func<HttpContent> content = null)
private static string? _GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, HttpMethod method, Func<HttpContent>? content = null)
{
const int tentatives = 3;
for (int i = 0; i < tentatives; i++)
Expand Down Expand Up @@ -306,7 +306,7 @@ private static string _GetWingmanResponse(string requestName, string url, TraceH
}


private static string GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, Version parserVersion, HttpMethod method, Func<HttpContent> content = null)
private static string? GetWingmanResponse(string requestName, string url, TraceHandler traceHandler, Version? parserVersion, HttpMethod method, Func<HttpContent>? content = null)
{
if (!CanBeUsed(parserVersion, traceHandler))
{
Expand Down

0 comments on commit 1b08816

Please sign in to comment.