예제 #1
0
def set_attributes(items, type_dict):
    print "Clearing old tags."
    tags = get_full_taglist()
    for tag in tags:
        print "Killing %s" % tag
        tag.delete()
    NAME = 0
    DESC = 1
    CAT = 2
    for tag in tags_dict.values():
        category = 'object_%s' % tag[CAT].strip().lower()
        new_tag = Tag(db_key=tag[NAME], db_category=category, db_data=tag[DESC])
        new_tag.save()
        
    for item in items:
        obj = get_from_ref(item["db"])
        if obj:
            print "Setting attributes for " + item["name"] + ' (#'+ str(item['db']) +')'
            assign_attributes(obj, item["props"])
            if 'owner' in item:
                obj.db.owner = get_from_ref(item["owner"])
            else:
                # Must be a player. They own themselves.
                obj.db.owner = [get_from_ref(item["db"]),int(time.time())]
            obj.get_attribute_obj('owner').locks.add('attrread: perm(Immortals);attredit: perm(Immortals)')
            local_tz = pytz.timezone("America/Chicago") 
            utc_dt = datetime.utcfromtimestamp(item["createdtime"]).replace(tzinfo=pytz.utc)
            obj.dbobj.db_date_created = utc_dt

            if "home" in item:
                obj.home = get_from_ref(item["home"])
예제 #2
0
def tags_save(request, character, tag_list):
    """
    Save a player's RP tags.
    """
    result = ""
    dajax = Dajax()
    try:
        player, character, my_character = get_settings(request, character)
        if not permissions_check(my_character, character):
            result = "Permission Denied."
    except IndexError:
        result = "Could not find player internally."
    try:
        tag_list[:]
    except:
        result = "Bad Request."
    if result:
        dajax.assign("#tag_error", "innerHTML", result)
        return dajax.json()
    print character
    character_tags = character.get_tags(flat=True)
    possible_tags = get_full_taglist()
    tag_list = Tag.objects.in_bulk(tag_list).values()
    # Make sure someone doesn't hack up our other tags.
    tags = [tag for tag in tag_list if tag in possible_tags]

    for tag in character_tags:
        if tag not in tags:
            category = tag.db_category.replace("object_", "")
            character.tags.remove(tag.db_key, category=category)
    for tag in tags:
        if tag not in character_tags:
            category = tag.db_category.replace("object_", "")
            character.tags.add(tag.db_key, category=category)
    dajax.assign("#tag_error", "innerHTML", "Saved.")
    return dajax.json()