Skip to content

The application is designed to manage ROM files and folders for emulators. It allows you to: Change folder names based on the selected emulation system. Organize ROM files into appropriate folders based on file extensions and content. Generate gamelist.xml based on the directory and file structure. Undo changes made, based on a log file.

License

Notifications You must be signed in to change notification settings

husk007/Organize-ROMs-Script

Repository files navigation

Organize-ROMs-Script

Wersja: 1.2.0

Spis treści

Opis

Aplikacja służy do zarządzania plikami ROM oraz folderami dla emulatorów. Pozwala na:

  • Zmianę nazw folderów w zależności od wybranego systemu emulacji.
  • Segregowanie plików ROM do odpowiednich folderów na podstawie rozszerzeń i zawartości plików.
  • Generowanie pliku gamelist.xml na podstawie struktury katalogów i plików, z pobieraniem metadanych gier.
  • Cofanie wprowadzonych zmian na podstawie pliku log.

Funkcjonalności

  • Zmiana nazw folderów: Automatyczne dostosowanie nazw folderów do wymagań wybranego systemu emulacji.
  • Segregowanie ROMów: Przenoszenie plików ROM do odpowiednich folderów na podstawie ich typu.
  • Generowanie gamelist.xml: Tworzenie pliku gamelist.xml zgodnego z EmulationStation na podstawie plików ROM i dostępnych grafik oraz metadanych pobranych z TheGamesDB.
  • Cofanie zmian: Możliwość cofnięcia wprowadzonych zmian za pomocą pliku log.
  • Interfejs graficzny: Przyjazny dla użytkownika interfejs oparty na bibliotece tkinter.
  • Integracja z 7-Zip: Wykorzystanie 7-Zip do analizowania zawartości skompresowanych plików.

Wymagania

  • Python 3.x
  • Biblioteka tkinter (standardowo dostępna w instalacji Pythona)
  • Biblioteki dodatkowe:
    • requests
    • unidecode
  • Zainstalowany 7-Zip (opcjonalnie, do pełnej funkcjonalności)
  • Plugin Iso7z dla 7-Zip (opcjonalnie, do obsługi niektórych formatów)

Instalacja

  1. Sklonuj repozytorium:

    git clone https://github.com/husk007/Organize-ROMs-Script.git
  2. Przejdź do katalogu projektu:

    cd Organize-ROMs-Script
  3. Zainstaluj wymagane biblioteki:

    pip install -r requirements.txt

Użycie

  1. Uruchom aplikację:

    python aplikacja_romy.py
  2. Wybierz system emulacji.

  3. Wskaż ścieżki źródłową i docelową.

  4. Użyj przycisków akcji do wykonania odpowiednich operacji:

    • Zmień nazwy folderów: dostosowuje nazwy folderów do wybranego systemu.
    • Segreguj ROMy: przenosi pliki ROM do odpowiednich folderów.
    • Generuj gamelist.xml: tworzy plik gamelist.xml na podstawie plików ROM, dostępnych grafik oraz metadanych pobranych z TheGamesDB.
    • Cofnij zmiany w oparciu o LOG: cofa wprowadzone zmiany na podstawie pliku log.
  5. Generowanie gamelist.xml:

    • Upewnij się, że w folderach imgs lub images znajdują się grafiki gier z dopiskiem -image lub -thumb.
    • Przykład nazwy pliku graficznego: SuperMario-image.png, SuperMario-thumb.jpg.
    • Uwaga: Dla pełnej funkcjonalności pobierania metadanych możesz potrzebować klucza API do TheGamesDB.

Licencja

Projekt jest licencjonowany na warunkach licencji MIT. Zobacz plik LICENSE po więcej informacji.


English Version

Version: 1.2.0

Table of Contents

Description

The application is designed to manage ROM files and folders for emulators. It allows you to:

  • Change folder names based on the selected emulation system.
  • Organize ROM files into appropriate folders based on file extensions and content.
  • Generate gamelist.xml based on the directory and file structure, with game metadata scraping.
  • Undo changes made, based on a log file.

Features

  • Folder Name Changing: Automatically adjust folder names to meet the requirements of the selected emulation system.
  • ROM Organization: Move ROM files to appropriate folders based on their type.
  • Generate gamelist.xml: Create a gamelist.xml file compatible with EmulationStation based on ROM files, available images, and metadata scraped from TheGamesDB.
  • Undo Changes: Ability to revert changes using a log file.
  • Graphical User Interface: User-friendly interface based on the tkinter library.
  • 7-Zip Integration: Use 7-Zip to analyze the content of compressed files.

Requirements

  • Python 3.x
  • tkinter library (usually included with Python installation)
  • Additional libraries:
    • requests
    • unidecode
  • 7-Zip installed (optional, for full functionality)
  • Iso7z plugin for 7-Zip (optional, for certain formats)

Installation

  1. Clone the repository:

    git clone https://github.com/husk007/Organize-ROMs-Script.git
  2. Navigate to the project directory:

    cd Organize-ROMs-Script
  3. Install the required libraries:

    pip install -r requirements.txt

Usage

  1. Run the application:

    python aplikacja_romy.py
  2. Select the emulation system.

  3. Specify the source and destination paths.

  4. Use the action buttons to perform the desired operations:

    • Change Folder Names: adjusts folder names to the selected system.
    • Organize ROMs: moves ROM files to appropriate folders.
    • Generate gamelist.xml: creates a gamelist.xml file based on ROM files, available images, and metadata scraped from TheGamesDB.
    • Undo changes based on LOG: reverts changes using the log file.
  5. Generating gamelist.xml:

    • Ensure that images of games are placed in imgs or images folders with suffixes -image or -thumb.
    • Example image file names: SuperMario-image.png, SuperMario-thumb.jpg.
    • Note: For full metadata scraping functionality, you may need an API key for TheGamesDB.

License

This project is licensed under the terms of the MIT license. See the LICENSE file for more information.

About

The application is designed to manage ROM files and folders for emulators. It allows you to: Change folder names based on the selected emulation system. Organize ROM files into appropriate folders based on file extensions and content. Generate gamelist.xml based on the directory and file structure. Undo changes made, based on a log file.

Resources

License

Stars

Watchers

Forks

Packages

No packages published