ocarina/libsaria/sources/file.py
Bryan Schumaker 076e89783a Add save() to the Source class
This will allow us to save any changes made to the Source()
2010-12-18 11:01:44 -05:00

88 lines
1.6 KiB
Python

# Bryan Schumaker (12/7/2010)
import datetime
import libsaria
path = libsaria.path
tagpy = None
timedelta = datetime.timedelta
source = None
cur_file = None
file_ref = None
tags = None
audio = None
def init():
global source
global tagpy
import tagpy
source = libsaria.sources.Source()
source.get_attrs = get_attrs
source.set_attr = set_attr
source.get_cur_id = get_cur_file
source.save = save
load_file = source.load_file
print load_file
def load_file(file):
global file_ref
global tags
global audio
global cur_file
file_ref = tagpy.FileRef(file)
tags = file_ref.tag()
audio = file_ref.audioProperties()
cur_file = file
source.load_file(file)
def get_cur_file():
return cur_file
def get_attrs(file, *attrs):
print "Getting attributes for: %s" % file
#print " Requested attributes: %s" % attrs
res = []
id = libsaria.path.file_id(file)
seconds = audio.length
for attr in attrs:
if attr == "id":
res += [id]
elif attr == "filepath":
res += [file]
elif attr == "art":
from libsaria import lastfm
res += [id]
elif attr == "artist":
res += [tags.artist]
elif attr == "album":
res += [tags.album]
elif attr == "title":
res += [tags.title]
elif attr == "year":
res += [tags.year]
elif attr == "seconds":
res += [seconds]
elif attr == "lenstr":
lenstr = "%s" % timedelta(seconds=seconds)
if lenstr[0] == "0" and lenstr[1] == ":":
lenstr = lenstr[2:]
res += [lenstr]
else:
return "???"
if len(res) == 1:
return res[0]
return res
def set_attr(*args):
pass
def save():
pass
init()