{% extends "base.html" %} {% macro chosen_icon() -%} {%- endmacro %} {% block title %}Import scans · foilstack{% endblock %} {% block status %}{% if active %}import running · {{ active.processed }}/{{ active.total }}{% elif counts.all %}{{ counts.all }} scans to confirm · {{ counts.nomatch }} with no match{% else %}queue clear · drop some scans to begin{% endif %}{% endblock %} {% block screen %}
A foil and a non-foil printing use the same artwork, so a scan cannot tell them apart. That is why you set the finish yourself. It is worth getting right: a foil often sells for several times what the plain version does.
A scan skips the review queue only when all three of these are true.
Reprints share artwork, so a high score on its own proves nothing. The threshold is saved with each import, so you can always see later why a scan was accepted.
All one game or set is worth ticking when the batch really is — a booster box, or one binder page. Every card is matched on its own first; then the game or set that most of them agree on is worked out, and any card that landed outside it is moved to its best match inside it. A card moved that way always goes to the queue for you to look at, however well it scored.
Leave it off for a mixed pile. It decides the game or set by majority, so on a batch that is genuinely three games it will pull two of them towards the third.
| WHEN | FILE | STATUS | SCANS |
|---|---|---|---|
| {# Truncated by the column rather than by a slice: the pane is a fixed width, so where the name has to give way is a question the layout can answer and the template cannot. The full name stays reachable on hover. #} | {{ job.filename }} | {{ job.status }} | {%- if job.processed == job.total %}{{ job.total }} {%- else %}{{ job.processed }}/{{ job.total }}{% endif -%} |