SnowflakePowered / snowflake

:snowflake: :video_game: Emulator Frontend and SDK
http://snowflakepowe.red
Mozilla Public License 2.0
250 stars 15 forks source link

Combinator-based ROM filename parsers #828

Closed chyyran closed 3 years ago

chyyran commented 3 years ago

This PR implements non-regex based complete filename parsers based off of research done in shiratsu-naming, and deprecates the old Regex based heuristic parser.

The new parser will use bunkai, a lossy implementation of shiratsu_naming in C#, and be split off from the core libraries. Supplementing the removal of name parsing from the core framework, GameScrapeContext will emit the seed search_filename for file records with Stone mimetypes. search_title will no longer be a root seed but will be attached by a Bunkai-based scraper.

This PR simply removes the Romfile naming API and shunts off its responsibilities into Snowflake.Plugin.Scraping.Filename. Bunkai is still immature at this point but it is useful enough to extract a consistent title.

codecov[bot] commented 3 years ago

Codecov Report

Merging #828 (57fe1e4) into master (f48a97b) will decrease coverage by 0.80%. The diff coverage is 93.75%.

:exclamation: Current head 57fe1e4 differs from pull request most recent head 0b150be. Consider uploading reports for the commit 0b150be to get more accurate results

@@            Coverage Diff             @@
##           master     #828      +/-   ##
==========================================
- Coverage   76.67%   75.86%   -0.81%     
==========================================
  Files         547      539       -8     
  Lines       17268    16468     -800     
==========================================
- Hits        13240    12494     -746     
+ Misses       4028     3974      -54