Пример #1
0
    def getSchedule(self, group, typeP, entity):
        url = "https://www.tsuab.ru/schedule/api/timetable.php"
        schedule = []

        querystring = {"q": group[1], "type": typeP, "dt": getNowWeek()[1], "df": getNowWeek()[0], "wid": "11",
                       "text": group[0]}

        response = requests.request("GET", url, params=querystring)

        soup = BS(response.content, 'html.parser')

        lessons = soup.findAll('div', {'class': 'timetable-mobile__item'})
        fio = None
        for lesson in lessons:
            timetableRow = lesson.findAll('div', {'class': 'timetable__row'})
            if len(timetableRow) > 0:
                day = getNameOfTheDayOfTheWeek(lesson.find('div', {'class': 'timetable__day'}).get('data-date'))
                week = getNumberWeek(lesson.find('div', {'class': 'timetable__day'}).get('data-date'))
                numberLesson=0
                for el in timetableRow:
                    timeLesson = el.findAll('div', {'class': 'timetable-time__value'})
                    lessonBegin = timeLesson[0].text
                    lessonEnd = timeLesson[1].text
                    numberLesson = numberLesson+1
                    interval = Interval(numberLesson, lessonBegin, lessonEnd)

                    subject = el.find('div', {'class': 'timetable-lesson__title'}).text.replace('\n', '').strip()
                    if typeP == 'teacher':
                        extra = None
                    else:
                        extra = el.find('div', {'class': 'timetable-lesson__lecturer'}).text.replace('\n', '').strip()

                    if typeP == 'teacher':
                        fio = el.find('div', {'class': 'timetable-lesson__lecturer'}).text.replace('\n', '').strip()

                    auditory = el.find('div', {'class': 'timetable-lesson__lecture-room'}).text.replace('\n', '').strip()
                    Type = getNameType(
                        el.find('div', {'class': 'timetable-lesson__marker'}).get('class')[1].split('--')[1]) if len(
                        el.find('div', {'class': 'timetable-lesson__marker'}).get('class')) > 1 else None
                    lesson = Lesson(week, day, interval, subject, auditory, extra, Type)

                    self.addLessonToSchedule(schedule, lesson)

        querystring = {"q": group[1], "type": typeP, "dt": getNextWeek()[1], "df": getNextWeek()[0], "wid": "11",
                       "text": group[0]}

        response = requests.request("GET", url, params=querystring)

        soup = BS(response.content, 'html.parser')

        lessons = soup.findAll('div', {'class': 'timetable-mobile__item'})

        for lesson in lessons:
            timetableRow = lesson.findAll('div', {'class': 'timetable__row'})
            if len(timetableRow) > 0:
                day = getNameOfTheDayOfTheWeek(lesson.find('div', {'class': 'timetable__day'}).get('data-date'))
                week = getNumberWeek(lesson.find('div', {'class': 'timetable__day'}).get('data-date'))
                numberLesson = 0
                for el in timetableRow:
                    timeLesson = el.findAll('div', {'class': 'timetable-time__value'})
                    lessonBegin = timeLesson[0].text
                    lessonEnd = timeLesson[1].text
                    numberLesson = numberLesson+1
                    interval = Interval(numberLesson, lessonBegin, lessonEnd)

                    subject = el.find('div', {'class': 'timetable-lesson__title'}).text.replace('\n', '').replace(' ', '').strip()
                    if typeP == 'teacher':
                        extra = None
                    else:
                        extra = el.find('div', {'class': 'timetable-lesson__lecturer'}).text.replace('\n', '').strip()

                    if typeP == 'teacher':
                        fio = el.find('div', {'class': 'timetable-lesson__lecturer'}).text.replace('\n', '').strip()

                    auditory = el.find('div', {'class': 'timetable-lesson__lecture-room'}).text.replace('\n', '').strip()
                    Type = getNameType(
                        el.find('div', {'class': 'timetable-lesson__marker'}).get('class')[1].split('--')[1]) if len(
                        el.find('div', {'class': 'timetable-lesson__marker'}).get('class')) > 1 else None
                    lesson = Lesson(week, day, interval, subject, auditory, extra, Type)
                    self.addLessonToSchedule(schedule, lesson)
        if typeP == 'teacher':
            if fio == None:
                return []
            else:
                entity.name = fio.strip()
                return schedule
        else:
            return schedule