From b72941364654be9287b6c4f62b15c4542e2fe607 Mon Sep 17 00:00:00 2001 From: mikx Date: Wed, 1 Jul 2020 12:25:13 -0400 Subject: [PATCH] New API + Settings Tweaks + URL Changes --- PoE-MxFilterGen/App.config | 6 +- PoE-MxFilterGen/PoE-MxFilterGen.csproj | 5 +- PoE-MxFilterGen/TierGen.cs | 122 ++++++++++++++++++ PoE-MxFilterGen/generator/fossil.cs | 122 ++++++++++++++++++ PoE-MxFilterGen/main.cs | 35 +++-- PoE-MxFilterGen/msg.cs | 2 +- ...gnTimeResolveAssemblyReferencesInput.cache | Bin 7071 -> 7043 bytes ...oE-MxFilterGen.csproj.FileListAbsolute.txt | 18 +++ PoE-MxFilterGen/obj/Debug/mxfiltergen.exe | Bin 304640 -> 316416 bytes PoE-MxFilterGen/obj/Debug/mxfiltergen.pdb | Bin 44544 -> 67072 bytes 10 files changed, 286 insertions(+), 24 deletions(-) create mode 100644 PoE-MxFilterGen/TierGen.cs create mode 100644 PoE-MxFilterGen/generator/fossil.cs diff --git a/PoE-MxFilterGen/App.config b/PoE-MxFilterGen/App.config index 88fa402..ecdcf8a 100644 --- a/PoE-MxFilterGen/App.config +++ b/PoE-MxFilterGen/App.config @@ -1,6 +1,6 @@ - + - + - \ No newline at end of file + diff --git a/PoE-MxFilterGen/PoE-MxFilterGen.csproj b/PoE-MxFilterGen/PoE-MxFilterGen.csproj index 7a2a700..e77f31d 100644 --- a/PoE-MxFilterGen/PoE-MxFilterGen.csproj +++ b/PoE-MxFilterGen/PoE-MxFilterGen.csproj @@ -9,11 +9,12 @@ Exe PoE_MxFilterGen mxfiltergen - v4.5.2 + v4.7.2 512 true + AnyCPU @@ -54,10 +55,12 @@ + + diff --git a/PoE-MxFilterGen/TierGen.cs b/PoE-MxFilterGen/TierGen.cs new file mode 100644 index 0000000..ec08e09 --- /dev/null +++ b/PoE-MxFilterGen/TierGen.cs @@ -0,0 +1,122 @@ +using PoE_MxFilterGen.json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PoE_MxFilterGen +{ + class TierGen + { + private static string iB; + + public static void Gen(string section, string api, string league, int minValue) + { + string giturl = settings.GetGIT(); + var js = web.ReadString($@"{giturl}/PoE-MxFilter-Structure/master/Tiers.txt"); + + if (iB == null) { iB = @""""""; } + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" HasExplicitMod ""Veiled""" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 112 255 112 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " MinimapIcon 1 Green Star" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayEffect Green" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " FracturedItem True" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 112 255 112 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " MinimapIcon 1 Green Star" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayEffect Green" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SynthesisedItem True" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 112 255 112 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " MinimapIcon 1 Green Star" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " PlayEffect Green" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Identified True" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 0 0 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Corrupted True" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 210 0 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 35" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 75" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel <= 100" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 184 218 242" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 60" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel <= 74" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 222 118 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, $" BaseType {js}" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel >= 60" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " ItemLevel <= 74" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " Rarity = Rare" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 215 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 54 54 54" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 222 118 0" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_tier.mp3""" + Environment.NewLine, Encoding.UTF8); + } + + } +} diff --git a/PoE-MxFilterGen/generator/fossil.cs b/PoE-MxFilterGen/generator/fossil.cs new file mode 100644 index 0000000..584c33e --- /dev/null +++ b/PoE-MxFilterGen/generator/fossil.cs @@ -0,0 +1,122 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace FOSSIL__GEN_ +{ + public class Sparkline + { + public List data { get; set; } + public double totalChange { get; set; } + + } + + public class LowConfidenceSparkline + { + public List data { get; set; } + public double totalChange { get; set; } + + } + + public class ExplicitModifier + { + public string text { get; set; } + public bool optional { get; set; } + + } + + public class Line + { + public int id { get; set; } + public string name { get; set; } + public string icon { get; set; } + public int mapTier { get; set; } + public int levelRequired { get; set; } + public object baseType { get; set; } + public int stackSize { get; set; } + public object variant { get; set; } + public object prophecyText { get; set; } + public object artFilename { get; set; } + public int links { get; set; } + public int itemClass { get; set; } + public Sparkline sparkline { get; set; } + public LowConfidenceSparkline lowConfidenceSparkline { get; set; } + public List implicitModifiers { get; set; } + public List explicitModifiers { get; set; } + public string flavourText { get; set; } + public bool corrupted { get; set; } + public int gemLevel { get; set; } + public int gemQuality { get; set; } + public string itemType { get; set; } + public double chaosValue { get; set; } + public double exaltedValue { get; set; } + public int count { get; set; } + public string detailsId { get; set; } + public object tradeInfo { get; set; } + public object mapRegion { get; set; } + + } + + public class Translations + { + + } + + public class Language + { + public string name { get; set; } + public Translations translations { get; set; } + + } + + public class RootFossil + { + public List lines { get; set; } + public Language language { get; set; } + + } + + public class fossil + { + private static string iB; + + public static void Gen(string section, string api, string league, int minValue) + { + List itemBase = new List(); + + var RootFossil = JsonConvert.DeserializeObject>(File.ReadAllText("data/ninja.fossil.json", Encoding.UTF8)); + + foreach (var ln in RootFossil) + { + // Check if the item value is equal or superior to the minimum value + + foreach (var r in ln.lines) + { + if (r.chaosValue >= 10) + { + if (!itemBase.Contains(r.name)) + { + itemBase.Add(r.name); + iB = iB + string.Format(@" ""{0}""", r.name); + } + } + } + } + + if (iB == null) { iB = @""""""; } + string fn = @"gen\" + section + ".filter"; + File.AppendAllText(fn, string.Format("# Section: {0}", section) + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, "Show" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" Class ""Stackable Currency""" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " BaseType" + iB + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetTextColor 255 165 0 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBackgroundColor 255 255 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetBorderColor 255 165 0 255" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, " SetFontSize 40" + Environment.NewLine, Encoding.UTF8); + File.AppendAllText(fn, @" CustomAlertSound ""mx_fossil.mp3""", Encoding.UTF8); + } + } +} diff --git a/PoE-MxFilterGen/main.cs b/PoE-MxFilterGen/main.cs index cf39cf1..97d69b1 100644 --- a/PoE-MxFilterGen/main.cs +++ b/PoE-MxFilterGen/main.cs @@ -17,9 +17,12 @@ namespace PoE_MxFilterGen { private static DateTime dt = DateTime.Now; - public static string version = "7.1.0"; + public static string version = "8.0.0"; public static string fDate = string.Format("{0}-{1}-{2}", dt.Day, dt.Month, dt.Year); + public static string api = ""; + public static string giturl = "https://raw.githubusercontent.com/mikxqc"; + public static string section = ""; public static string league = ""; public static string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); @@ -32,8 +35,6 @@ namespace PoE_MxFilterGen public static bool deb = false; - private static string giturl = ""; - public class REMVAR { public string league { get; set; } @@ -74,16 +75,16 @@ namespace PoE_MxFilterGen // Get current league from MxD var ls = web.ReadString("https://raw.githubusercontent.com/mikxqc/PoE-MxFilter-Data/master/json/mxfiltergen_var.json"); REMVAR lj = JsonConvert.DeserializeObject(ls); - league = lj.league; + league = lj.league; + + api = $"https://poe.ninja/api/data/"; msg.CMW(string.Format("GIT: {0}", json.settings.GetGIT()), true, 1); msg.CMW(string.Format("API: {0}", json.settings.GetAPI()), true, 1); msg.CMW(string.Format("League: {0}", league), true, 1); msg.CMW(string.Format("Minimum Value: {0}c", json.settings.GetMinimumValue().ToString()), true, 1); msg.CMW(string.Format("Verbose: {0}", json.settings.GetVerbose().ToString()), true, 1); - msg.CMW(string.Format("SSF: {0}", json.settings.GetSSF().ToString()), true, 1); - - giturl = json.settings.GetGIT(); + msg.CMW(string.Format("SSF: {0}", json.settings.GetSSF().ToString()), true, 1); // Check for updates string remote_version = web.ReadString(@"https://raw.githubusercontent.com/mikxqc/PoE-MxFilter-Data/master/txt/mxfiltergen_version.txt"); @@ -119,18 +120,14 @@ namespace PoE_MxFilterGen if (File.Exists($@"{path}\My Games\Path of Exile\MxFilter.filter")) { File.Delete($@"{path}\My Games\Path of Exile\MxFilter.filter"); } // Get latest poe.ninja api - msg.CMW($"Downloading the latest API data from poe.watch...", true, 1); - /*web.SaveString(json.settings.GetAPI() + "GetUniqueArmourOverview?league=" + league, "data/ninja.armour.json"); - web.SaveString(json.settings.GetAPI() + "GetUniqueWeaponOverview?league=" + league, "data/ninja.weapon.json"); - web.SaveString(json.settings.GetAPI() + "GetUniqueAccessoryOverview?league=" + league, "data/ninja.accessory.json"); - web.SaveString(json.settings.GetAPI() + "GetUniqueMapOverview?league=" + league, "data/ninja.map.json"); - web.SaveString(json.settings.GetAPI() + "GetDivinationCardsOverview?league=" + league, "data/ninja.card.json"); */ + msg.CMW($"Downloading the latest API data from poe.ninja...", true, 1); - web.SaveString(json.settings.GetAPI() + $"get?league={league}&category=armour", "data/poew.armour.json"); - web.SaveString(json.settings.GetAPI() + $"get?league={league}&category=weapon", "data/poew.weapon.json"); - web.SaveString(json.settings.GetAPI() + $"get?league={league}&category=accessory", "data/poew.accessory.json"); - web.SaveString(json.settings.GetAPI() + $"get?league={league}&category=card", "data/poew.card.json"); - web.SaveString(json.settings.GetAPI() + $"get?league={league}&category=currency", "data/poew.currency.json"); + web.SaveString(api + $"itemoverview?league={league}&type=UniqueArmour&language=en", "data/ninja.armour.json"); + web.SaveString(api + $"itemoverview?league={league}&type=UniqueWeapon&language=en", "data/ninja.weapon.json"); + web.SaveString(api + $"itemoverview?league={league}&type=UniqueAccessory&language=en", "data/ninja.accessory.json"); + web.SaveString(api + $"itemoverview?league={league}&type=DivinationCard&language=en", "data/ninja.card.json"); + web.SaveString(api + $"currencyoverview?league={league}&type=Currency&language=en", "data/ninja.currency.json"); + web.SaveString(api + $"itemoverview?league={league}&type=Fossil&language=en", "data/ninja.fossil.json"); // Get Theme File(s) web.DownloadFile($@"{giturl}/PoE-MxFilter-Structure/master/Chancing.json", @"structure\Chancing.json"); @@ -282,7 +279,7 @@ namespace PoE_MxFilterGen Type type = AppDomain.CurrentDomain.GetAssemblies().SelectMany(t => t.GetTypes()).Where(t => String.Equals(t.Name, "Generator", StringComparison.Ordinal)).First(); object o = Activator.CreateInstance(type); MethodInfo mi = o.GetType().GetMethod("Gen"); - Object[] ob = { json.settings.GetSection(), json.settings.GetAPI(), main.league, json.settings.GetMinimumValue() }; + Object[] ob = new object[] { json.settings.GetSection(), json.settings.GetAPI(), main.league, json.settings.GetMinimumValue() }; mi.Invoke(o, ob); } } diff --git a/PoE-MxFilterGen/msg.cs b/PoE-MxFilterGen/msg.cs index 6fcd519..01a09a1 100644 --- a/PoE-MxFilterGen/msg.cs +++ b/PoE-MxFilterGen/msg.cs @@ -201,7 +201,7 @@ namespace PoE_MxFilterGen Console.WriteLine("#### MxFilterGen"); Console.WriteLine(string.Format("#### VERSION: {0}",main.version)); Console.WriteLine("#### DEV: mikx"); - Console.WriteLine("#### POWERED BY: poe.watch"); + Console.WriteLine("#### POWERED BY: poe.ninja"); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.White; } diff --git a/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/PoE-MxFilterGen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index afa008ec141faf1d34e11872644956f98a797ddb..dc69c4ad78e72d3e6e7374a4c2a60d4ec171799d 100644 GIT binary patch delta 279 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 B|GoeK delta 9545 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