コード例 #1
0
ファイル: pypordb_devices.py プロジェクト: hwmay/pordb3
 def accept(self):
     position = 0
     zu_erfassen = []
     zu_erfassen.append("DELETE FROM pordb_mpg_verzeichnisse")
     for i in range(self.tableWidget.rowCount()):
         cell = []
         position += 1
         for j in range(self.tableWidget.columnCount()):
             tableItem = self.tableWidget.item(i, j)
             try:
                 cellItem = str(QtGui.QTableWidgetItem(tableItem).text())
                 cell.append(cellItem)
             except:
                 pass
         try:
             if cell[0]:
                 werte = []
                 werte.append(cell[0])
                 zu_erfassen.append(["INSERT INTO pordb_mpg_verzeichnisse (dir) VALUES (%s)", werte])
         except:
             pass
     
     update_func = DBUpdate(self, zu_erfassen)
     DBUpdate.update_data(update_func)
     
     self.device_fuellen()
     self.close()
コード例 #2
0
ファイル: pypordb_land.py プロジェクト: hwmay/pordb3
 def onSpeichern(self):
     zu_erfassen = []
     zu_erfassen.append("DELETE FROM pordb_iso_land")
     for i in range(self.tableWidgetLaender.rowCount()):
         cell = []
         for j in range(self.tableWidgetLaender.columnCount()):
             if j == 0: # column 0 is only flag icon
                 continue
             tableItem = self.tableWidgetLaender.item(i, j)
             try:
                 cellItem = str(QtGui.QTableWidgetItem(tableItem).text())
                 cell.append(cellItem)
             except:
                 pass
         try:
             if cell[0]:
                 werte = []
                 werte.append(cell[0])
                 werte.append(cell[1])
                 werte.append(cell[2])
                 werte.append(cell[3])
                 zu_erfassen.append(["INSERT INTO pordb_iso_land (iso, land, aktiv, national) VALUES (%s, %s, %s, %s)", werte])
         except:
             pass
     
     update_func = DBUpdate(self, zu_erfassen)
     DBUpdate.update_data(update_func)
     
     self.nation_fuellen()
     self.close()
コード例 #3
0
ファイル: pypordb_suchbegriffe.py プロジェクト: hwmay/pordb3
 def onSpeichern(self):
     position = 0
     zu_erfassen = []
     zu_erfassen.append("DELETE FROM pordb_suchbegriffe")
     for i in range(self.tableWidgetSuche.rowCount()):
         cell = []
         position += 1
         for j in range(self.tableWidgetSuche.columnCount()):
             tableItem = self.tableWidgetSuche.item(i, j)
             try:
                 cellItem = str(QtGui.QTableWidgetItem(tableItem).text())
                 cell.append(cellItem)
             except:
                 pass
         try:
             if cell[0]:
                 werte = []
                 werte.append(cell[0])
                 werte.append(cell[1])
                 zu_erfassen.append(["INSERT INTO pordb_suchbegriffe (suchbegriff, alternative) VALUES (%s, %s)", werte])
         except:
             pass
     
     update_func = DBUpdate(self, zu_erfassen)
     DBUpdate.update_data(update_func)
     
     self.close()
コード例 #4
0
ファイル: pypordb_devices.py プロジェクト: hwmay/pordb
	def accept(self):
		position = 0
		zu_erfassen = []
		zu_erfassen.append("delete from pordb_mpg_verzeichnisse")
		for i in range(self.tableWidget.rowCount()):
			cell = []
			position += 1
			for j in range(self.tableWidget.columnCount()):
				tableItem = self.tableWidget.item(i, j)
				try:
					cellItem = str(QtGui.QTableWidgetItem(tableItem).text())
					cell.append(cellItem)
				except:
					pass
			try:
				if cell[0]:
					zu_erfassen.append("insert into pordb_mpg_verzeichnisse (dir) values ('" +cell[0] +"')")
			except:
				pass
		
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		self.device_fuellen()
		self.close()
コード例 #5
0
ファイル: pypordb_land.py プロジェクト: hwmay/pordb
	def onSpeichern(self):
		position = 0
		zu_erfassen = []
		zu_erfassen.append("delete from pordb_iso_land")
		for i in range(self.tableWidgetLaender.rowCount()):
			cell = []
			position += 1
			for j in range(self.tableWidgetLaender.columnCount()):
				tableItem = self.tableWidgetLaender.item(i, j)
				try:
					cellItem = str(QtGui.QTableWidgetItem(tableItem).text())
					cell.append(cellItem)
				except:
					pass
			try:
				if cell[0]:
					zu_erfassen.append("insert into pordb_iso_land (iso, land, aktiv, national) values ('" +cell[0] +"', '" +cell[1] +"', '" +cell[2] +"', '" +cell[3] +"')")
			except:
				pass
		
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		self.nation_fuellen()
		self.close()
コード例 #6
0
 def accept(self):
     werte = []
     zu_erfassen = []
     werte.append(self.url)
     zu_erfassen.append(["INSERT INTO pordb_bookmarks (url) VALUES (%s)", werte])
     update_func = DBUpdate(self, zu_erfassen)
     DBUpdate.update_data(update_func)
     
     self.close()
コード例 #7
0
	def accept(self):
		if not self.comboBoxDarstellerneuGeschlecht.currentText():
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please select the gender"))
			return
		# insert/update-Anweisung aufbauen
		datum = str(time.localtime()[0]) + '-' + str(time.localtime()[1]) + '-' + str(time.localtime()[2])
		zu_erfassen = unicode("INSERT into pordb_darsteller VALUES ('" +self.darsteller.replace("'", "''") +"', '" +str(self.comboBoxDarstellerneuGeschlecht.currentText()) + "', '" +str(0) +"', '" +datum +"', '" +str(self.comboBoxDarstellerneuHaarfarbe.currentText()) +"', '" +str(self.comboBoxDarstellerneuNation.currentText())[0:2] +"', '" +self.lineEditDarstellerneuTattoo.text().replace("'", "''") +"', '" +str(self.comboBoxDarstellerneuEthnic.currentText()) +"')")
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		self.close()
コード例 #8
0
ファイル: pypordb_bookmarks.py プロジェクト: hwmay/pordb
	def loeschen(self):
		row = self.tableWidgetBookmarks.currentRow()
		item = self.tableWidgetBookmarks.item(row, 1)
		a = item.text()
		try:
			zu_erfassen = "delete from pordb_bookmarks where z = " +str(item.text())
			update_func = DBUpdate(self, zu_erfassen)
			DBUpdate.update_data(update_func)
			self.close()
		except:
			pass
コード例 #9
0
ファイル: pypordb_historie.py プロジェクト: hwmay/pordb3
 def onClear(self):
     zu_lesen = "SELECT * FROM pordb_history ORDER BY time DESC LIMIT 50"
     lese_func = DBLesen(self, zu_lesen)
     res = DBLesen.get_data(lese_func)
     if res:
         werte = []
         zu_erfassen = []
         werte.append(str(res[-1][-1]))
         zu_erfassen.append(["DELETE FROM pordb_history WHERE time < %s", werte])
         update_func = DBUpdate(self, zu_erfassen)
         DBUpdate.update_data(update_func)
         
     self.close()
コード例 #10
0
 def loeschen(self):
     row = self.tableWidgetBookmarks.currentRow()
     item = self.tableWidgetBookmarks.item(row, 1)
     a = item.text()
     try:
         werte = []
         zu_erfassen = []
         werte.append(str(item.text()))
         zu_erfassen.append(["DELETE FROM pordb_bookmarks WHERE z = %s", werte])
         update_func = DBUpdate(self, zu_erfassen)
         DBUpdate.update_data(update_func)
         self.close()
     except:
         pass
