1717
1818import re
1919import sys
20+ import base64
2021import weakref
2122from xml .parsers .expat import ExpatError
2223if sys .version_info [0 ] == 3 :
2728 from urllib import urlencode
2829
2930from datetime import datetime , timedelta
30- from base64 import b64decode , b64encode
3131
3232ERR = 'XML or text declaration not at start of entity: line 2, column 0'
3333
@@ -325,7 +325,7 @@ def changes(self, timestamp):
325325 """
326326 return self ._dokuwiki .send ('wiki.getRecentMediaChanges' , timestamp )
327327
328- def get (self , media , dirpath = None , filename = None , overwrite = False ):
328+ def get (self , media , dirpath = None , filename = None , overwrite = False , b64decode = False ):
329329 """Returns the binary data of *media* or save it to a file. If *dirpath*
330330 is not set the binary data is returned, otherwise the data is saved
331331 to a file. By default, the filename is the name of the media but it can
@@ -334,7 +334,7 @@ def get(self, media, dirpath=None, filename=None, overwrite=False):
334334 """
335335 import os
336336 data = self ._dokuwiki .send ('wiki.getAttachment' , media )
337- data = b64decode (data )
337+ data = base64 . b64decode (data ) if b64decode else data . data
338338 if dirpath is None :
339339 return data
340340
@@ -361,12 +361,12 @@ def add(self, media, filepath, overwrite=True):
361361 self ._dokuwiki .send ('wiki.putAttachment' , media ,
362362 Binary (fhandler .read ()), ow = overwrite )
363363
364- def set (self , media , _bytes , overwrite = True ):
364+ def set (self , media , _bytes , overwrite = True , b64encode = False ):
365365 """Set *media* from *_bytes*. *overwrite* parameter specify if the media
366366 must be overwrite if it exists remotely.
367367 """
368- self . _dokuwiki . send ( 'wiki.putAttachment' , media ,
369- b64encode ( _bytes ) , ow = overwrite )
368+ data = base64 . b64encode ( _bytes ) if b64encode else Binary ( _bytes )
369+ self . _dokuwiki . send ( 'wiki.putAttachment' , media , data , ow = overwrite )
370370
371371 def delete (self , media ):
372372 """Delete *media*."""
0 commit comments