I have an error to download a new database from AESTHIR GLIDER (AL) with a last release.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.InvalidCastException: Conversion from type 'DBNull' to type 'String' is not valid.
at Microsoft.VisualBasic.CompilerServices.Conversions.ToString(Object Value)
at Gatherer_Extractor.Extract_Fct.Get_Data(DataRow TempRow, String Logs, String LogsSF, String websource, String lang)
at Gatherer_Extractor.FenetrePrincipale.Treatment_MAJ(Int32 nbre_tache, BackgroundWorker worker, DoWorkEventArgs e)
at Gatherer_Extractor.FenetrePrincipale.BWkMAJ_DoWork(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Please, somebody can share a .TSV file with a list of only tokens? Thanks.
Hi, just downloaded the program and it's great, but I only need some of the information downloaded. Is there a way to specify what is downloaded? For instance, I only need Name, Set, Mana Cost, P/T, and Ability - things like Flavor text, Artist, Rulings, etc aren't necessary for what I'm personally doing and I would like to skip downloading them (I'm also trying to download every card in existence so this would probably save me a lot of time)
2/ For the missing cards in 8ED/9ED, you may have noticed that those cards have special numbers (starting by "S" in scryfall). If you freshly extract data for 8ED or 9ED from the gatherer, those cards will not be reported in the GEx list, because those are special cards, and they are just absent in the 8ED listing from the gatherer. those cards were listed in a special set in magiccards.info, before they got acquired by scryfall.com. I might need to add a special-card treatment for 8ED and 9ED to have them included in the listing.
3/ For Zendikar Expeditions, the set APPEARS in the tool as "Masterpiece Series: Zendikar Expeditions" exactly as for Amonkhet Invocations and Kaladesh Inventions. Please also note that the official set codes cannot be respected as all those sets are printed as MPS.
1/ Yes, it crashed because the card # is absent. This happens because you did not extract all data. I used to allow the options when data was extracted from magiccards.info because card numbers were directly given in set lists. This is no longer possible from scryfall, so I need to desactivate the option is numbers are requested for the file names.
2/ Pure MTGO sets with no alternate arts or new cards will NOT be included in GEx. This is why ANA is missing, as well as several other sets.
@Jessica: To get all card prints, you have to extract all data first. When parsing through the cards for all data, Gatherer Extractor searches for alternate versions and adds rows accordingly. This works for alternates in Homelands, Alliances etc. but also for basic lands in many sets.
Thus, the "Download all data and scans" button does exactly what you are looking for. And you won't have the issue with missing numbers. But it takes some time, since you have to parse through all the gatherer + scryfall database.
@Jessica: This topic has already been previously discussed in the previous pages. This is because the scan files are NOT directly downloaded and stored. The default jpeg compression from the Scryfall scans is not preserved, as GEx offers the opportunity to treat the scans (changing size, cropping, modifying encoding, changing compression, changing brightness & constrast etc.).
In details, the general process is as follows:
The scan is extracted,
Then a bitmap object is reconstructed from the extracted scan with a Bicubic interpolation mode, HighQuality smoothing mode and HighQuality set for the CompositingQuality attribute,
Then the scan is treated as requested by the user,
Then it is stored in the desired format with the desired compression.
In your case, you should set the scan quality to 95% or 96% to recover sizes comparable to direct downloads from scryfall. There will not be noticeable difference in the overall scan quality.
First, I want to thank you for this wonderful tool. Brilliant piece of work.
Second, I have a question: do you have an idea how long it should take to get the updated version including the WAR cards after the last cards is revealed? And how will we know that the software is updated - should I just refresh the first page of this topic?
I guess it's not the first time someone asks this, sorry.
I have one question. For whatever reason, the multiverse id for the Guild Kits come up as a SF prefixed code rather than the WotC multiverse id. Is there any reason for this? The cards do have a mID when viewed on gatherer.wizards.com. Is this something that will be updated soon?
For people running GEx in a non-english Windows environment, there is a bug detected in GEx in the extraction of sets generated by the last MtG Gatherer update (for War of the Spark). Sets are extracted by default in the Windows language. I will fix this as soon as possible and provide an update.
Hi Chaudaka, I am encountering a strange error while downloading WAR scans. For planeswalkers I am getting the Japanese Version of the card, and for many cards I am either getting nothing(magic card back) or the promo Blackblade Reforged. I have attached some screenshots.
Edit: After some further experimentation (upgrading to the latest GE, forcing the use of Scryfall for images etc) I'm getting the same errors regardless of the image source. All of the planeswalkers are returning incorrect images, some from the WAR mythic edition, some from the Japanese alt-art set, and some as blackblade reforged, and some are missing entirely. The only Planeswalkers with the correct art are the 2 planeswalker deck foils, and the Buy-A-Box Tezzeret. At this pointI am pretty badly in need of these images (with filenames that correspond to the gatherer id's) Can other people replicate these issues? If not would somebody be able to upload the WAR images with the gatherer id as the filename for the images?
Thanks.
@ rmflagg : Guild kits are messy onto the Gatherer (10 sets !!) I prefer to combine them in a single set as it is done onto Scryfall. I use Scryfall to extract Guild kits data, this is why their mIDs are prefixed with "SF-".
@ Flipside : This kind bug was fixed in 6.0f or 6.0g... I would recommend you to use 6.1. However, considering the problem with multiverseID encountered with the last update of the Gatherer, those IDs are not well extracted which may raise confusion when extracting the scans. I am pretty sure the picture problem is a side effect of the multiverseID problem. If I solve this, the picture issues will be automatically corrected as well.
As mentioned this morning, there is a (severe) issue in extracting the correct multiverseID of all cards on non-English systems.
This is because the Gatherer website now (since the last update of yesterday) considers the default language of the webclient used from System.Net from the .NET Framework.
If your framework is in a non-english language (mine is in French), then the gatherer queries will be answered considering a prefered language equal to the framework language.
I tried to test with my Mozilla Firefox a change in the preferred language, and do some queries onto the gatherer to see how it reacts.
When I switch from French to US English in Firefox and delete cookies, then default language is automatically set to English in Gatherer as well.
If I go back to French in Mozilla and delete cookies, then default language is set to French and querying a set gives me a list with the French IDs which is as expected, but not desired insider GEx.
I tested on http://validator.w3.org/i18n-checker/ to check the request header, and verify the Accept-Language property of the browser when querying gatherer.wizards.com. As expected, prefered language was either fr-Fr or en-US.
In GEx, the queries are performed as follows:
Dim WebClient As New System.Net.WebClient
WebClient.Encoding = System.Text.Encoding.UTF8
WebClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0")
WebClient.Headers.Add("Accept-Language", "en-US,en;q=0.5")
I added the line in red to limit the Accept-Language header property to English, exactly as the request header of Firefox when it was set to English. But this seems not to work; the webclient provides the response as if Gatherer prefered language was set to French and I don't understand why. It is as if the request header property was ignored... Any help is welcome
In the Example, first card is Aegis Automation with correct mID #423808. GEx gives me #424554 (French mID) ...
@Chaudakh - I am using v6.1 and experiencing the same problems as @Flipside ... The Blackblade Reforged and Japanesse images in place of what should be there.
1/ I finally found the issue concerning multiverseID errors.
The Security protocol was missing before sending a request to Gatherer with the Webclient. Gatherer now requires TLS1.2 protocol.
I added in the code above the following lines:
Const _Tls12 As SslProtocols = DirectCast(&HC00, SslProtocols)
Const Tls12 As SecurityProtocolType = DirectCast(_Tls12, SecurityProtocolType)
ServicePointManager.SecurityProtocol = Tls12
Now it works fine.
2/ For the scan issue, it was more complex than expected. The bug was caused because the WAR multiverseIDs are not known so far on Scryfall. I corrected GEx to handle this strange situation, and the scans are now correclty extracted in release 6.2.
This is really unfortunate as I have everything keyed off of multiverseID when available. So, are you extracting card info from Gatherer or Scryfall? Can you not get the mID from Scryfall API calls?
@ rmflagg: All the cards info are extracted from the Gatherer when possible. Scryfall has to be seen as an alternate source when some data are missing from the Gatherer(e.g.card numbers of old sets).
Most of the promotional cards are extracted from Scryfall.Because not mID are available, I created one with the following form : SF-[set_code]_[card number]
Guild Kits are treated as promotional and extracted from Scryfall, even thougth 10 sets are available on the Gatherer for them. The main motivation for this is that I don't want to pollute too much the set list with numerous very-specific promo sets.
What I propose for release 6.3 is to overwrite the mID when extracting all the data card by card. This is not as straightforward because if you download again the set afterwards in the existing list, because mID were changed, GEx will not detect that the cards are already present in the list (only mIDs are checked), and it will create duplicates. This must be avoided, so I have to deal with that without overloading other "normal" card treatment.
Data extraction from Scryfall is performed with the api they provide.
As an example, an api query is performed as follows in Gatherer Extractor: https://api.scryfall.com/cards/[scryfall_setcode]/[card_number]
For Angel of Despair from GK2, the query is : https://api.scryfall.com/cards/gk2/37
The values "gk2" and "37" are extracted when downloading the whole set, and stored directly into the mID of the form "SF-[set_code]_[card number]".
Then multiverseID may be directly extracted from the property {multiverse_ids}... provided the list is not empty !
For Angel of Despair, we find "460463".
Hi good people. I wonder if there is still a way to set a special directory only for tokens on this software, like showed in my attachment.
If not, is there even a way to auto rename all tokens so that I can find them easily? I really need to download all the tokens and put them inside of a exclusive folder, but I dont know how to do that. Thank you.
ATTACHMENTS
werwerew
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
scryfall.com/sets/psal/it?as=checklist
Thanks
I have an error to download a new database from AESTHIR GLIDER (AL) with a last release.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.InvalidCastException: Conversion from type 'DBNull' to type 'String' is not valid.
at Microsoft.VisualBasic.CompilerServices.Conversions.ToString(Object Value)
at Gatherer_Extractor.Extract_Fct.Get_Data(DataRow TempRow, String Logs, String LogsSF, String websource, String lang)
at Gatherer_Extractor.FenetrePrincipale.Treatment_MAJ(Int32 nbre_tache, BackgroundWorker worker, DoWorkEventArgs e)
at Gatherer_Extractor.FenetrePrincipale.BWkMAJ_DoWork(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Gatherer Extractor
Assembly Version: 3.8.0.0
Win32 Version: 3.8.0.0
CodeBase: file:///C:/Program%20Files%20(x86)/Gatherer%20Extractor/Gatherer%20Extractor.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 10.0.0.0
Win32 Version: 14.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3353.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Windows.Forms.resources
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_it_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_it_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Data.DataSetExtensions
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Please, somebody can share a .TSV file with a list of only tokens? Thanks.
1/ DPW/DPA set code is fixed in the next release.
2/ For the missing cards in 8ED/9ED, you may have noticed that those cards have special numbers (starting by "S" in scryfall). If you freshly extract data for 8ED or 9ED from the gatherer, those cards will not be reported in the GEx list, because those are special cards, and they are just absent in the 8ED listing from the gatherer. those cards were listed in a special set in magiccards.info, before they got acquired by scryfall.com. I might need to add a special-card treatment for 8ED and 9ED to have them included in the listing.
3/ For Zendikar Expeditions, the set APPEARS in the tool as "Masterpiece Series: Zendikar Expeditions" exactly as for Amonkhet Invocations and Kaladesh Inventions. Please also note that the official set codes cannot be respected as all those sets are printed as MPS.
2/ Pure MTGO sets with no alternate arts or new cards will NOT be included in GEx. This is why ANA is missing, as well as several other sets.
Thus, the "Download all data and scans" button does exactly what you are looking for. And you won't have the issue with missing numbers. But it takes some time, since you have to parse through all the gatherer + scryfall database.
In details, the general process is as follows:
First, I want to thank you for this wonderful tool. Brilliant piece of work.
Second, I have a question: do you have an idea how long it should take to get the updated version including the WAR cards after the last cards is revealed? And how will we know that the software is updated - should I just refresh the first page of this topic?
I guess it's not the first time someone asks this, sorry.
Thanks for all the hard work on this application!
I have one question. For whatever reason, the multiverse id for the Guild Kits come up as a SF prefixed code rather than the WotC multiverse id. Is there any reason for this? The cards do have a mID when viewed on gatherer.wizards.com. Is this something that will be updated soon?
Thanks,
RMFlagg
Best regards,
Edit: After some further experimentation (upgrading to the latest GE, forcing the use of Scryfall for images etc) I'm getting the same errors regardless of the image source. All of the planeswalkers are returning incorrect images, some from the WAR mythic edition, some from the Japanese alt-art set, and some as blackblade reforged, and some are missing entirely. The only Planeswalkers with the correct art are the 2 planeswalker deck foils, and the Buy-A-Box Tezzeret. At this pointI am pretty badly in need of these images (with filenames that correspond to the gatherer id's) Can other people replicate these issues? If not would somebody be able to upload the WAR images with the gatherer id as the filename for the images?
Thanks.
@ Flipside : This kind bug was fixed in 6.0f or 6.0g... I would recommend you to use 6.1. However, considering the problem with multiverseID encountered with the last update of the Gatherer, those IDs are not well extracted which may raise confusion when extracting the scans. I am pretty sure the picture problem is a side effect of the multiverseID problem. If I solve this, the picture issues will be automatically corrected as well.
As mentioned this morning, there is a (severe) issue in extracting the correct multiverseID of all cards on non-English systems.
This is because the Gatherer website now (since the last update of yesterday) considers the default language of the webclient used from System.Net from the .NET Framework.
If your framework is in a non-english language (mine is in French), then the gatherer queries will be answered considering a prefered language equal to the framework language.
I tried to test with my Mozilla Firefox a change in the preferred language, and do some queries onto the gatherer to see how it reacts.
When I switch from French to US English in Firefox and delete cookies, then default language is automatically set to English in Gatherer as well.
If I go back to French in Mozilla and delete cookies, then default language is set to French and querying a set gives me a list with the French IDs which is as expected, but not desired insider GEx.
I tested on http://validator.w3.org/i18n-checker/ to check the request header, and verify the Accept-Language property of the browser when querying gatherer.wizards.com. As expected, prefered language was either fr-Fr or en-US.
In GEx, the queries are performed as follows:
Dim WebClient As New System.Net.WebClient
WebClient.Encoding = System.Text.Encoding.UTF8
WebClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0")
WebClient.Headers.Add("Accept-Language", "en-US,en;q=0.5")
Dim uri As Uri = New Uri(pageURL)
WebClient.DownloadFileAsync(uri, SoftwareDirectory + "/LogsGatherer.txt")
where pageURL is for example :
http://gatherer.wizards.com/Pages/Search/Default.aspx?page=0&output=checklist&action=advanced&set=["Aether Revolt"]
I added the line in red to limit the Accept-Language header property to English, exactly as the request header of Firefox when it was set to English. But this seems not to work; the webclient provides the response as if Gatherer prefered language was set to French and I don't understand why. It is as if the request header property was ignored... Any help is welcome
In the Example, first card is Aegis Automation with correct mID #423808. GEx gives me #424554 (French mID) ...
Once again, any help is very welcome!
The Security protocol was missing before sending a request to Gatherer with the Webclient. Gatherer now requires TLS1.2 protocol.
I added in the code above the following lines:
Const _Tls12 As SslProtocols = DirectCast(&HC00, SslProtocols)
Const Tls12 As SecurityProtocolType = DirectCast(_Tls12, SecurityProtocolType)
ServicePointManager.SecurityProtocol = Tls12
Now it works fine.
2/ For the scan issue, it was more complex than expected. The bug was caused because the WAR multiverseIDs are not known so far on Scryfall. I corrected GEx to handle this strange situation, and the scans are now correclty extracted in release 6.2.
Most of the promotional cards are extracted from Scryfall.Because not mID are available, I created one with the following form : SF-[set_code]_[card number]
Guild Kits are treated as promotional and extracted from Scryfall, even thougth 10 sets are available on the Gatherer for them. The main motivation for this is that I don't want to pollute too much the set list with numerous very-specific promo sets.
What I propose for release 6.3 is to overwrite the mID when extracting all the data card by card. This is not as straightforward because if you download again the set afterwards in the existing list, because mID were changed, GEx will not detect that the cards are already present in the list (only mIDs are checked), and it will create duplicates. This must be avoided, so I have to deal with that without overloading other "normal" card treatment.
Data extraction from Scryfall is performed with the api they provide.
As an example, an api query is performed as follows in Gatherer Extractor:
https://api.scryfall.com/cards/[scryfall_setcode]/[card_number]
For Angel of Despair from GK2, the query is : https://api.scryfall.com/cards/gk2/37
The values "gk2" and "37" are extracted when downloading the whole set, and stored directly into the mID of the form "SF-[set_code]_[card number]".
Then multiverseID may be directly extracted from the property {multiverse_ids}... provided the list is not empty !
For Angel of Despair, we find "460463".
It includes:
I would like to ask if it is possible to update the save in .sql in this format:
INSERT INTO tbl_name (a,b,c) VALUES (1,2,3)
Thanks
Thanks for the update! Great work!
If not, is there even a way to auto rename all tokens so that I can find them easily? I really need to download all the tokens and put them inside of a exclusive folder, but I dont know how to do that. Thank you.