Nsx Library Manager Switch: Difference between revisions

From GameBrew
(Created page with "{{Infobox Switch Homebrews |title=Nsx Library Manager |image=nsxlibrarymanagerswitch.png |description=Another Lib Manager for NSP NSZ files. |author=ivaano |lastupdated=2024/02/01 |type=PC Utilities |version=0.3.1 |license=MIT |download=https://dlhb.gamebrew.org/switchhomebrews/nsxlibrarymanagerswitch.7z |website=https://gbatemp.net/threads/nsx-library-manager.646336/ |source=https://github.com/ivaano/NsxLibraryManager |donation= }} {{#seo: |title=Switch Homebrew PC Tool...")
 
No edit summary
 
Line 19: Line 19:
|image_alt=Nsx Library Manager
|image_alt=Nsx Library Manager
}}
}}
The Nsx Library Manager is a homebrew tool designed for managing and visualizing a Nintendo Switch library. It organizes files and creates a comprehensive database. The tool was created out of a desire for a data grid that allows easy filtering and sorting of games, and it offers the added convenience of server-based access from any device.
The Nsx Library Manager is a PC utility to organize and visualize a Nintendo Switch library. The tool was created out of a desire for a data grid that allows easy filtering and sorting of games, and it offers the added convenience of server-based access from any device.


== Features ==
== Features ==
Line 35: Line 35:
* Local TitleDb, no need to download it every time.
* Local TitleDb, no need to download it every time.


