From 1703fff3787fea71f37eaa2dbb2c9fcdd3880ff3 Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Fri, 19 Nov 2010 23:05:57 -0500 Subject: [PATCH] Modified backup code The backup code needed to be modified so that it works with Ocarina 4.1. This involved writing a function to walk library ids, and using the lib_get_attr function from the collection. --- libsaria/backup.py | 26 ++++++++++++-------------- libsaria/collection/__init__.py | 5 +++++ ocarina/info.py | 1 + 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/libsaria/backup.py b/libsaria/backup.py index 516f5658..bdc7e9b4 100644 --- a/libsaria/backup.py +++ b/libsaria/backup.py @@ -1,12 +1,12 @@ # Bryan Schumaker (11/12/2010) +import libsaria 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 +get_attr = libsaria.collection.lib_get_attr lib_file = path.join(path.saria_dir(), "library.xml") def encode_attr(doc, node, attr, value): @@ -16,11 +16,15 @@ def encode_attr(doc, node, attr, 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") + + artist = get_attr(id, "artist") + album = get_attr(id, "album") + title = get_attr(id, "title") + count = get_attr(id, "playcount") + year = get_attr(id, "year") + lenstr = get_attr(id, "lenstr") + score = get_attr(id, "score") + filepath = get_attr(id, "filepath") encode_attr(doc, child, "id", id) encode_attr(doc, child, "artist", artist) @@ -29,20 +33,14 @@ def encode_track(doc, node, id): 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(): + for id in libsaria.collection.lib_walk_ids(): encode_track(doc, child, id) fout = open(lib_file, 'w') diff --git a/libsaria/collection/__init__.py b/libsaria/collection/__init__.py index ad31f2d7..98cf3402 100644 --- a/libsaria/collection/__init__.py +++ b/libsaria/collection/__init__.py @@ -38,6 +38,11 @@ def walk_library(): for track in library.walk_tags(): yield track +def lib_walk_ids(): + global library + for id in library.walk_ids(): + yield id + def lib_reset(): global library library.reset() diff --git a/ocarina/info.py b/ocarina/info.py index f6641555..3724d9cf 100644 --- a/ocarina/info.py +++ b/ocarina/info.py @@ -44,6 +44,7 @@ class FilterBar(Bar): self.pack(entry.FilterEntry(), True, True) self.pack(button.OpenButton()) self.pack(button.ClearButton()) + self.pack(button.ExportButton()) self.pack(button.RandomButton()) self.pack(button.VolumeButton())