Package: datoso
DatosoDatoso is a WIP Python command line tool to download and organize your Dat Roms.
As today the tool supports dat-omatic, redump, and translated-english dats.
It merges all the dats in a tree folder structure thought to use with Emulators rather than dats.
The dat file format must be compatible withROMVault.InstallationDatoso requires python 3.10+.Use pip (recommended to use a virtual environment):# Optional (create a virtual environment)python3-mvenvvenvsourcevenv/bin/activate# Install datoso base (doesn't do much without plugins)pipinstalldatoso# Install datoso with all official pluginspipinstalldatoso[all]# Install datoso with only one of the pluginspipinstalldatoso[fbneo]pipinstalldatoso[nointro]pipinstalldatoso[pleasuredome]pipinstalldatoso[redump]pipinstalldatoso[translatedenglish]# Install datoso plugins after installing datosopipinstalldatoso_seed_fbneo
pipinstalldatoso_seed_nointro
pipinstalldatoso_seed_pleasuredome
pipinstalldatoso_seed_redump
pipinstalldatoso_seed_translatedenglishUsage# Show help$datoso--help

usage:datoso[-h][-v]{config,doctor,dat,seed,import,deduper,all}...

Updatedatsfromdifferentsources.

positionalarguments:{config,doctor,dat,seed,import,deduper,base,fbneo,nointro,pleasuredome,private,redump,translatedenglish,all}sub-commandhelpconfigShowconfigurationdoctorDoctorinstalledseedsdatChangesconfigurationincurrentdatsseedSeedadmincommandsimportImportdatsfromexistingromvaultdeduperDeduplicatedats,removesduplicatesfrominputdatexistinginparentdatallUpdateseedall

options:-h,--helpshowthishelpmessageandexit-v,--versionshowversion# Seed commands$datososeed[list,details]# Seed commands$datoso{<seed>|all}{--fetch|--process}[--filterFILTER]#e.g.$datosoredump--fetch# Downloads all dats from redump$datosoredump--process--filterIBM# Process all dats downloaded in the step before that has IBM in its name# Doctor$datosodoctor[seed]# Validates if all requirements for all seeds are OK# Deduper$datosodeduper-input<input_dat>-p<parent_dat>[-o<output_dat>]# If output dat is not especified, input dat will be overwritten.optionalarguments:-h,--helpshowthehelpmessageandexit,feelfreetoappendtoothercommands-v,--verboseverboseoutput-q,--quietquietoutputDeveloping a seedCheckdatoso_seed_basePosible IssuesBe careful when updating dats from datomatic, sometimes they put a
captcha, and you may be banned if the captcha fails, captcha support is
OTW.TODO (without priority)Change logoChange pydantic to dataclassesBetter rules update processMake update rules write to database only when finishedTestsMore dat repositoriesMega.nz download support (https://pypi.org/project/mega.py/)Zippyshare download support (https://pypi.org/project/zippyshare-downloader/)Zippyshare download support (https://pypi.org/project/pyOneFichierClient/)Configurable folder structure (instead of emulator-focused structure use dat-repositories or viceversa)Maybe with a builder, to avoid the need to change the code anytimeUSEFUL DEVELOPMENT COMMANDS# Find folders with more than one dat file:$find.-typef-iname'*.dat'-printf'%h\n'|sort|uniq-cd# Find and delete empty folders:$find.-typed-empty-print-delete# Pylint$pylintsrc--errors-only
$pylintsrc--disable=all--enable=missing-function-docstring# Find duplicate names different case$find.|sort-f|uniq-i-dWISHLIST (without priority)Dat structure for ClrMamePro or another dat manager.Web interfaceDownload from central repositories (an S3 or something like that to prevent overload main sites)Lambda to download dats and upload to S3Downloading from S3Auto-Import MIA Lists (for redump)Add [MIA] to dat romsRemove MIA from dats.cue GeneratorContributingPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.LicenseMIT