Skip to content

Fix incorrectly merged 7z & use more metadata#90

Merged
gantoine merged 2 commits intorommapp:mainfrom
matthew-pye:metadata
Feb 2, 2026
Merged

Fix incorrectly merged 7z & use more metadata#90
gantoine merged 2 commits intorommapp:mainfrom
matthew-pye:metadata

Conversation

@matthew-pye
Copy link
Copy Markdown
Contributor

Remerge 7z for new download system

When 7z was merged I did the pull request before the new download system was merged so the code was placed in the wrong area and broken the code

New Metadata

Used more of the metadata from the RomM server & makes sure that the filename for single file ROMs has an extension & adds fail-safe for when HasSimpleSingleFile , HasNestedSingleFile & HasMultipleFiles are all false

Old metadata:
31-01-2026@1358

New metadata:
31-01-2026@1400

Build

Here is a debug build with all the additions that have been added, I have tested it on my Playnite and with a fresh install in sandbox and everything seems to work, the only issue with it is that the sharpcompress.dll isn't packed with the extension but this might be because I didn't pack it right
RomM_9700aa21-447d-41b4-a989-acd38f407d9f_0_4_1.zip

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @matthew-pye, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the RomM plugin by adding support for 7z archive extraction and incorporating additional metadata from the RomM server to enrich game information. It also addresses issues related to filename handling and file type detection to ensure proper game installation and metadata display.

Highlights

  • 7z Extraction: Implements 7z extraction support using the command line tool, if configured, for handling archives.
  • Metadata Expansion: Utilizes more metadata from the RomM server, including genres, franchises, release dates, and ratings.
  • Filename Handling: Ensures single-file ROMs have a file extension and adds a failsafe for scenarios where file type flags are incorrectly set.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request successfully refactors the 7z extraction logic into DownloadQueueController, enhances metadata integration from the RomM server, and improves filename handling for single ROMs. However, it introduces significant security risks, including a critical path traversal vulnerability in RomM.cs due to unsanitized filenames from the RomM API, potentially allowing arbitrary file writes. A command injection vulnerability also exists in the new 7z extraction logic in DownloadQueueController.cs due to unescaped double quotes in process arguments. Addressing these by consistently applying Path.GetFileName() to external filenames and properly escaping process arguments is crucial, alongside resolving other identified robustness concerns and minor user experience regressions.

Copy link
Copy Markdown
Member

@gantoine gantoine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏼

@gantoine gantoine merged commit b6534c6 into rommapp:main Feb 2, 2026
@matthew-pye matthew-pye deleted the metadata branch February 6, 2026 13:52
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.

2 participants