X-Git-Url: https://projects.mako.cc/source/mw/blobdiff_plain/5163732b6df57c87e521bb389e61c7b53c6fec9f..d49bb0b4917d905651356996988e7f82ead50101:/src/mw/metadir.py diff --git a/src/mw/metadir.py b/src/mw/metadir.py index 07043c6..0549c83 100644 --- a/src/mw/metadir.py +++ b/src/mw/metadir.py @@ -1,6 +1,6 @@ ### # mw - VCS-like nonsense for MediaWiki websites -# Copyright (C) 2010 Ian Weller +# Copyright (C) 2011 Ian Weller and others # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -61,7 +61,7 @@ class Metadir(object): os.mkdir(self.location, 0755) # metadir versioning fd = file(os.path.join(self.location, 'version'), 'w') - fd.write('1') # XXX THIS API VERSION NOT LOCKED IN YET + fd.write('1') # XXX THIS API VERSION NOT LOCKED IN YET fd.close() # create config self.config = ConfigParser.RawConfigParser() @@ -127,19 +127,25 @@ class Metadir(object): def pages_get_rv_list(self, pageid): pagefile = os.path.join(self.location, 'cache', 'pages', str(pageid['id'])) - fd = file(pagefile, 'r') - pagedata = json.loads(fd.read()) - rvs = [int(x) for x in pagedata.keys()] - rvs.sort() - return rvs + if os.path.exists(pagefile): + fd = file(pagefile, 'r') + pagedata = json.loads(fd.read()) + rvs = [int(x) for x in pagedata.keys()] + rvs.sort() + return rvs + else: + return [None,] def pages_get_rv(self, pageid, rvid): pagefile = os.path.join(self.location, 'cache', 'pages', str(pageid['id'])) - fd = file(pagefile, 'r') - pagedata = json.loads(fd.read()) - return pagedata[str(rvid)] - + if os.path.exists(pagefile): + fd = file(pagefile, 'r') + pagedata = json.loads(fd.read()) + return pagedata[str(rvid)] + else: + return None + def working_dir_status(self, files=None): status = {} check = [] @@ -167,7 +173,9 @@ class Metadir(object): if (len(cur_content) != 0) and (cur_content[-1] == '\n'): cur_content = cur_content[:-1] if cur_content != rv['content']: - status[os.path.relpath(full, self.root)] = 'U' + status[os.path.relpath(full, self.root)] = 'M' # modified + else: + status[os.path.relpath(full, self.root)] = 'C' # clean return status def diff_rv_to_working(self, pagename, oldrvid=0, newrvid=0):