Sto lavorando su un programma python che organizza una libreria musicale. Il programma fondamentalmente mi aiuterà a rilevare nomi di file o directory errati, tag FLAC errati o file sconosciuti / superflui. Si assicurerà inoltre che i file FLAC siano denominati correttamente in base ai loro tag FLAC ecc.
La struttura I though di appare come segue ( /
è la radice della libreria musicale):
/
[category]
[artist]
[year] - [release]
[track number] - [title].flac
[...]
[artist] - [release].jpg
[artist] - [release].cue
[artist] - [release].log
Various Artists
[artist_0 [, artist_1 [, ...]]] - [year] - [release]
[track number] - [title].flac
[...]
[artist_0 [, artist_1 [, ...]]] - [release].jpg
[artist_0 [, artist_1 [, ...]]] - [release].cue
[artist_0 [, artist_1 [, ...]]] - [release].log
[...]
[...]
Ho iniziato a scrivere del codice ma molto presto ho notato che questo non è un problema troppo facile da risolvere. Ho scritto 4 funzioni, category
, artist
, release
e file
, che sono chiamate di conseguenza durante l'iterazione attraverso tutte le directory. Fondamentalmente come quello (pseudo codice):
func category:
do some checks
for each file in this directory:
artist(file)
func artist:
do some checks
for each file in this directory:
release(file)
func release:
do some checks
for each file in this directory:
file(file)
func file:
do some checks (FLAC tags etc)
for each file in the root directory:
category(file)
Ora mi chiedo, esistono algoritmi o tecniche conosciute che potrebbero essere utilizzati per risolvere questo problema in modo elegante?