summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRasmus Steinke <rasi@xssn.at>2015-08-23 02:14:06 +0200
committerRasmus Steinke <rasi@xssn.at>2015-08-23 02:14:06 +0200
commitf1f35782e7e6fad4e5629f9538a40a3aa11c4ddc (patch)
treecec202aea814e95e81c64631f235f4bc3dcafd4d
parent988eab64c6ae06ab2ddde5713edb868b2fb9743b (diff)
downloadperl-app-clerk-f1f35782e7e6fad4e5629f9538a40a3aa11c4ddc.tar.gz
perl-app-clerk-f1f35782e7e6fad4e5629f9538a40a3aa11c4ddc.tar.xz
hopefully fix doubled tags once and for all (part 20)
-rwxr-xr-xclerk_helper62
1 files changed, 20 insertions, 42 deletions
diff --git a/clerk_helper b/clerk_helper
index a6dd4a2..6d9ce9a 100755
--- a/clerk_helper
+++ b/clerk_helper
@@ -65,9 +65,7 @@ def update(args):
config.write(configfile)
def reduceToFstElm(maybeList):
- if isinstance(maybeList, list):
- maybeList = maybeList[0]
- print(maybeList)
+ return maybeList[0] if isinstance(maybeList, list) else maybeList
# sort albums by mtime
# thanks to kuyatzu for this.
@@ -76,9 +74,9 @@ def createRecentList(allTracks):
return (t['album'], t['albumartist'], t['date'])
for t in allTracks:
- reduceToFstElm(t['date'])
- reduceToFstElm(t['albumartist'])
- t['cto'] = parseISO8601(t['last-modified']) # ct = comparable time object
+ t['date'] = reduceToFstElm(t['date'])
+ t['albumartist'] = reduceToFstElm(t['albumartist'])
+ t['cto'] = parseISO8601(t['last-modified']) # cto = comparable time object
accu = []
for album, tracksOfAlbum in groupby(allTracks, key=gp):
@@ -86,37 +84,27 @@ def createRecentList(allTracks):
return sorted(accu, key=lambda t: t['cto'], reverse=True)
def createAlbumsList(tracks):
- ks = ['date', 'albumartist', 'album', 'track', 'title']
-
- for li in [tracks[k] for k in tracks if k in ks]:
- reduceToFstElm(li)
-
+ ks = ['date', 'artist', 'albumartist', 'album', 'track', 'title']
+ for t in tracks:
+ t.update([(k, reduceToFstElm(v)) for (k, v) in t.items() if k in ks])
return tracks
-
def createCache(args):
+ # create latest.cache
alist=client.search('filename', " ")
blist=createRecentList(alist)
with open(os.getenv('HOME')+'/.config/clerk/latest.cache', "w") as cache_file:
for album in blist:
- if isinstance(album['albumartist'], list):
- album['albumartist'] = album['albumartist'][0]
cache_file.write(album['albumartist']+os.getenv('separator')+album['date']+os.getenv('separator')+album['album']+'\n')
+ # create albums.cache
temp_albums=[]
- albumlist=createAlbumsList(alist)
- for album in albumlist:
- if isinstance(album['albumartist'], list):
- album['albumartist'] = album['albumartist'][0]
-
- if isinstance(album['date'], list):
- album['date'] = album['date'][0]
-
- if isinstance(album['album'], list):
- album['album'] = album['album'][0]
+ blist=createAlbumsList(alist)
+ albumlist=createRecentList(blist)
+ for album in albumlist:
temp_albums.append(album['albumartist']+os.getenv('separator')+album['date']+os.getenv('separator')+album['album'])
final_albumlist=set(temp_albums)
@@ -126,26 +114,16 @@ def createCache(args):
for album in blub:
cache_file.write(album+'\n')
- temp_tracks=[]
- tracklist=albumlist
- for track in tracklist:
- if isinstance(track['artist'], list):
- track['artist']=track['artist'][0]
-
- if isinstance(track['albumartist'], list):
- track['albumartist']=track['albumartist'][0]
-
- if isinstance(track['track'], list):
- track['track']=track['track'][0]
- if isinstance(track['date'], list):
- track['date']=track['date'][0]
- temp_tracks.append(track['artist']+os.getenv('separator')+track['date']+os.getenv('separator')+track['album']+os.getenv('separator')+track['track']+os.getenv('separator')+track['title'])
+ # create tracks.cache
+ tracklist=[]
+ for track in alist:
+ taglist = ['date', 'artist', 'albumartist', 'album', 'track', 'title']
+ track.update([(k, reduceToFstElm(v)) for (k, v) in track.items() if k in taglist])
+
+ tracklist.append(track['artist']+os.getenv('separator')+track['date']+os.getenv('separator')+track['album']+os.getenv('separator')+track['track']+os.getenv('separator')+track['title'])
#
- final_tracklist=set(temp_tracks)
- blub=sorted(final_tracklist)
-#
with open(os.getenv('HOME')+'/.config/clerk/tracks.cache', "w") as cache_file:
- for track in blub:
+ for track in tracklist:
cache_file.write(track+'\n')