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()
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()
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()
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()
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()
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()
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()
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()