bottemline feature request:
1. be able to display multiple prices for each card (to easily determine the cheapest shop)
2. be able to easily add price providers (plugin mechanism or xml files)
3. be able to display prices in different currencies (EUR/USD)
would it be possible to add multiple "dbprice" entries in the xml file to hold prices of multiple providers? And to select which currency to use $/€?
I would suggest an extra folder PriceDB with files holding the prices for different cards. e.g. PriceDB/TCGPlayer.xml holding prices of TCGPlayer. The mapping can easily be done using the card id. In the header, the used currency can be listed.
<prices>
<name>TCG Player mid</name>
<comment></comment>
<curr>USD</curr>
<list>
<mp>
<id></id>
<dbprice></dbprice>
</mp>
...
</list>
</prices>
or a subfolder for each seller and an xml file per set
PriceDB/TCGPlayer/Tempest.xml
PriceDB/TCGPlayer/Stronghold.xml
PriceDB/TCGPlayer/Exodus.xml
...
I'm still struggling how to do deal with different prices: low, mid, high, foil, ...
No special UI is required for this. It would be nice if it would be possible to drop xml's in a specific folder to get them included.
When I have some time, I'd like to take a look at your price provider code to add some providers. Can you make a mini tutorial to explain the mechanism of your code? that way I can adjust the code more quickly. Just a small overview of what formats are expected (description of input and output objects).
In the meanwhile, I can easily generate xml files ywith my own code and it would be nice if it would be possible to add them to your pool using the xml files and to be able to display multiple prices for each card.
Anonymous
I forgot the synthax for the code:
I am not sure what is suggested UI? If I don't change columns what price is shown in the SPrice column. You can currently do an import of the prices from csv file but it won't change on the fly. The easiest way to store it is actually use current storage mechanism because I can store property with dynamic keys in the card. But storing them separately is more "right" because this info is kind of external to database itself...
Anyway it is not hard to do except I still now sure what UX is.
Regarding $/EU is harder because I really don't want to engage with another web api to get conversion rate...
I would set the conversion rate as a preference (user defined).
What do you mean with "I am not sure what is suggested UI?" UI = User Interface?
The UX is that you can quickly change between price providers and compare them: now, You can only store 1 price provider/dbprice and when you switch, you need to update the prices again.
suggestion for the different prices: adding a type:
types could be: low, mid, high, foil
Last edit: kannerke 2014-02-24
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
So leave everything as is UX wise, but selected price provider would also mean it will
load cached prices for this provider?
And need a preferences to show currency and exchange rate
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
That would be a nice first version.
The info about the provider should be read from the file system: When I create a folder 'Provider1' in 'PriceDB', I should be able to choose this provider. The contents of the folder should be pre-defined. e.g. set_name.xml containing the above xml structure.
Would it be hard to have multiple columns?
The displayed provider can be set afterwards,
if this would make thing easier (some kind of 'generic' colomns)
The name of the column could be: 'Provider - type'
If would also be nice if it is possible to create provider plugins in order to create or update the xml files from MagicAssistant.
Last edit: Anonymous 2014-02-25
Every stores here uses http://www.cardkingdom.com/ .
Would it be possible to add it to the price sources ?
I posted a version that has this functionality on beta site, what I implemented is:
- prices now are stored per provider in magiccards/MagicDB/prices/MangledName.xml
- format of this file is like this
where id is the id of card in magic assistant, which is most cases is gatherer id
this is mostly internal format, not really intended to be used as import, however I implemented a feature that will check for new providers if appear to be in this directory and it will be added along with prices (and it will appear in providers list)
MangledName - is name of provider where all non alphanum chars in name replaces with _, i.e. in this case name is TCG_Player__Medium_.xml
when user select a new provider prices which are shown in Sellers column are auto-reloaded (but due to bug it is not display immediately, so you may have to press refresh action on the view to update them)
I fixed the import into database, so you can use any import format to update prices in database using import/extend db feature. In this case prices will be update for currently selected provided.
Last edit: Alena Laskavaia 2014-03-19
And I updated docs http://mtgbrowser.sourceforge.net/doc-plugins/com.reflexit.magiccards.help/html/tasks/loadingprices.html
Thank you for this great addon!
Is is already possible to add multiple xml files to the folder? e.g. 1 file per set?
I hope I can try this feature this evening. I'll create an xml file for testing.
No it is one file per provider, not per set.
I don't think supporting multiple files should be very dificult: You could just import all xml files in the price provider's folder. The only requirement is that the xml's should be formatted as described. No need to make agreements on set name's etc. Multiple smaller collections/files seems easier to manage to me.
When I try to add my list, I get the following error:
An internal error occurred during: "Loading prices (To view enable Price columns)".
This custom price provider Kannerke () does not support interactive update
Both Price and Seller Price columns are visible.
My list (Kannerke()) was also listed; but when I try to update the prices, I get the above error.
I think my prices are loaded anyway.
A next step can be:
a folder per Provider instead of one file. (to support multiple files)
USD and EUR currencies (with user defined ratio's)
Last edit: kannerke 2014-03-21
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
The error is expected because there is no interactive update from the web as for provider written in the software, if I have feature to specify url - loading would refresh prices from that url instead of doing nothing like right now.
I don't really see a point supporting multiple files per provider, the size of file even if we have ALL cards would be small (in our days). Technically though I just need to remove one line of code to have multiple file support.
The currency is next
currency is supported in 1.3.1.2 now. Docs about custom xml still at http://mtgbrowser.sourceforge.net/doc-plugins/com.reflexit.magiccards.help/html/tasks/loadingprices.html. I will close this bug now. Please open another one about
1 - that needs some thought about UI