--- a/src/mediaserver/cdplugins/uprcl/uprclfolders.py
+++ b/src/mediaserver/cdplugins/uprcl/uprclfolders.py
@@ -73,16 +73,15 @@
for docidx in range(len(docs)):
doc = docs[docidx]
+ arturi = docarturi(doc, httphp, pathprefix)
+ if arturi:
+ # The uri is quoted, so it's ascii and we can just store
+ # it as a doc attribute
+ doc.albumarturi = arturi
+
# No need to include non-audio types in the visible tree.
if doc.mtype not in audiomtypes:
continue
-
- if doc.mtype != 'inode/directory':
- arturi = docarturi(doc, httphp, pathprefix)
- if arturi:
- # The uri is quoted, so it's ascii and we can just store
- # it as a doc attribute
- doc.albumarturi = arturi
url = doc.getbinurl()
url = url[7:]
@@ -128,6 +127,7 @@
# intermediate elements without a Doc).
if idx == len(path) -1:
dirvec[fathidx][elt] = (dirvec[fathidx][elt][0], docidx)
+ #uplog("updating docidx for %s" % decoded)
# Update fathidx for next iteration
fathidx = dirvec[fathidx][elt][0]
else:
@@ -141,6 +141,7 @@
# Last element. If directory, needs a dirvec entry
if doc.mtype == 'inode/directory':
fathidx = _createdir(dirvec, fathidx, docidx, elt)
+ #uplog("Setting docidx for %s" % decoded)
else:
dirvec[fathidx][elt] = (-1, docidx)
@@ -242,17 +243,26 @@
# The basename call is just for diridx==0 (topdirs). Remove it if
# this proves a performance issue
for nm,ids in g_dirvec[diridx].iteritems():
- #uplog("folders:browse: got nm %s" % nm.decode('utf-8'))
+ uplog("folders:browse: got nm %s" % printable(nm))
if nm == "..":
continue
thisdiridx = ids[0]
thisdocidx = ids[1]
+ if thisdocidx >= 0:
+ doc = g_alldocs[thisdocidx]
+ else:
+ uplog("No doc for %s" % pid)
+ doc = None
+
if thisdiridx >= 0:
# Skip empty directories
if len(dirvec[thisdiridx]) == 1:
continue
id = g_myprefix + '$' + 'd' + str(thisdiridx)
- arturi = arturifordir(thisdiridx)
+ if doc and doc.albumarturi:
+ arturi = doc.albumarturi
+ else:
+ arturi = arturifordir(thisdiridx)
entries.append(rcldirentry(id, pid, os.path.basename(nm),
arturi=arturi))
else: