17
17
18
18
import re
19
19
import sys
20
+ import base64
20
21
import weakref
21
22
from xml .parsers .expat import ExpatError
22
23
if sys .version_info [0 ] == 3 :
27
28
from urllib import urlencode
28
29
29
30
from datetime import datetime , timedelta
30
- from base64 import b64decode , b64encode
31
31
32
32
ERR = 'XML or text declaration not at start of entity: line 2, column 0'
33
33
@@ -325,7 +325,7 @@ def changes(self, timestamp):
325
325
"""
326
326
return self ._dokuwiki .send ('wiki.getRecentMediaChanges' , timestamp )
327
327
328
- def get (self , media , dirpath = None , filename = None , overwrite = False ):
328
+ def get (self , media , dirpath = None , filename = None , overwrite = False , b64decode = False ):
329
329
"""Returns the binary data of *media* or save it to a file. If *dirpath*
330
330
is not set the binary data is returned, otherwise the data is saved
331
331
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):
334
334
"""
335
335
import os
336
336
data = self ._dokuwiki .send ('wiki.getAttachment' , media )
337
- data = b64decode (data )
337
+ data = base64 . b64decode (data ) if b64decode else data . data
338
338
if dirpath is None :
339
339
return data
340
340
@@ -361,12 +361,12 @@ def add(self, media, filepath, overwrite=True):
361
361
self ._dokuwiki .send ('wiki.putAttachment' , media ,
362
362
Binary (fhandler .read ()), ow = overwrite )
363
363
364
- def set (self , media , _bytes , overwrite = True ):
364
+ def set (self , media , _bytes , overwrite = True , b64encode = False ):
365
365
"""Set *media* from *_bytes*. *overwrite* parameter specify if the media
366
366
must be overwrite if it exists remotely.
367
367
"""
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 )
370
370
371
371
def delete (self , media ):
372
372
"""Delete *media*."""
0 commit comments