diff options
-rw-r--r-- | clerk | 10 | ||||
-rw-r--r-- | create_rating.sql | 2 |
2 files changed, 9 insertions, 3 deletions
@@ -198,8 +198,11 @@ ratingPrompt () { updateDB () { cd $HOME/.config/clerk/ratings - rm -f ../ratings.db - sqlite3 ../ratings.db < /usr/share/doc/clerk/create_rating.sql + if [[ -a ../ratings.db ]]; then + echo "database exists. using it" + else + sqlite3 ../ratings.db < /usr/share/doc/clerk/create_rating.sql + fi for line in *.ratings; do artist=$(grep "^artist=" "$line" | cut -d '=' -f2- ) date=$(grep "^date=" "$line" | cut -d '=' -f2-) @@ -214,7 +217,8 @@ updateDB () { album=${album//\'/\\\'} directory=${directory//\'/\\\'} rating=${rating//\'/\\\'} - sqlite3 ../ratings.db "insert into albums (date, artist, album, directory, rating) values ('$date', '$artist', '$album', '$directory', '$rating')" + sqlite3 ../ratings.db "insert or replace into albums (date, artist, album, directory, rating) values ('$date', '$artist', '$album', '$directory', '$rating')" + #sqlite3 ../ratings.db "insert into albums (date, artist, album, directory, rating) values ('$date', '$artist', '$album', '$directory', '$rating')" done done for line in *.ratings; do diff --git a/create_rating.sql b/create_rating.sql index 67c00a3..cf59285 100644 --- a/create_rating.sql +++ b/create_rating.sql @@ -6,6 +6,7 @@ create table if not exists tracks( rating smallint not null ); create index if not exists track_ratings_idx ON tracks (rating); +CREATE UNIQUE INDEX tracks_dir_idx ON tracks (directory); create table if not exists albums( date varchar(12) not null, @@ -15,3 +16,4 @@ create table if not exists albums( rating smallint not null ); create index if not exists album_ratings_idx ON albums (rating); +CREATE UNIQUE INDEX albums_dir_idx ON albums (directory); |