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