diff options
| author | yo mama <pepper@scannerjammer.com> | 2015-09-21 14:20:13 -0700 |
|---|---|---|
| committer | yo mama <pepper@scannerjammer.com> | 2015-09-21 14:20:13 -0700 |
| commit | b29b0ec5f11dd66434cbdfba5287c4777d7f8ac9 (patch) | |
| tree | f02f45661bdab855d8392e14ba6448546586bf37 /lib/Pb/Landscape/__init__.py | |
| parent | 8f2230b7c866320e3839d6812b98b8370a7ec5d9 (diff) | |
new file structure
Diffstat (limited to 'lib/Pb/Landscape/__init__.py')
| -rwxr-xr-x | lib/Pb/Landscape/__init__.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/Pb/Landscape/__init__.py b/lib/Pb/Landscape/__init__.py new file mode 100755 index 0000000..33eedd6 --- /dev/null +++ b/lib/Pb/Landscape/__init__.py @@ -0,0 +1,48 @@ +from Config import * +import Pb +import base64 +from Pb import Pb +import urlparse, re + +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, **kwargs): + super(PbLandscape,self).__init__(); + _definitions = { + 'heightmap': {'type': 'string'} , + 'imgdata': {'type': 'raw' } , + 'texture': {'type': 'string' } , + 'username': {'type': 'string'} , + } + self.params.definitions_import(_definitions, kwargs, classname=self.__class__.__name__); + _namepart = re.sub(r'https?:?/?/?', '', str(self.params.texture)) + self.filename, self.filepath = self._filename_filepath_create(url=_namepart, extension="png") + + def _saveImgData(self): + try: + up = urlparse.urlparse(str(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 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 + plaindata = base64.b64decode(data) + + with open(self.filepath, 'wb') as f: + f.write(plaindata) + except Exception as e: + self.err_warn(str(e)); + + def create(self, breakmode=""): + self._saveImgData(); |
