Exemplo n.º 1
0
def _handleCourseFromTable(string, xq, SchoolCode=''):

    meg = ' '

    def __ListDaydataFromString(context_list):
        ccourse = course()
        return [
            ccourse.daydataFromDayString(context_list[11 + i])
            for i in range(7)
        ]

    strainer = SoupStrainer('table', border='1')
    soup_course = BeautifulSoup(string,
                                parseOnlyThese=strainer,
                                fromEncoding='GBK')
    tbody = soup_course.table
    if tbody is None:
        return string
    for i, tr in enumerate(tbody):
        if tr != None:
            if i > 0:
                context_list = list()
                for td in tr.contents:
                    if td.font != None:
                        context_list.append(td.font.getText().replace(
                            u' ', '').strip(u' '))

                    elif td.a != None:
                        context_list.append(td.a.getText().replace(
                            u' ', '').strip(u' '))
                    else:
                        temp = td.getText().replace(u' ', '').strip(u' ')
                        context_list.append(temp)

                ckeyid = context_list[0]
                for i in range(7):
                    tempStr = context_list[i + 11].strip()
                    if tempStr:
                        ckeyid += str(i) + tempStr
                ckeyid = ckeyid.strip()
                ckeyid += context_list[7]
                queryset = course.objects.filter(keyid=ckeyid, termnumber=xq)
                if queryset.count() > 0:
                    ccourse = queryset.get(keyid=ckeyid)
                    ccourse.SchoolCode = SchoolCode
                    ccourse.CourseType = context_list[3]
                    ccourse.name = context_list[1]
                    ccourse.save()

                else:
                    dayx = __ListDaydataFromString(context_list)

                    ccourse = course(termnumber=xq,keyid=ckeyid,courseid=context_list[0],classnum=context_list[2],\
                        name=context_list[1],rawplace=None,time_test=None,credit=context_list[4],\
                        time=context_list[10],day1=dayx[0],day2=dayx[1],day3=dayx[2],day4=dayx[3],\
                        day5=dayx[4],day6=dayx[5],day7=dayx[6],teachername=context_list[7],\
                        SchoolCode = SchoolCode,Coursetype = context_list[3],course_category=0)
                    ccourse.save()

    return meg
Exemplo n.º 2
0
def savecourse(context,cuser):
    
    courseid = course.objects.filter(name__contains=context['name'],termnumber=getTermNumber(),teachername__contains=context['teachername'])[0].courseid
    error = u''
    keyid = courseid + context.get('timeKey','') + context['teachername']
    place_context = match_location_context(context['timeandplace'])
    try:
        ccourse = course.objects.get(keyid = keyid,termnumber=term)
    except:
        context.pop('timeandplace')
        context.pop('timeKey')
        for x in xrange(7):
                        context['day'+str(x+1)] = course.daydataFromDayString(context['day'+str(x+1)])
        ccourse = course(keyid=keyid,termnumber=getTermNumber(),course_category=0,**context)
        ccourse.save()
        if place_context:
               
                   ccourse.rawplace = place_context['name']
                   ccourse.save()
            
    #       try:
    #           ccourse = course.objects.get(courseid=context['courseid'],termnumber=term,teachername__contains=context['teachername'])
    #       except:
    #           pass
    ccourse.user.add(cuser)
    ccourse.save()
    if place_context:
        ccourse.rawplace = place_context['name']
        ccourse.save()
    return error
Exemplo n.º 3
0
def _handleCourseFromTable2(string,xq,SchoolCode = None):
    #xq=1004
    meg = ' '
    def __ListDaydataFromString(context_list):
            ccourse = course()          
            return [ccourse.daydataFromDayString(context_list[10+i]) for i in range(7)]
    strainer=SoupStrainer('table',border='1')
    soup_course=BeautifulSoup(string,parseOnlyThese=strainer,fromEncoding="GBK")
    tbody=soup_course.table
    if tbody is None:
        return '-2'
    for i,tr in enumerate(tbody):
        if tr != None:
            if i > 0:
                
                context_list = list()
                for td in tr.contents:
                    if td.font != None:
                        context_list.append(td.font.getText().replace(u' ','').strip(u' ')) 
                    
                    elif td.a != None:    
                        context_list.append(td.a.getText().replace(u' ','').strip(u' '))
                    else:
                        temp = td.getText().replace(u' ','').strip(u' ')
                        context_list.append(temp)
            

                ckeyid = context_list[0]
                for i in range(7):
                        tempStr = context_list[i+10].strip()
                        if tempStr:
                                ckeyid += str(i) + tempStr
                ckeyid = ckeyid.strip()
                ckeyid += context_list[6]
                queryset = course.objects.filter(keyid=ckeyid,termnumber=xq)
                if queryset.count() > 0:
                   ccourse = queryset.get(keyid=ckeyid)
                   ccourse.SchoolCode = SchoolCode
                   ccourse.CourseType = context_list[3]
                   ccourse.name = context_list[1]

                   ccourse.save()
                   
                else:
                   dayx = __ListDaydataFromString(context_list)
                   
                   ccourse = course(termnumber=xq,keyid=ckeyid,courseid=context_list[0],classnum=0,\
                       name=context_list[1],rawplace=None,time_test=None,credit=context_list[3],\
                       time=context_list[9],day1=dayx[0],day2=dayx[1],day3=dayx[2],day4=dayx[3],\
                       day5=dayx[4],day6=dayx[5],day7=dayx[6],teachername=context_list[6],\
                       SchoolCode = SchoolCode,Coursetype = context_list[2],course_category=0)
                   ccourse.save()
                  
      
    return meg
