summaryrefslogtreecommitdiff
path: root/ricky/impattern/params.py
blob: 4c2d58ca55d7a7941475509bb99b68c2a1995ab1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import re
from ricky.params import Params
from ricky.param import Param
from ricky.param.probability import Probability
from ricky.param.probabilities import Probabilities
from ricky.param.username import Username
from ricky.param.imageurl import ImageUrl
from ricky.param.multiselect import MultiSelect

from ricky.config import PATTERN_BASE_URL

class Pattern_UrlProbability(Probability):
  def __init__(self, **kwargs):
    super(Pattern_UrlProbability, self).__init__(**kwargs)
  @classmethod
  def from_name(cls, **kwargs):
    formatted = "{}/{}.png".format(PATTERN_BASE_URL, kwargs["value"])
    return cls(weight=kwargs["weight"], value=formatted )

class ImPatternParams(Params):
    def __init__(self):
        self._params = [
           Username(name="username", required=False),
           ImageUrl(name="image_url", required=True),
           MultiSelect(name="pattern_url", required=True, probabilities=pattern_url_probabilities)
        ]

pattern_url_probabilities = Probabilities(*[
  Pattern_UrlProbability.from_name(weight=0, value=i) for i in range(1,100) ] + [
  Pattern_UrlProbability.from_name(weight=0, value="a{}".format(i)) for i in range(0, 42)
])

pattern_url_probabilities.search("a10").weight = 20;