From 54dd1463ff63dd9ce4ca2af93438eee93a02d02c Mon Sep 17 00:00:00 2001 From: bjschuma Date: Wed, 30 Dec 2009 22:41:42 -0500 Subject: [PATCH] Add artists and albums to the database --- src/core/extract.py | 30 ++++++++++++++++++++---------- src/core/scan.py | 3 +++ src/core/tools/database.py | 28 +++++++++++++++++++++++++--- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/core/extract.py b/src/core/extract.py index 992ee607..05e9f438 100644 --- a/src/core/extract.py +++ b/src/core/extract.py @@ -13,6 +13,7 @@ opt = [] from bt.message import write from tools import database +import settings import re import tagpy @@ -72,14 +73,23 @@ def run(file=None): except: return - # Add an artist - artist = None - if t.artist=="": - artist = (None,"Unknown",) + artists = settings.get("artists") + + # Find artist information + artist = t.artist + if artist == "": + artist = "Unknown Artist" + + if (artist in artists.keys())==False: + arid = database.count("artist") + database.insert("artist", (arid, artist) ) + artists[artist] = arid else: - artist = (None,t.artist,) - #write(t.artist) - database.insert("artist", artist ) - #database.insert("files",(file,)) - #except: - # pass + arid = artists[artist] + + album = t.album + if album == "": + album = "Unknown Album" + + alid = database.count("album") + database.insert("album", (alid, arid, album) ) diff --git a/src/core/scan.py b/src/core/scan.py index 2c254178..185c0314 100644 --- a/src/core/scan.py +++ b/src/core/scan.py @@ -16,6 +16,7 @@ import tagpy from bt.message import write from bt.file import * +import settings from manager import manager #from library import * from tools import database @@ -52,6 +53,8 @@ def run(args=None): return space = ' ' path = expandPath( space.join(args) ) + + settings.set("artists",dict()) database.open() scan(path) diff --git a/src/core/tools/database.py b/src/core/tools/database.py index cfa62436..e096fb8c 100644 --- a/src/core/tools/database.py +++ b/src/core/tools/database.py @@ -44,17 +44,24 @@ def create(): CREATE TABLE artist ( - arid INTEGER PRIMARY KEY AUTOINCREMENT, + arid INTEGER PRIMARY KEY, + name TEXT UNIQUE + ); + + CREATE TABLE album + ( + alid INTEGER PRIMARY KEY, + artid INTEGER, name TEXT UNIQUE ); - UPDATE SQLITE_SEQUENCE SET seq = 1 WHERE name = 'artist'; """) global vals vals["files"] = "?" vals["artist"]= "?,?" + vals["album"] = "?,?,?" @@ -97,4 +104,19 @@ def count(table): if conn == None: open() result = conn.execute('select count(*) from '+ table) - return result.fetchone()[0] \ No newline at end of file + return result.fetchone()[0] + + +def select(select,table,where=None): + global conn + if conn == None: + open() + statement = 'select '+select+' from '+table + if not (where==None): + statement += ' where '+where + print statement + #return statement + result = conn.execute(statement) + #print result.fetchone() + #return result.fetchone() + return (0,) \ No newline at end of file