def get_lessons(self, time_and_location_texts): lessons = [] for i in range(0, len(time_and_location_texts) / 3): j = i * 3 week_num = re.findall("\d{1,2}", str(time_and_location_texts[j])) weeks = [i for i in range(int(week_num[1]), int(week_num[2]) + 1)] weekday = re.search("星期(.+),", str(time_and_location_texts[j + 1])).group(1) number = re.findall("\d{1,2}", str(time_and_location_texts[j + 1])) location = str(time_and_location_texts[j + 2]).replace( '<tagbr> ', '') location = location.replace('</tagbr>', '') location = location.replace(',', ' ') weeks_display_text = str(time_and_location_texts[j]).decode('utf8') weeks_raw = weeks_display_text[weeks_display_text.find(u':') + 1:weeks_display_text. find(u' ')].replace(u'~', u'-') weeks_display = re.sub(r'0([0-9])', r'\1', weeks_raw) lessons.append({ 'day': chinese_weekdays[weekday.decode('utf8')], 'start': int(number[0]), 'end': int(number[-1]), 'weeks': list_to_comma_separated(weeks), 'weeks_display': weeks_display, 'weeks_raw': weeks_raw, 'location': location, }) return lessons
def get_lessons(self, time_and_location_texts): lessons = [] for i in range(0, len(time_and_location_texts) / 3): j = i * 3 week_num = re.findall("\d{1,2}", str(time_and_location_texts[j])) weeks = [i for i in range(int(week_num[1]), int(week_num[2]) + 1)] weekday = re.search("星期(.+),", str(time_and_location_texts[j+1])).group(1) number = re.findall("\d{1,2}", str(time_and_location_texts[j+1])) location = str(time_and_location_texts[j+2]).replace('<tagbr> ', '') location = location.replace('</tagbr>', '') location = location.replace(',', ' ') weeks_display_text = str(time_and_location_texts[j]).decode('utf8') weeks_raw = weeks_display_text[weeks_display_text.find(u':')+1:weeks_display_text.find(u' ')].replace(u'~', u'-') weeks_display = re.sub(r'0([0-9])', r'\1', weeks_raw) lessons.append({ 'day': chinese_weekdays[weekday.decode('utf8')], 'start': int(number[0]), 'end': int(number[-1]), 'weeks': list_to_comma_separated(weeks), 'weeks_display': weeks_display, 'weeks_raw': weeks_raw, 'location': location, }) return lessons
def get_lesson(weeks_text, day_text, start_end_text, location): if location == ' ': location = None if day_text == '': day_text = None else: day_text = int(day_text) # week_num = re.findall("\d{1,2}", week_text) # try: # weeks = [i for i in range(int(week_num[0]), int(week_num[1]) + 1)] # except: # weeks = [] # try: # weeks = weeks + [i for i in range(int(week_num[2]), int(week_num[3]) + 1)] # except: # pass # if weeks == []: # if week_num == []: # weeks = None # else: # weeks = [week_num[0]] # weeks = list_to_comma_separated(weeks) # weeks = [] # week_num = week_text.split(',') # for col in week_num: # wkno = re.findall("\d{1,2}", col) # print wkno # if len(wkno) == 2: # weeks = weeks + range(int(wkno[0]), int(wkno[1]) + 1) # else: # weeks.append(wkno[0]) # weeks = list_to_comma_separated(weeks) weeks = [] weeks_show = '第' for col in week_text.split(','): if not col: pass elif '-' in col: tmp = re.findall("\d{1,2}", str(re.findall("\d{1,2}-\d{1,2}", col))) weeks += range(int(tmp[0]), int(tmp[1]) + 1) weeks_show += tmp[0] + '-' + tmp[1] + ' ' else: wkno = re.findall("\d{1,2}", col) if not wkno: pass elif len(wkno) == 1: weeks.append(int(wkno[0])) weeks_show += wkno[0] + ' ' else: print week_text raise AssertionError weeks_show = weeks_show.rstrip() weeks_show += '周' weeks = list_to_comma_separated(weeks) number = re.findall("\d{1,2}", start_end_text) if number == []: number = [None, None] else: number[0] = int(number[0]) if not day_text or not start_end_text or not week_text: return None lesson = { 'day': day_text, 'start': number[0], 'end': number[0], 'weeks': weeks, 'weeks_raw': weeks_text, 'weeks_display': weeks_show, 'location': location, } return lesson
def get_lessons(self, weeks_text, day_text, start_end_text, location): lessons = [] if location == ' ': location = None if day_text == '': day_text = None else: day_text = int(day_text) weeks = [] weeks_display = u'第' slices = weeks_text.split(',') if slices[0] == weeks_text: slices = weeks_text.split(u'、') if slices[0] == weeks_text: slices = weeks_text.split(u',') for mouse in slices: res = [] baidu = re.search('\d+-\d+', mouse) if baidu: data = re.findall('\d+', baidu.group(0)) res = range(int(data[0]), int(data[1]) + 1) weeks_display = weeks_display + '{0}-{1}'.format(data[0], data[1]) if u'单周' in mouse: pos = weeks_display.rfind(u' ') if pos != -1: weeks_display = weeks_display[:pos] + u'周 ' weeks_display = weeks_display + u'第{0}-{1}'.format(data[0], data[1]) weeks_display = weeks_display + u'单周' res = [i for i in res if i % 2 == 1] elif u'双周' in mouse: pos = weeks_display.rfind(u' ') if pos != -1: weeks_display = weeks_display[:pos] + u'周 ' weeks_display = weeks_display + u'第{0}-{1}'.format(data[0], data[1]) weeks_display = weeks_display + u'双周' res = [i for i in res if i % 2 == 0] else: google = re.search('\d+', mouse) if google: data = re.findall('\d+', google.group(0)) res = [int(data[0])] weeks_display = weeks_display + '{0}'.format(data[0]) weeks.extend(res) weeks_display = weeks_display + ' ' weeks_display = weeks_display[:-1] if weeks_display[-1] != u'周': weeks_display = weeks_display + u'周' weeks.sort() weeks = list_to_comma_separated(weeks) if weeks == '': weeks = None weeks_display = None number = re.findall("\d{1,2}", start_end_text) if number == []: number = [None, None] else: number[0] = int(number[0]) number[1] = int(number[1]) if day_text == None and location == None and weeks == None and number[0] == None and number[1] == None: return lessons lessons.append({ 'day': day_text, 'start': number[0], 'end': number[1], 'weeks': weeks, 'weeks_raw': weeks_text, 'weeks_display': weeks_display, 'location': location, }) return lessons