Rename backup functions

Backup has been renamed to export
Restore has been renamed to import_xml
This commit is contained in:
Bryan Schumaker 2010-12-18 14:52:31 -05:00
parent c08655c1fa
commit f869b17e2f
4 changed files with 6 additions and 128 deletions

View File

@ -1,122 +0,0 @@
# Bryan Schumaker (11/12/2010)
import libsaria
from libsaria import path
from libsaria.sources import library
import libsaria.xm as xml
add_child = xml.add_child
add_text = xml.add_text
get_attrs = library.get_attrs
set_attr = library.set_attr
file_id = path.file_id
lib_file = "library"
vers = "%s.%s" % (libsaria.__major__, libsaria.__minor__)
if libsaria.__dev__ == True:
lib_file = lib_file + "-dev"
lib_file += ".xml"
lib_file = path.join(path.saria_dir(), lib_file)
xml_children = xml.children
xml_child = xml.child
xml_attrs = xml.attributes
#######################################
# Generic encode and decode functions #
#######################################
def decode_attr(attr):
child = xml.child(attr)
return (attr.nodeName, child.data.strip())
def encode_attr(doc, node, attr, value):
child = add_child(doc, node, attr)
add_text(doc, child, value)
def encode_track(doc, node, id):
filepath, like, count = get_attrs(id, "filepath", "like", "count")
if (like == None) and (count == 0):
return
child = add_child(doc, node, "track", {"like":like, "count":count})
add_text(doc, child, filepath)
#########################
# v1.1 Decode functions #
#########################
def decode_track_v1_1(node):
track = dict()
for child in xml_children(node):
key, value = decode_attr(child)
track[key] = value
id = file_id(track["filepath"])
set_attr(id, "count", int(track["count"]))
def decode_v1_1(node):
for track in xml_children(node):
decode_track_v1_1(track)
#########################
# v1.2 Decode functions #
#########################
def decode_sources_v1_2(node):
for child in xml_children(node):
source = xml_child(child).data.strip()
print "Scanning source: %s" % source
libsaria.sources.new_source(source)
def decode_track_v1_2(node):
for track in xml_children(node):
attrs = xml_attrs(track)
name, path = decode_attr(track)
id = file_id(path)
set_attr(id, "count", int(attrs["count"]))
def decode_v1_2(node):
children = xml_children(node)
sources = None
tracks = None
for node in children:
name = node.nodeName
if name == "sources":
sources = node
elif name == "tracks":
tracks = node
decode_sources_v1_2(sources)
decode_track_v1_2(tracks)
#############################################
# Control will enter the export module here #
#############################################
def backup():
doc = xml.new()
child = add_child(doc, doc, "library", {"version":vers})
sources = add_child(doc, child, "sources")
tracks = add_child(doc, child, "tracks")
for path in library.get_locations():
encode_attr(doc, sources, "source", path)
for id in library.walk():
encode_track(doc, tracks, id)
fout = open(lib_file, 'w')
fout.write(doc.toprettyxml())
fout.close()
print "Wrote library to: %s" % lib_file
def restore(file):
fin = open(file)
doc = xml.parse(fin)
child = xml.child(doc)
attrs = xml.attributes(child)
version = attrs.get("version", "1.1")
print "Decoding version: %s" % version
if version == "1.1":
decode_v1_1(child)
elif version == "1.2":
decode_v1_2(child)

View File

@ -54,8 +54,8 @@ def universal_open(file):
plugin.install(file)
return
if ext == ".xml":
import backup
backup.restore(file)
import export
export.import_xml(file)
return
try:
from libsaria.sources import file as file_source

View File

@ -102,8 +102,8 @@ class ExportButton(Button):
def __init__(self):
Button.__init__(self, gtk.STOCK_CONVERT, "Export Library")
def clicked(self, button):
from libsaria.path import backup
backup.backup()
from libsaria.path import export
export.export()
class GotoButton(Button):
def __init__(self):

View File

@ -3,8 +3,8 @@
import libsaria
from libsaria import data
from libsaria import sources
from libsaria import backup
from libsaria.path import export
library = libsaria.sources.library
library.load()
backup.backup()
export.export()