Possible locale fix for *nix, Now shows earliest release date for each release group, improved searching - only uses year if search might be ambiguous, filter bad characters in search

This commit is contained in:
Remy
2011-07-21 03:01:28 -07:00
parent ec6a3c52fa
commit d249023bf3
4 changed files with 21 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env python
import os, sys
import os, sys, locale
from lib.configobj import ConfigObj
@@ -24,6 +24,11 @@ def main():
headphones.PROG_DIR = os.path.dirname(headphones.FULL_PATH)
headphones.ARGS = sys.argv[1:]
try:
locale.setlocale(locale.LC_ALL, "")
except Exception, e:
pass
# Set up and gather command line arguments
parser = argparse.ArgumentParser(description='Music add-on for SABnzbd+')

View File

@@ -150,15 +150,15 @@ def addArtisttoDB(artistid):
rg_exists = myDB.select("SELECT * from albums WHERE AlbumID=?", [rg['id']])
try:
releaseid = mb.getReleaseGroup(rgid)
release_dict = mb.getReleaseGroup(rgid)
except Exception, e:
logger.info('Unable to get release information for %s - it may not be a valid release group' % rg['title'])
continue
if not releaseid:
if not release_dict:
continue
release = mb.getRelease(releaseid)
release = mb.getRelease(release_dict['releaseid'])
if not release:
logger.warn('Unable to get release information for %s. Skipping for now.' % rg['title'])
@@ -170,7 +170,7 @@ def addArtisttoDB(artistid):
if len(rg_exists):
newValueDict = {"AlbumASIN": release['asin'],
"ReleaseDate": release['date'],
"ReleaseDate": release_dict['releasedate'],
}
else:
@@ -179,7 +179,7 @@ def addArtisttoDB(artistid):
"ArtistName": artist['artist_name'],
"AlbumTitle": rg['title'],
"AlbumASIN": release['asin'],
"ReleaseDate": release['date'],
"ReleaseDate": release_dict['releasedate'],
"DateAdded": helpers.today(),
}

View File

@@ -146,7 +146,7 @@ def getReleaseGroup(rgid):
# to get more detailed release info (ASIN, track count, etc.)
for release in releaseGroup.releases:
inc = ws.ReleaseIncludes(tracks=True)
inc = ws.ReleaseIncludes(tracks=True, releaseEvents=True)
releaseResult = None
attempt = 0
@@ -168,16 +168,19 @@ def getReleaseGroup(rgid):
release_dict = {
'asin': bool(releaseResult.asin),
'tracks': len(releaseResult.getTracks()),
'releaseid': u.extractUuid(releaseResult.id)
'releaseid': u.extractUuid(releaseResult.id),
'releasedate': releaseResult.getEarliestReleaseDate()
}
releaselist.append(release_dict)
a = multikeysort(releaselist, ['-asin', '-tracks'])
b = sorted(releaselist, key=lambda item: item['releasedate'])
releaseid = a[0]['releaseid']
release_dict = {'releaseid' :a[0]['releaseid'],
'releasedate' : b[0]['releasedate']}
return releaseid
return release_dict
def getRelease(releaseid):
"""

View File

@@ -1,5 +1,4 @@
import urllib
import string
import lib.feedparser as feedparser
from xml.dom import minidom
import os, re
@@ -26,7 +25,7 @@ def searchNZB(albumid=None, new=False):
except TypeError:
year = ''
dic = {'... ':' ', ' & ':' ', ' = ': ' ', '?':'', '!':'', ' + ':' ', '(':'', ')':'', '"':'', ',':''}
dic = {'...':'', ' & ':' ', ' = ': ' ', '?':'', '!':'', ' + ':' ', '"':'', ',':''}
cleanartistalbum = helpers.latinToAscii(helpers.replace_all(albums[0]+' '+albums[1], dic))
@@ -35,9 +34,9 @@ def searchNZB(albumid=None, new=False):
altterm = re.sub('[\.\-]', ' ', '%s %s' % (cleanartistalbum, year)).encode('utf-8')
# Only use the year if the term could return a bunch of different albums, i.e. self-titled albums
if albums[0] in albums[1]:
if albums[0] in albums[1] or len(albums[0]) < 4 or len(albums[1]) < 4:
term = altterm
logger.info("Searching for %s since it was marked as wanted" % term)
resultlist = []