Exemplo n.º 1
0
 def sendNewsPage(self,newsclass):
     #教务处新闻页数
     jwc=sql.GetCountOne("News", "NewsClassID", newsclass)
     page=jwc/10
     if jwc%10 !=0:
         page=page+1
     self.sendLine("newspage|||"+str(page)+"|||"+newsclass)
Exemplo n.º 2
0
def GetStudentScore(Account,Password,Term):
    atry=actiontojwc2.Tojwc()
#    zhanghao="020252009012";
    get=atry.trytoconnect(Account,Password,Term)
    if get==0:
        try:
            print time.ctime()+"\t"+"抓取学生成绩---学号:"+Account
            atry.getContents()
            parser=atry.GetScore("http://jwc.ouc.edu.cn:8080/ouc/SS018.do")
            #name=parser.findAll('p')#border  属性唯一
            number=parser.findAll('font')#number[3]为个人及格分数
            chengji=parser.findAll('table',align="center")#center属性唯一
            count=SQLHelper.GetCountOne("Mark", "UserID", Account);
            if count==0:
                field=["UserID","PassScore","MarkContent"]
                #MySQLdb.escape_string()参数必须是string类型的
                value=[Account,MySQLdb.escape_string(str(number[3])),MySQLdb.escape_string(str(chengji[0]))]
                insert=SQLHelper.Insert("Mark", field, value)
                if insert==1:
                    print time.ctime()+"\t成绩---"+Account+"---Insert OK"
                else:
                    print "插入个人成绩出现程序上的错误,请检查!!"
            else:
                fields=["PassScore","MarkContent"]
                values=[MySQLdb.escape_string(str(number[3])),MySQLdb.escape_string(str(chengji[0]))]
                update=SQLHelper.Update("Mark", fields, values, "UserID", Account)
                if update==1:
                    print time.ctime()+"\t成绩---"+Account+"---Update OK"
                else:
                    print "插入个人成绩出现程序上的错误,请检查!!"
            atry.logout() 
            print time.ctime()+"\t"+"学生成绩更新完成。"   
        except Exception:
            atry.logout()
            print traceback.print_exc()
            return 3
    else :
        if get==1:
            print time.ctime()+"\t成绩---"+Account+"登陆失败,请检查用户名、密码是否正确。"
        if get==2:
            print time.ctime()+"\t成绩---"+Account+"该用户已经登录,请登出或稍后再试!"
Exemplo n.º 3
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'))