def __init__(self):
        try:
            with open("courses.json") as f:
                courses_list = json.load(f)

            self.courses = []
            for course_dict in courses_list:
                new_course = Course()
                new_course.from_dict(course_dict)
                self.courses += [new_course]
        except FileNotFoundError:
            self.courses = []
Example #2
0
    async def cinfo(self, ctx, *args):
        """Displays UCI Course Info.
        Usage: `.cinfo INF 133`"""
        start_time = time.time()
        mongo_courses = self.bot.mongo_courses
        db = self.bot.db
        whole_course = [i.upper() for i in list(args) if i != '']

        if 2 <= len(whole_course) <= 3:
            dept_name = whole_course[0]
            course_number = whole_course[1]

            if len(whole_course) == 3:
                dept_name = ' '.join(whole_course[0:2])
                course_number = whole_course[2]

            course_dict = mongo_courses.find_one({'_id': dept_name})
            if course_dict is None:
                alias = db.aliases.find_one({'_id': dept_name})
                if alias is not None:
                    dept_name = alias['original']
                    course_dict = mongo_courses.find_one({'_id': dept_name})

            if course_dict is not None and course_number in course_dict:
                course = Course.from_dict(dept_name,
                                          course_dict[course_number])

                embed = course.to_embed()
                elapsed_time = time.time() - start_time
                embed.set_footer(text=f'Processed in {elapsed_time}s')
                await ctx.message.channel.send(embed=embed)
        else:
            await ctx.message.channel.send(
                f'{" ".join(list(args))} couldn\'t be found.')