Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP - GameImporter Rewrite - DO NOT MERGE #2358

Draft
wants to merge 13 commits into
base: develop
Choose a base branch
from

Conversation

proskd
Copy link
Contributor

@proskd proskd commented Nov 6, 2024

Remaining work before merging:

  • 1. Tons of code clean up
  • 2. Proper handling of conflicts
  • 3. Proper handling of CDROMs (need to sort to handle M3U -> Cue -> Bin)
  • 4. Proper handling of directories
  • 5. Unit tests where applicable
  • 6. Ensure validity of imports that flow through this new system.
  • 7. UI for Conflict handling
  • 8. Validate that archives work properly.
  • 9. Validate and fix Artwork

What does this PR do

  • Total Rewrite of GameImporter logic, including separation of concerns where possible
  • Introduces UI to display progress of imports

Where should the reviewer start

How should this be manually tested

Test all types of imports including

  1. Basic ROM
  2. CDROM
  3. Directory
  4. Zip
  5. BIOS
  6. Artwork
  7. Conflicts

Any background context you want to provide

What are the relevant tickets

Screenshots (important for UI changes)

Questions

… imports

This commit adds the import status screen and connects it to a not-yet-used queue to manage the state of imports.
…n to strange everything through the import queue
1.  Introducing a robust ImportQueueItem to track an import and follow it through the system
2.  Refactored code to extract behaviors out of GameImporter so it's not a god class
3.  Pre compute as much as possible for an ImportQueueItem, such as which systems are valid.
4.  Try to simplify the general logic to 3 steps - compute, move, and import into the DB

Remaining work

1.  Tons of code clean up
2.  Proper handling of conflicts
3.  Proper handling of CDROMs (need to sort to handle M3U -> Cue -> Bin)
4.  Proper handling of directories
5.  Unit tests where applicable
6.  Ensure validity of imports that flow through this new system.
7.  UI for Conflict handling
8.  Validate that archives work properly.
9.  Validate and fix Artwork
…portQueueItem can now contain Children. We also now check the queue (and any child items in the queue) for duplicates. next step is to pre-process the queue to fix up or detect CDRoms properly.
…lated files, if they're in the queue. this will make it easy to move files to the right place all at once later in the process
…for being able to test a basic import through the system
…er. ideally that's a utility that need not live here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant