From edc9cc4da6c79a9c0bff520e256fe3b63fd8c2c2 Mon Sep 17 00:00:00 2001 From: yo mama Date: Mon, 14 Sep 2015 21:56:14 -0700 Subject: ok landscape passed the test --- Pb/Landscape/__init__.py | 49 ++++++++++++++++++++++++++++-------------------- 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(); diff --git a/test.py b/test.py index 35ca9ca..7760e0b 100644 --- a/test.py +++ b/test.py @@ -1,3 +1,3 @@ -from Pb.Pattern import PbPattern -PbPattern.example_run() +from Pb.Landscape import PbLandscape +PbLandscape.example_run() -- cgit v1.2.3-70-g09d2