summaryrefslogtreecommitdiff
path: root/lib/pb/breaker.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pb/breaker.py')
-rwxr-xr-xlib/pb/breaker.py110
1 files changed, 58 insertions, 52 deletions
diff --git a/lib/pb/breaker.py b/lib/pb/breaker.py
index a38030a..a6f6c92 100755
--- a/lib/pb/breaker.py
+++ b/lib/pb/breaker.py
@@ -1,15 +1,11 @@
#!/usr/bin/python2.7
import os
-import sys
import random
import re
-import urllib
-import inspect
-from config import *
+from config import BIN_CONVERT
from pb import Pb
-from params import Params
-DEFAULT_FINALFORMAT = "png";
+DEFAULT_FINALFORMAT = "png"
_subtle_break_mark = 'pron'
_extreme_break_mark = 'sugar'
@@ -17,7 +13,7 @@ _extreme_break_mark = 'sugar'
_header_offset = 2000
_default_breakmode = "subtle"
-class PbBreaker(Pb): #FIXME in db gallery
+class PbBreaker(Pb):
example_params = {
"url" : "http://i.asdf.us/im/de/HolyMountain2_1322275112_seamonkey.gif",
"breaktype" : "RGB_WASH",
@@ -28,36 +24,42 @@ class PbBreaker(Pb): #FIXME in db gallery
"expanded" : "false"
}
def __init__(self, **kwargs):
- super(PbBreaker,self).__init__(**kwargs);
+ super(PbBreaker, self).__init__(**kwargs)
_definitions = {
- 'username': { 'type': 'string' },
- 'breaktype': { 'type': 'string' },
- 'breakmode': {
- 'type': 'enum',
- 'enum_values' : ['subtle', 'extreme', 'gradual'] ,
- 'default' : _default_breakmode
- },
- 'breakangle': { 'type': 'float' },
- 'expanded': { 'type': 'bool' },
- 'url': { 'type': 'img_url' },
- 'finalformat': { 'type': 'enum', 'enum_values' : ['png', 'gif', 'jpg' ] }
+ 'username': {'type': 'string'},
+ 'breaktype': {'type': 'string'},
+ 'breakmode': {
+ 'type': 'enum',
+ 'enum_values' : ['subtle', 'extreme', 'gradual'],
+ 'default' : _default_breakmode
+ },
+ 'breakangle': {'type': 'float'},
+ 'expanded': {'type': 'bool'},
+ 'url': {'type': 'img_url'},
+ 'finalformat': {'type': 'enum', 'enum_values' : ['png', 'gif', 'jpg']}
}
- self.params.definitions_import(_definitions, kwargs, classname=self.__class__.__name__);
+ self.params.definitions_import(_definitions, kwargs, classname=self.__class__.__name__)
self._files_created.append(self.params.url.path)
self.params.breaktype.set_val(self._get_breaktype(str(self.params.breaktype)))
-
+
#psd returns an animation
if not self.params.finalformat and self.params.url.mimetype == "gif":
- self.params.finalformat.set_val("gif")
+ self.params.finalformat.set_val("gif")
elif self.params.breaktype == 'miff':
- self.params.finalformat.set_val("jpg")
- self.params.breakmode.set_val("subtle")
+ self.params.finalformat.set_val("jpg")
+ self.params.breakmode.set_val("subtle")
elif not self.params.finalformat:
- self.params.finalformat.set_val(DEFAULT_FINALFORMAT)
- self._width_and_height_set(filepath=self.params.url.path)
+ self.params.finalformat.set_val(DEFAULT_FINALFORMAT)
+ self._width_and_height_set(filepath=self.params.url.path)
- self.filename, self.filepath = self._filename_filepath_create(url=self.params.url.url, extension=self.params.finalformat)
- self._conversion_file = self._tempfilepath_create(namepart="conversion", extension=self.params.breaktype)
+ self.filename, self.filepath = self._filename_filepath_create(
+ url=self.params.url.url,
+ extension=self.params.finalformat
+ )
+ self._conversion_file = self._tempfilepath_create(
+ namepart="conversion",
+ extension=self.params.breaktype
+ )
self._db_url_param = str(self.params.url['url'])
@@ -81,19 +83,23 @@ class PbBreaker(Pb): #FIXME in db gallery
#}}}
return breaktypeTranslate[key]
-#{{{#########rotatefunctions#######################################
+#{{{#########rotatefunctions######################################
def _rotate(self):
- cmd = [BIN_CONVERT,self.params.url.path,"-rotate",self.params.breakangle,"+repage",self.params.url.path]
- self._call_cmd(cmd)
+ cmd = [
+ BIN_CONVERT, self.params.url.path,
+ "-rotate", self.params.breakangle,
+ "+repage", self.params.url.path
+ ]
+ self._call_cmd(cmd)
def _rotate_back(self):
angle = str(360-int(self.params.breakangle))
- cmd = [BIN_CONVERT,self.filepath,"-rotate",angle,"+repage",self.filepath]
- self._call_cmd(cmd)
+ cmd = [BIN_CONVERT, self.filepath, "-rotate", angle, "+repage", self.filepath]
+ self._call_cmd(cmd)
if not self.params.expanded:
- cmd = [BIN_CONVERT,self.filepath,"-gravity","Center","-crop","{}x{}+0+0".format(
- self.width, self.height),"+repage",self.filepath]
- self._call_cmd(cmd)
+ cmd = [BIN_CONVERT, self.filepath, "-gravity", "Center", "-crop", "{}x{}+0+0".format(
+ self.width, self.height), "+repage", self.filepath]
+ self._call_cmd(cmd)
#}}}
def _subtle_break(self):
@@ -105,21 +111,21 @@ class PbBreaker(Pb): #FIXME in db gallery
self._file_data = newfile[0:len(self._file_data)]
def _extreme_break(self):
- increment = len(self._file_data)/10;
+ increment = len(self._file_data)/10
i = 0
- newfile = "";
+ newfile = ""
for b in self._file_data:
- if i > _header_offset and not (i % increment):
+ if i > _header_offset and not i % increment:
b += _extreme_break_mark
newfile += b
i += 1
self._file_data = newfile[0:len(self._file_data)]
-
def _enforce_jpg(self):
- if self.params.breaktype in [ "exr", "bmp", "miff" ] and not re.match(r'jpe?g$', self.params.url.mimetype, re.IGNORECASE):
+ if self.params.breaktype in ["exr", "bmp", "miff"] and not \
+ re.match(r'jpe?g$', self.params.url.mimetype, re.IGNORECASE):
jpg_file = self._tempfilepath_create(extension="jpg")
- self._call_cmd([BIN_CONVERT,self.params.url.path, jpg_file])
+ self._call_cmd([BIN_CONVERT, self.params.url.path, jpg_file])
self._files_created.append(jpg_file)
self._conversion_file = jpg_file
@@ -131,16 +137,16 @@ class PbBreaker(Pb): #FIXME in db gallery
self._files_created.append(self._conversion_file)
def _prepare_filedata(self):
- if self.params.url.mimetype == "gif" and self.params.breaktype not in [ 'mat', 'psd' ]:
+ if self.params.url.mimetype == "gif" and self.params.breaktype not in ['mat', 'psd']:
self._choose_gif_frame(self.params.url.path)
if self.params.breakangle:
self._rotate()
- self._enforce_jpg();
- self._first_conversion();
+ self._enforce_jpg()
+ self._first_conversion()
self._file_data = self._file_read(self._conversion_file)
if not self._file_data:
- self.err_warn("Unable to get file data");
-
+ self.err_warn("Unable to get file data")
+
def _add_false_data(self):
if self.params.breakmode == "subtle":
self._subtle_break()
@@ -148,10 +154,10 @@ class PbBreaker(Pb): #FIXME in db gallery
self._extreme_break()
f = open(self._conversion_file, 'w')
f.write(self._file_data)
- f.close();
+ f.close()
def _final_conversion(self):
- self._call_cmd( [BIN_CONVERT, self._conversion_file, self.filepath])
+ self._call_cmd([BIN_CONVERT, self._conversion_file, self.filepath])
def psd_psbfilepath(num):
return os.path.join(re.sub(r'\.', "-%s." % num, self.filepath))
if str(self.params.breaktype) == 'psd':
@@ -164,8 +170,8 @@ class PbBreaker(Pb): #FIXME in db gallery
self._rotate_back()
def create(self):
- self._prepare_filedata();
- self._add_false_data();
- self._final_conversion()
+ self._prepare_filedata()
+ self._add_false_data()
+ self._final_conversion()
super(PbBreaker, self).create()