summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xPb/Landscape/__init__.py49
-rw-r--r--test.py4
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()