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()
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()
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()
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()
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()
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()
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()
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
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()
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
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()
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()
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()
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()
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()
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()
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)
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)
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()
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()