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)
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+"该用户已经登录,请登出或稍后再试!"
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'))