mirror of
https://github.com/rembo10/headphones.git
synced 2026-05-16 08:35:32 +01:00
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:
@@ -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+')
|
||||
|
||||
|
||||
@@ -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(),
|
||||
}
|
||||
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
Reference in New Issue
Block a user