ocarina/libsaria/backup.py

55 lines
1.5 KiB
Python

# Bryan Schumaker (11/12/2010)
from libsaria import path
from libsaria.collection import library
import xm as xml
add_child = xml.add_child
add_text = xml.add_text
get_attrs = library.get_attrs
lib_file = path.join(path.saria_dir(), "library.xml")
def encode_attr(doc, node, attr, value):
child = add_child(doc, node, attr)
add_text(doc, child, value)
def encode_track(doc, node, id):
child = add_child(doc, node, "track")
(artist, album, title, filepath, score, count, genre, track, year, rate,
channel, seconds, sample, lenstr) = get_attrs(
id, "artist", "album", "title", "filepath", "score",
"count", "genre", "track", "year", "rate", "channel",
"seconds", "sample", "lenstr")
encode_attr(doc, child, "id", id)
encode_attr(doc, child, "artist", artist)
encode_attr(doc, child, "album", album)
encode_attr(doc, child, "title", title)
encode_attr(doc, child, "filepath", filepath)
encode_attr(doc, child, "score", score)
encode_attr(doc, child, "count", count)
encode_attr(doc, child, "genre", genre)
encode_attr(doc, child, "track", track)
encode_attr(doc, child, "year", year)
encode_attr(doc, child, "rate", rate)
encode_attr(doc, child, "channel", channel)
encode_attr(doc, child, "seconds", seconds)
encode_attr(doc, child, "sample", sample)
encode_attr(doc, child, "lenstr", lenstr)
def backup():
doc = xml.new()
child = add_child(doc, doc, "library")
for id in library.walk():
encode_track(doc, child, id)
fout = open(lib_file, 'w')
fout.write(doc.toprettyxml())
fout.close()
print "Wrote library to: %s" % lib_file