def get_subjects(self):
     if 'subjects' not in app.timetable:
         logger.debug("Filling subjects")
         app.timetable['subjects'] = []
         for lesson in app.timetable['lessons']:
             if lesson['subject'] not in app.timetable['subjects']:
                 app.timetable['subjects'].append(lesson['subject'])
     return app.timetable['subjects']
 def get_hours(self):
     if 'hours' not in app.timetable:
         logger.debug("Filling hours")
         app.timetable['hours'] = []
         for lesson in app.timetable['lessons']:
             if lesson['hour'] not in app.timetable['hours']:
                 app.timetable['hours'].append(lesson['hour'])
     sorted(app.timetable['hours'])
     return app.timetable['hours']
 def get_groups(self):
     if 'groups' not in app.timetable:
         logger.debug("Filling groups")
         app.timetable['groups'] = []
         for lesson in app.timetable['lessons']:
             for group in lesson['group']:
                 if group not in app.timetable['groups']:
                     app.timetable['groups'].append(group)
     return app.timetable['groups']
 def get_classrooms(self):
     if 'classrooms' not in app.timetable:
         logger.debug("Filling classrooms")
         app.timetable['classrooms'] = []
         for lesson in app.timetable['lessons']:
             if lesson['classroom'] is not None:
                 classroom = re.sub(
                     "(-p.*)|(-n.*)", "",
                     lesson['classroom'])  # remove -n and -p from name
                 if classroom not in app.timetable['classrooms']:
                     app.timetable['classrooms'].append(classroom)
     return app.timetable['classrooms']
 def get_teachers(self):
     if 'teachers' not in app.timetable:
         logger.debug("Filling teachers")
         app.timetable['teachers'] = []
         for lesson in app.timetable['lessons']:
             if lesson['teacher'] is not None:
                 teacher = re.sub(
                     "(-p.*)|(-n.*)", "",
                     lesson['teacher'])  # remove -n and -p from name
                 if teacher not in app.timetable['teachers']:
                     app.timetable['teachers'].append(teacher)
     return app.timetable['teachers']
예제 #6
0
    def get_lessons(self, objects):
        lessons = []
        for key, val in objects.items():
            table = self.get_soup("{}plany/{}".format(
                self.base_url, key)).find('table', class_='tabela')
            classroom_lessons = self.get_lessons_from_table(table, val)

            if len(classroom_lessons) > 0:
                lessons = lessons + classroom_lessons
            else:
                logger.debug("Empty class:\t{}\t{}".format(key, val))
        return lessons
예제 #7
0
    def get_soup(self, url):
        headers = {
            'User-Agent':
            'Mozilla/5.0 (Windows NT 6.3; Win64; x64) '
            'AppleWebKit/537.36 (KHTML, like Gecko) '
            'Chrome/64.0.3282.168 '
            'Safari/537.36 '
            'OPR/51.0.2830.40'
        }
        sleep(random.uniform(0, 0.2))
        logger.debug("Getting:\t{}".format(url))
        response = self.s.get(url, headers=headers)
        response.encoding = "utf-8"

        return bs(response.text, 'html.parser')