Skip to content

Commit

Permalink
- Updated affix localisation data.
Browse files Browse the repository at this point in the history
- Fixed D4builds imports.
  • Loading branch information
josdemmers committed Jun 4, 2024
1 parent 3b1cd3e commit ddfe66f
Show file tree
Hide file tree
Showing 17 changed files with 7,435 additions and 6,726 deletions.
25 changes: 17 additions & 8 deletions D4Companion.Services/BuildsManagerD4Builds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using Prism.Events;
using SharpDX;
using System.Collections.Concurrent;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text.Json;
using System.Text.RegularExpressions;
using System.Xml.Linq;

namespace D4Companion.Services
Expand Down Expand Up @@ -218,6 +217,10 @@ public void DownloadD4BuildsBuild(string buildIdD4Builds)
//watch.Stop();
//System.Diagnostics.Debug.WriteLine($"{MethodBase.GetCurrentMethod()?.Name} (Navigate): Elapsed time: {watch.ElapsedMilliseconds}");

// TODO: Need a better _webDriverWait.Until or other check for page load status.
// Extra sleep to make sure page is loaded.
Thread.Sleep(5000);

// Build name
d4BuildsBuild.Name = _webDriver.FindElement(By.Id("renameBuild")).GetAttribute("value");
_eventAggregator.GetEvent<D4BuildsStatusUpdateEvent>().Publish(new D4BuildsStatusUpdateEventParams { Build = d4BuildsBuild, Status = $"Downloaded {d4BuildsBuild.Name}." });
Expand Down Expand Up @@ -379,8 +382,9 @@ private ItemAffix ConvertItemAffix(Tuple<string,string> affixD4Builds)
// Clean string for implicit affixes
string affixClean = affixD4Builds.Item2.Contains(":") ? affixD4Builds.Item2.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries)[1] : affixD4Builds.Item2;
// Clean string for tempered
affixClean = affixClean.Contains("]") ? affixClean.Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries)[1] : affixClean;
affixClean = affixClean.Contains(")") ? affixClean.Split(new char[] { '(', ')' }, StringSplitOptions.RemoveEmptyEntries)[0] : affixClean;
affixClean = Regex.Replace(affixClean, @"\[(.+?)\]", string.Empty);
affixClean = Regex.Replace(affixClean, @"\((.+?)\)", string.Empty);

// Clean string
affixClean = String.Concat(affixClean.Where(c =>
(c < '0' || c > '9') &&
Expand Down Expand Up @@ -425,12 +429,17 @@ private ItemAffix ConvertItemAspect(string aspect)

private void ExportBuildVariants(D4BuildsBuild d4BuildsBuild)
{
var count = _webDriver?.FindElements(By.ClassName("variant__button")).Count;
var buttonElements = _webDriver?.FindElements(By.ClassName("variant__button"));
var count = buttonElements?.Count ?? 0;

for (int i = 0; i < count; i++)
{
string variant = Regex.Match(buttonElements[i].GetAttribute("outerHTML"), @"(?:renameVariant)\d+").Value;
int variantIndex = int.Parse(Regex.Match(variant, @"\d+").Value);

_ = _webDriver?.ExecuteScript($"document.querySelectorAll('.variant__button')[{i}].click()");
Thread.Sleep(_delayVariant);
ExportBuildVariant(i, d4BuildsBuild);
ExportBuildVariant(variantIndex, d4BuildsBuild);
}
}

Expand Down Expand Up @@ -468,8 +477,8 @@ private void ExportBuildVariant(int variantIndex, D4BuildsBuild d4BuildsBuild)
d4BuildsBuildVariant.Weapon.AddRange(GetAllAffixes("Weapon"));
d4BuildsBuildVariant.Weapon.AddRange(GetAllAffixes("BludgeoningWeapon"));
d4BuildsBuildVariant.Weapon.AddRange(GetAllAffixes("SlashingWeapon"));
d4BuildsBuildVariant.Weapon.AddRange(GetAllAffixes("WieldWeapon1"));
d4BuildsBuildVariant.Weapon.AddRange(GetAllAffixes("WieldWeapon2"));
d4BuildsBuildVariant.Weapon.AddRange(GetAllAffixes("Dual-WieldWeapon1"));
d4BuildsBuildVariant.Weapon.AddRange(GetAllAffixes("Dual-WieldWeapon2"));
d4BuildsBuildVariant.Weapon = d4BuildsBuildVariant.Weapon.Distinct().ToList();
d4BuildsBuildVariant.Ranged = GetAllAffixes("RangedWeapon");
d4BuildsBuildVariant.Offhand = GetAllAffixes("Offhand");
Expand Down
Loading

0 comments on commit ddfe66f

Please sign in to comment.