Пример #1
0
def feature_filter(generator):
    """Turn the request string into a feature set."""

    app.seed = set_seed(request.args.get('seed'))

    saveparamregex = re.compile('^[0-9A-Za-z_]+$')
    genregex = re.compile('^' + generator + '_[a-z_]+$')
    genrollregex = re.compile('^' + generator + '_[a-z_]+_(roll|chance)$')

    app.logger.debug('Request Seed: %i', app.seed)
    features = {'seed': app.seed}
    for param in request.args:
        # if npc_ethics has a valid score
        if genrollregex.match(param) and isvalidscore(request.args[param]):
            features[param] = int(request.args[param])
        # if npc_hair_roll is a digit
        elif genregex.match(param) and str(request.args[param]).isdigit():
            fieldname = re.sub(generator + '_', '', param)
            features[fieldname] = app.server.lrange(param, int(request.args[param]), int(request.args[param]))[0]
        # if business_kind='temple'
        elif genregex.match(param) and saveparamregex.match(request.args[param]):
            # check to see if business_kind "temple" exists
            if app.server.keys(param):
                app.logger.debug("%s is a key", param)
                if request.args[param] in app.server.lrange(param, 0, -1):
                    app.logger.debug("%s was in %s", request.args[param], param)
                    # If it does, add it to features.
                    newparam = param[len(generator) + 1:]
                    features[newparam] = request.args[param]
                    app.logger.debug("%s %s", newparam, request.args[param])
    return features
