Ejemplo n.º 1
0
    def check_all_achievements(self):
        achievements_earned = []
        for attr in dir(self):
            if(attr.startswith('test_')):
                test = getattr(self, attr)
                test_result = test()
                try:
                    should_award = test_result[0]
                    achievement_name = test_result[1]
                    if should_award:
                        db = MootDao()
                        db.award_achievement(self.user_id, achievement_name)
                        self.logger.info("Awarded achievement '{0}' to user "
                                         "'{1}".format(achievement_name,
                                                       self.user_id))
                        achievements_earned.append(achievement_name)
                    else:
                        self.logger.debug("Not awarding achievement '{0}' to "
                                          "user '{1}'".format(achievement_name,
                                                              self.user_id))
                except TypeError:
                    self.logger.critical("Problem with test result")

        if len(achievements_earned) > 0:
            achievements = []
            for ach in achievements_earned:
                dict = {}
                info = MootDao().get_achievement_info(ach)
                dict["name"] = ach
                dict["description"] = info["description"]
                achievements.append(dict)
            return achievements
        return achievements_earned
Ejemplo n.º 2
0
    def check_all_achievements(self):
        achievements_earned = []
        for attr in dir(self):
            if (attr.startswith('test_')):
                test = getattr(self, attr)
                test_result = test()
                try:
                    should_award = test_result[0]
                    achievement_name = test_result[1]
                    if should_award:
                        db = MootDao()
                        db.award_achievement(self.user_id, achievement_name)
                        self.logger.info("Awarded achievement '{0}' to user "
                                         "'{1}".format(achievement_name,
                                                       self.user_id))
                        achievements_earned.append(achievement_name)
                    else:
                        self.logger.debug("Not awarding achievement '{0}' to "
                                          "user '{1}'".format(
                                              achievement_name, self.user_id))
                except TypeError:
                    self.logger.critical("Problem with test result")

        if len(achievements_earned) > 0:
            achievements = []
            for ach in achievements_earned:
                dict = {}
                info = MootDao().get_achievement_info(ach)
                dict["name"] = ach
                dict["description"] = info["description"]
                achievements.append(dict)
            return achievements
        return achievements_earned