Exemplo n.º 1
0
    def checkFirstLogin(self,num,pwd):
        #检查是否第一次登录(通过查数据库)
        count=sql.GetCountOne("User", "UserNumber", num)
        if count==0:
            print "第一次登录"
            self.firstlogin=True
            stu=actiontojwc.Connectjwc()
            result=stu.tryconnect(num, pwd, '20111')
            if result==0:    #学期以后一定要设置!!!
                stu.getUserInfo()
                stu.logout()
                self.student=[]
                self.student.append("none")
                self.student.append(stu.num)
                self.student.append(stu.name)
                self.student.append(stu.pwd)
                self.student.append(stu.major)
                self.student.append(stu.grade)
                self.factory.num=self.factory.num+1
                self.factory.users.append(stu.num)
                self.factory.ip.append(self.transport.getPeer().host)
                #抓取课程,存入数据库
                Field=["UserNumber","UserName","UserPwd","UserMajor","UserGrade"]
                Values=[stu.num,stu.name,stu.pwd,stu.major,stu.grade]
                #抓取已选课程
#                self.th.callInThread(self.grabCourse)
#                self.th.callInThread(self.grabScore)
                threads.deferToThread(self.grabCourse)
                threads.deferToThread(self.grabScore)
#没有异常处理
                sql.Insert("User", Field, Values)
                sql.Insert("Options",["UserNumber"],[stu.num])
                self.sendLine("login|||success|||"+stu.num+"|||"+stu.name+"|||"+stu.major+"|||"+stu.grade)
                #在线用户增加一个,user中增加一个学号,ip增加一个ip
                self.factory.num=self.factory.num+1
                self.factory.users.append(self.student[1])
                self.factory.ip.append(self.transport.getPeer().host)
                self.sendLine("options|||1|||1|||1|||1")
            elif result==1:
                self.sendLine("login|||failure|||1")
            else :
                self.sendLine("login|||failure|||2")
            
        else:#不是第一次登录
            print "不是第一次登录"
            stu=sql.GetData("select * from User where UserNumber="+num)[0]
            self.student=stu
            if self.student =="":
                self.sendLine("login|||failure|||1")
            elif self.student[3]!=pwd:
                self.sendLine("login|||failure|||1")
            else:
                datalog="login|||success|||"+self.student[1]+"|||"+self.student[2]+"|||"+self.student[4]+"|||"+self.student[5]
                #学号、姓名、专业、年级
                self.sendLine(datalog.encode('UTF-8'))
                #在线用户增加一个,user中增加一个学号,ip增加一个ip
                self.factory.num=self.factory.num+1
                self.factory.users.append(self.student[1])
                self.factory.ip.append(self.transport.getPeer().host)
                #新学期开始
#                if self.newtermstart==True:
#                    threads.deferToThread()
                
                
                self.options=sql.GetData("select * from Options where UserNumber="+num)[0]
                
                #模块定制
                dataopt="options|||"+self.options[2]+"|||"+self.options[3]+"|||"+self.options[4]+"|||"+self.options[5]
                self.sendLine(dataopt.encode('UTF-8'))
Exemplo n.º 2
0
def GetAllMajorCourse(Account,Password,Term):
    InsertMajorClass(Account,Password,Term);
    atry=actiontojwc2.Tojwc()
    academic=""
    department=""
    sepicalty=""
    get=atry.trytoconnect(Account,Password,Term)
    if get==0:
        print time.ctime()+"\t"+"抓取所有专业课---学期:"+Term
        try:
            atry.getContents()   
            #获得专业课下的学院分类
            select="select * from CourseClass where ParentID=1"
            result=SQLHelper.GetData(select)
            
            for i in range(len(result)):
                academic=result[i][0]
                #获得学院下的系分类
                select1="select * from CourseClass where ParentID='"+result[i][0]+"'"
                result1=SQLHelper.GetData(select1)
                for j in range(len(result1)):
                    department=result1[j][0]
                    #获得系下的专业课分类
                    select2="select * from CourseClass where ParentID='"+result1[j][0]+"'"
                    result2=SQLHelper.GetData(select2)
                    for k in range(len(result2)):
                        se=str(result2[k][0])#专业课分类号
                        major=str(result2[k][1])#专业课名称
                        sepicalty=str(se[4:5])#获取selSepicalty_select 传递字段
                        #print sepicalty+"--"+se
                        #调用GetCourseGrade获取该专业课下的年级序列
                        grade=atry.GetCourseGrade(academic, department, sepicalty, "http://jwc.ouc.edu.cn:8080/ouc/SS010.do")
                        if len(grade)>0:
                            #print len(grade)                 
                            for m in range(len(grade)):
                                course=[];
                                html="";
                                #获取当前年级下的html内容
                                html=atry.GetMajorCourseContont(academic, department, sepicalty, str(grade[m]), "http://jwc.ouc.edu.cn:8080/ouc/SS010.do")
                                #抓取课程信息
                                course=actiontojwc2.GrabMajorCourse(html)
                                #判断课程信息序列是否为空序列,如果不为空的话就继续操作
                                if len(course)>0: 
                                    #print len(course)  
                                    #print "专业"+str(major)+str(grade[m])                        
                                    for h in range(len(course)):
                                        #for t in range(len(course[h])):
                                        #print str(len(course[h]))  
                                        #print str(course[h][t])
                                        #判断课程是否已经存在于数据库中
                                        ask=["CourseNumber","Grade"]
                                        answer=[str(course[h][0]),grade[m]]
                                        count=SQLHelper.GetCountMore("MajorCourse", ask,answer)
                                        if count==1:
                                            continue;
                                        else:       
                                            #如果不存在的话进行插入数据操作                                                                
                                            field=["CourseName","CourseNumber","ChooseNumber","TeacherName","CourseTime","XueShi","CourseScore","Money","SchoolHouse","PeopleNumber","Remark","Grade","Term","Academic"]
                                            value=[str(course[h][10]),str(course[h][0]),str(course[h][1]),str(course[h][2]),str(course[h][3]),str(course[h][4]),str(course[h][5]),str(course[h][6]),str(course[h][7]),str(course[h][8]),str(course[h][9]),str(grade[m]),Term,str(major)]                                     
                                            insert=SQLHelper.Insert("MajorCourse",field ,value)
                                            if insert==1:
                                                print time.ctime()+"\t"+"ok"
                                                continue
                                            else:
                                                print time.ctime()+"\t"+"wrong"     
            print time.ctime()+"\t"+"专业课抓取完成。"  
            atry.logout()
        except Exception:
            atry.logout()
            print traceback.print_exc()
            return 3
    else :
            print get