ncdt for ogg
import datetime
import math
import ogg
import ogg.vorbis
import os
import sys
def find(path):
folders = []
findtotal = 0.0
for root, dirs, files in os.walk(path, False):
folder = { 'path':root, 'files':[], 'total_time':0.0 }
for name in files:
if not name.endswith('.ogg'): continue
fullname = os.path.join(root, name)
folder['files'].append(fullname)
total = sum(
map(playtime, folder['files'])
)
findtotal += total
folder['total_time'] = total
total_time = datetime.timedelta(
seconds = math.ceil(folder['total_time'])
)
print folder['path']
print ' >', len( folder['files'] ), 'files'
print ' >', str(total_time), 'seconds'
folders.append(folder)
pass
findtime = datetime.timedelta(
seconds = math.ceil(findtotal)
)
print
print 'Total time in', path, 'is', findtime
return folders
def playtime(path):
f = ogg.vorbis.VorbisFile(path)
return f.time_total()
def init():
options = None
args = []
for arg in sys.argv[1:]:
if not os.path.isdir(arg):
print 'Error:', arg, 'is not a directory'
continue
args.append(arg)
return (options, args)
def main():
options, args = init()
maintotal = 0.0
for arg in args:
print
argtotal = 0.0
folders = find(arg)
total = sum([
folder['total_time']
for folder in folders
])
maintotal += total
pass
maintime = datetime.timedelta(
seconds = math.ceil(maintotal)
)
print
print 'Total time checked is', maintime
return
if __name__ == '__main__':
main()

0