== Requirements ==
==Installation==
Requirements:
* dotnet 8.0
* dotnet 8.0
* a recent browser (didn't worked on Edge 13)
* a recent browser (didn't worked on Edge 13)
* prod.keys
* prod.keys


== Install ==
[https://github.com/ivaano/NsxLibraryManager/blob/master/README.md Installation guide.]
* Download the [https://github.com/ivaano/NsxLibraryManager/releases latest release]
* Extract the zip/gz file
* Create <code>titledb\config.json</code> and customize it to your needs:
** <code>TitleDatabase</code>: Path where the db file is going to be stored, this is required and must end with <code>.db</code>. '''Use a fast drive for this file, like a NVMe'''.
** <code>LibraryPath</code>: Path to your library.
** <code>Recursive</code>: If true, it will search recursively in the library path.
** <code>TitleDbPath</code>: Path where we are going to download titledb json Files to add them to the db.
** <code>RegionUrl</code>: Url to download the region file.
** <code>CnmtsUrl</code>: Url to download the cnmts file.
** <code>VersionUrl</code>: Url to download the version file.
** <code>Regions</code>: List of regions to download.
** <code>ProdKeys</code>: Path to your prod.keys file, if this value is not set, program will look in the same folder as the executable, or you can put them in <code>$HOME/.switch/prod.keys</code>.
* Alternative to creating the file manually, run the application once and it will create a default config file you can use the the browser to edit it.


'''Warning - Be sure that the paths you put on <code>config.json</code> are valid, the application doesn't create the paths if they don't exists'''.
== User guide ==
Run the <code>NsxLibraryManager.exe</code> file.


'''Note - Please use absolute paths, relative paths might not work because the function to build paths is a little wonky for example <code>~/Library</code> will not work as expected on linux, as the final result will be <code>/ApplicationPath/~/Library</code> instead of <code>/home/user/Library</code>'''.
If you are running it for the first time, you will need to download the region, cnmts and version files.


== Docker ==
Open your browser and go to http://localhost:5000.
* Download the latest release
* Extract the zip/gz file
* build the image <code>docker build -t nsxlibrarymanager .</code>
* you can mount the keys, titledb and library folders to the container, for example: -<code>docker run --name nsxlibrarymanager -p 8080:8080 --mount type=bind,source=/home/ivan/nsxlib/keys,target=/app/keys --mount type=bind,source=/home/ivan/nsxlib/library,target=/app/library nsxlibrarymanager</code>


== Usage ==
On first run you will need to update titledb, go to Titledb and click on "Update Titledb" button.
* Run the <code>NsxLibraryManager.exe</code> file.
* If you are running it for the first time, you will need to download the region, cnmts and version files.
* Open your browser and go to http://localhost:5000.
* On first run you will need to update titledb, go to Titledb and click on '''Update Titledb''' button.
* After that, go to Library and click on '''Reload Library'''
* If new files are added to your library, you can use the '''Refresh Library''' button to update the database.
* Reload Library will drop the table and create it again.


'''Tip - To setup the port or the listening address, you can use the <code>--urls</code> parameter, for example <code>./NsxLibraryManager.exe --urls http://*:6666</code> will listen on any interface on port 6666'''.
After that, go to Library and click on "Reload Library".
 
If new files are added to your library, you can use the "Refresh Library" button to update the database.
 
Reload Library will drop the table and create it again.
 
'''Tip:''' To setup the port or the listening address, you can use the <code>--urls</code> parameter, for example <code>./NsxLibraryManager.exe --urls http://*:6666</code> will listen on any interface on port 6666.


==Screenshots==
==Screenshots==
Line 92: Line 76:


https://dlhb.gamebrew.org/switchhomebrews/nsxlibrarymanagerswitch-08.png
https://dlhb.gamebrew.org/switchhomebrews/nsxlibrarymanagerswitch-08.png
== TODO ==
* Implement the file organizer.
* Support more Regions.
* Ability to add custom information to each title (favorite, rating).
* Ability to download and store banners and screenshots locally.
* Optimization.


==Changelog==
==Changelog==
'''v0.3.1'''
'''v0.3.1'''
*Config save fix by @ivaano
*Config save fix by @ivaano.
'''v0.3.0'''
'''v0.3.0'''
* Libraries updates
* Libraries updates.
* Dockerfile modification
* Dockerfile modification.
* Titledb Insertbulk reduced to chunks of 1k to decrease memory while importing
* Titledb Insertbulk reduced to chunks of 1k to decrease memory while importing.
* Titles that are not in cnmt are marked as unknown, marking them as base if titleid ends in 000
* Titles that are not in cnmt are marked as unknown, marking them as base if titleid ends in 000.
* TitleDb Categories filter
* TitleDb Categories filter.
* Saving grid settings on library grid
* Saving grid settings on library grid.
* Rename now creates subdirectories if needed
* Rename now creates subdirectories if needed.
* Config now read from config directory the default will be titledb so it can be mounted in docker.
* Config now read from config directory the default will be titledb so it can be mounted in docker.
'''v0.2.0'''
'''v0.2.0'''
* License by @ivaano
* License by @ivaano.
* Renamer initial release by @ivaano
* Renamer initial release by @ivaano.
* Settings moved to config by @ivaano
* Settings moved to config by @ivaano.
'''v0.0.1'''
'''v0.0.1'''
* First Release.
* First Release.
**Features/odata service
**Features/odata service.
**Features/component refactor
**Features/component refactor.
**Libhac Update
**Libhac Update.
**Deltas for faster library updates
**Deltas for faster library updates.
**Dashboard
**Dashboard.
**Added game list page, and game card to easy browse games in library
**Added game list page, and game card to easy browse games in library.
**Library Title detail moda
**Library Title detail moda.
**Move title detail in library to a modal
**Move title detail in library to a modal.
**Versions update
**Versions update.
**Readme updates
**Readme updates.


== Credits ==
== Credits ==
Line 135: Line 113:


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/nsx-library-manager.646336/
* GitHub - https://github.com/ivaano/NsxLibraryManager
* Github - https://github.com/ivaano/NsxLibraryManager
* GBAtemp - https://gbatemp.net/threads/nsx-library-manager.646336/

Latest revision as of 06:24, 24 March 2024

Nsx Library Manager
Nsxlibrarymanagerswitch.png
General
Authorivaano
TypePC Utilities
Version0.3.1
LicenseMIT License
Last Updated2024/02/01
Links
Download
Website
Source

The Nsx Library Manager is a PC utility to organize and visualize a Nintendo Switch library. The tool was created out of a desire for a data grid that allows easy filtering and sorting of games, and it offers the added convenience of server-based access from any device.

Features

  • Web interface.
  • Runs on Windows, Linux and Mac.
  • Supports NSP, NSZ, XCI, XCZ files.
  • Read a folder and analyze all the files.
  • Extract metadata from the files, like name, size, titleId, publisher and Icon.
  • Use titledb to aggregate more information.
  • Create a database with all the information.
  • Shows a list or grid of all your games.
  • Filter by name, publisher, size, titleId, region, type, etc.
  • Sort by name, publisher, size, titleId, region, type, etc.
  • List missing DLC or updates for your games.
  • Local TitleDb, no need to download it every time.

Installation

Requirements:

  • dotnet 8.0
  • a recent browser (didn't worked on Edge 13)
  • prod.keys

Installation guide.

User guide

Run the NsxLibraryManager.exe file.

If you are running it for the first time, you will need to download the region, cnmts and version files.

Open your browser and go to http://localhost:5000.

On first run you will need to update titledb, go to Titledb and click on "Update Titledb" button.

After that, go to Library and click on "Reload Library".

If new files are added to your library, you can use the "Refresh Library" button to update the database.

Reload Library will drop the table and create it again.

Tip: To setup the port or the listening address, you can use the --urls parameter, for example ./NsxLibraryManager.exe --urls http://*:6666 will listen on any interface on port 6666.

Screenshots

nsxlibrarymanagerswitch-01.png

nsxlibrarymanagerswitch-02.png

nsxlibrarymanagerswitch-03.png

nsxlibrarymanagerswitch-04.png

nsxlibrarymanagerswitch-05.png

nsxlibrarymanagerswitch-06.png

nsxlibrarymanagerswitch-07.png

nsxlibrarymanagerswitch-08.png

Changelog

v0.3.1

  • Config save fix by @ivaano.

v0.3.0

  • Libraries updates.
  • Dockerfile modification.
  • Titledb Insertbulk reduced to chunks of 1k to decrease memory while importing.
  • Titles that are not in cnmt are marked as unknown, marking them as base if titleid ends in 000.
  • TitleDb Categories filter.
  • Saving grid settings on library grid.
  • Rename now creates subdirectories if needed.
  • Config now read from config directory the default will be titledb so it can be mounted in docker.

v0.2.0

  • License by @ivaano.
  • Renamer initial release by @ivaano.
  • Settings moved to config by @ivaano.

v0.0.1

  • First Release.
    • Features/odata service.
    • Features/component refactor.
    • Libhac Update.
    • Deltas for faster library updates.
    • Dashboard.
    • Added game list page, and game card to easy browse games in library.
    • Library Title detail moda.
    • Move title detail in library to a modal.
    • Versions update.
    • Readme updates.

Credits

External links

Advertising: