Skip to content

Commit fac56d2

Browse files
committed
Merge pull request #4 from JelteF/master
Fix two bugs encountered
2 parents ad21fa1 + 1621291 commit fac56d2

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

dokuwiki.py

Lines changed: 22 additions & 8 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, b64encode
15+
1416
ERR = 'XML or text declaration not at start of entity: line 2, column 0'
1517

1618
def utc2local(date):
@@ -97,7 +99,7 @@ def __init__(self, dokuwiki):
9799
self._dokuwiki = dokuwiki
98100

99101
def list(self, namespace='/', **options):
100-
return self._dokuwiki.send('dokuwiki.getPagelist', namespace, **options)
102+
return self._dokuwiki.send('dokuwiki.getPagelist', namespace, options)
101103

102104
def changes(self, timestamp):
103105
return self._dokuwiki.send('wiki.getRecentChanges', timestamp)
@@ -112,12 +114,15 @@ def info(self, pagename, version=''):
112114
return (self._dokuwiki.send('wiki.getPageInfoVersion', pagename, version)
113115
if version else self._dokuwiki.send('wiki.getPageInfo', pagename))
114116

115-
def get(self, pagename, version=''):
116-
return (self._dokuwiki.send('wiki.getPageVersion', pagename, version))
117+
def get(self, pagename, version=None):
118+
if version is None:
119+
return self._dokuwiki.send('wiki.getPage', pagename)
120+
121+
return self._dokuwiki.send('wiki.getPageVersion', pagename, version)
117122

118123
def append(self, pagename, content, **options):
119124
return self._dokuwiki.send(
120-
'dokuwiki.appendPage', pagename, content, **options)
125+
'dokuwiki.appendPage', pagename, content, options)
121126

122127
def html(self, pagename, version=''):
123128
return (self._dokuwiki.send('wiki.getPageHTMLVersion', pagename, version)
@@ -126,7 +131,7 @@ def html(self, pagename, version=''):
126131
def set(self, pagename, content, **options):
127132
try:
128133
return self._dokuwiki.send(
129-
'wiki.putPage', pagename, content, **options)
134+
'wiki.putPage', pagename, content, options)
130135
except ExpatError as err:
131136
# Sometime the first line of the XML response is blank which raise
132137
# the 'ExpatError' exception although the change has been done. This
@@ -167,10 +172,15 @@ def changes(self, timestamp):
167172
return self._dokuwiki.send('wiki.getRecentMediaChanges', timestamp)
168173

169174
def list(self, namespace='/', **options):
170-
return self._dokuwiki.send('wiki.getAttachments', namespace, **options)
175+
return self._dokuwiki.send('wiki.getAttachments', namespace, options)
171176

172-
def get(self, media, dirpath, filename='', overwrite=False):
177+
def get(self, media, dirpath=None, filename='', overwrite=False):
173178
import os
179+
data = self._dokuwiki.send('wiki.getAttachment', media)
180+
data = b64decode(data)
181+
if dirpath is None:
182+
return data
183+
174184
if not filename:
175185
filename = media.replace('/', ':').split(':')[-1]
176186
if not os.path.exists(dirpath):
@@ -179,7 +189,7 @@ def get(self, media, dirpath, filename='', overwrite=False):
179189
if os.path.exists(filepath) and not overwrite:
180190
raise FileExistsError("[Errno 17] File exists: '%s'" % filepath)
181191
with open(filepath, 'wb') as fhandler:
182-
fhandler.write(self._dokuwiki.send('wiki.getAttachment', media).data)
192+
fhandler.write(data)
183193

184194
def info(self, media):
185195
return self._dokuwiki.send('wiki.getAttachmentInfo', media)
@@ -189,6 +199,10 @@ def add(self, media, filepath, overwrite=True):
189199
self._dokuwiki.send('wiki.putAttachment',
190200
media, Binary(fhandler.read()), ow=overwrite)
191201

202+
def set(self, media, _bytes, overwrite=True):
203+
self._dokuwiki.send('wiki.putAttachment', media,
204+
b64encode(_bytes), ow=overwrite)
205+
192206
def delete(self, media):
193207
return self._dokuwiki.send('wiki.deleteAttachment', media)
194208

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy