Ejemplo n.º 1
0
def save_narrative(narrative_id, body=None, place_id=None, isjournaled=None):
    ''' change the properties of a Narrative '''
    narrative = _get_narrative(narrative_id)
    if narrative is None:
        raise ActionException('Narrative not found')

    if place_id is not None:
        profile = _get_my_profile()
        playing_role = profile.playing.urlsafe()
        if not is_present(playing_role, place_id):
            raise ActionException('Role not present')
        roles = _get_roles_in_place(place_id)
        place = _get_place(place_id)
        roles.append(place.key.parent())
        narrative.place = db.Key(urlsafe=place_id)
        narrative.observed = roles

    if isjournaled is not None:
        profile = _get_my_profile()
        playing_role = profile.playing.urlsafe()
        journalednow = playing_role in narrative.journaled
        if not journalednow and isjournaled == True:
            narrative.journaled.append(playing_role)
        if journalednow and isjournaled == False:
            narrative.journaled.remove(playing_role)

    narrative.body = body if body is not None else narrative.body
    narrative.updated = datetime.now()
    narrative.updatedby = _get_my_profile().key
    narrative.put()
Ejemplo n.º 2
0
def save_place(place_id, name=None, description=None):
    ''' change the properties of a Place '''
    place = _get_place(place_id)
    if place is None:
        raise ActionException('Place not found')
    place.name = name if name != None else place.name 
    place.name_order = name.upper() if name != None else place.name_order
    place.description = description if description != None else place.description
    place.updated = datetime.now()
    place.put()
Ejemplo n.º 3
0
def create_place(place_name):
    ''' create a new place in the current users profile '''
    if place_name is None:
        raise ActionException('Name is required')
    my_profile = _get_my_profile()
    place = Place(name=place_name, parent=my_profile.key)
    place.name = place_name
    place.name_order = place_name.upper()
    place.updated = datetime.now()
    place.put()
    return place.key.urlsafe()
Ejemplo n.º 4
0
def add_skill_to_role(role_id, skillname):
    ''' Add a RoleSkill to a Role '''
    role = _get_role(role_id)
    if role is None:
        raise ActionException('role not found')
    role.name = name if name != None else role.name
    role.name_order = name.upper() if name != None else role.name_order
    role.description = description if description != None else role.description
    role.portrait = portrait if portrait != None else role.portrait
    role.updated = datetime.now()
    role.put()
Ejemplo n.º 5
0
def save_role(role_id, name=None, description=None, portrait=None):
    ''' change the properties of a Role '''
    role = _get_role(role_id)
    if role is None:
        raise ActionException('role not found')
    role.name = name if name != None else role.name
    role.name_order = name.upper() if name != None else role.name_order
    role.description = description if description != None else role.description
    role.portrait = portrait if portrait != None else role.portrait
    role.updated = datetime.now()
    role.put()
Ejemplo n.º 6
0
def create_role(role_name):
    ''' create a Role in the current users Profile '''
    if role_name is None:
        raise ActionException('Role name is required')
    my_profile = _get_my_profile()
    role = Role(name=role_name, parent=my_profile.key)
    role.name = role_name
    role.name_order = role_name.upper()
    role.updated = datetime.now()
    role.put()
    return role.key.urlsafe()
Ejemplo n.º 7
0
def create_narrative(place_id, narrative_body):
    ''' create Narrative text for a Role in a Place '''
    profile = _get_my_profile()
    playing_role = profile.playing.urlsafe()
    if playing_role is None:
        raise ActionException('Not playing a Role')
    if not is_present(playing_role, place_id):
        raise ActionException('Role not present')
    place = _get_place(place_id)
    narrative = Narrative(role=_get_playing(), place=place.key)
    roles = _get_roles_in_place(place_id)
    roles.append(place.key.parent())
    narrative.observed = roles
    narrative.body = narrative_body
    narrative.created = datetime.now()
    narrative.createdby = profile.playing
    narrative.put()
    return narrative.key.urlsafe()
Ejemplo n.º 8
0
def register_new_user(name):
    ''' register a Profile for the current user as long as the name hasn't been used and the user doesn't already have a Profile '''
    if name is None:
        raise ActionException('Name is required')
    if len(Profile.query(Profile.name_order == name.upper()).fetch(1)) > 0:
        raise ActionException('Name has been used by someone else')
    profile, userid = _get_profile()
    if profile is None:
        sm = _get_site_master()
        if sm is None:
            profile = SiteMasterProfile(id=userid)
            profile.free_games = 1
            profile.free_places = 2
        else:
            profile = Profile(id=userid)
    else:
        raise ActionException('User already has a profile')
    profile.name = name
    profile.name_order = name.upper()
    profile.updated = datetime.now()
    profile.playing = profile.key
    profile.put()
    return profile.key.urlsafe()