-
-
Notifications
You must be signed in to change notification settings - Fork 249
v3.10.2 #1969
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
Conversation
These critical log messages are unnecessary and can clutter the logs, based on user requests. This is even more notorious when RomM is integrated to an error tracking system like Sentry.
* Add a link to the game page in the RetroAchievements chip in the title. * Add links to the achievement pages in the achievement badges. * Fix the RetroAchievements chip to correctly display the RA logo.
fix: Remove critical log messages for 403 and 404 exceptions
misc: Add RetroAchievements links to game and achievement badges
Include detailed type information for RetroAchievements API responses, based on the official API documentation.
[ROMM-1943] Consistent use of click handlers
misc: Add typing to RetroAchievements API responses
Add a new service adapter for the RetroAchievements API, to separate concerns with RomM's handler for metadata. This adapter is agnostic to the handler and only provides methods to interact with the API, and correctly return typed responses. The API authorization was also improved to be handled by a specific `httpx.Auth` class that sets the `y` parameter for each request.
…adapter misc: Create RetroAchievements service adapter
This change replaces the `httpx` client with `aiohttp` for the RetroAchievements API service. The main reason for this change is that `httpx` has an unavoidable log line with `INFO` level, which includes the request full URL, containing the user's API key. `httpx` has had an [open discussion](encode/httpx#2765) regarding this security issue for almost two years. The change to `aiohttp` is painless, and would allow us to migrate more of the codebase to it in the future, to avoid leaking sensitive information in logs.
…iohttp fix: Use aiohttp for RetroAchievements API calls
The breaking code in `streaming-form-data` has been fixed, and Poetry also was patched based on @gantoine's proposed fix. This allows us to use the official releases again instead of a fork.
misc: Move back to upstream streaming-form-data dependency
Iterate through all pages of user completion progress in the RetroAchievements service, instead of limiting the data retrieval to the first 500 results.
…pagination fix: Iterate through user completion progress in RetroAchievements
This change replaces boolean flags for filtering Roms with optional flags. This allows clients to specify whether they want to include or exclude certain types of Roms, such as matched, favourite, duplicate, or playable. The boolean flags are still supported for backwards compatibility, but they are marked as deprecated. Clients should transition to using the new optional flags in future versions. The main reason for this change is to allow the exclusion of certain results, without the need to add additional boolean flags, which are also confusing if both its `True` and `False` values are used within the same request.
…stead-of-bools feat: Use optional flags instead of booleans for Rom filtering
Add fallback for homepage when library is empty
Running Code Quality on PRs by uploading data to Trunk will soon be removed. You can still run checks on your PRs using trunk-action - see the migration guide for more information. |
Bump `RALibretro` to the latest commit from the upstream repository. Removes the need to use an older version of Alpine Linux, but requires some changes to the `RALibretro` source code to compile successfully. The `nginx` image is still not available for Alpine 3.22, but we can also upgrade to its latest patch version (`1.27.5`).
Differentiate between achievements earned in softcore and hardcore modes, by using the characteristic gold color for hardcore ones. Also, update the progress bar to show both softcore and hardcore completion percentages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces various refactorings and cleanup updates across the frontend and backend codebases. Key changes include:
- Removal of redundant function call parentheses in Vue event handlers for consistency.
- Updates to API service calls and context management in the backend.
- Refactoring of database filtering methods and exception handling for improved clarity and maintainability.
Reviewed Changes
Copilot reviewed 76 out of 76 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
frontend/src/components/Gallery/AppBar/common/FilterDuplicatesBtn.vue | Removed redundant parentheses in the click handler. |
frontend/src/components/Gallery/AppBar/common/FilterBtn.vue | Updated click handler to remove unnecessary function call wrap. |
frontend/src/components/Gallery/AppBar/Search/SearchTextField.vue | Removed unused useDisplay import and added pagination reset before fetching roms. |
frontend/src/components/Gallery/AppBar/Platform/SettingsBtn.vue | Entire file removed; likely consolidated functionality elsewhere. |
frontend/src/components/Gallery/AppBar/Platform/PlatformInfoDrawer.vue | Minor adjustments in styling and click handler syntax. |
frontend/src/components/Gallery/AppBar/Platform/FirmwareBtn.vue | Updated click handler syntax for consistency. |
frontend/src/components/Gallery/AppBar/Platform/Base.vue | Reworked settings button UI into a v-btn with additional icon overlay. |
frontend/src/components/Gallery/AppBar/Collection/CollectionInfoDrawer.vue | Updated click handler syntax and added margin adjustments. |
frontend/src/components/Details/Title.vue | Added href attribute and updated v-img prop to disable cover. |
frontend/src/components/Details/RetroAchievements.vue | Wrapped v-img with an anchor for link redirection. |
backend/utils/context.py | Changed context initialization to use multiple context managers concurrently. |
backend/main.py | Updated to set additional app state for the aiohttp session. |
backend/handler/metadata/ra_handler.py | Migrated API calls to utilize the new RetroAchievementsService methods. |
backend/handler/metadata/igdb_handler.py | Updated IGDB age rating dictionaries with new mappings. |
backend/handler/database/roms_handler.py | Refactored filtering methods with new parameter names and boolean logic. |
backend/exceptions/endpoint_exceptions.py | Removed logging calls prior to raising HTTP exceptions. |
backend/endpoints/rom.py | Added debugging breakpoint (ipdb) and updated query parameter backwards compatibility. |
backend/adapters/services/retroachievements_types.py | Added type definitions for RetroAchievements responses. |
backend/adapters/services/retroachievements.py | Reworked RetroAchievements API service with improved error handling. |
backend/adapters/services/rahasher.py | Updated mapping values for platform codes. |
…hardcore-earned feat: Display achievements earned in hardcore mode
misc: Upgrade RALibretro to the current upstream version
Fix RA platform IDs for matching
Description
Explain the changes or enhancements you are proposing with this pull request.
Checklist
Please check all that apply.
Screenshots