Skip to content

Feature Request: Enhance "Scan Downloaded Products" for Flexible Folder Naming and Local Library Management #32

@daiaji

Description

@daiaji

Hello,

First of all, thank you for creating such a fantastic and modern tool for managing a DLsite library! The UI is clean, and the core functionality for syncing with a DLsite account is excellent.

I'm opening this issue to suggest an enhancement to the local library management, specifically regarding the Scan Downloaded Products feature.

The Problem:

Currently, the "Scan Downloaded Products" function requires local folders to be named exactly as the product ID (e.g., RJ123456). While this is very robust for the program, it creates a significant usability problem for users who manage their files directly in the file explorer. A folder named RJ123456 gives no immediate information about its contents, making it very difficult to browse, backup, or work on files without first having to search within the dlsite-manager UI to identify the game.

My Use Case & Justification:

My primary use case involves more than just storing and playing games. I am often involved in modding game files and integrating fan translations. This requires me to frequently navigate and interact with the game folders directly in my file system. Having human-readable folder names like [My Game Title] [RJ123456] is essential for this workflow. Relying solely on the manager to identify every single folder before I can work on it becomes very inefficient and breaks the workflow. The current implementation forces a choice between having a readable file system and having a library recognized by the manager.

Proposed Solution(s):

I would like to propose an enhancement to the folder scanning logic to make it more flexible. Here are a few potential levels of implementation:

  1. Flexible RJ-Code Parsing (Core Request): The most impactful change would be to allow the scanner to extract the RJxxxxxx code from a folder name, rather than requiring the name to be an exact match.

    • Good: Support a fixed, common pattern like [Title] [RJ Code] or Title (RJ Code).
    • Better: Automatically find any RJxxxxxx pattern within the folder name, regardless of other text or brackets.
    • Ideal (Maximum Flexibility): Allow the user to specify a custom regular expression (regex) in the settings to extract the product ID. This would provide ultimate flexibility for all users' personal naming schemes.
  2. (Optional / Long-term) Integrated Organizer Tool: To take this a step further, an integrated tool that helps organize existing, messy libraries would be a game-changer. This could be a "power-user" feature that:

    • Scans folders that don't have an RJ code.
    • Uses the folder name as a search query against the DLsite API.
    • Presents the user with potential matches and allows them to rename the folder to a standardized, readable format (e.g., [Title] [RJ Code]).

Helpful References for Inspiration:

For inspiration on how other tools have tackled this organization problem, here are two open-source projects. They demonstrate different approaches to identifying and organizing local files:

  • dlsite-organizer (Go, Symlinks): https://github.com/DarylSerrano/dlsite-organizer
    • This tool uses a robust database and CLI but organizes via symlinks. Its file identification logic is a good reference.
  • dlsite_organizer (Python, Renaming): https://github.com/Alocks/dlsite_organizer
    • This Python script is particularly interesting because it includes a function to find and rename folders that are missing their RJ codes, which is a very common problem for users with older collections. This is the kind of functionality I describe in Proposal.

Thank you for considering this feedback. I believe this enhancement would significantly improve the experience for users who actively manage their local files and would truly make dlsite-manager the definitive tool for DLsite collectors. I'm happy to provide more details or help with testing if needed.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions