Skip to content

Commit 44c6dcf

Browse files
committed
Allow returning of attachments as bytes and fix base64
1 parent 9b164ea commit 44c6dcf

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

dokuwiki.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
from xmlrpclib import ServerProxy, Binary, Fault
1212
from urllib import urlencode
1313

14+
from base64 import b64decode
15+
1416
ERR = 'XML or text declaration not at start of entity: line 2, column 0'
1517

1618
def utc2local(date):
@@ -172,8 +174,13 @@ def changes(self, timestamp):
172174
def list(self, namespace='/', **options):
173175
return self._dokuwiki.send('wiki.getAttachments', namespace, options)
174176

175-
def get(self, media, dirpath, filename='', overwrite=False):
177+
def get(self, media, dirpath=None, filename='', overwrite=False):
176178
import os
179+
data = self._dokuwiki.send('wiki.getAttachment', media)
180+
data = b64decode(data)
181+
if dirpath is None:
182+
return data
183+
177184
if not filename:
178185
filename = media.replace('/', ':').split(':')[-1]
179186
if not os.path.exists(dirpath):
@@ -182,7 +189,7 @@ def get(self, media, dirpath, filename='', overwrite=False):
182189
if os.path.exists(filepath) and not overwrite:
183190
raise FileExistsError("[Errno 17] File exists: '%s'" % filepath)
184191
with open(filepath, 'wb') as fhandler:
185-
fhandler.write(self._dokuwiki.send('wiki.getAttachment', media).data)
192+
fhandler.write(data)
186193

187194
def info(self, media):
188195
return self._dokuwiki.send('wiki.getAttachmentInfo', media)

0 commit comments

Comments
 (0)