mage icon indicating copy to clipboard operation
mage copied to clipboard

MB1 / FMB1 upstream database change

Open xenohedron opened this issue 1 year ago • 2 comments

From scryfall discord 2024-01-21:

In order to better match how stores and WotC are organizing the various List-like cards (mostly, they’re not and also they’re adding repeats to more products) we’ve made the following changes:

  • PLIST has been re-coded PLST (the old code is still an alias) https://scryfall.com/sets/plst
  • ULIST has been re-coded ULST (the old code is still an alias) https://scryfall.com/sets/ulst
  • PAGL (Angels, They’re Just Like Us) has been merged into PLST
  • PHED (Heads I Win) has been merged into PLST
  • PCTB (Cute to Brute) has been merged into PLST
  • MB1 (Mystery Booster) has been merged into PLST
  • FMB1 (Mystery Booster Retail Foils) has been merged into PLST

This results in mtgjson verify warnings for the whole MB1 set, e.g.:

Warning: Can't find card in mtgjson to verify for MB1 - Absorb Vis - 558

As an example for recategorized card: https://scryfall.com/card/plst/CN2-126/absorb-vis

The collation for Mystery Booster has been carefully implemented into xmage and must be preserved when adjusting. However, adjustment will be needed in order to support image download from scryfall's updated database.

One thought I have is to transform the existing MB1 collation into a framework for custom boosters, with the additional advantage that other remastered sets (consisting of custom collation from existing prints) can be implemented in a similar way.

xenohedron avatar Feb 17 '24 02:02 xenohedron

Also note, whilst the set may still be an alias, the collector numbers don't match what is currently listed in the xmage code, so it is my guess that the collector numbers have changed.

The following was added whilst JayDi85 was writing his comment, and thus is likely redundant now. But leaving it in just in case.

A simple solution for the download issue would be to add a second backup API call. Currently, the initial api call for absorb-vis is:

  • https://api.scryfall.com/cards/mb1/558/en?format=image Then when that fails the backup check excludes the language and should be:
  • https://api.scryfall.com/cards/mb1/558?format=image (Note in currently includes an extra / before the ? which fails in some cases.) After that fails, for cards without NON_FULL_USE_VARIOUS, a second backup API call of:
  • https://api.scryfall.com/cards/named?set=mb1&fuzzy=Absorb%20Vis&format=image should work. (Note that the card name will need to be made url friendly - ie replacing the space with %20.)

tiera3 avatar Feb 18 '24 11:02 tiera3

For info:

  • Xmage must use scryfall sets structure (except for custom and inner sets like star wars and xmage);
  • No needs in set aliases. Deck editor will warn and auto-convert decks with wrong card numbers on editing.

JayDi85 avatar Feb 18 '24 11:02 JayDi85

IMG_0215

Possible problems before migration/refactor:

  1. [ ] 3500 cards in one set can be a problem (by performance, by cards amount limit). Need to test performance for booster generation, drafts, cubes, deck editor and card viewer;
  2. [ ] Looks like a mb1 has special collation and it must be implemented for old mb1 cards, not full PLIST? How critical is this problem? Is it possible to migrate that collation to PLIST?
  3. [ ] What’s about mtgjson - is it use old or new cards structure?

P.S. Both mtgjson verify and scryfall download has a set code replacement feature, but it works with set code only, not card numbers. It’s possible to split one big set to multiple smaller (card numbers will be compatible and same as big set). Xmage used it in old days for some special sets like mtg events (before scryfall).

JayDi85 avatar Apr 17 '24 21:04 JayDi85

The MB1 cards can be found with that search: https://scryfall.com/search?q=is%3Amb1&unique=cards&as=grid&order=name

The card number has nothing in common though. Probably the easiest way would be to produces a static MB1 => PLST mapping just once.

Susucre avatar Apr 17 '24 22:04 Susucre

I'd argue that there's no reason for XMage to support PLIST at all. There's no unique art, it's always an existing card print just with a tiny symbol in the corner.

Basically, MysteryBooster could be adjusted so that it doesn't have any unique cards, but populates its booster map from the original prints of all those cards.

xenohedron avatar Apr 18 '24 00:04 xenohedron

I'd argue that there's no reason for XMage to support PLIST at all.

I do agree with this. PLST is very bloated, and skip referencing it altogether does make a lot of sense, as it's neither new art nor cards.

Susucre avatar Apr 18 '24 11:04 Susucre