diff --git a/dokuwiki.py b/dokuwiki.py index c56514a..e425c51 100644 --- a/dokuwiki.py +++ b/dokuwiki.py @@ -50,16 +50,20 @@ def write_images(self, images, file_namespace, http_user=None, http_pass=None): """ auth=None if http_user is None else HTTPBasicAuth(http_user, http_pass) file_namespace = file_namespace.lower() - filedir = os.path.join(self.data, "media", file_namespace) - ensure_directory_exists(filedir) - filemeta = os.path.join(self.data, "media_meta", file_namespace) - ensure_directory_exists(filemeta) for image in images: # download the image from the Mediawiki server print("Downloading %s... (%s)" % (image['name'], image['url'])) r = requests.get(image['url'], auth=auth) # write the actual image out to the data/file directory name = make_dokuwiki_pagename(image['name']) + if ':' in name: + this_file_namespace, name = name.split(':') + else: + this_file_namespace = file_namespace + filedir = os.path.join(self.data, "media", this_file_namespace) + ensure_directory_exists(filedir) + filemeta = os.path.join(self.data, "media_meta", this_file_namespace) + ensure_directory_exists(filemeta) imagepath = os.path.join(filedir, name) with open(imagepath, "wb") as f: f.write(r.content) @@ -69,7 +73,7 @@ def write_images(self, images, file_namespace, http_user=None, http_pass=None): # write a .changes file out to the media_meta/file directory changepath = os.path.join(filemeta, "%s.changes" % name) with codecs.open(changepath, "w", "utf-8") as f: - fields = (str(timestamp), "::1", "C", u"%s:%s"%(file_namespace,name), "", "created") + fields = (str(timestamp), "::1", "C", u"%s:%s"%(this_file_namespace,name), "", "created") f.write(u"\t".join(fields) + "\r\n") # aggregate all the new changes to the media_meta/_media.changes file self._aggregate_changes(os.path.join(self.data, "media_meta"), "_media.changes") @@ -200,6 +204,8 @@ def make_dokuwiki_pagename(mediawiki_name): result = result.lstrip(':') # Fix any pages that began with a space, because that breaks dokuwiki result = result.replace(":_", ":") + # Add custom namespace + result = "old_wiki:" + result result = codecs.encode(result, sys.getfilesystemencoding(), "replace") return result