diff options
| author | Pepper <pepper@scannerjammer.com> | 2015-03-04 15:57:53 -0500 |
|---|---|---|
| committer | Pepper <pepper@scannerjammer.com> | 2015-03-04 15:57:53 -0500 |
| commit | 021842ec42b991e7a641ae26862d77b324ea05db (patch) | |
| tree | 81194a75da0ff1279af7346d6e50cd424c33bacb /lib | |
| parent | 513526efe79ff90be5b23459253dd5f553ec73d6 (diff) | |
started oop code
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/imgradient.py | 37 | ||||
| -rw-r--r-- | lib/imgradient_params_defaults.py | 42 | ||||
| -rwxr-xr-x | lib/impattern.py | 28 | ||||
| -rw-r--r-- | lib/impattern_params_defaults.py | 142 | ||||
| -rw-r--r-- | lib/utils.py | 50 |
5 files changed, 43 insertions, 256 deletions
diff --git a/lib/imgradient.py b/lib/imgradient.py deleted file mode 100644 index af743f1..0000000 --- a/lib/imgradient.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/python2.7 -import urllib -import urllib2 -import simplejson as json -import random -import sys -from lib.utils import post_request, Service - -IMGRADIENT_URL = "http://asdf.us/im/api/imgradient" - - - -class ImGradient(Service): - def __init__(self): - self.url = IMGRADIENT_URL - self._required_keys = [ - "width", "height", - "color1", "color2", - "stripes", - "stripenumber", "stripeintensity", - "blurriness", - "contrast", - "brightness", "saturation", "hue", - "halftone", - "bevel", "percentbeveled", - "rotate", "flip", "flop", "tilt", - "filetype", - "gradienttype", - "username", - ] - def new(self, params): - for k in self._required_keys: - if not k in params: - params[k] = ""; - self.params = params - return json.loads(post_request(IMGRADIENT_URL, self.params)) - diff --git a/lib/imgradient_params_defaults.py b/lib/imgradient_params_defaults.py index 140939f..d0ba3ac 100644 --- a/lib/imgradient_params_defaults.py +++ b/lib/imgradient_params_defaults.py @@ -130,6 +130,48 @@ class ImGradientParams_FromDefaults(Pb_Api_Params): { "value" : "mirrored", "weight" : 1 }, { "value" : "noise", "weight" : 1 }, ] + +#I just needed a place to encapsulate the params and the weights, and methods to access them. I guess I didn't really know the right answer +#as far as the structure, so I tried to just imagine something somewhat related to what you were talking about before. +#do I need separate classes for the two methods below? +#well lets dicusss this a bit more, so services each have own param set, they are sort of original from service itself, so i guess there should be a way to get +#"fresh" copy of parameters accepted by this service, instead of rewriting code each time. do you mean just a list of the keynames? yeah and thier values +#the keys don't have default values necessarily. they just each have a range of accepted values. Basically just html forms hmm sort of like +#writing a bot that fills in some forms on the internet, like a bot to brute force a credit card form or something, funny example, but I guess a good one +#each parameter has values that are within an accepted range, like First Name would need to come from a list of frist names, and CC number would need to bevel +#intelligible ints, the first four should correspond with a known bank, etc. you understand what I mean? yeah +ok so since all services are about same, just a bunch of parameters and known values we can make base class for parameteres. it would look like: + + +class ApiParams(object): + def params(): + def randomize(): + def build(): + +class ImGradientParams(ApiParams): + def __init__(): + self.params = { + "width": # well here it's int i suppose, need somethig esle + "gradienttype": [ + { "value "...} + ] + } + +class ImGradientPb_Api(): + def params(): + return new ImGradientParams() + def call(params): + return image(); + + +api = ImGradientPb_Api() +image_params = api.params() +image_params.gradient_type("mirror") +image_params.randomize() +image = api.call(image _params) +# something like this, yeah I think so...lol I tried to do something like this + + def from_random(self): return { "username" : USERNAME, diff --git a/lib/impattern.py b/lib/impattern.py deleted file mode 100755 index 08e3f2a..0000000 --- a/lib/impattern.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python2.7 -import urllib -import urllib2 -import simplejson as json -import random -import sys -from lib.utils import post_request, Service - -IMPATTERN_URL = "http://asdf.us/im/api/impattern" - - - -class ImPattern(Service): - def __init__(self): - self.url = IMPATTERN_URL - self._required_keys = [ - "pattern_url", - "pattern_data", - "username", - "image_url", - ] - def new(self, params): - for k in self._required_keys: - if not k in params: - params[k] = ""; - self.params = params - return json.loads(post_request(IMPATTERN_URL, self.params)) - diff --git a/lib/impattern_params_defaults.py b/lib/impattern_params_defaults.py index cfad62f..c6b88b7 100644 --- a/lib/impattern_params_defaults.py +++ b/lib/impattern_params_defaults.py @@ -4,152 +4,10 @@ from config import USERNAME, TEST_URL from lib.utils import Pb_Api_Params PATTERN_URL_BASE = "http://asdf.us/impattern/patterns" class ImPatternParams_FromDefaults(Pb_Api_Params): -# "pattern_url", -# "pattern_data", -# "username", -# "image_url", def __init__(self): self.weighted_pattern_url = [ -#{{{pattern urls { "value":"1.png", "weight":1 }, - { "value":"10.png", "weight":1 }, - { "value":"11.png", "weight":1 }, - { "value":"12.png", "weight":1 }, - { "value":"13.png", "weight":1 }, - { "value":"14.png", "weight":1 }, - { "value":"15.png", "weight":1 }, - { "value":"16.png", "weight":1 }, - { "value":"17.png", "weight":1 }, - { "value":"18.png", "weight":1 }, - { "value":"19.png", "weight":1 }, { "value":"2.png", "weight":1 }, - { "value":"20.png", "weight":1 }, - { "value":"21.png", "weight":1 }, - { "value":"22.png", "weight":1 }, - { "value":"23.png", "weight":1 }, - { "value":"24.png", "weight":1 }, - { "value":"25.png", "weight":1 }, - { "value":"26.png", "weight":1 }, - { "value":"27.png", "weight":1 }, - { "value":"28.png", "weight":1 }, - { "value":"29.png", "weight":1 }, - { "value":"3.png", "weight":1 }, - { "value":"30.png", "weight":1 }, - { "value":"31.png", "weight":1 }, - { "value":"32.png", "weight":1 }, - { "value":"33.png", "weight":1 }, - { "value":"34.png", "weight":1 }, - { "value":"35.png", "weight":1 }, - { "value":"36.png", "weight":1 }, - { "value":"37.png", "weight":1 }, - { "value":"38.png", "weight":1 }, - { "value":"39.png", "weight":1 }, - { "value":"4.png", "weight":1 }, - { "value":"40.png", "weight":1 }, - { "value":"41.png", "weight":1 }, - { "value":"42.png", "weight":1 }, - { "value":"43.png", "weight":1 }, - { "value":"44.png", "weight":1 }, - { "value":"45.png", "weight":1 }, - { "value":"46.png", "weight":1 }, - { "value":"47.png", "weight":1 }, - { "value":"48.png", "weight":1 }, - { "value":"49.png", "weight":1 }, - { "value":"5.png", "weight":1 }, - { "value":"50.png", "weight":1 }, - { "value":"51.png", "weight":1 }, - { "value":"52.png", "weight":1 }, - { "value":"53.png", "weight":1 }, - { "value":"54.png", "weight":1 }, - { "value":"55.png", "weight":1 }, - { "value":"56.png", "weight":1 }, - { "value":"57.png", "weight":1 }, - { "value":"58.png", "weight":1 }, - { "value":"59.png", "weight":1 }, - { "value":"6.png", "weight":1 }, - { "value":"60.png", "weight":1 }, - { "value":"61.png", "weight":1 }, - { "value":"62.png", "weight":1 }, - { "value":"63.png", "weight":1 }, - { "value":"64.png", "weight":1 }, - { "value":"65.png", "weight":1 }, - { "value":"66.png", "weight":1 }, - { "value":"67.png", "weight":1 }, - { "value":"68.png", "weight":1 }, - { "value":"69.png", "weight":1 }, - { "value":"7.png", "weight":1 }, - { "value":"70.png", "weight":1 }, - { "value":"71.png", "weight":1 }, - { "value":"72.png", "weight":1 }, - { "value":"73.png", "weight":1 }, - { "value":"74.png", "weight":1 }, - { "value":"75.png", "weight":1 }, - { "value":"76.png", "weight":1 }, - { "value":"77.png", "weight":1 }, - { "value":"78.png", "weight":1 }, - { "value":"79.png", "weight":1 }, - { "value":"8.png", "weight":1 }, - { "value":"80.png", "weight":1 }, - { "value":"81.png", "weight":1 }, - { "value":"82.png", "weight":1 }, - { "value":"83.png", "weight":1 }, - { "value":"84.png", "weight":1 }, - { "value":"85.png", "weight":1 }, - { "value":"86.png", "weight":1 }, - { "value":"87.png", "weight":1 }, - { "value":"88.png", "weight":1 }, - { "value":"89.png", "weight":1 }, - { "value":"9.png", "weight":1 }, - { "value":"90.png", "weight":1 }, - { "value":"91.png", "weight":1 }, - { "value":"92.png", "weight":1 }, - { "value":"93.png", "weight":1 }, - { "value":"94.png", "weight":1 }, - { "value":"95.png", "weight":1 }, - { "value":"96.png", "weight":1 }, - { "value":"a0.png", "weight":1 }, - { "value":"a1.png", "weight":1 }, - { "value":"a10.png", "weight":1 }, - { "value":"a11.png", "weight":1 }, - { "value":"a12.png", "weight":1 }, - { "value":"a13.png", "weight":1 }, - { "value":"a14.png", "weight":1 }, - { "value":"a15.png", "weight":1 }, - { "value":"a16.png", "weight":1 }, - { "value":"a17.png", "weight":1 }, - { "value":"a18.png", "weight":1 }, - { "value":"a19.png", "weight":1 }, - { "value":"a2.png", "weight":1 }, - { "value":"a20.png", "weight":1 }, - { "value":"a21.png", "weight":1 }, - { "value":"a22.png", "weight":1 }, - { "value":"a23.png", "weight":1 }, - { "value":"a24.png", "weight":1 }, - { "value":"a25.png", "weight":1 }, - { "value":"a26.png", "weight":1 }, - { "value":"a27.png", "weight":1 }, - { "value":"a28.png", "weight":1 }, - { "value":"a29.png", "weight":1 }, - { "value":"a3.png", "weight":1 }, - { "value":"a30.png", "weight":1 }, - { "value":"a31.png", "weight":1 }, - { "value":"a32.png", "weight":1 }, - { "value":"a33.png", "weight":1 }, - { "value":"a34.png", "weight":1 }, - { "value":"a35.png", "weight":1 }, - { "value":"a36.png", "weight":1 }, - { "value":"a37.png", "weight":1 }, - { "value":"a38.png", "weight":1 }, - { "value":"a39.png", "weight":1 }, - { "value":"a4.png", "weight":1 }, - { "value":"a40.png", "weight":1 }, - { "value":"a41.png", "weight":1 }, - { "value":"a5.png", "weight":1 }, - { "value":"a6.png", "weight":1 }, - { "value":"a7.png", "weight":1 }, - { "value":"a8.png", "weight":1 }, - { "value":"a9.png", "weight":1 }, -#}}} ] def from_random(self, url=TEST_URL): return { diff --git a/lib/utils.py b/lib/utils.py index 78a7b1f..98b7c98 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -1,50 +1,2 @@ -import urllib -import urllib2 -import sys -import random -def post_request(url, params): - params = urllib.urlencode(params) - sys.stderr.write(params) - headers = { - "Content-type": "application/x-www-form-urlencoded", - "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36", - "Accept": "text/plain" - } - try: - req = urllib2.Request(url, params, headers) - response = urllib2.urlopen(req) - return response.read() - except Exception as e: - sys.stderr.write(str(e)) - raise -class Service: - def __init__(self): - self._required_keys = [] - self.url = "" - def new(self, params): - for k in self._required_keys: - if not k in params: - params[k] = ""; - self.current_params = params - return json.loads(post_request(self.url, self.current_params)) - -class Pb_Api_Params: - def _weighted_choice(self, param): - weights_total = sum(map(lambda x: x["weight"], param)) - choice = random.randint(0, weights_total) - position = 0 - for elem in param: - position += elem["weight"] - if position >= choice: - return elem["value"] - def _default_choice(self, param): - heaviest_idx = 0 - heaviest_weight = 0 - idx = 0 - for elem in param: - if elem["weight"] > heaviest_weight: - heaviest_weight = elem["weight"] - heaviest_idx = idx; - idx += 1 - return param[heaviest_idx]["value"] +#ok so does the way the files have been moved, split apart and renamed look good to you? almost, need to rename a bit more. as for this utils, there is only one method to call, so you can just put it inside Pb_Api.py it will be easier |
