Example #1
0
 def sendFriends(self):
     #发送好友列表
     result=sql.GetData("select * from Friend where UserNumber='"+self.student[1]+"'")
     length=len(result)
     if length !=0:
         for item in result:
             stu=sql.GetData("select * from User where UserNumber='"+item[2]+"'")[0]
             self.sendLine("friendlist|||"+str(stu[1])+"|||"+str(stu[2])+"|||"+str(stu[4])+"|||"+str(stu[5]))
Example #2
0
 def sendMsg(self):
     result=sql.GetData("select * from Message where desnum='"+self.student[1]+"'")
     if not len(result)==0:
         for item in result:
             if item[3]=="2":
                 self.sendFriends()
             stu=sql.GetData("select * from User where UserNumber='"+item[1]+"'")
             for one in stu:
                 self.sendLine("friends|||add|||"+str(item[3])+"|||" +str(one[1])+"|||"+str(one[2])+"|||"+str(one[4])+"|||"+str(one[5]))
                 sql.Delete("Message", "desnum", self.student[1])
     else:
         print self.student[1]+"\tNo new message."
Example #3
0
    def sendTerm(self):
        #发送用户的学期列表,用户通过学期来获取课程信息
        result=sql.GetData("select Term from Course where UserNumber="+str(self.student[1]))
        length=len(result)
        for one in result:
            self.sendLine("term|||"+str(one[0]))
#        self.sendLine("termend")
        self.sendCourse(result[length-2][0])
Example #4
0
 def send10News(self,page,newsclass):
     #发送10条新闻,客户端一页显示10条
     ten=sql.GetData("SELECT * FROM News where NewsClassID="+newsclass+" order by id desc LIMIT "+str(int(page)*10)+ ",10")
     if len(ten)!=0:
         for item in ten:
             print item[0]
             self.sendLine("news|||"+str(item[0])+"|||"+str(item[1])+"|||"+str(item[4]))
         if page=="0":
             self.curnewsid[newsclass]=str(ten[0][0])
Example #5
0
 def searchFriend(self,name):
     result=sql.GetData("select * from User where UserName='******'")
     #搜索结果
     #不存在
     if len(result)==0:
         self.sendLine("friends|||search|||0") 
     else:
         for item in result:
             self.sendLine(("friends|||search|||1|||"+item[1]+"|||"+item[2]+"|||"+item[4]+"|||"+item[5]).encode('UTF-8'))
Example #6
0
    def sendCourse(self,term):
        #发送课程
        result=sql.GetData("select * from Course where UserNumber="+str(self.student[1])+" and Term="+term)[0]
#        self.sendLine("coursetable")
#        self.send(str(result[2]))
#        self.sendLine("yeah")
#        self.sendLine("coursetable|||"+str(term)+"|||0|||")
#        self.transport.write(str(result[2]))
#        print result[2]
        self.send("coursetable|||"+str(term)+"|||1|||",str(result[3]))
Example #7
0
 def sendNewsbyID(self,id,newsclass):
     #id=新闻id,newsclass=新闻类型
     #按照id发送新闻
     result=sql.GetData("select * from News where NewsClassID="+newsclass+" and id >'"+id+"' order by id desc ")
     if len(result) !=0:
         self.curnewsid[newsclass]=str(result[0][0])
         for item in result:
             self.sendLine("newsupdated|||"+str(item[0])+"|||"+str(item[1])+"|||"+str(item[4]))
     else:
         print newsclass+"\tNo new news."
Example #8
0
 def addFriend(self,number,hostnum,flag):
     result=sql.GetData("select * from User where UserNumber='"+number+"'")
     if len(result)==0: 
         self.sendLine("friends|||add|||0")        
     else:
         #self.sendLine("friends|||add|||3")
         sql.Insert("Message", ["sourcenum","desnum","flag"], [hostnum,number,flag])
         if flag=="2":
             #同意好友申请,数据库中增加记录
             self.inserFriend(number)
             self.sendFriends()
Example #9
0
def InsertMajorClass(Account,Password,Term):
    atry=actiontojwc2.Tojwc()
    get=atry.trytoconnect(Account,Password,Term)
    if get==0:
        atry.getContents()  
        parser=atry.GetMajorHTML( "http://jwc.ouc.edu.cn:8080/ouc/SS010.do")
        content=actiontojwc2.GrabAllCourse(parser)
        #对有条件的查询等操作,要注意字符串中含有数字等情况,
        select="select * from CourseClass where ParentID='1' "
        result=SQLHelper.GetData(select)           
        actiontojwc2.InsertClass(result, content)
        atry.logout()
    else :
            print get       
Example #10
0
    def sendFriendCourse(self,number,term):
        #发送课程
        result=sql.GetData("select * from Course where UserNumber="+str(number)+" and Term="+str(term))[0]
#        self.sendLine("friendcoursetable")
        self.send("friendcoursetable|||"+str(number)+"|||"+str(term)+"|||",str(result[3]))
Example #11
0
 def sendFriendTerm(self,number):
     result=sql.GetData("select Term from Course where UserNumber="+str(number))
     for one in result:
         self.sendLine("friendterm|||"+str(one[0]))
Example #12
0
    def sendNewsContent(self,id,newsclass):
        #发送id的新闻内容
        result=sql.GetData("select * from News where id="+id+" and NewsClassID="+newsclass)[0]
#        self.sendLine("newscontent")
        self.send("newscontent|||",str(result[2]))
Example #13
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'))
Example #14
0
def updateScore(term):
    students = sql.GetData("select * from User")
    for stu in students:
        updateoneScore(stu[1], stu[3], term)
Example #15
0
def updateCourse(term):
    students = sql.GetData("select * from User")
    a = 0
    for stu in students:
        updateoneCourse(stu[1], stu[3], term)
Example #16
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