Пример #2
0
def generategem():
    """Generate a gem"""
    features = feature_filter('gem')
    titletext = 'OOOH, Shiny...'
    if ('count' in request.args and valid_count(request.args['count'])):
        gems = []
        for _ in xrange(int(request.args['count'])):
            gems.append(Gem(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=gems, oneliner=gems[0], titletext=titletext, generator='gem')
    else:
        gem = Gem(app.server, features)
        return render_template('oneliner.html', oneliner=gem, titletext=titletext, generator='gem')
Пример #3
0
def generateartwork():
    """Generate a artwork"""
    features = feature_filter('artwork')
    titletext = 'A Work of Art...'
    if ('count' in request.args and valid_count(request.args['count'])):
        artworks = []
        for _ in xrange(int(request.args['count'])):
            artworks.append(Artwork(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=artworks,
                               oneliner=artworks[0], titletext=titletext, generator='artwork')
    else:
        artwork = Artwork(app.server, features)
        return render_template('oneliner.html', oneliner=artwork, titletext=titletext, generator='artwork')
Пример #4
0
def generatelegend():
    """Generate a legend"""
    features = feature_filter('legend')
    titletext = 'Let me tell you a story...'
    if ('count' in request.args and valid_count(request.args['count'])):
        legends = []
        for _ in xrange(int(request.args['count'])):
            legends.append(Legend(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=legends,
                               oneliner=legends[0], titletext=titletext, generator='legend')
    else:
        legend = Legend(app.server, features)
        return render_template('oneliner.html', oneliner=legend, titletext=titletext, generator='legend')
Пример #5
0
def generaterumor():
    """Generate a rumor"""
    features = feature_filter('rumor')
    titletext = 'Did You Hear?'
    features['npc'] = NPC(app.server)
    if ('count' in request.args and valid_count(request.args['count'])):
        rumors = []
        for _ in xrange(int(request.args['count'])):
            rumors.append(Rumor(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=rumors,
                               oneliner=rumors[0], titletext=titletext, generator='rumor')
    else:
        rumor = Rumor(app.server, features)
        return render_template('oneliner.html', oneliner=rumor, titletext=titletext, generator='rumor')
Пример #6
0
def generateflaw():
    """Generate a flaw"""
    features = feature_filter('flaw')
    titletext = 'My Greatest Flaw...'

    if ('count' in request.args and valid_count(request.args['count'])):
        flaws = []
        for _ in xrange(int(request.args['count'])):
            flaws.append(Flaw(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=flaws,
                               oneliner=flaws[0], titletext=titletext, generator='flaw')
    else:
        flaw = Flaw(app.server, features)
        return render_template('oneliner.html', oneliner=flaw, titletext=titletext, generator='flaw')
Пример #7
0
def generatecurrency():
    """Generate a currency"""
    features = feature_filter('currency')
    titletext = 'Spare Some Change?'
    features['npc'] = NPC(app.server)
    if ('count' in request.args and valid_count(request.args['count'])):
        currencys = []
        for _ in xrange(int(request.args['count'])):
            currencys.append(Currency(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=currencys,
                               oneliner=currencys[0], titletext=titletext, generator='currency')
    else:
        currency = Currency(app.server, features)
        return render_template('oneliner.html', oneliner=currency, titletext=titletext, generator='currency')
Пример #8
0
def generatemotivation():
    """Generate a motivation"""
    features = feature_filter('motivation')
    titletext = 'I\'m Motivated...'
    features['npc'] = NPC(app.server)
    if ('count' in request.args and valid_count(request.args['count'])):
        motivations = []
        for _ in xrange(int(request.args['count'])):
            motivations.append(Motivation(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=motivations,
                               oneliner=motivations[0], titletext=titletext, generator='motivation')
    else:
        motivation = Motivation(app.server, features)
        return render_template('oneliner.html', oneliner=motivation, titletext=titletext, generator='motivation')
Пример #9
0
def generatephobia():
    """Generate a phobia"""
    features = feature_filter('phobia')
    titletext = 'You know what really scares me?'

    if ('count' in request.args and valid_count(request.args['count'])):
        phobias = []
        for _ in xrange(int(request.args['count'])):
            phobias.append(Phobia(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=phobias,
                               oneliner=phobias[0], titletext=titletext, generator='phobia')
    else:
        phobia = Phobia(app.server, features)
        return render_template('oneliner.html', oneliner=phobia, titletext=titletext, generator='phobia')
Пример #10
0
def generatemundaneitem():
    """Generate a mundaneitem"""

    features = feature_filter('mundaneitem')
    titletext = 'Look what I found!'
    if ('count' in request.args and valid_count(request.args['count'])):
        mundaneitems = []
        for _ in xrange(int(request.args['count'])):
            mundaneitems.append(MundaneItem(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=mundaneitems,
                               oneliner=mundaneitems[0], titletext=titletext, generator='mundaneitem')
    else:
        mundaneitem = MundaneItem(app.server, features)
        return render_template('oneliner.html', oneliner=mundaneitem, titletext=titletext, generator='mundaneitem')
Пример #11
0
def generatecuisine():
    """Generate a cuisine"""
    features = feature_filter('cuisine')
    features['region'] = Region(app.server)
    titletext = 'What\'s for Dinner?'
    if ('count' in request.args and valid_count(request.args['count'])):
        cuisines = []
        for _ in xrange(int(request.args['count'])):
            cuisines.append(Cuisine(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=cuisines,
                               oneliner=cuisines[0], titletext=titletext, generator='cuisine')
    else:
        cuisine = Cuisine(app.server, features)
        return render_template('oneliner.html', oneliner=cuisine, titletext=titletext, generator='cuisine')
Пример #12
0
def generatecurse():
    """Generate a curse"""

    features = feature_filter('curse')
    titletext = 'Unforseen Consequences...'
    if ('count' in request.args and valid_count(request.args['count'])):
        curses = []
        for _ in xrange(int(request.args['count'])):
            curses.append(Curse(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=curses,
                               oneliner=curses[0], titletext=titletext, generator='curse')
    else:
        curse = Curse(app.server, features)
        return render_template('oneliner.html', oneliner=curse, titletext=titletext, generator='curse')
Пример #13
0
def generateresource():
    """Generate a resource"""

    features = feature_filter('resource')
    titletext = 'At Your Disposal...'
    features['npc'] = NPC(app.server)
    if ('count' in request.args and valid_count(request.args['count'])):
        resources = []
        for _ in xrange(int(request.args['count'])):
            resources.append(Resource(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=resources,
                               oneliner=resources[0], titletext=titletext, generator='resource')
    else:
        resource = Resource(app.server, features)
        return render_template('oneliner.html', oneliner=resource, titletext=titletext, generator='resource')
Пример #14
0
def generatebond():
    """Generate a bond"""

    features = feature_filter('bond')
    titletext = 'The Ties that Bind Us...'
    features['npc'] = NPC(app.server, {})
    if ('count' in request.args and valid_count(request.args['count'])):
        bonds = []
        for _ in xrange(int(request.args['count'])):
            bonds.append(Bond(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=bonds,
                               oneliner=bonds[0], titletext=titletext, generator='bond')
    else:
        bond = Bond(app.server, features)
        return render_template('oneliner.html', oneliner=bond, titletext=titletext, generator='bond')
Пример #15
0
def generatemisfire():
    """Generate a misfire"""

    features = feature_filter('misfire')
    titletext = 'My Spell Misfired!'
    features['npc'] = NPC(app.server)
    if ('count' in request.args and valid_count(request.args['count'])):
        misfires = []
        for _ in xrange(int(request.args['count'])):
            misfires.append(Misfire(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=misfires,
                               oneliner=misfires[0], titletext=titletext, generator='misfire')
    else:
        misfire = Misfire(app.server, features)
        return render_template('oneliner.html', oneliner=misfire, titletext=titletext, generator='misfire')
Пример #16
0
def generatejobposting():
    """Generate a jobposting"""

    features = feature_filter('jobposting')
    titletext = 'Help Wanted!'
    features['npc'] = NPC(app.server)
    if ('count' in request.args and valid_count(request.args['count'])):
        jobpostings = []
        for _ in xrange(int(request.args['count'])):
            jobpostings.append(JobPosting(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=jobpostings,
                               oneliner=jobpostings[0], titletext=titletext, generator='jobposting')
    else:
        jobposting = JobPosting(app.server, features)
        return render_template('oneliner.html', oneliner=jobposting, titletext=titletext, generator='jobposting')
Пример #17
0
def generategrafitti():
    """Generate a grafitti"""

    features = feature_filter('grafitti')
    titletext = 'Scrawled on a Nearby Wall...'
    features['npc'] = NPC(app.server, {})
    if ('count' in request.args and valid_count(request.args['count'])):
        grafittis = []
        for _ in xrange(int(request.args['count'])):
            grafittis.append(Grafitti(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=grafittis,
                               oneliner=grafittis[0], titletext=titletext, generator='grafitti')
    else:
        grafitti = Grafitti(app.server, features)
        return render_template('oneliner.html', oneliner=grafitti, titletext=titletext, generator='grafitti')
Пример #18
0
def generateevent():
    """Generate a event"""

    features = feature_filter('event')
    titletext = 'Look over there...'
    features['npc'] = NPC(app.server)
    if ('count' in request.args and valid_count(request.args['count'])):
        events = []
        for _ in xrange(int(request.args['count'])):
            events.append(Event(app.server, features))
            features['seed'] = set_seed()
        return render_template('oneliner.html', oneliners=events,
                               oneliner=events[0], titletext=titletext, generator='event')
    else:
        event = Event(app.server, features)
        return render_template('oneliner.html', oneliner=event, titletext=titletext, generator='event')
Пример #19
0
    def test_int_invalid_low(self):
        """  """

        seeds = set_seed(-2)
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)
Пример #20
0
    def test_string_invalid_low(self):
        """  """

        seeds = set_seed('-2')
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)
Пример #21
0
    def test_string_invalid_value(self):
        """  """

        seeds = set_seed('herpderp')
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)
Пример #22
0
    def test_none(self):
        """  """

        seeds = set_seed(None)
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)
Пример #23
0
    def test_int_seeds(self):
        """  """

        seeds = set_seed(17)
        self.assertEquals(17, seeds)
Пример #24
0
    def test_str_seeds(self):
        """  """

        seeds = set_seed('22')
        self.assertEquals(22, seeds)
Пример #25
0
    def test_string_invalid_value(self):
        """  """

        seeds = set_seed('herpderp')
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)
Пример #26
0
    def test_unicode_seeds(self):
        """  """

        seeds = set_seed(u'22')
        self.assertEquals(22, seeds)
Пример #27
0
    def test_int_invalid_low(self):
        """  """

        seeds = set_seed(-2)
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)
Пример #28
0
    def test_string_invalid_low(self):
        """  """

        seeds = set_seed('-2')
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)
Пример #29
0
    def test_str_seeds(self):
        """  """

        seeds = set_seed('22')
        self.assertEquals(22, seeds)
Пример #30
0
    def test_unicode_seeds(self):
        """  """

        seeds = set_seed(u'22')
        self.assertEquals(22, seeds)
Пример #31
0
    def test_int_seeds(self):
        """  """

        seeds = set_seed(17)
        self.assertEquals(17, seeds)
Пример #32
0
    def test_none(self):
        """  """

        seeds = set_seed(None)
        self.assertLessEqual(1, seeds)
        self.assertGreaterEqual(10000000, seeds)