diff options
| -rwxr-xr-x | Pb/Landscape/__init__.py | 49 | ||||
| -rw-r--r-- | test.py | 4 |
2 files changed, 31 insertions, 22 deletions
diff --git a/Pb/Landscape/__init__.py b/Pb/Landscape/__init__.py index 34e5c88..4df06fd 100755 --- a/Pb/Landscape/__init__.py +++ b/Pb/Landscape/__init__.py @@ -1,40 +1,49 @@ -import sys -import re from Config import * import Pb import base64 from Pb import Pb +import urlparse class PbLandscape(Pb): + example_params = { + 'imgdata' : open('Pb/Landscape/_base64img', 'rb').read(), + 'texture' : 'http://someurl.biz/someimg.jpg', + 'heightmap' : 'http://someurl.biz/someimg.jpg', + 'name' : 'donkey' + } def __init__(self, heightmap=None, imgdata=None, texture=None, - name=None, + name="", ): - def _saveImgData(self, imgdata, filename): + super(PbLandscape,self).__init__(); + self.params.set_val("heightmap", heightmap, value_type="string"); + self.params.set_val("imgdata", imgdata, value_type="raw"); + self.params.set_val("texture", texture, value_type="string"); + self.params.set_val("username", name, value_type="string"); + self.filename, self.filepath = self._filename_filepath_create(url=self.params.texture, extension="png") + + def _saveImgData(self): try: - parts = imgdata.split(';') - mime_type = parts[0] if parts[0] else 'text/plain' - data = parts[1] + up = urlparse.urlparse(self.params.imgdata) + head, data = up.path.split(',', 1) + bits = head.split(';') + mime_type = bits[0] if bits[0] else 'text/plain' charset, b64 = 'ASCII', False - for part in parts[1]: - if part.startswith('charset='): - charset = part[8:] - elif part == 'base64': + for bit in bits[1]: + if bit.startswith('charset='): + charset = bit[8:] + elif bit == 'base64': b64 = True # Do something smart with charset and b64 instead of assuming - if b64: - plaindata = base64.b64decode(data) - else: - plaindata = data - with open(filename, 'wb') as f: + plaindata = base64.b64decode(data) + + with open(self.filepath, 'wb') as f: f.write(plaindata) except Exception as e: - sys.stderr.write("ERROR: {}\n".format(str(e))); + self.err_warn(str(e)); def create(self, breakmode=""): - self.filepath = self._filename_from_url(self.params.get('texture',""), self.params.get('name',"")); - self._saveImgData(self.params.get('imgdata'), self.filepath); - + self._saveImgData(); @@ -1,3 +1,3 @@ -from Pb.Pattern import PbPattern -PbPattern.example_run() +from Pb.Landscape import PbLandscape +PbLandscape.example_run() |
