diff --git a/data/interfaces/default/album.html b/data/interfaces/default/album.html
index 073a77e7..ca2e9ce3 100644
--- a/data/interfaces/default/album.html
+++ b/data/interfaces/default/album.html
@@ -62,7 +62,7 @@
grade = 'A'
location = track['Location']
else:
- grade = 'Z'
+ grade = 'X'
location = ''
if track['BitRate']:
@@ -83,35 +83,25 @@
${bitrate} |
%endfor
-
-
- <%
- unmatched = myDB.select('SELECT * from have WHERE ArtistName LIKE ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']])
- %>
- %if unmatched:
-
-
-
- | # |
- Track Title |
- Duration |
- Local File |
- Bit Rate |
-
-
-
- %for track in unmatched:
-
+ <%
+ unmatched = myDB.select('SELECT * from have WHERE ArtistName LIKE ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']])
+ %>
+ %if unmatched:
+ %for track in unmatched:
+ <%
+ duration = helpers.convert_seconds(float(track['TrackLength']))
+ %>
+
| ${track['TrackNumber']} |
${track['TrackTitle']} |
- ${track['TrackLength']} |
+ ${duration} |
${track['Location']} |
- ${track['BitRate']} |
+ ${int(track['BitRate'])/1000} kbps |
- %endfor
+ %endfor
+ %endif
- %endif
%def>
@@ -127,6 +117,7 @@
{
$('#track_table').dataTable(
{
+ "aaSorting": [],
"bFilter": false,
"bInfo": false,
"bPaginate": false
diff --git a/data/interfaces/default/artist.html b/data/interfaces/default/artist.html
index 0438ac4c..7c82f4fc 100644
--- a/data/interfaces/default/artist.html
+++ b/data/interfaces/default/artist.html
@@ -63,7 +63,7 @@
myDB = db.DBConnection()
totaltracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=?', [album['AlbumID']]))
- havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=? AND Location IS NOT NULL', [album['AlbumID']]))
+ havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=? AND Location IS NOT NULL', [album['AlbumID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']]))
try:
percent = (havetracks*100.0)/totaltracks
diff --git a/headphones/__init__.py b/headphones/__init__.py
index 335768d1..6c1a1e02 100644
--- a/headphones/__init__.py
+++ b/headphones/__init__.py
@@ -429,7 +429,7 @@ def start():
SCHED.add_cron_job(updater.dbUpdate, hour=4, minute=0, second=0)
SCHED.add_interval_job(searcher.searchNZB, minutes=NZB_SEARCH_INTERVAL)
- SCHED.add_interval_job(librarysync.libraryScan(), minutes=LIBRARYSCAN_INTERVAL)
+ SCHED.add_interval_job(librarysync.libraryScan, minutes=LIBRARYSCAN_INTERVAL)
SCHED.add_interval_job(versioncheck.checkGithub, minutes=300)
SCHED.add_interval_job(postprocessor.checkFolder, minutes=DOWNLOAD_SCAN_INTERVAL)
librarysync.libraryScan()
diff --git a/headphones/helpers.py b/headphones/helpers.py
index 568bb0f7..9428f319 100644
--- a/headphones/helpers.py
+++ b/headphones/helpers.py
@@ -84,6 +84,16 @@ def convert_milliseconds(ms):
return minutes
+def convert_seconds(s):
+
+ gmtime = time.gmtime(s)
+ if s > 3600:
+ minutes = time.strftime("%H:%M:%S", gmtime)
+ else:
+ minutes = time.strftime("%M:%S", gmtime)
+
+ return minutes
+
def today():
today = datetime.date.today()
yyyymmdd = datetime.date.isoformat(today)
diff --git a/headphones/importer.py b/headphones/importer.py
index 70f5701c..914fe759 100644
--- a/headphones/importer.py
+++ b/headphones/importer.py
@@ -45,7 +45,7 @@ def artistlist_to_mbids(artistlist):
# Just update the tracks if it does
else:
myDB = db.DBConnection()
- havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE ArtistID=?', [artistid])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ?', [artist['ArtistName']]))
+ havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE ArtistID=?', [artistid])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ?', [artist]))
myDB.action('UPDATE artists SET HaveTracks=? WHERE ArtistID=?', [havetracks, artistid])
# Update the similar artist tag cloud:
diff --git a/headphones/librarysync.py b/headphones/librarysync.py
index d5d7f742..eca74417 100644
--- a/headphones/librarysync.py
+++ b/headphones/librarysync.py
@@ -152,18 +152,17 @@ def libraryScan():
# Clean up the new artist list
unique_artists = {}.fromkeys(new_artists).keys()
- current_artists = myDB.select('SELECT ArtistName from artists')
+ current_artists = myDB.select('SELECT ArtistName, ArtistID from artists')
artist_list = [f for f in unique_artists if f.lower() not in [x[0].lower() for x in current_artists]]
- logger.info('Found %i new artists to import.' % len(artist_list))
-
# Update track counts
for artist in current_artists:
- havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE ArtistID like ?', [artist['ArtistID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ?', [artist['ArtistName']]))
+ havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE ArtistID like ? AND Location IS NOT NULL', [artist['ArtistID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ?', [artist['ArtistName']]))
myDB.action('UPDATE artists SET HaveTracks=? WHERE ArtistID=?', [havetracks, artist['ArtistID']])
if headphones.ADD_ARTISTS:
+ logger.info('Found %i new artists to import.' % len(artist_list))
importer.artistlist_to_mbids(artist_list)
else:
headphones.NEW_ARTISTS = artist_list
diff --git a/headphones/postprocessor.py b/headphones/postprocessor.py
index 8bf96692..70ae4ac3 100644
--- a/headphones/postprocessor.py
+++ b/headphones/postprocessor.py
@@ -240,7 +240,6 @@ def doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list)
myDB.action('UPDATE artists SET HaveTracks=? WHERE ArtistID=?', [new_track_count, release['ArtistID']])
myDB.action('UPDATE albums SET status = "Downloaded" WHERE AlbumID=?', [albumid])
myDB.action('UPDATE snatched SET status = "Processed" WHERE AlbumID=?', [albumid])
- updateHave(albumpath)
logger.info('Post-processing for %s - %s complete' % (release['ArtistName'], release['AlbumTitle']))
@@ -421,36 +420,6 @@ def renameFiles(albumpath, downloaded_track_list, release):
except Exception, e:
logger.error('Error renaming file: %s. Error: %s' % (downloaded_track, e))
continue
-
-def updateHave(albumpath):
-
- results = []
-
- for r,d,f in os.walk(albumpath):
- for files in f:
- if any(files.endswith('.' + x) for x in headphones.MEDIA_FORMATS):
- results.append(os.path.join(r, files))
-
- if results:
-
- myDB = db.DBConnection()
-
- for song in results:
- try:
- f = MediaFile(song)
- #logger.debug('Reading: %s' % song.decode('UTF-8'))
- except:
- logger.warn('Could not read file: %s' % song)
- continue
- else:
- if f.albumartist:
- artist = f.albumartist
- elif f.artist:
- artist = f.artist
- else:
- continue
-
- myDB.action('INSERT INTO have VALUES( ?, ?, ?, ?, ?, ?, ?, ?, ?)', [artist, f.album, f.track, f.title, f.length, f.bitrate, f.genre, f.date, f.mb_trackid])
def renameUnprocessedFolder(albumpath):