rclaudio: more py3 string/bytes types issues
This commit is contained in:
parent
4524ae2acc
commit
a012b831fa
@ -236,6 +236,7 @@ class AudioTagExtractor:
|
|||||||
filename = params["filename:"]
|
filename = params["filename:"]
|
||||||
mimetype = params["mimetype:"]
|
mimetype = params["mimetype:"]
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
|
#self.em.rclog("%s" % filename)
|
||||||
try:
|
try:
|
||||||
mutf = File(filename)
|
mutf = File(filename)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
@ -247,6 +248,7 @@ class AudioTagExtractor:
|
|||||||
###################
|
###################
|
||||||
# Extract audio parameters. Not all file types supply all or
|
# Extract audio parameters. Not all file types supply all or
|
||||||
# even use the same property names...
|
# even use the same property names...
|
||||||
|
# minf has natural str keys, and encoded values
|
||||||
minf = {}
|
minf = {}
|
||||||
for prop,dflt in [('sample_rate', 44100), ('channels', 2),
|
for prop,dflt in [('sample_rate', 44100), ('channels', 2),
|
||||||
('length', 0), ('bitrate', 0)]:
|
('length', 0), ('bitrate', 0)]:
|
||||||
@ -258,7 +260,7 @@ class AudioTagExtractor:
|
|||||||
|
|
||||||
if minf['bitrate'] == 0 and minf['length'] > 0:
|
if minf['bitrate'] == 0 and minf['length'] > 0:
|
||||||
br = int(os.path.getsize(filename)* 8 / minf['length'])
|
br = int(os.path.getsize(filename)* 8 / minf['length'])
|
||||||
minf['bitrate'] = str(br)
|
minf['bitrate'] = br
|
||||||
|
|
||||||
minf['duration'] = minf['length']
|
minf['duration'] = minf['length']
|
||||||
del minf['length']
|
del minf['length']
|
||||||
@ -274,9 +276,10 @@ class AudioTagExtractor:
|
|||||||
minf['bits_per_sample'] = 16
|
minf['bits_per_sample'] = 16
|
||||||
|
|
||||||
for tag,val in minf.items():
|
for tag,val in minf.items():
|
||||||
minf[tag] = str(val)
|
val = str(val)
|
||||||
|
if type(val) == type(u''):
|
||||||
#self.em.rclog("minf after audio %s\n" % minf)
|
val = val.encode('utf-8', errors='replace')
|
||||||
|
minf[tag] = val
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Metadata tags. The names vary depending on the file type. We
|
# Metadata tags. The names vary depending on the file type. We
|
||||||
@ -289,26 +292,22 @@ class AudioTagExtractor:
|
|||||||
ntag = tagdict[tag].lower()
|
ntag = tagdict[tag].lower()
|
||||||
#self.em.rclog("New tag: %s" % ntag)
|
#self.em.rclog("New tag: %s" % ntag)
|
||||||
try:
|
try:
|
||||||
if isinstance(val, bool):
|
if type(val) == type(u''):
|
||||||
val0 = str(val)
|
val = val.encode('utf-8', errors='replace')
|
||||||
else:
|
elif type(val) != type(b''):
|
||||||
try:
|
val = str(val)
|
||||||
val0 = val[0]
|
if type(val) == type(u''):
|
||||||
except:
|
val = val.encode('utf-8', errors='replace')
|
||||||
val0 = val
|
minf[ntag] = val
|
||||||
if val0:
|
#self.em.rclog("Tag %s -> %s" % (ntag, val0))
|
||||||
if type(val0) == type(u""):
|
|
||||||
val0 = val0.encode('utf-8', errors='replace')
|
|
||||||
else:
|
|
||||||
val0 = str(val0)
|
|
||||||
minf[ntag] = val0
|
|
||||||
#self.em.rclog("Tag %s -> %s" % (ntag, val0))
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self.em.rclog("Error while extracting tag: %s"%err)
|
self.em.rclog("Error while extracting tag: %s"%err)
|
||||||
else:
|
else:
|
||||||
#self.em.rclog("Unprocessed tag: %s, value %s"%(tag,val))
|
#self.em.rclog("Unprocessed tag: %s, value %s"%(tag,val))
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
#self.em.rclog("minf after extract %s\n" % minf)
|
||||||
|
|
||||||
# TPA,TPOS,disc DISCNUMBER/TOTALDISCS
|
# TPA,TPOS,disc DISCNUMBER/TOTALDISCS
|
||||||
# TRCK,TRK,trkn TRACKNUMBER/TOTALTRACKS
|
# TRCK,TRK,trkn TRACKNUMBER/TOTALTRACKS
|
||||||
for what in ('disc', 'track'):
|
for what in ('disc', 'track'):
|
||||||
@ -322,16 +321,17 @@ class AudioTagExtractor:
|
|||||||
else:
|
else:
|
||||||
l = l.split(b'/')
|
l = l.split(b'/')
|
||||||
else:
|
else:
|
||||||
self.em.rclog("l is tuple: %s" %l)
|
self.em.rclog("l is tuple: %s tp1 %s tp2 %S" %
|
||||||
|
(l, type(l[0]), type(l[1])))
|
||||||
if len(l) == 2:
|
if len(l) == 2:
|
||||||
minf[k] = str(l[0])
|
minf[k] = l[0]
|
||||||
#self.em.rclog("minf[%s] = %s" % (k, minf[k]))
|
#self.em.rclog("minf[%s] = %s" % (k, minf[k]))
|
||||||
if l[1] != 0:
|
if l[1] != 0:
|
||||||
minf['total' + what + 's'] = str(l[1])
|
minf['total' + what + 's'] = l[1]
|
||||||
|
|
||||||
if 'orchestra' in minf:
|
if 'orchestra' in minf:
|
||||||
val = minf['orchestra']
|
val = minf['orchestra']
|
||||||
if val.startswith('orchestra='):
|
if val.startswith(b'orchestra='):
|
||||||
minf['orchestra'] = val[10:]
|
minf['orchestra'] = val[10:]
|
||||||
|
|
||||||
#self.em.rclog("minf after tags %s\n" % minf)
|
#self.em.rclog("minf after tags %s\n" % minf)
|
||||||
@ -340,7 +340,10 @@ class AudioTagExtractor:
|
|||||||
embdimg = self._embeddedImageFormat(mutf)
|
embdimg = self._embeddedImageFormat(mutf)
|
||||||
if embdimg:
|
if embdimg:
|
||||||
#self.em.rclog("Embedded image format: %s" % embdimg)
|
#self.em.rclog("Embedded image format: %s" % embdimg)
|
||||||
minf["embdimg"] = embdimg
|
if type(embdimg) == type(u''):
|
||||||
|
minf["embdimg"] = embdimg.encode('ascii', errors='replace')
|
||||||
|
else:
|
||||||
|
minf["embdimg"] = embdimg
|
||||||
|
|
||||||
self.em.setmimetype("text/plain")
|
self.em.setmimetype("text/plain")
|
||||||
self.em.setfield("charset", 'utf-8')
|
self.em.setfield("charset", 'utf-8')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user