LazarQt / LimitedPower.DraftHelperSync

Sync 17lands.com data to MTGAHelper
GNU General Public License v3.0
6 stars 1 forks source link

Unhandled exception. System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'length') #4

Closed leidolf closed 2 years ago

leidolf commented 2 years ago

With default configuration when syncing DMU:

Unhandled exception. System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'length') at System.String.Substring(Int32 startIndex, Int32 length) at LimitedPower.DraftHelperSync.Extensions.MtgaHelperCardExtensions.GetCard(List`1 mtgaHelperCards, String cardName, String set) in C:\dev\LimitedPower.DraftHelperSync\LimitedPower.DraftHelperSync\Extensions\MtgaHelperCardExtensions.cs:line 28 at LimitedPower.DraftHelperSync.Program.Main() in C:\dev\LimitedPower.DraftHelperSync\LimitedPower.DraftHelperSync\Program.cs:line 130

leidolf commented 2 years ago

Full Log: --- Starting Sync (17Lands -> MTGAHelper) --- --- Read User Configuration ............. --- --- Download MTGAHelper Files ........... --- Synced data for: Archangel of Wrath Synced data for: Silverback Elder Synced data for: Sheoldred, the Apocalypse Synced data for: Wingmantle Chaplain Synced data for: Llanowar Greenwidow Synced data for: Serra Paragon Synced data for: Sphinx of Clear Skies Synced data for: The Elder Dragon War Synced data for: Vodalian Mindsinger Synced data for: Quirion Beastcaller Synced data for: Guardian of New Benalia Synced data for: Drag to the Bottom Synced data for: Herd Migration Synced data for: Nishoba Brawler Synced data for: Nemata, Primeval Warden Synced data for: Squee, Dubious Monarch Synced data for: Anointed Peacekeeper Synced data for: Jaya, Fiery Negotiator Synced data for: Defiler of Instinct Synced data for: Astor, Bearer of Blades Synced data for: Temporal Firestorm Synced data for: Radha's Firebrand Synced data for: Fires of Victory Synced data for: Llanowar Loamspeaker Synced data for: The Cruelty of Gix Synced data for: Shield-Wall Sentinel Synced data for: Tatyova, Steward of Tides Synced data for: Micromancer Synced data for: Knight of Dawn's Light Synced data for: Prayer of Binding Synced data for: Danitha, Benalia's Hope Synced data for: The Weatherseed Treaty Synced data for: Shivan Devastator Synced data for: Evolved Sleeper Synced data for: Rith, Liberated Primeval Synced data for: Elas il-Kor, Sadistic Pilgrim Synced data for: Rona's Vortex Synced data for: Phyrexian Missionary Synced data for: Aether Channeler Synced data for: Sprouting Goblin Synced data for: Ertai Resurrected Synced data for: Silver Scrutiny Synced data for: Territorial Maro Synced data for: Tolarian Geyser Synced data for: Take Up the Shield Synced data for: Destroy Evil Synced data for: Keldon Flamesage Synced data for: Knight of Dusk's Shadow Synced data for: Phyrexian Espionage Synced data for: Braids, Arisen Nightmare Synced data for: Strength of the Coalition Synced data for: Karn, Living Legacy Synced data for: Tear Asunder Synced data for: Electrostatic Infantry Synced data for: Cult Conscript Synced data for: Bortuk Bonerattle Synced data for: King Darien XLVIII Synced data for: Haughty Djinn Unhandled exception. System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'length') at System.String.Substring(Int32 startIndex, Int32 length) at LimitedPower.DraftHelperSync.Extensions.MtgaHelperCardExtensions.GetCard(List`1 mtgaHelperCards, String cardName, String set) in C:\dev\LimitedPower.DraftHelperSync\LimitedPower.DraftHelperSync\Extensions\MtgaHelperCardExtensions.cs:line 28 at LimitedPower.DraftHelperSync.Program.Main() in C:\dev\LimitedPower.DraftHelperSync\LimitedPower.DraftHelperSync\Program.cs:line 130

BakaMatt commented 2 years ago

Need to escape the quote on the name of the card Sol'kanar the Tainted, that's the issue.

leidolf commented 2 years ago

@BakaMatt It was okay with the quotes in the other cards (Radha's Firebrand, Rona's Vortex, etc.), do you know why it is having a problem with Sol'kanar?

BakaMatt commented 2 years ago

My mistake. Traced it back to that card and didn't thoroughly investigate. Looks like a case descrepancy between 17lands and Mtgahelper. 17lands has it as Sol'kanar and MTGAHelper Sol'Kanar.

Changing line 12 of MtgaHelperCardExtensions.cs to the following should fix:

m.Card.Name.ToUpper() == cardName.ToUpper() && m.Card.Set.ToUpper() == set.ToUpper());

(also suggest the same for line 18 & 25 to handle Alchemy and Dual face cards)

McCracken2020 commented 2 years ago

I am having the same issue. How do I change those lines?

LazarQt commented 2 years ago

Thank you for the report. Please refer to newest release: https://github.com/LazarQt/LimitedPower.DraftHelperSync/releases/tag/1.1.3

If you can confirm that it works (it works for me), I will consider this issue solved.

Cheers!

leidolf commented 2 years ago

@LazarQt It works for me now, but heads up the config file in that zip file has a populated Cookie value.