コード例 #11
0
 def accept(self):
     if not self.comboBoxDarstellerneuGeschlecht.currentText():
         message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please select the gender"))
         return
     # insert/update-Anweisung aufbauen
     datum = str(time.localtime()[0]) + '-' + str(time.localtime()[1]) + '-' + str(time.localtime()[2])
     werte = []
     zu_erfassen = []
     werte.append(self.darsteller)
     werte.append(str(self.comboBoxDarstellerneuGeschlecht.currentText()))
     werte.append("0")
     werte.append(datum)
     werte.append(str(self.comboBoxDarstellerneuHaarfarbe.currentText()))
     werte.append(str(self.comboBoxDarstellerneuNation.currentText())[0:2])
     werte.append(self.lineEditDarstellerneuTattoo.text())
     werte.append(str(self.comboBoxDarstellerneuEthnic.currentText()))
     zu_erfassen.append(["INSERT into pordb_darsteller VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", werte])
     update_func = DBUpdate(self, zu_erfassen)
     DBUpdate.update_data(update_func)
     self.close()
コード例 #12
0
ファイル: pypordb_pseudo.py プロジェクト: hwmay/pordb
	def onSpeichern(self):
		zu_erfassen = []
		zu_erfassen.append("delete from pordb_pseudo where darsteller = '" +self.darsteller +"'")
		
		position = 0
		for i in range(self.tableWidgetPseudo.rowCount()):
			cell = []
			position += 1
			for j in range(self.tableWidgetPseudo.columnCount()):
				tableItem = self.tableWidgetPseudo.item(i, j)
				if tableItem:
					cellItem = unicode(QtGui.QTableWidgetItem(tableItem).text())
					cell.append(cellItem)
			if cell and cell[0] and cell[0].title().replace("'", "''") <> self.darsteller:
				zu_erfassen.append("insert into pordb_pseudo (pseudo, darsteller) values ('" +cell[0].title().replace("'", "''") +"', '" +self.darsteller +"')")
			    
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		self.close()
コード例 #13
0
ファイル: pypordb_suchbegriffe.py プロジェクト: hwmay/pordb
	def onSpeichern(self):
		position = 0
		zu_erfassen = []
		zu_erfassen.append("delete from pordb_suchbegriffe")
		for i in range(self.tableWidgetSuche.rowCount()):
			cell = []
			position += 1
			for j in range(self.tableWidgetSuche.columnCount()):
				tableItem = self.tableWidgetSuche.item(i, j)
				try:
					cellItem = str(QtGui.QTableWidgetItem(tableItem).text())
					cell.append(cellItem)
				except:
					pass
			try:
				if cell[0]:
					zu_erfassen.append("insert into pordb_suchbegriffe (suchbegriff, alternative) values ('" +cell[0] +"', '" +cell[1] +"')")
			except:
				pass
		
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		self.close()
コード例 #14
0
ファイル: pypordb_bookmarks.py プロジェクト: hwmay/pordb
	def accept(self):
		zu_erfassen = "insert into pordb_bookmarks (url) values ('" +self.url +"')"
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		self.close()
コード例 #15
0
 def onUebernehmen(self):
     if self.lineEditGeschlecht.text() != 'm' and self.lineEditGeschlecht.text() != 'w':
         message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Invalid gender"))
         self.app.restoreOverrideCursor()
         self.lineEditGeschlecht.setReadOnly(False)
         self.lineEditGeschlecht.setFocus()
         return
     zu_lesen = "SELECT * FROM pordb_darsteller WHERE darsteller = %s"
     if self.checkBoxName.isChecked():
         self.name = str(self.lineEditName.text())
     wert = self.name.strip().title()
     self.lese_func = DBLesen(self, zu_lesen, wert)
     res = DBLesen.get_data(self.lese_func)
     zu_erfassen = []
     
     # Darsteller existiert noch nicht
     if not res:
         messageBox = QtGui.QMessageBox()
         messageBox.addButton(self.trUtf8("Yes"), QtGui.QMessageBox.AcceptRole)
         messageBox.addButton(self.trUtf8("No"), QtGui.QMessageBox.RejectRole)
         messageBox.setWindowTitle(self.trUtf8("Actor ") +self.name.strip() +self.trUtf8(" not yet in database"))
         messageBox.setIcon(QtGui.QMessageBox.Question)
         messageBox.setText(self.trUtf8("Should the actor be created?"))
         message = messageBox.exec_()
         if message == 0:
             if str(self.labelGeboren.text()).strip() == "-":
                 geboren = "0001-01-01"
             else:
                 geboren = str(self.labelGeboren.text())
             datum = str(time.localtime()[0]) + '-' + str(time.localtime()[1]) + '-' + str(time.localtime()[2])
             name = str(self.lineEditName.text())
             werte = []
             werte.append(name.title())
             werte.append(str(self.lineEditGeschlecht.text()))
             werte.append(str(0))
             werte.append(datum)
             werte.append(str(self.comboBoxHaare.currentText()))
             werte.append(str(self.comboBoxNation.currentText())[0:2])
             werte.append(str(self.lineEditTattos.text()))
             werte.append(str(self.comboBoxEthnic.currentText()))
             werte.append(str(0))
             werte.append(geboren)
             werte.append(str(self.filme))
             werte.append(str(self.url))
             werte.append(str(self.aktiv_von))
             werte.append(str(self.aktiv_bis))
             werte.append(datum)
             zu_erfassen.append(["INSERT INTO pordb_darsteller VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", werte])
             action = None
             if self.checkBoxPseudo.isChecked():
                 action = self.pseudo_uebernehmen(name, zu_erfassen)
                 if not action: 
                     return
             extension = os.path.splitext(os.path.join(self.verz, self.bild))[-1].lower()
             if extension == ".jpeg":
                 extension = ".jpg"
             if extension != ".gif":
                 newfilename = os.path.join(self.verzeichnis_thumbs, "darsteller_" + str(self.lineEditGeschlecht.text()), name.strip().replace("'", "_apostroph_").replace(" ", "_").lower() + extension)
                 os.rename(os.path.join(self.verz, os.path.basename(self.bild)), newfilename)
         else:
             self.onClose()
     # Darsteller existiert bereits
     else:
         if self.checkBoxBild.isChecked():
             extension = os.path.splitext(os.path.join(self.verz + self.bild))[-1].lower()
             if extension == ".jpeg":
                 extension = ".jpg"
             if extension != ".gif":
                 if self.checkBoxName.isChecked():
                     newfilename = os.path.join(self.verzeichnis_thumbs, "darsteller_" + self.lineEditGeschlecht.text(), str(self.lineEditName.text()).strip().replace("'", "_apostroph_").replace(" ", "_").lower() + extension)
                 else:
                     newfilename = os.path.join(self.verzeichnis_thumbs, "darsteller_" + self.lineEditGeschlecht.text(), str(self.name).strip().replace("'", "_apostroph_").replace(" ", "_").lower() + extension)
                 os.rename(os.path.join(self.verz, os.path.basename(self.bild)), newfilename)
         else:
             try:
                 os.remove(os.path.join(self.verz, os.path.basename(self.bild)))
             except:
                 pass
         if self.checkBoxGeboren.isChecked():
             if str(self.labelGeboren.text()).strip() == "-":
                 if res[0][9] and res[0][9] != '0001-01-01':
                     pass
                 else:
                     werte = []
                     werte.append(res[0][0])
                     zu_erfassen.append(["UPDATE pordb_darsteller SET geboren = '0001-01-01' WHERE darsteller = %s", werte])
             else:
                 werte = []
                 werte.append(str(self.labelGeboren.text()))
                 werte.append(res[0][0])
                 zu_erfassen.append(["UPDATE pordb_darsteller SET geboren = %s WHERE darsteller = %s", werte])
         if self.checkBoxLand.isChecked() and str(self.comboBoxNation.currentText()):
             werte = []
             werte.append(str(self.comboBoxNation.currentText())[0:2])
             werte.append(res[0][0])
             zu_erfassen.append(["UPDATE pordb_darsteller SET nation = %s WHERE darsteller = %s", werte])
         if self.checkBoxEthnic.isChecked():
             werte = []
             werte.append(str(self.comboBoxEthnic.currentText()))
             werte.append(res[0][0])
             zu_erfassen.append(["UPDATE pordb_darsteller SET ethnic = %s WHERE darsteller = %s", werte])
         if self.checkBoxHaare.isChecked():
             werte = []
             werte.append(str(self.comboBoxHaare.currentText()))
             werte.append(res[0][0])
             zu_erfassen.append(["UPDATE pordb_darsteller SET haarfarbe = %s WHERE darsteller = %s", werte])
         if self.checkBoxTattos.isChecked() and str(self.lineEditTattos.text()):
             if len((self.lineEditTattos.text())) > 500:
                 message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Too many characters in tattos (") +str(len((self.lineEditTattos.text()))) +")")
                 return
             werte = []
             werte.append(str(self.lineEditTattos.text()))
             werte.append(res[0][0])
             zu_erfassen.append(["UPDATE pordb_darsteller SET tattoo = %s WHERE darsteller = %s", werte])
         werte = []
         werte.append(str(self.filme))
         werte.append(res[0][0])
         zu_erfassen.append(["UPDATE pordb_darsteller SET filme = %s WHERE darsteller = %s", werte])
         werte = []
         werte.append(self.url)
         werte.append(res[0][0])
         zu_erfassen.append(["UPDATE pordb_darsteller SET url = %s WHERE darsteller = %s", werte])
         werte = []
         werte.append(str(self.aktiv_von))
         werte.append(res[0][0])
         zu_erfassen.append(["UPDATE pordb_darsteller SET aktivvon = %s WHERE darsteller = %s", werte])
         werte = []
         werte.append(str(self.aktiv_bis))
         werte.append(res[0][0])
         zu_erfassen.append(["UPDATE pordb_darsteller SET aktivbis = %s WHERE darsteller = %s", werte])
         if self.checkBoxPseudo.isChecked():
             action = self.pseudo_uebernehmen(res[0][0], zu_erfassen)
             if not action: 
                 return
             
         datum = str(time.localtime()[0]) + '-' + str(time.localtime()[1]) + '-' + str(time.localtime()[2])
         werte = []
         werte.append(datum)
         werte.append(res[0][0])
         zu_erfassen.append(["UPDATE pordb_darsteller SET besuch = %s WHERE darsteller = %s", werte])
             
     if zu_erfassen:
         update_func = DBUpdate(self, zu_erfassen)
         DBUpdate.update_data(update_func)
     self.onClose()
