コード例 #1
0
ファイル: update_unit.py プロジェクト: corvinalive/CalManager
class UpdateForm(QtGui.QDialog):
    def __init__(self,cd,parent=None):
        super(UpdateForm, self).__init__(parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.Commondata = cd
        self.setWindowTitle(u"Обновление Calmanager. Текущая версия "+self.Commondata.version)
        self.connect(self.ui.CheckpushButton, QtCore.SIGNAL("clicked(bool)"), self.CheckUpdatesButton)
        self.connect(self.ui.addpushButton, QtCore.SIGNAL("clicked(bool)"), self.AddButton)
        self.connect(self.ui.deletepushButton, QtCore.SIGNAL("clicked(bool)"), self.DeleteButton)
        self.connect(self.ui.LoadpushButton, QtCore.SIGNAL("clicked(bool)"), self.LoadButton)
        
    def CheckInet(self):
        try:
            socket.gethostbyaddr('www.yandex.ru')
        except socket.gaierror:
            return False
        return True
    
    def LoadButton(self):
        #print "Load"

        c = self.ui.listWidget2.count()
        #Проверка наличия выбранных элементов для загрузки
        if c==0:
            self.ui.Statuslabel.setText(u"Ничего не выбрано для загрузкиs")
            return
        #Проверка наличия инета
        if self.CheckInet()==False:
            self.ui.Statuslabel.setText(u"Нет соединения с интернет. Установите соединение и повторите попытку")
            return
        
        #Загрузка файлов
        #Формирование списка
        fn=[]
        for i in range(c):
            #item - filename in ftp-server
            item=self.ui.listWidget2.item(i).data(1)
            iname=item.encode("utf8","latin-1")
            #print "item=",item,"basename=",os.path.basename(item),"iname=",iname
            fn.append((iname,os.path.basename(item)))
            #fn[0] - filename in ftp-server
            #fn[1] - only filename without path
        server = "ims-nv.ru"
        try:
            ftp = ftplib.FTP(server,timeout=30)
            ftp.login()
        except ftplib.all_errors, err:
            self.ui.Statuslabel.setText(u"Ошибка проверки: "+str(err).decode("utf-8"))

        try:
            for fni in fn:
                #print "Get file ", fni[0]
                ftp.retrbinary("RETR "+fni[0], open(fni[1], "wb+").write)
            self.ui.Statuslabel.setText(u"Выбранные обновления загружены")
        except ftplib.all_errors, err:
            self.ui.Statuslabel.setText(u"Ошибка проверки: "+str(err).decode("utf-8"))
コード例 #2
0
ファイル: update_unit.py プロジェクト: corvinalive/CalManager
 def __init__(self,cd,parent=None):
     super(UpdateForm, self).__init__(parent)
     self.ui = Ui_Dialog()
     self.ui.setupUi(self)
     self.Commondata = cd
     self.setWindowTitle(u"Обновление Calmanager. Текущая версия "+self.Commondata.version)
     self.connect(self.ui.CheckpushButton, QtCore.SIGNAL("clicked(bool)"), self.CheckUpdatesButton)
     self.connect(self.ui.addpushButton, QtCore.SIGNAL("clicked(bool)"), self.AddButton)
     self.connect(self.ui.deletepushButton, QtCore.SIGNAL("clicked(bool)"), self.DeleteButton)
     self.connect(self.ui.LoadpushButton, QtCore.SIGNAL("clicked(bool)"), self.LoadButton)