I made the directory where the mp3 files are a variable, so they can be stored on an external drive for example

This commit is contained in:
Kristy 2024-11-08 23:15:37 -05:00
parent 5f4e2365a2
commit dc0cfd80a0
2 changed files with 13 additions and 5 deletions

View file

@ -4,15 +4,19 @@ from mutagen.mp3 import MP3
import requests, ast, time, math, argparse, json import requests, ast, time, math, argparse, json
loading = ["-","\\","|","/"] loading = ["-","\\","|","/"]
songFiles = os.listdir(r'./sound')
parser=argparse.ArgumentParser(description="Options for the generation of the song database") parser=argparse.ArgumentParser(description="Options for the generation of the song database")
parser.add_argument('-k','--apikey', help='String: LastFM api key', default="") parser.add_argument('-k','--apikey', help='String: LastFM api key', default="")
parser.add_argument('-m', '--mode', help='new/update: Remake database or update current', default= "update") parser.add_argument('-m', '--mode', help='new/update: Remake database or update current', default= "update")
parser.add_argument('-a', '--art', help="True/False: Add art to the database using LastFm (takes minimum 0.25s per song)", default="True") parser.add_argument('-a', '--art', help="True/False: Add art to the database using LastFm (takes minimum 0.25s per song)", default="True")
parser.add_argument('-d','--directory',help="Directory of the song files (USING FORWARD SLASHES)", default="./sound")
args = parser.parse_args() args = parser.parse_args()
apikeylastfm = args.apikey apikeylastfm = args.apikey
# if you want to set the api key permenantly for your setup just uncomment the next line soundLocation = args.directory
# if you want to set the api key/sound directory permenantly for your setup just uncomment the next line
# apikeylastfm = "KeyHere" # apikeylastfm = "KeyHere"
# soundLocation = "directoryHere"
songFiles = os.listdir(soundLocation)
if args.mode == "update": if args.mode == "update":
try: try:
with open('songDatabase.json', 'r') as handle: with open('songDatabase.json', 'r') as handle:
@ -42,7 +46,7 @@ if args.art.lower() == "true":
for i in songFiles: for i in songFiles:
try: try:
song = EasyID3("sound/"+i) song = EasyID3(soundLocation+"/"+i)
title = song['title'][0] title = song['title'][0]
artist = song['artist'][0] artist = song['artist'][0]
except: except:
@ -66,7 +70,7 @@ for i in songFiles:
else: else:
image=None image=None
try: try:
length = math.ceil(MP3("sound/"+i).info.length) length = math.ceil(MP3(soundLocation+"/"+i).info.length)
except: except:
length = 0 length = 0
if len(songFiles) != 1: if len(songFiles) != 1:

View file

@ -36,7 +36,7 @@ Read on for specific information on each piece of the app.
## Details ## Details
These are specific details on each section of the app, and how to use them These are specific details on each section of the app, and how to use them
### Server: ### Server:
- `sound/` contains all mp3 files - `./sound` contains all mp3 files by default
- `databaseGenerator.py` scans through mp3 files and gets information about them - `databaseGenerator.py` scans through mp3 files and gets information about them
- `Filename, Title, Artist, Art, Length` are all saved - `Filename, Title, Artist, Art, Length` are all saved
- *If the title and artist are not in the mp3 metadata, it looks for a format of* `TITLE_ARTIST.mp3` *and otherwise defaults to the file name as the title, and no artist* - *If the title and artist are not in the mp3 metadata, it looks for a format of* `TITLE_ARTIST.mp3` *and otherwise defaults to the file name as the title, and no artist*
@ -46,6 +46,10 @@ These are specific details on each section of the app, and how to use them
- *Can only generate one song / 0.25 seconds, to avoid pinging the LastFM server too much* - *Can only generate one song / 0.25 seconds, to avoid pinging the LastFM server too much*
- Running with `--apikey (KEYhere)` sets the LastFM key for that run - Running with `--apikey (KEYhere)` sets the LastFM key for that run
- If this is set to an empty string (Default) the app runs in non-art mode - If this is set to an empty string (Default) the app runs in non-art mode
- Running with `--directory (directoryOfmp3s)` allows for sound files to be in a different place
- Default `"./sound"`
- _This setting might be kinda iffy on Linux. You're on Linux just go and edit it if you have issues_
- __Make certain you only use forward slashes in your directory, even on Windows__
- `songDatabase.json` stores all the information about each song in this format: - `songDatabase.json` stores all the information about each song in this format:
``` ```
[ [