Exemplo n.º 4
0
def savecourse(context, cuser):

    courseid = course.objects.filter(
        name__contains=context['name'],
        termnumber=getTermNumber(),
        teachername__contains=context['teachername'])[0].courseid
    error = u''
    keyid = courseid + context.get('timeKey', '') + context['teachername']
    place_context = match_location_context(context['timeandplace'])
    try:
        ccourse = course.objects.get(keyid=keyid, termnumber=term)
    except:
        context.pop('timeandplace')
        context.pop('timeKey')
        for x in xrange(7):
            context['day' + str(x + 1)] = course.daydataFromDayString(
                context['day' + str(x + 1)])
        ccourse = course(keyid=keyid,
                         termnumber=getTermNumber(),
                         course_category=0,
                         **context)
        ccourse.save()
        if place_context:

            ccourse.rawplace = place_context['name']
            ccourse.save()

    #       try:
    #           ccourse = course.objects.get(courseid=context['courseid'],termnumber=term,teachername__contains=context['teachername'])
    #       except:
    #           pass
    ccourse.user.add(cuser)
    ccourse.save()
    if place_context:
        ccourse.rawplace = place_context['name']
        ccourse.save()
    return error
Exemplo n.º 5
0
 def __ListDaydataFromString(context_list):
     ccourse = course()
     return [
         ccourse.daydataFromDayString(context_list[10 + i])
         for i in range(7)
     ]
Exemplo n.º 6
0
 def __ListDaydataFromString(context_list):
     ccourse = course()
     return [ccourse.encodeTimeFromDayString(context_list[10 + i]) for i in range(7)]
Exemplo n.º 7
0
def _handleCourseFromTable(string, xq, SchoolCode=""):
    meg = " "

    def __ListDaydataFromString(context_list):
        ccourse = course()
        return [ccourse.encodeTimeFromDayString(context_list[11 + i]) for i in range(7)]

    strainer = SoupStrainer("table", border="1")
    soup_course = BeautifulSoup(string, parseOnlyThese=strainer, fromEncoding="GBK")
    tbody = soup_course.table
    if tbody is None:
        return "-1"
    for i, tr in enumerate(tbody):
        if tr != None:
            if i > 0:
                context_list = list()
                for td in tr.contents:
                    if td.font != None:
                        context_list.append(td.font.getText().strip(u" ").strip(u" "))

                    elif td.a != None:
                        context_list.append(td.a.getText().strip(u" ").strip(u" "))
                    else:
                        temp = td.getText().strip(u" ").strip(u" ")
                        context_list.append(temp)

                ckeyid = context_list[0]
                for i in range(7):
                    tempStr = context_list[i + 11].strip()
                    if tempStr:
                        ckeyid += str(i) + tempStr
                ckeyid = ckeyid.strip()
                ckeyid += context_list[7]
                queryset = course.objects.filter(keyid=ckeyid, termnumber=xq)
                if queryset.count() > 0:
                    ccourse = queryset.get(keyid=ckeyid)
                    ccourse.SchoolCode = SchoolCode
                    ccourse.CourseType = context_list[3]
                    ccourse.save()

                else:
                    dayx = __ListDaydataFromString(context_list)

                    ccourse = course(
                        termnumber=xq,
                        keyid=ckeyid,
                        courseid=context_list[0],
                        classnum=context_list[2],
                        name=context_list[1],
                        rawplace=None,
                        time_test=None,
                        credit=context_list[4],
                        time=context_list[10],
                        day1=dayx[0],
                        day2=dayx[1],
                        day3=dayx[2],
                        day4=dayx[3],
                        day5=dayx[4],
                        day6=dayx[5],
                        day7=dayx[6],
                        teachername=context_list[7],
                        SchoolCode=SchoolCode,
                        Coursetype=context_list[3],
                    )
                    ccourse.save()

    return meg
Exemplo n.º 8
0
 def __ListDaydataFromString(context_list):
         ccourse = course()          
         return [ccourse.daydataFromDayString(context_list[11+i]) for i in range(7)]
Exemplo n.º 9
0
 def __ListDaydataFromString(context_list):
     ccourse = course()
     return [
         ccourse.encodeTimeFromDayString(context_list[11 + i])
         for i in range(7)
     ]