def btnSaveSet_handle(self, event): if os.path.isdir(self.txtSetDownPath.GetValue()) and os.path.isdir( self.txtSetPrintPath.GetValue()): global_var.setting['download_path'] = self.txtSetDownPath.GetValue( ) global_var.setting['print_path'] = self.txtSetPrintPath.GetValue() GUItools.saveSetting() global_var.warnDialog.html.SetPage(u''' <html> <body bgcolor="#FFEFD5"> <centre><font size=4><strong>下载文件夹和打印文件夹的设置保存成功!</font></centre> </body> </html> ''') global_var.warnDialog.SetSize((400, 150)) global_var.warnDialog.SetTitle(u"设置完成") global_var.warnDialog.ShowModal() else: global_var.warnDialog.html.SetPage(u''' <html> <body bgcolor="#FFEFD5"> <centre><font size=4><strong>你设置的文件夹不存在,请重新设置</font></centre> </body> </html> ''') global_var.warnDialog.SetSize((300, 150)) global_var.warnDialog.SetTitle(u"文件夹不存在!") global_var.warnDialog.ShowModal()
def btnLogin_handle(self, event): self.btnSaveSet_handle(event) if os.path.isdir(self.txtSetDownPath.GetValue()) and os.path.isdir( self.txtSetPrintPath.GetValue()): userid = self.txtUserid.GetValue() userpass = self.txtUserpass.GetValue() if (userid == '' or userpass == ''): global_var.warnDialog.html.SetPage(u''' <html> <body bgcolor="#FFEFD5"> <centre><font size=4><strong>用户名和密码不能为空!</font></centre> </body> </html> ''') global_var.warnDialog.SetSize((300, 150)) global_var.warnDialog.SetTitle(u"请输入用户名密码") global_var.warnDialog.ShowModal() else: self.info = [userid, userpass] if (self.autoSaved.GetValue()): global_var.setting['userinfo'][0] = aeslib.encode(userid) global_var.setting['userinfo'][1] = aeslib.encode(userpass) global_var.setting['autologin'] = True GUItools.saveSetting() else: global_var.setting['autologin'] = False GUItools.saveSetting() global_var.setting['userinfo'][0] = aeslib.encode(userid) global_var.setting['userinfo'][1] = aeslib.encode(userpass) self.EndModal(wx.ID_OK) return
def btnLogin_handle(self,event): self.btnSaveSet_handle(event) if os.path.isdir(self.txtSetDownPath.GetValue()) and os.path.isdir(self.txtSetPrintPath.GetValue()): userid=self.txtUserid.GetValue() userpass=self.txtUserpass.GetValue() if (userid == '' or userpass=='' ): global_var.warnDialog.html.SetPage(u''' <html> <body bgcolor="#FFEFD5"> <centre><font size=4><strong>用户名和密码不能为空!</font></centre> </body> </html> ''') global_var.warnDialog.SetSize((300,150)) global_var.warnDialog.SetTitle(u"请输入用户名密码") global_var.warnDialog.ShowModal() else: self.info=[userid,userpass] if (self.autoSaved.GetValue()): global_var.setting['userinfo'][0]=aeslib.encode(userid) global_var.setting['userinfo'][1]=aeslib.encode(userpass) global_var.setting['autologin']=True GUItools.saveSetting() else: global_var.setting['autologin']=False GUItools.saveSetting() global_var.setting['userinfo'][0]=aeslib.encode(userid) global_var.setting['userinfo'][1]=aeslib.encode(userpass) self.EndModal(wx.ID_OK) return
def btnSaveSet_handle(self,event): if os.path.isdir(self.txtSetDownPath.GetValue()) and os.path.isdir(self.txtSetPrintPath.GetValue()): global_var.setting['download_path']=self.txtSetDownPath.GetValue() global_var.setting['print_path']=self.txtSetPrintPath.GetValue() GUItools.saveSetting() global_var.warnDialog.html.SetPage(u''' <html> <body bgcolor="#FFEFD5"> <centre><font size=4><strong>下载文件夹和打印文件夹的设置保存成功!</font></centre> </body> </html> ''') global_var.warnDialog.SetSize((400,150)) global_var.warnDialog.SetTitle(u"设置完成") global_var.warnDialog.ShowModal() else: global_var.warnDialog.html.SetPage(u''' <html> <body bgcolor="#FFEFD5"> <centre><font size=4><strong>你设置的文件夹不存在,请重新设置</font></centre> </body> </html> ''') global_var.warnDialog.SetSize((300,150)) global_var.warnDialog.SetTitle(u"文件夹不存在!") global_var.warnDialog.ShowModal()
def DownCourse(courseindex): global_var.app_stat = 'downcourse' conn = global_var.conn list = global_var.list download_path = global_var.setting['download_path'] os.chdir(download_path) coursedir = os.path.join(download_path, list[courseindex][1]) if not os.path.exists(coursedir): os.mkdir(coursedir) for fileindex in range(len(global_var.list[courseindex][2])): file = global_var.list[courseindex][2][fileindex] if FileType(courseindex, fileindex) != 0: continue else: if global_var.app_stat == 'breakdown': global_var.statusBar.SetStatusText(u"状态:空闲", 2) return #filepath=os.path.join(download_path,list[courseindex][1],file['file_realname']) #newfile=open(filepath,'wb') #global_var.statusBar.SetStatusText(u'正在下载'+file['file_realname']+' ......',1) #print u'正在下载'+file['file_realname']+u' ......' #newfile.write(conn.open(file['file_url']).read()) #newfile.close() #print u'=='+file['file_realname']+u'下载完毕' DownSingle(courseindex, fileindex) #此句刷新文件列表显示 GUItools.ShowFile(courseindex) global_var.lstLocalFile.InsertStringItem( len(global_var.local_files), global_var.list[courseindex][2][fileindex]['file_realname']) global_var.lstLocalFile.SetItemImage(len(global_var.local_files), 0) #注意print_file列表中只有索引没有其他信息 #local_files中是课程索引和文件索引的元组 global_var.print_files.append(len(global_var.local_files)) global_var.local_files.append((courseindex, fileindex)) global_var.statusBar.SetStatusText( u'<<' + list[courseindex][1] + u'>>的所有课件下载完毕', 1) print '-' * 80 print '>>' + list[courseindex][1] + u' 的课程文件下载完毕'
def refreshFiles(): global_var.app_stat = 'refreshfile' global_var.newfile = [] oldfile = [] global_var.prelist = deepcopy(global_var.list) list = global_var.list prelist = global_var.prelist conn = global_var.conn conn.login() pf = parserFile() #存储旧文件 for course in prelist: for file in course[2]: oldfile.append(file['file_url']) #打开课程下载界面,解析文件地址 for course in list: global_var.log_num += 1 if (global_var.log_num == 2): global_var.t2 = GUItools.MyThread(count, 'name') global_var.t2.start() ff = conn.open( '/MultiLanguage/lesson/student/download.jsp?course_id=' + course[0][-6:]) filepage = ff.read() ff.close() pf.__init__() pf.feed(filepage) course[2] = pf.files #把新的文件加入新文件列表中 for courseindex in range(len(list)): course = list[courseindex] for fileindex in range(len(course[2])): file = course[2][fileindex] if not (file['file_url'] in oldfile): global_var.newfile.append((courseindex, fileindex)) #确定每个文件的具体信息(文件名,实际大小) for course in list: print u"-" * 60 global_var.statusBar.SetStatusText(u"正在解析<<" + course[1] + u">>的课件信息:", 1) print u"....开始解析 " + course[1] + u"的课件信息:" print u"-" * 60 for file in course[2]: data = conn.open(file['file_url'], method="HEAD") uu = data.getheader('content-disposition') file['file_realsize'] = int(data.getheader('content-length')) data.read() data.close() raw_name = re.findall(r'=".*"', uu)[0][2:-1] raw_name = raw_name.decode('gbk') global_var.statusBar.SetStatusText( u"发现文件 " + raw_name + u' 大小:' + str(file['file_realsize']), 1) print u" " + raw_name + u' 大小:' + str(file['file_realsize']) #找寻随机数 try: file_random = re.findall(r'\S+_(\d{7,9}).\w+$', raw_name)[0] except: file_random = '' if file_random: file['file_realname'] = raw_name.replace('_' + file_random, '') else: print '无法解析除随机号,使用原文件名,请报告这个错误' file['file_realname'] = raw_name # file['file_realname']=raw_name ShowNew()
def __init__(self, *args, **kwds): # begin wxGlade: MainFrame.__init__ kwds["style"] = wx.DEFAULT_FRAME_STYLE wx.Frame.__init__(self, *args, **kwds) self.panel_1 = wx.Panel(self, -1) self.panel_4 = wx.Panel(self.panel_1, -1) self.panel_7 = wx.Panel(self.panel_4, -1) self.panel_3 = wx.Panel(self.panel_1, -1) self.panel_6 = wx.Panel(self.panel_3, -1) self.panel_5 = wx.Panel(self.panel_3, -1) self.sizer_7_staticbox = wx.StaticBox(self.panel_6, -1, _(u"课程公告")) self.sizer_10_staticbox = wx.StaticBox(self.panel_4, -1, _(u"本次下载的文件")) self.sizer_11_staticbox = wx.StaticBox(self.panel_4, -1, _(u"远程文件信息")) self.sizer_6_staticbox = wx.StaticBox(self.panel_5, -1, _(u"我的课程")) # Menu Bar self.mainFrame_menubar = wx.MenuBar() self.SetMenuBar(self.mainFrame_menubar) self.excMenu = wx.Menu() self.logItem = wx.MenuItem(self.excMenu, wx.NewId(), _(u"登录设置"), "", wx.ITEM_NORMAL) self.excMenu.AppendItem(self.logItem) self.hideItem = wx.MenuItem(self.excMenu, wx.NewId(), _(u"隐藏"), "", wx.ITEM_NORMAL) self.excMenu.AppendItem(self.hideItem) self.exitItem = wx.MenuItem(self.excMenu, wx.NewId(), _(u"退出"), "", wx.ITEM_NORMAL) self.excMenu.AppendItem(self.exitItem) self.mainFrame_menubar.Append(self.excMenu, _(u"操作")) self.hlpMenu = wx.Menu() self.hlpItem = wx.MenuItem(self.hlpMenu, wx.NewId(), _(u"帮助文档"), "", wx.ITEM_NORMAL) self.hlpMenu.AppendItem(self.hlpItem) self.aboutItem = wx.MenuItem(self.hlpMenu, wx.NewId(), _(u"说明"), "", wx.ITEM_NORMAL) self.hlpMenu.AppendItem(self.aboutItem) self.mainFrame_menubar.Append(self.hlpMenu, _(u"帮助")) ###### Task Icon! ####### self.tbicon = ddTaskBarIcon(self) self.tbicon.Bind(wx.EVT_MENU, self.exitApp, id=wx.ID_EXIT) self.tbicon.Bind(wx.EVT_MENU, self.hide, id=self.tbicon.HIDE) self.tbicon.Bind(wx.EVT_MENU, self.restore, id=self.tbicon.RESTORE) # Menu Bar end self.statusBar = self.CreateStatusBar(1, 0) # Tool Bar self.mainFrame_toolbar = wx.ToolBar(self, -1) self.SetToolBar(self.mainFrame_toolbar) self.toolLogin=self.mainFrame_toolbar.AddLabelTool(wx.NewId(), _(u"登陆"), wx.Bitmap(rp("extra\\Login.png"), wx.BITMAP_TYPE_PNG), wx.NullBitmap, wx.ITEM_NORMAL, _(u"登陆网络学堂"), "") self.toolDownAll=self.mainFrame_toolbar.AddLabelTool(wx.NewId(), _(u"下载更新"), wx.Bitmap(rp("extra\\DownAll.png"), wx.BITMAP_TYPE_PNG), wx.NullBitmap, wx.ITEM_NORMAL, _(u"一键即可查询所有课程的课件,下载所有课件,并显示出所有课程的公告,您可以去喝咖啡啦:)"), "") self.toolDownAllFiles=self.mainFrame_toolbar.AddLabelTool(wx.NewId(), _(u"下载课件"), wx.Bitmap(rp("extra\\DownFile.png"), wx.BITMAP_TYPE_PNG), wx.NullBitmap, wx.ITEM_NORMAL, _(u"下载所有课程的课件"), "") self.toolRefreshNotes=self.mainFrame_toolbar.AddLabelTool(wx.NewId(), _(u"更新公告"), wx.Bitmap(rp("extra\\Notice.png"), wx.BITMAP_TYPE_PNG), wx.NullBitmap, wx.ITEM_NORMAL, _(u"刷新并显示所有课程的公告"), "") self.tollRefreshAll=self.mainFrame_toolbar.AddLabelTool(wx.NewId(), _(u"刷新"), wx.Bitmap(rp("extra\\Refresh.png"), wx.BITMAP_TYPE_PNG), wx.NullBitmap, wx.ITEM_NORMAL, _(u"重新查询所有课程的课件列表"), "") self.toolStop=self.mainFrame_toolbar.AddLabelTool(wx.NewId(), _(u"停止"), wx.Bitmap(rp("extra\\Stop.png"), wx.BITMAP_TYPE_PNG), wx.NullBitmap, wx.ITEM_NORMAL, _(u"停止正在进行的动作"), "") self.toolHide=self.mainFrame_toolbar.AddLabelTool(wx.NewId(), _(u"最小化到托盘"), wx.Bitmap(rp("extra\\Hide.png"), wx.BITMAP_TYPE_PNG), wx.NullBitmap, wx.ITEM_NORMAL, _(u"最小化到右下角的任务栏托盘"), "") # Tool Bar end self.lstRemoteCourse = wx.ListCtrl(self.panel_5, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER) self.html = wx.html.HtmlWindow(self.panel_6, -1) self.lstLocalFile = wx.ListCtrl(self.panel_4, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER) self.btnCopy = wx.Button(self.panel_4, -1, _(u"把标记的课件复制到打印文件夹")) self.lstRemoteFile = wx.ListCtrl(self.panel_7, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER) self.btnDownMarked = wx.Button(self.panel_7, -1, _(u"下载标记的课件")) self.btnMarkAll = wx.Button(self.panel_7, -1, _(u"标记本课程所有课件")) self.btnDemarkAll = wx.Button(self.panel_7, -1, _(u"取消所有课件的标记")) self.btnRefresh = wx.Button(self.panel_7, -1, _(u"刷新本课程")) #self.statusBar = self.CreateStatusBar() GUItools.FrameInit(self) self.__set_properties() self.__do_layout()