コード例 #16
0
    def onDelete(self):
        if self.undo:
            self.close()
            return
        darsteller_liste = self.darsteller.strip().split(", ")
        zu_erfassen = []
        for i in darsteller_liste:
            if i:
                werte = []
                werte.append(i)
                zu_erfassen.append(["UPDATE pordb_darsteller SET anzahl = anzahl - 1 WHERE darsteller = %s", werte])
        # Daten für undo sichern
        zu_lesen = "SELECT * FROM pordb_vid WHERE cd = %s AND bild = %s"
        self.lese_func = DBLesen(self, zu_lesen, (str(self.cd), self.bild))
        res = DBLesen.get_data(self.lese_func)

        # Dateien in Trash Verzeichnis löschen
        dateiliste = os.listdir(self.verzeichnis_trash)
        for datei in dateiliste:
            if datei.find("pypordb_bildalt") == -1:
                os.remove(self.verzeichnis_trash + '/' + datei)

        # Bild in Trash Verzeichnis verschieben
        if not os.path.exists(self.verzeichnis_trash):
            os.mkdir(self.verzeichnis_trash)
        filename = os.path.join(self.verzeichnis_thumbs, "cd" + str(self.cd), self.bild.strip())
        cover = None
        if not os.path.exists(filename):
            filename = os.path.join(self.verzeichnis_cover, self.bild.strip())
            cover = "x"
        newfilename = os.path.join(self.verzeichnis_trash, self.bild.strip())
        if os.path.exists(filename):
            os.rename(filename, newfilename)

        # Textdatei erstellen mit alten Daten
        textdatei = open(os.path.join(self.verzeichnis_trash, self.bild[-2] + ".txt"), "w")
        zaehler = 0
        for i in res:
            for j in i:
                try:
                    textdatei.write(j.encode("utf-8").rstrip() +"\n")
                except:
                    textdatei.write(str(j).rstrip() +"\n")
        if cover:
            textdatei.write("COVER" +"\n")
        textdatei.close()

        werte = []
        werte.append(str(self.cd))
        werte.append(self.bild.strip())
        zu_erfassen.append(["DELETE FROM pordb_vid WHERE cd = %s AND bild = %s", werte])
        werte = []
        werte.append(str(self.cd))
        werte.append(self.bild.strip())
        zu_erfassen.append(["DELETE FROM pordb_partner WHERE cd = %s AND bild = %s", werte])
        
        update_func = DBUpdate(self, zu_erfassen)
        DBUpdate.update_data(update_func)
        
        zu_erfassen = []
        for i in darsteller_liste:
            if i:
                zu_lesen = "SELECT DISTINCT ON (partner) partner FROM pordb_partner WHERE darsteller = %s"
                self.lese_func = DBLesen(self, zu_lesen, i)
                res1 = DBLesen.get_data(self.lese_func)
                werte = []
                werte.append(len(res1))
                werte.append(i)
                zu_erfassen.append(["UPDATE pordb_darsteller SET partner = %s WHERE darsteller = %s", werte])
        if zu_erfassen:
            update_func = DBUpdate(self, zu_erfassen)
            DBUpdate.update_data(update_func)
        
        self.close()
