summaryrefslogtreecommitdiff
path: root/Pb/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'Pb/__init__.py')
-rw-r--r--Pb/__init__.py130
1 files changed, 0 insertions, 130 deletions
diff --git a/Pb/__init__.py b/Pb/__init__.py
deleted file mode 100644
index 4d8a8d4..0000000
--- a/Pb/__init__.py
+++ /dev/null
@@ -1,130 +0,0 @@
-import re
-from Config import *
-import time
-import urllib
-import urllib2
-import sys
-import os
-import random
-from subprocess import Popen,PIPE,call
-from Params import Params
-import time
-Request = urllib2.Request
-urlencode = urllib.urlencode
-urlopen = urllib2.urlopen
-
-_max_filename_length = 20;
-
-class Pb(object):
- def __init__(self):
- self._now = str(int(time.time()));
- self.params = Params(classname=self.__class__.__name__, now=self._now);
- self._files_created = []
- self.commands = [];
- self._working_dir = WORKING_DIR
-
- def _filename_create(self, url=None, namepart="", extension=""):
- if url:
- _basename = os.path.basename(url)
- namepart = re.split(r'\.', _basename)[0]
- namepart = self._url_sanitize(namepart)[0:_max_filename_length]
- name = ""
- if namepart: name += "%s-" % namepart
- name += "%s_%s" % (self.__class__.__name__, self._now)
- if self.params.username : name += "_%s" % self.params.username
- if extension: name += ".%s" % extension
- return name
-
- def _filepath_create(self, filename, directory=WORKING_DIR):
- return os.path.join(directory, filename)
-
- def _filename_filepath_create(self, url=None, namepart="", directory=WORKING_DIR, extension=""):
- _filename = self._filename_create(url=url, namepart=namepart, extension=extension);
- _filepath = self._filepath_create(_filename, directory=directory);
- return _filename, _filepath
-
- def _tempfilepath_create(self, namepart="temp", directory=WORKING_DIR, extension=""):
- _filename = self._filename_create(namepart=namepart, extension=extension)
- return self._filepath_create(_filename, directory=directory)
-
- def _url_sanitize (self, s):
- return re.sub(r'\W+', '', s)
-
- def _call_cmd(self, cmd):
- try:
- cmd = map(lambda i: str(i), cmd)
- call(cmd)
- self.commands.append(" ".join(cmd));
- except Exception:
- raise Exception("Unable to call cmd {}".format(str(cmd)))
-
-
- @staticmethod
- def dimensions (filepath):
- #works in lieu of a mimetype check (it reads the header as well)
- ident = (Popen([BIN_IDENTIFY, filepath], stdout=PIPE).communicate()[0]).split(" ")
- return ident[2].split("x")
-
- def _width_and_height_set(self, filepath=None, width=DEFAULT_WIDTH, height=DEFAULT_HEIGHT):
- if filepath:
- self.width, self.height = Pb.dimensions(filepath)
- return
- self.width = width
- self.height = height
-
- @staticmethod
- def file_size (filepath):
- try:
- return os.stat(filepath)[6]
- except Exception as e:
- sys.stderr.write("Couldn't determine filesize\n")
- sys.stderr.write(str(e)+"\n")
- raise;
-
- def _file_read(self, filepath):
- f = open(filepath, 'r');
- data = f.read()
- f.close()
- return data
-
- def err_warn(self, s):
- sys.stderr.write("ERROR:{} - {}\n".format(self.__class__.__name__, s))
-
- def _cleanup(self):
- if not self._files_created: return
- cmd = ["rm"]+self._files_created
- self._call_cmd(cmd)
-
- def err_fatal(self, s):
- sys.stderr.write("ERROR[FATAL]:{} - {}\n".format(self.__class__.__name__, s))
- sys.exit(1);
-
- @classmethod
- def example_run(cls, params=None, verbose=True):
- example_params = params or cls.example_params
- if not example_params:
- raise AttributeError ("Must supply test params to test %s" % cls.__name__)
- b = cls(**example_params)
- b.create();
- if verbose:
- sys.stderr.write("generated %s\n" % b.filepath)
- sys.stderr.write("files created %s\n" % b._files_created)
- sys.stderr.write("commands %s" % " ".join(b.commands))
-
- @staticmethod
- def gif_frames(filepath):
- try:
- info = Popen([BIN_IDENTIFY,filepath], stdout=PIPE).communicate()[0]
- frames = filter((lambda x: x), map(
- (lambda x: x.split(" ")[0]),
- (info).split('\n')
- ))
- return frames
- except Exception as e:
- self.err_warn("couldn't get gif frames")
- raise e;
-
- def _choose_gif_frame(self, filepath):
- _gif_frames = Pb.gif_frames(filepath)
- frame = random.choice(_gif_frames)
- self._call_cmd([BIN_CONVERT, frame, filepath])