def reset(): amount = MongoArenaWeek.objects.count() logger = Logger("reset_arena_week.log") logger.write("Reset Arena Week: Start. chars amount: {0}".format(amount)) data = MongoArenaWeek.objects.all() MongoArenaWeek.objects.delete() for d in data: reward = _get_reward(d.rank) gold = reward.week_gold attachment = Attachment(d.id) attachment.save_to_attachment(3, gold=gold) achievement = Achievement(d.id) achievement.trig(10, d.rank) if d.rank in TOP_RANKS: try: top = MongoArenaTopRanks.objects.get(id=d.rank) except DoesNotExist: top = MongoArenaTopRanks(id=d.rank) char_name = Char(d.id).cacheobj.name top.name = char_name top.save() logger.write("Reset Arena Week: Complete") logger.close()
def reset(): amount = MongoArenaDay.objects.count() logger = Logger('reset_arena_day.log') logger.write("Reset Arena Day: Start. chars amount: {0}".format(amount)) arena_day = MongoArenaDay.objects.all() MongoArenaDay.objects.delete() chars_data = [] for ad in arena_day: char_id = ad.id char_score = ad.score char_power = Char(char_id).power chars_data.append((char_id, char_score, char_power)) chars_data.sort(key=lambda item: (-item[1], -item[2])) for index, data in enumerate(chars_data): rank = index + 1 char_id = data[0] score = data[1] try: arena_week = MongoArenaWeek.objects.get(id=char_id) except DoesNotExist: arena_week = MongoArenaWeek(id=char_id) arena_week.score = 0 arena_week.score += score arena_week.rank = rank arena_week.save() # FIXME reward attachment = Attachment(char_id) attachment.save_to_attachment(2, gold=100) logger.write("Reset Arena Day: Complete") logger.close()