コード例 #17
0
    def accept(self):
        fehler = 1
        actor_added = False
        actor_adding_asked = False
        while fehler:
            darsteller, fehler, fehler_index = self.darsteller_pruefen(str(self.lineEditNeuDarsteller.text()).title())
            if fehler:
                if fehler == 1:
                    zu_lesen = "SELECT darsteller FROM pordb_pseudo WHERE pseudo = %s"
                    self.lese_func = DBLesen(self, zu_lesen, darsteller[fehler_index].title().strip())
                    res = DBLesen.get_data(self.lese_func)
                    if res:
                        messageBox = QtGui.QMessageBox()
                        messageBox.addButton(self.trUtf8("Yes"), QtGui.QMessageBox.AcceptRole)
                        messageBox.addButton(self.trUtf8("No, correct entry"), QtGui.QMessageBox.RejectRole)
                        messageBox.addButton(self.trUtf8("No, add new actor"), QtGui.QMessageBox.ActionRole)
                        messageBox.setWindowTitle(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias."))
                        messageBox.setIcon(QtGui.QMessageBox.Question)
                        messageBox.setText(self.trUtf8("Do you want to take this actor instead?"))
                        messageBox.setDetailedText(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias. If you want to take this actor, click on yes, else change your entry or add a new actor to the database."))
                        message = messageBox.exec_()
                        if message == 0:
                            darsteller_alt = str(self.lineEditNeuDarsteller.text()).title().strip()
                            darsteller_neu = darsteller_alt.replace(darsteller[fehler_index].strip(), str(res[0][0]).strip())
                            try:
                                self.lineEditNeuDarsteller.setText(darsteller_neu)
                            except:
                                pass
                            return
                        elif message == 2:
                            self.darsteller_addieren(darsteller, fehler_index)
                            actor_added = True
                elif fehler == 2:
                    message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("You have entered some actors twice, please correct"))
                    return
                if actor_adding_asked:
                    return
                if not actor_added:
                    self.darsteller_addieren(darsteller, fehler_index)
                    actor_adding_asked = True
        titel = self.lineEditNeuTitel.text()
        if darsteller:
            darsteller = self.darsteller_sortieren(darsteller)
        if self.checkBoxUninteressant.isChecked():
            darsteller.append("(Uninteressant)")
        try:
            cd = int(self.lineEditNeuCD.text())
        except:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("CD is not a number"))
            return
        bild = self.lineEditNeuBild.text()

        if not self.radioButtonVorhandenJa.isChecked() and not self.radioButtonVorhandenNein.isChecked():
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie is available"))
            return
        if self.radioButtonVorhandenJa.isChecked():
            vorhanden = "x"
        else:
            vorhanden = ""

        if not self.radioButtonGesehenNein.isChecked() and not self.radioButtonGesehenJa.isChecked():
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie has been watched"))
            return
        if self.radioButtonGesehenNein.isChecked():
            gesehen = " "
        else:
            gesehen = "x"
            
        try:
            original = str(self.lineEditNeuOriginal.text()).title().split()
        except:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error: original title has invalid characters"))
            return
        
        # get rid of double spaces
        original = " ".join(original)

        if len(original) > 256:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error, original title is longer than 256 characters."))
            return
        if not self.radioButtonCoverJa.isChecked() and not self.radioButtonCoverNein.isChecked():
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please check if image file is a cover"))
            return
        if self.radioButtonVorhandenJa.isChecked() and self.comboBoxDefinition.currentIndex() == 0 and not self.cover_austauschen:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please select a resolution"))
            return
        if self.radioButtonVorhandenNein.isChecked() and self.comboBoxDefinition.currentIndex() != 0:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Video is not in stock: resolution deleted"))
            self.comboBoxDefinition.setCurrentIndex(0)
        zu_erfassen = []
        if self.korrektur and not self.undo:
            darsteller_liste = self.darsteller.strip().split(", ")
            if not darsteller_liste[0]:
                darsteller_liste = []
            for i in darsteller_liste:
                werte = []
                werte.append(i)
                zu_erfassen.append(["UPDATE pordb_darsteller SET anzahl = anzahl - 1 WHERE darsteller = %s", werte])
            if not self.radioButtonCoverJa.isChecked():
                bilddatei_alt = os.path.join(self.verzeichnis_thumbs, "cd" + str(self.cd_alt), str(bild).rstrip())
                if str(cd) != self.cd_alt:
                    bilddatei_neu = os.path.join(self.verzeichnis_thumbs, "cd" + str(cd), str(bild).rstrip())
                    os.renames(bilddatei_alt, bilddatei_neu)
                else:
                    if self.bilddatei != bilddatei_alt:
                        bilddatei = QtGui.QImage(self.bilddatei).scaled(size, QtCore.Qt.KeepAspectRatio)
                        if bilddatei.save(bilddatei_alt):
                            os.remove(self.bilddatei)
                        else:
                            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
                            return
            werte = []
            werte.append(self.cd_alt)
            werte.append(bild)
            zu_erfassen.append(["DELETE FROM pordb_partner WHERE cd = %s AND bild = %s", werte])
            werte = []
            werte.append(titel)
            werte.append(", ".join(darsteller))
            werte.append(cd)
            werte.append(bild)
            werte.append(gesehen)
            werte.append(original)
            zu_erfassen_zw = "UPDATE pordb_vid SET titel = %s, darsteller = %s, cd = %s, bild = %s, gesehen = %s, original = %s, csf = %s, csh = %s, cst = %s, csc = %s, csx = %s, cso = %s, csv = %s, csb = %s, csa = %s, css = %s, csk = %s, hd = %s, vorhanden = %s, remarks = %s, stars = %s WHERE cd = %s AND bild = %s"
            if self.spinBoxF.value() > 0:
                werte.append(self.spinBoxF.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxH.value() > 0:
                werte.append(self.spinBoxH.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxT.value() > 0:
                werte.append(self.spinBoxT.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxC.value() > 0:
                werte.append(self.spinBoxC.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxX.value() > 0:
                werte.append(self.spinBoxX.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxO.value() > 0:
                werte.append(self.spinBoxO.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxV.value() > 0:
                werte.append(self.spinBoxV.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxB.value() > 0:
                werte.append(self.spinBoxB.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxA.value() > 0:
                werte.append(self.spinBoxA.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxS.value() > 0:
                werte.append(self.spinBoxS.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxK.value() > 0:
                werte.append(self.spinBoxK.value())
            else:
                werte.append(0)
            if self.comboBoxDefinition.currentIndex() == 0:
                werte.append(None)
            elif self.comboBoxDefinition.currentIndex() == 1:
                werte.append("0")
            elif self.comboBoxDefinition.currentIndex() == 2:
                werte.append("1")
            elif self.comboBoxDefinition.currentIndex() == 3:
                werte.append("2")
            elif self.comboBoxDefinition.currentIndex() == 4:
                werte.append("3")
            elif self.comboBoxDefinition.currentIndex() == 5:
                werte.append("9")
            werte.append(vorhanden)
            werte.append(self.plainTextEditRemarks.toPlainText())
            werte.append(self.set_stars)
            werte.append(self.cd_alt)
            werte.append(bild)
            if self.radioButtonCoverJa.isChecked() and self.cover_austauschen:
                if os.path.exists(os.path.join(self.verzeichnis_thumbs, "cd" + str(self.cd_alt), bild.rstrip())):
                    # Bild war Thumbnail im CD Verzeichnis -> dieses löschen und neues im Cover Verzeichnis anlegen
                    os.remove(os.path.join(self.verzeichnis_thumbs, "cd" + str(self.cd_alt), bild.rstrip()))
                    os.rename(self.bilddatei, os.path.join(self.verzeichnis_cover, self.bild.strip()))
                else:
                    os.rename(self.bilddatei, os.path.join(self.verzeichnis_cover, self.bild.strip()))
        else:
            if self.radioButtonCoverJa.isChecked() and not original:
                message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("When adding a cover you must also enter a movie title"))
                return
            if self.undo:
                bilddatei = QtGui.QImage(os.path.join(self.verzeichnis_trash, bild))
            else:
                if self.radioButtonCoverJa.isChecked():
                    bilddatei = QtGui.QImage(os.path.join(self.verzeichnis, bild))
                else:
                    bilddatei = QtGui.QImage(os.path.join(self.verzeichnis, bild)).scaled(size, QtCore.Qt.KeepAspectRatio)
            if self.radioButtonCoverJa.isChecked():
                newfilename = os.path.join(self.verzeichnis_cover, bild)
            else:
                newfilename = os.path.join(self.verzeichnis_thumbs, "cd" +str(cd), bild)
            # hier klappt noch etwas nicht richtig mit den Partnern, wenn len>256
            if len(bild) > 256 or os.path.exists(newfilename):
                neue_bilddatei = BilddateiUmbenennen(newfilename)
                if neue_bilddatei.exec_():
                    try:
                        bild_alt = os.path.join(self.verzeichnis, bild)
                        bild_neu = os.path.join(self.verzeichnis, neue_bilddatei.lineEditDateiname.text())
                        os.rename(bild_alt, bild_neu)
                        newfilename = os.path.join(os.path.dirname(newfilename), neue_bilddatei.lineEditDateiname.text())
                        bild = neue_bilddatei.lineEditDateiname.text()
                        titel = str(bild.split('.')[0])
                    except:
                        message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error on renaming image file"))
                        return
                else:
                    return
            else:
                if not os.path.exists(os.path.dirname(newfilename)):
                    os.mkdir(os.path.dirname(newfilename))
            if bilddatei.save(newfilename):
                if not self.undo:
                    os.remove(os.path.join(self.verzeichnis, str(bild)))
            else:
                message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
                return
            werte = []
            werte.append("pordb_vid_primkey_seq")
            zu_lesen = "SELECT nextval(%s)"
            self.lese_func = DBLesen(self, zu_lesen, werte)
            res = DBLesen.get_data(self.lese_func)
            werte = []
            werte.append(titel)
            werte.append(", ".join(darsteller))
            werte.append(cd)
            werte.append(bild)
            werte.append(gesehen)
            werte.append(original)
            werte.append("")
            werte.append(vorhanden)
            werte.append(res[0][0])
            zu_erfassen_zw = "INSERT INTO pordb_vid VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
            if self.spinBoxF.value() > 0:
                cs = self.spinBoxF.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxH.value() > 0:
                cs = self.spinBoxH.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxT.value() > 0:
                cs = self.spinBoxT.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxC.value() > 0:
                cs = self.spinBoxC.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxX.value() > 0:
                cs = self.spinBoxX.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxO.value() > 0:
                cs = self.spinBoxO.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxV.value() > 0:
                cs = self.spinBoxV.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxB.value() > 0:
                cs = self.spinBoxB.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxA.value() > 0:
                cs = self.spinBoxA.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxS.value() > 0:
                cs = self.spinBoxS.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxK.value() > 0:
                cs = self.spinBoxK.value()
            else:
                cs = 0
            werte.append(cs)
                
            if self.comboBoxDefinition.currentIndex() == 0:
                werte.append(None)
            elif self.comboBoxDefinition.currentIndex() == 1:
                werte.append("0")
            elif self.comboBoxDefinition.currentIndex() == 2:
                werte.append("1")
            elif self.comboBoxDefinition.currentIndex() == 3:
                werte.append("2")
            elif self.comboBoxDefinition.currentIndex() == 4:
                werte.append("3")
            elif self.comboBoxDefinition.currentIndex() == 5:
                werte.append("9")
                
            werte.append(self.plainTextEditRemarks.toPlainText())
            werte.append(self.set_stars)
            
        zu_erfassen.append([zu_erfassen_zw, werte])
            
        for i in darsteller:
            if i.lstrip() == "" or i.lstrip() == "?":
                continue
            werte = []
            werte.append(i)
            zu_erfassen.append(["UPDATE pordb_darsteller SET anzahl = anzahl + 1 WHERE darsteller = %s", werte])
            if i == "" or i == "?" or i == "(Uninteressant)" or i == "(Komplett)" or i == "(Schlechte Qualitaet)":
                continue
            zu_erfassen.append(["DELETE FROM pordb_darsteller100 WHERE darsteller = %s", werte])
            zu_erfassen.append(["INSERT INTO pordb_darsteller100 (darsteller) VALUES (%s)", werte])
            
            partner_zaehler = 0
            if i.strip() != "(Uninteressant)" and i.strip() != "Defekt":
                zu_lesen = "SELECT sex FROM pordb_darsteller WHERE darsteller = %s"
                self.lese_func = DBLesen(self, zu_lesen, i)
                res = DBLesen.get_data(self.lese_func)
                geschlecht = res[0][0]
                for j in darsteller:
                    if j.strip() != "(Uninteressant)" and j.strip() != "Defekt" and i != j:
                        zu_lesen = "SELECT sex FROM pordb_darsteller WHERE darsteller = %s"
                        self.lese_func = DBLesen(self, zu_lesen, j)
                        res2 = DBLesen.get_data(self.lese_func)
                        geschlecht2 = res2[0][0]
                        if geschlecht != geschlecht2:
                            werte = []
                            werte.append(i)
                            werte.append(j)
                            werte.append(cd)
                            werte.append(bild)
                            zu_erfassen.append(["INSERT INTO pordb_partner VALUES (%s, %s, %s, %s)", werte])
                            zu_lesen = "SELECT darsteller FROM pordb_partner WHERE darsteller = %s AND partner = %s"
                            self.lese_func = DBLesen(self, zu_lesen, (i, j))
                            res3 = DBLesen.get_data(self.lese_func)
                            if not res3:
                                partner_zaehler += 1
                            
            if partner_zaehler > 0:
                werte = []
                werte.append(partner_zaehler)
                werte.append(i)
                zu_erfassen.append(["UPDATE pordb_darsteller SET partner = partner + %s WHERE darsteller = %s", werte])
                
        zu_lesen = "SELECT * FROM pordb_darsteller100"
        self.lese_func = DBLesen(self, zu_lesen)
        res1 = DBLesen.get_data(self.lese_func)
        anzahl_loeschen = len(res1) - 200
        if anzahl_loeschen > 0:
            res1.sort()
            for zaehler in range(anzahl_loeschen):
                werte = []
                werte.append(str(res1[zaehler][0]))
                zu_erfassen.append(["DELETE FROM pordb_darsteller100 WHERE nr = %s", werte])
        if not self.korrektur:
            werte = []
            werte.append(titel)
            werte.append(", ".join(darsteller))
            werte.append(cd)
            werte.append(original)
            zu_erfassen.append(["UPDATE pordb_vid_neu SET titel = %s, darsteller = %s, cd = %s, original = %s", werte])
        
        update_func = DBUpdate(self, zu_erfassen)
        DBUpdate.update_data(update_func)
        
        if self.original_weitere:
            zu_erfassen = []
            if self.korrektur:
                zu_lesen = "SELECT primkey FROM pordb_vid WHERE cd = %s AND bild = %s"
                self.lese_func = DBLesen(self, zu_lesen, (str(self.cd_alt), str(bild)))
                curr_key = DBLesen.get_data(self.lese_func)
                werte = []
                werte.append(str(curr_key[0][0]))
                zu_erfassen.append(["DELETE FROM pordb_original WHERE foreign_key_pordb_vid = %s", werte])
            else:
                zu_lesen = "SELECT primkey FROM pordb_vid WHERE cd = %s AND bild = %s"
                self.lese_func = DBLesen(self, zu_lesen, (str(cd), bild))
                curr_key = DBLesen.get_data(self.lese_func)
            for i in self.original_weitere:
                if i:
                    if type(i) == str:
                        werte = []
                        werte.append(i.title())
                        werte.append(str(curr_key[0][0]))
                        zu_erfassen.append(["INSERT INTO pordb_original (original, foreign_key_pordb_vid) VALUES (%s, %s)", werte])
                    else:
                        werte = []
                        werte.append(i.decode().title())
                        werte.append(str(curr_key[0][0]))
                        zu_erfassen.append(["INSERT INTO pordb_original (original, foreign_key_pordb_vid) VALUES (%s, %s)", werte])
                    
            update_func = DBUpdate(self, zu_erfassen)
            DBUpdate.update_data(update_func)
        
        self.close()
        QtGui.QDialog.accept(self)
コード例 #18
0
ファイル: pypordb_neu.py プロジェクト: hwmay/pordb
	def accept(self):
		fehler = 1
		actor_added = False
		actor_adding_asked = False
		while fehler:
			darsteller, fehler, fehler_index = self.darsteller_pruefen(unicode(self.lineEditNeuDarsteller.text()).title())
			if fehler:
				if fehler == 1:
					zu_lesen = "select darsteller from pordb_pseudo where pseudo = '" +darsteller[fehler_index].title().replace("'", "''").strip()  +"'"
					self.lese_func = DBLesen(self, zu_lesen)
					res = DBLesen.get_data(self.lese_func)
					if res:
						messageBox = QtGui.QMessageBox()
						messageBox.addButton(self.trUtf8("Yes"), QtGui.QMessageBox.AcceptRole)
						messageBox.addButton(self.trUtf8("No, correct entry"), QtGui.QMessageBox.RejectRole)
						messageBox.addButton(self.trUtf8("No, add new actor"), QtGui.QMessageBox.ActionRole)
						messageBox.setWindowTitle(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias."))
						messageBox.setIcon(QtGui.QMessageBox.Question)
						messageBox.setText(self.trUtf8("Do you want to take this actor instead?"))
						messageBox.setDetailedText(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias. If you want to take this actor, click on yes, else change your entry or add a new actor to the database."))
						message = messageBox.exec_()
						if message == 0:
							darsteller_alt = unicode(self.lineEditNeuDarsteller.text()).title().strip()
							darsteller_neu = darsteller_alt.replace(darsteller[fehler_index].strip(), unicode(res[0][0]).strip())
							try:
								self.lineEditNeuDarsteller.setText(darsteller_neu)
							except:
								pass
							return
						elif message == 2:
							self.darsteller_addieren(darsteller, fehler_index)
							actor_added = True
				elif fehler == 2:
					message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("You have entered some actors twice, please correct"))
					return
				if actor_adding_asked:
					return
				if not actor_added:
					self.darsteller_addieren(darsteller, fehler_index)
					actor_adding_asked = True
		titel = self.lineEditNeuTitel.text()
		if darsteller:
			darsteller = self.darsteller_sortieren(darsteller)
		if self.checkBoxUninteressant.isChecked():
			darsteller.append("(Uninteressant)")
		try:
			cd = int(self.lineEditNeuCD.text())
		except:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("CD is not a number"))
			return
		bild = self.lineEditNeuBild.text()

		if not self.radioButtonVorhandenJa.isChecked() and not self.radioButtonVorhandenNein.isChecked():
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie is available"))
			return
		if self.radioButtonVorhandenJa.isChecked():
			vorhanden = "x"
		else:
			vorhanden = ""

		if not self.radioButtonGesehenNein.isChecked() and not self.radioButtonGesehenJa.isChecked():
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie has been watched"))
			return
		if self.radioButtonGesehenNein.isChecked():
			gesehen = " "
		else:
			gesehen = "x"
			
		try:
			original = unicode(self.lineEditNeuOriginal.text()).replace("'", "''").title()
		except:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error: original title has invalid characters"))
			return

		if len(original) > 256:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error, original title is longer than 256 characters."))
			return
		if not self.radioButtonCoverJa.isChecked() and not self.radioButtonCoverNein.isChecked():
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please check if image file is a cover"))
			return
		if self.radioButtonVorhandenJa.isChecked() and self.comboBoxDefinition.currentIndex() == 0 and not self.cover_austauschen:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please select a resolution"))
			return
		if self.radioButtonVorhandenNein.isChecked() and self.comboBoxDefinition.currentIndex() <> 0:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Video is not in stock: resolution is set to unknown"))
			self.comboBoxDefinition.setCurrentIndex(0)
		zu_erfassen = []
		if self.korrektur and not self.undo:
			darsteller_liste = self.darsteller.strip().split(", ")
			if not darsteller_liste[0]:
				darsteller_liste = []
			for i in darsteller_liste:
				zu_erfassen.append("UPDATE pordb_darsteller set anzahl = anzahl - 1 where darsteller = '" + i.replace("'", "''") + "'")
			if not self.radioButtonCoverJa.isChecked():
				bilddatei_alt = self.verzeichnis_thumbs +os.sep +"cd" +str(self.cd_alt) +os.sep +unicode(bild).rstrip()
				if str(cd) != self.cd_alt:
					bilddatei_neu = self.verzeichnis_thumbs +os.sep +"cd" +str(cd) +os.sep +unicode(bild).rstrip()
					os.renames(bilddatei_alt, bilddatei_neu)
				else:
					if self.bilddatei != bilddatei_alt:
						bilddatei = QtGui.QImage(self.bilddatei).scaled(size, QtCore.Qt.KeepAspectRatio)
						if bilddatei.save(bilddatei_alt):
							os.remove(self.bilddatei)
						else:
							message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
							return
			zu_erfassen.append("delete from pordb_partner where cd = " +str(cd) + " and bild = '" +bild.replace("'", "''") +"'")
			cs = ""
			zu_erfassen_zw = "UPDATE pordb_vid SET titel = '" +titel.replace("'", "''") +"', darsteller = '" +", ".join(darsteller).replace("'", "''") +"', cd = " +str(cd) +", bild = '" +bild +"', gesehen = '" +gesehen +"', original = '" +original 
			if self.spinBoxF.value() > 0:
				cs = str(self.spinBoxF.value())
				zu_erfassen_zw += "', csf = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csf = '" +"0"
			if self.spinBoxH.value() > 0:
				cs = str(self.spinBoxH.value())
				zu_erfassen_zw += "', csh = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csh = '" +"0"
			if self.spinBoxT.value() > 0:
				cs = str(self.spinBoxT.value())
				zu_erfassen_zw += "', cst = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', cst = '" +"0"
			if self.spinBoxC.value() > 0:
				cs = str(self.spinBoxC.value())
				zu_erfassen_zw += "', csc = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csc = '" +"0"
			if self.spinBoxX.value() > 0:
				cs = str(self.spinBoxX.value())
				zu_erfassen_zw += "', csx = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csx = '" +"0"
			if self.spinBoxO.value() > 0:
				cs = str(self.spinBoxO.value())
				zu_erfassen_zw += "', cso = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', cso = '" +"0"
			if self.spinBoxV.value() > 0:
				cs = str(self.spinBoxV.value())
				zu_erfassen_zw += "', csv = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csv = '" +"0"
			if self.spinBoxB.value() > 0:
				cs = str(self.spinBoxB.value())
				zu_erfassen_zw += "', csb = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csb = '" +"0"
			if self.spinBoxA.value() > 0:
				cs = str(self.spinBoxA.value())
				zu_erfassen_zw += "', csa = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csa = '" +"0"
			if self.spinBoxS.value() > 0:
				cs = str(self.spinBoxS.value())
				zu_erfassen_zw += "', css = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', css = '" +"0"
			if self.spinBoxK.value() > 0:
				cs = str(self.spinBoxK.value())
				zu_erfassen_zw += "', csk = '" +cs 
			else:
				zu_erfassen_zw += "', csk = '" +"0"
			if self.comboBoxDefinition.currentIndex() == 0:
				zu_erfassen_zw += "', hd = null"
			elif self.comboBoxDefinition.currentIndex() == 1:
				zu_erfassen_zw += "', hd = '0'"
			elif self.comboBoxDefinition.currentIndex() == 2:
				zu_erfassen_zw += "', hd = '1'"
			elif self.comboBoxDefinition.currentIndex() == 3:
				zu_erfassen_zw += "', hd = '2'"
			elif self.comboBoxDefinition.currentIndex() == 4:
				zu_erfassen_zw += "', hd = '9'"
			zu_erfassen_zw +=", vorhanden = '" +vorhanden +"'" +" where cd = " +str(self.cd_alt) + " and bild = '" +bild +"'"
			if self.radioButtonCoverJa.isChecked() and self.cover_austauschen:
				if os.path.exists(self.verzeichnis_thumbs +os.sep +"cd" +str(self.cd_alt) +os.sep +bild.rstrip()):
					# Bild war Thumbnail im CD Verzeichnis -> dieses löschen und neues im Cover Verzeichnis anlegen
					os.remove(self.verzeichnis_thumbs +os.sep +"cd" +str(self.cd_alt) +os.sep +bild.rstrip())
					os.rename(self.bilddatei, self.verzeichnis_cover +os.sep +self.bild.strip())
				else:
					os.rename(self.bilddatei, self.verzeichnis_cover +os.sep +self.bild.strip())
		else:
			if self.radioButtonCoverJa.isChecked() and not original:
				message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("When adding a cover you must also enter a movie title"))
				return
			if self.undo:
				bilddatei = QtGui.QImage(self.verzeichnis_trash +os.sep +bild)
			else:
				if self.radioButtonCoverJa.isChecked():
					bilddatei = QtGui.QImage(self.verzeichnis +os.sep +bild)
				else:
					bilddatei = QtGui.QImage(self.verzeichnis +os.sep +bild).scaled(size, QtCore.Qt.KeepAspectRatio)
			if self.radioButtonCoverJa.isChecked():
				newfilename = unicode(self.verzeichnis_cover +os.sep +bild)
			else:
				newfilename = unicode(self.verzeichnis_thumbs +os.sep +"cd" +str(cd) +os.sep +bild)
			# hier klappt noch etwas nicht richtig mit den Partnern, wenn len>256
			if len(bild) > 256 or os.path.exists(newfilename):
				neue_bilddatei = BilddateiUmbenennen(newfilename)
				if neue_bilddatei.exec_():
					try:
						bild_alt = unicode(self.verzeichnis +os.sep +bild)
						bild_neu = unicode(self.verzeichnis +os.sep +neue_bilddatei.lineEditDateiname.text())
						os.rename(bild_alt, bild_neu)
						newfilename = os.path.dirname(newfilename) +os.sep +neue_bilddatei.lineEditDateiname.text()
						bild = neue_bilddatei.lineEditDateiname.text()
						titel = unicode(bild.split('.')[0])
					except:
						message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error on renaming image file"))
						return
				else:
					return
			else:
				if not os.path.exists(os.path.dirname(newfilename)):
					os.mkdir(os.path.dirname(newfilename))
			if bilddatei.save(newfilename):
				if not self.undo:
					os.remove(self.verzeichnis +os.sep +unicode(bild))
			else:
				message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
				return
			cs = ""
			zu_erfassen_zw = unicode("INSERT into pordb_vid VALUES ('" +titel.replace("'", "''") +"', '" +", ".join(darsteller).replace("'", "''") +"', " +str(cd) +", '" +bild.replace("'", "''") +"', '" +gesehen +"', '" +original +"', ' " +"', '" +vorhanden +"', DEFAULT") 
			if self.spinBoxF.value() > 0:
				cs = str(self.spinBoxF.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxH.value() > 0:
				cs = str(self.spinBoxH.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxT.value() > 0:
				cs = str(self.spinBoxT.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxC.value() > 0:
				cs = str(self.spinBoxC.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxX.value() > 0:
				cs = str(self.spinBoxX.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxO.value() > 0:
				cs = str(self.spinBoxO.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxV.value() > 0:
				cs = str(self.spinBoxV.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxB.value() > 0:
				cs = str(self.spinBoxB.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxA.value() > 0:
				cs = str(self.spinBoxA.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxS.value() > 0:
				cs = str(self.spinBoxS.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxK.value() > 0:
				cs = str(self.spinBoxK.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
				
			if self.comboBoxDefinition.currentIndex() == 0:
				zu_erfassen_zw += ", null"
			elif self.comboBoxDefinition.currentIndex() == 1:
				zu_erfassen_zw += ", '0'"
			elif self.comboBoxDefinition.currentIndex() == 2:
				zu_erfassen_zw += ", '1'"
			elif self.comboBoxDefinition.currentIndex() == 3:
				zu_erfassen_zw += ", '2'"
			zu_erfassen_zw += ")"
			
		zu_erfassen.append(zu_erfassen_zw)
			
		for i in darsteller:
			if i.lstrip() == "" or i.lstrip() == "?":
				continue
			zu_erfassen.append("UPDATE pordb_darsteller set anzahl = anzahl + 1 where darsteller = '" + i.replace("'", "''") + "'")
			if i == "" or i == "?" or i == "(Uninteressant)" or i == "(Komplett)" or i == "(Schlechte Qualitaet)":
				continue
			zu_lesen = "SELECT * FROM pordb_darsteller100 where darsteller = '" + i.replace("'", "''") + "'"
			self.lese_func = DBLesen(self, zu_lesen)
			res1 = DBLesen.get_data(self.lese_func)
			if len(res1) != 0:
				zu_erfassen.append("delete from pordb_darsteller100 where nr = '" + str(res1[0][0]) +"'")
			zu_erfassen.append("INSERT into pordb_darsteller100 (darsteller) VALUES ('" +i.replace("'", "''") +"')")
			
			partner_zaehler = 0
			if i.strip() != "(Uninteressant)" and i.strip() != "Defekt":
				zu_lesen = "select sex from pordb_darsteller where darsteller = '" +i.replace("'", "''")  +"'"
				self.lese_func = DBLesen(self, zu_lesen)
				res = DBLesen.get_data(self.lese_func)
				geschlecht = res[0][0]
				for j in darsteller:
					if j.strip() != "(Uninteressant)" and j.strip() != "Defekt" and i != j:
						zu_lesen = "select sex from pordb_darsteller where darsteller = '" +j.replace("'", "''")  +"'"
						self.lese_func = DBLesen(self, zu_lesen)
						res2 = DBLesen.get_data(self.lese_func)
						geschlecht2 = res2[0][0]
						if geschlecht != geschlecht2:
							zu_erfassen.append("insert into pordb_partner values ('" +i.replace("'", "''") +"', '" +j.replace("'", "''") +"', " +str(cd) +", '" +unicode(bild) +"')")
							zu_lesen = "select darsteller from pordb_partner where darsteller = '" +i.replace("'", "''") +"' and partner = '" +j.replace("'", "''") +"'"
							self.lese_func = DBLesen(self, zu_lesen)
							res3 = DBLesen.get_data(self.lese_func)
							if not res3:
								partner_zaehler += 1
							
			if partner_zaehler > 0:
				zu_erfassen.append("UPDATE pordb_darsteller set partner = partner + " +str(partner_zaehler) +" where darsteller = '" + i.replace("'", "''") + "'")
				
		zu_lesen = "select * from pordb_darsteller100"
		self.lese_func = DBLesen(self, zu_lesen)
		res1 = DBLesen.get_data(self.lese_func)
		anzahl_loeschen = len(res1) - 200
		if anzahl_loeschen > 0:
			res1.sort()
			for zaehler in range(anzahl_loeschen):
				zu_erfassen.append("delete from pordb_darsteller100 where nr = '" + str(res1[zaehler][0]) +"'")
		if not self.korrektur and original:
			zu_erfassen.append("UPDATE pordb_vid_neu SET titel = '" +titel.replace("'", "''") +"', darsteller = '" +", ".join(darsteller).replace("'", "''") +"', cd = " +str(cd) +", original = '" +original +"'")
		
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		if self.original_weitere:
			zu_erfassen = []
			if self.korrektur:
				zu_lesen = "select primkey from pordb_vid where cd = " +unicode(self.cd_alt) + " and bild = '" +unicode(bild) +"'"
				self.lese_func = DBLesen(self, zu_lesen)
				curr_key = DBLesen.get_data(self.lese_func)
				zu_erfassen.append("delete from pordb_original where foreign_key_pordb_vid = " +str(curr_key[0][0]))
			else:
				zu_lesen = "select primkey from pordb_vid where cd = " +str(cd) + " and bild = '" +bild +"'"
				self.lese_func = DBLesen(self, zu_lesen)
				curr_key = DBLesen.get_data(self.lese_func)
			for i in self.original_weitere:
				if i:
					zu_erfassen.append("insert into pordb_original (original, foreign_key_pordb_vid) values ('" +i.replace("'", "''").title() +"', " +str(curr_key[0][0]) +")")
					
			update_func = DBUpdate(self, zu_erfassen)
			DBUpdate.update_data(update_func)
		
		self.close()
		QtGui.QDialog.accept(self)
コード例 #19
0
	def onUebernehmen(self):
		if self.lineEditGeschlecht.text() != 'm' and self.lineEditGeschlecht.text() != 'w':
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Invalid gender"))
			self.app.restoreOverrideCursor()
		if self.checkBoxName.isChecked():
			zu_lesen = "select * from pordb_darsteller where darsteller = '" +unicode(self.lineEditName.text()).replace("'", "''").title().encode("utf-8") +"'"
		else:
			zu_lesen = "select * from pordb_darsteller where darsteller = '" +self.name.strip().title().replace("'", "''") +"'"
		self.lese_func = DBLesen(self, zu_lesen)
		res = DBLesen.get_data(self.lese_func)
		zu_erfassen = []
		
		# Darsteller existiert noch nicht
		if not res:
			messageBox = QtGui.QMessageBox()
			messageBox.addButton(self.trUtf8("Yes"), QtGui.QMessageBox.AcceptRole)
			messageBox.addButton(self.trUtf8("No"), QtGui.QMessageBox.RejectRole)
			messageBox.setWindowTitle(self.trUtf8("Actor ") +self.name.decode("utf-8").strip() +self.trUtf8(" not yet in database"))
			messageBox.setIcon(QtGui.QMessageBox.Question)
			messageBox.setText(self.trUtf8("Should the actor be created?"))
			message = messageBox.exec_()
			if message == 0:
				if str(self.labelGeboren.text()).strip() == "-":
					geboren = "0001-01-01"
				else:
					geboren = str(self.labelGeboren.text())
				datum = str(time.localtime()[0]) + '-' + str(time.localtime()[1]) + '-' + str(time.localtime()[2])
				name = unicode(self.lineEditName.text())
				zu_erfassen_zw = "INSERT into pordb_darsteller VALUES ('" 
				zu_erfassen_zw += name.title().replace("'", "''") 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += str(self.lineEditGeschlecht.text()) 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += str(0) 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += datum 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += str(self.lineEditHaare.text()).lower() 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += str(self.lineEditLand.text()).upper()[0:2] 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += unicode(self.lineEditTattos.text()).replace("'", "''") 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += str(self.lineEditEthnic.text()).lower()
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += str(0) 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += geboren 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += str(self.filme) 
				zu_erfassen_zw += "', '" 
				zu_erfassen_zw += unicode(self.url).replace("'", "''")
				zu_erfassen_zw += "', '" +str(self.aktiv_von_int) +"', '" +str(self.aktiv_bis_int) +"', '" +datum +"')"
				zu_erfassen.append(zu_erfassen_zw)
				action = None
				if self.checkBoxPseudo.isChecked():
					action = self.pseudo_uebernehmen(name, zu_erfassen)
					if not action: 
						return
				extension = os.path.splitext(str(self.verz +os.sep +self.bild))[-1].lower()
				if extension == ".jpeg":
					extension = ".jpg"
				if extension <> ".gif":
					newfilename = self.verzeichnis_thumbs +os.sep +"darsteller_" +str(self.lineEditGeschlecht.text()) +os.sep +name.strip().replace("'", "_apostroph_").replace(" ", "_").lower() + extension
					os.rename(self.verz +os.sep +self.bild, newfilename.encode("utf-8"))
			else:
				self.close()
		# Darsteller existiert bereits
		else:
			if self.checkBoxBild.isChecked():
				extension = os.path.splitext(str(self.verz +os.sep +self.bild))[-1].lower()
				if extension == ".jpeg":
					extension = ".jpg"
				if extension <> ".gif":
					if self.checkBoxName.isChecked():
						newfilename = self.verzeichnis_thumbs +os.sep +"darsteller_" +self.lineEditGeschlecht.text() +os.sep +unicode(self.lineEditName.text()).strip().replace("'", "_apostroph_").replace(" ", "_").lower().encode("utf-8") + extension
					else:
						newfilename = self.verzeichnis_thumbs +os.sep +"darsteller_" +self.lineEditGeschlecht.text() +os.sep +unicode(self.name).strip().replace("'", "_apostroph_").replace(" ", "_").lower().encode("utf-8") + extension
					os.rename(self.verz +os.sep +self.bild, newfilename)
			else:
				try:
					os.remove(self.verz +os.sep +self.bild)
				except:
					pass
			if self.checkBoxGeboren.isChecked():
				if str(self.labelGeboren.text()).strip() == "-":
					if res[0][9] and res[0][9] != '0001-01-01':
						pass
					else:
						zu_erfassen.append("update pordb_darsteller set geboren = '0001-01-01' where darsteller = '" +res[0][0].replace("'", "''") +"'")
				else:
					zu_erfassen.append("update pordb_darsteller set geboren = '" +str(self.labelGeboren.text()) +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			if self.checkBoxLand.isChecked() and str(self.lineEditLand.text()):
				zu_erfassen.append("update pordb_darsteller set nation = '" +str(self.lineEditLand.text()).upper() +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			if self.checkBoxEthnic.isChecked():
				zu_erfassen.append("update pordb_darsteller set ethnic = '" +str(self.lineEditEthnic.text()).lower() +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			if self.checkBoxHaare.isChecked():
				zu_erfassen.append("update pordb_darsteller set haarfarbe = '" +str(self.lineEditHaare.text()).lower() +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			if self.checkBoxTattos.isChecked() and unicode(self.lineEditTattos.text()):
				if len((self.lineEditTattos.text())) > 500:
					message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Too many characters in tattos (") +str(len((self.lineEditTattos.text()))) +")")
					return
				zu_erfassen.append("update pordb_darsteller set tattoo = '" +unicode(self.lineEditTattos.text()).replace("'", "''") +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			zu_erfassen.append("update pordb_darsteller set filme = '" +str(self.filme) +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			zu_erfassen.append("update pordb_darsteller set url = '" +self.url.replace("'", "''") +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			zu_erfassen.append("update pordb_darsteller set aktivvon = '" +str(self.aktiv_von_int) +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			zu_erfassen.append("update pordb_darsteller set aktivbis = '" +str(self.aktiv_bis_int) +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
			if self.checkBoxPseudo.isChecked():
				zu_erfassen.append("delete from pordb_pseudo where darsteller = '" +res[0][0].replace("'", "''") + "'")
				action = self.pseudo_uebernehmen(res[0][0], zu_erfassen)
				if not action: 
					return
				
			datum = str(time.localtime()[0]) + '-' + str(time.localtime()[1]) + '-' + str(time.localtime()[2])
			zu_erfassen.append("update pordb_darsteller set besuch = '" +datum +"' where darsteller = '" +res[0][0].replace("'", "''") +"'")
				
		if zu_erfassen:
			update_func = DBUpdate(self, zu_erfassen)
			DBUpdate.update_data(update_func)
		self.close()
コード例 #20
0
ファイル: pypordb_neu.py プロジェクト: hwmay/pordb
	def onDelete(self):
		if self.undo:
			self.close()
			return
		darsteller_liste = self.darsteller.strip().split(", ")
		zu_erfassen = []
		for i in darsteller_liste:
			if i:
				zu_erfassen.append("UPDATE pordb_darsteller set anzahl = anzahl - 1 where darsteller = '" + i.replace("'", "''") + "'")
		# Daten für undo sichern
		zu_lesen = "select * FROM pordb_vid where cd = " +str(self.cd) + " and bild = '" +self.bild.replace("'", "''") + "'"
		self.lese_func = DBLesen(self, zu_lesen)
		res = DBLesen.get_data(self.lese_func)

		# Dateien in Trash Verzeichnis löschen
		dateiliste = os.listdir(self.verzeichnis_trash)
		for datei in dateiliste:
			if datei.find("pypordb_bildalt") == -1:
				os.remove(self.verzeichnis_trash + '/' + datei)

		# Bild in Trash Verzeichnis verschieben
		if not os.path.exists(self.verzeichnis_trash):
			os.mkdir(self.verzeichnis_trash)
		filename = self.verzeichnis_thumbs +os.sep +"cd" +str(self.cd) +os.sep +self.bild.strip()
		cover = None
		if not os.path.exists(filename):
			filename = self.verzeichnis_cover +os.sep +self.bild.strip()
			cover = "x"
		newfilename = unicode(self.verzeichnis_trash +os.sep +self.bild.strip())
		if os.path.exists(filename):
			os.rename(filename, newfilename)

		# Textdatei erstellen mit alten Daten
		textdatei = open(self.verzeichnis_trash +os.sep +self.bild[-2] +".txt", "w")
		zaehler = 0
		for i in res:
			for j in i:
				try:
					textdatei.write(j.encode("utf-8").rstrip() +"\n")
				except:
					textdatei.write(str(j).rstrip() +"\n")
		if cover:
			textdatei.write("COVER" +"\n")
		textdatei.close()

		zu_erfassen.append("DELETE FROM pordb_vid where cd = " +str(self.cd) + " and bild = '" +self.bild.strip().replace("'", "''") +"'")
		zu_erfassen.append("delete from pordb_partner where cd = " +str(self.cd) + " and bild = '" +self.bild.strip().replace("'", "''") +"'")
		
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		zu_erfassen = []
		for i in darsteller_liste:
			if i:
				zu_lesen = "select distinct on (partner) partner from pordb_partner where darsteller = '" + i.replace("'", "''") + "'"
				self.lese_func = DBLesen(self, zu_lesen)
				res1 = DBLesen.get_data(self.lese_func)
				zu_erfassen.append("UPDATE pordb_darsteller set partner = " +str(len(res1)) +" where darsteller = '" + i.replace("'", "''") + "'")
		if zu_erfassen:
			update_func = DBUpdate(self, zu_erfassen)
			DBUpdate.update_data(update_func)
		
		self.close()