This commit is contained in:
Thomas resiX 2025-02-15 08:42:59 +01:00
parent d71fc587b0
commit 9fd535f8b7
4 changed files with 142 additions and 12 deletions

View file

@ -1,4 +1,4 @@
QT += core gui sql printsupport network QT += core gui sql printsupport network xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

View file

@ -67,6 +67,7 @@ if(Debug) qDebug() << "oeffneDatenbank";
} }
query = QSqlQuery(db); query = QSqlQuery(db);
query2 = QSqlQuery(db);
query.exec("CREATE TABLE IF NOT EXISTS einstellungen(" query.exec("CREATE TABLE IF NOT EXISTS einstellungen("
"pfad TEXT)"); "pfad TEXT)");
@ -149,12 +150,128 @@ if(Debug) qDebug() << "~MainWindow";
if(Debug) qDebug() << "~MainWindow-Ende"; if(Debug) qDebug() << "~MainWindow-Ende";
} }
void MainWindow::on_actionDaten_aktualisieren_triggered(){ void MainWindow::on_actionVideopfad_einlesen_triggered(){
if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered"; if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered";
leseVerzeichnis(); leseVerzeichnis();
if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered-Ende"; if(Debug) qDebug() << "on_actionDaten_aktualisieren_triggered-Ende";
} }
void MainWindow::on_actionKodi_Daten_einlesen_triggered(){
if(Debug) qDebug() << "on_actionKodi_Daten_einlesen_triggered";
QSqlQuery query("SELECT pfad FROM video");
while (query.next()) {
QString pfad = query.value(0).toString();
QStringList list_pfad = pfad.split(u'.');
QString pfad_tmp;
for(int i=0; i<list_pfad.length()-1; ++i){
pfad_tmp.append(list_pfad.at(i)+".");
}
QString pfad_nfo = pfad_tmp+"nfo";
QString pfad_Bild = pfad_tmp+"-poster.jpg";
pfad_Bild.replace(".-poster.jpg","-poster.jpg");
QDomDocument doc("nfo");
QString Titel;
QString Genre;
QString Laenge;
QString Jahr;
QString Handlung;
QFile file(pfad_nfo);
if(file.open(QIODevice::ReadOnly)){
if(doc.setContent(&file)){
QDomElement docElement = doc.documentElement();
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "title" ) {
Titel = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "genre" ) {
Genre = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "runtime" ) {
Laenge = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "year" ) {
Jahr = n.toElement().text();
}
}
}
for(QDomNode n = docElement.firstChild(); !n.isNull(); n = n.nextSibling()){
if( !n.isNull() ) {
if ( n.isElement() && n.nodeName() == "plot" ) {
Handlung = n.toElement().text();
}
}
}
}
file.close();
// id ermitteln
int id=0;
query2.exec(QString("SELECT * FROM video WHERE pfad LIKE '%1'").arg(pfad.replace(QString("'"), QString("''"))));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query.lastError().databaseText());
}
while(query2.next()){
id=query2.value(0).toInt();
}
// id ermitteln ende
// Titel speichern
query2.exec(QString("UPDATE video SET Titel=('%1') WHERE id=('%2')").arg(Titel.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Genre speichern
query2.exec(QString("UPDATE video SET Genre=('%1') WHERE id=('%2')").arg(Genre.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Länge speichern
query2.exec(QString("UPDATE video SET Länge=('%1') WHERE id=('%2')").arg(Laenge.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Jahr speichern
query2.exec(QString("UPDATE video SET Jahr=('%1') WHERE id=('%2')").arg(Jahr.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Handlung speichern
query2.exec(QString("UPDATE video SET Handlung=('%1') WHERE id=('%2')").arg(Handlung.replace(QString("'"), QString("''")), QString::number(id)));
if(query2.lastError().isValid()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
// Bild speichern
if(!(pfad_Bild=="")){
QFile file(pfad_Bild);
if(file.open(QIODevice::ReadOnly)){
QByteArray inByteArray = file.readAll();
query2.prepare(QString("UPDATE video SET Bild=(:imageData) WHERE id=('%1')").arg(QString::number(id)));
query2.bindValue(":imageData", inByteArray);
if(!query2.exec()){
ui->statusbar->showMessage("Fehler:" + query2.lastError().databaseText());
}
}
}
}
ui->statusbar->showMessage(pfad);
ui->statusbar->repaint();
}
ui->statusbar->showMessage("Daten gespeichert");
if(Debug) qDebug() << "on_actionKodi_Daten_einlesen_triggered";
}
void MainWindow::on_actionDaten_ausgeben_triggered(){ void MainWindow::on_actionDaten_ausgeben_triggered(){
if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered"; if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered";
@ -164,14 +281,12 @@ if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered";
if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered-Ende"; if(Debug) qDebug() << "on_actionDaten_ausgeben_triggered-Ende";
} }
void MainWindow::on_actionBeenden_triggered(){ void MainWindow::on_actionBeenden_triggered(){
if(Debug) qDebug() << "on_actionBeenden_triggered"; if(Debug) qDebug() << "on_actionBeenden_triggered";
MainWindow::close(); MainWindow::close();
if(Debug) qDebug() << "on_actionBeenden_triggered-Ende"; if(Debug) qDebug() << "on_actionBeenden_triggered-Ende";
} }
void MainWindow::on_actionPfad_zu_den_Videos_triggered(){ void MainWindow::on_actionPfad_zu_den_Videos_triggered(){
if(Debug) qDebug() << "on_actionPfad_zu_den_Videos_triggered"; if(Debug) qDebug() << "on_actionPfad_zu_den_Videos_triggered";
datenPfad = QFileDialog::getExistingDirectory(this, tr("Öffne Verzeichnis"), datenPfad, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); datenPfad = QFileDialog::getExistingDirectory(this, tr("Öffne Verzeichnis"), datenPfad, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
@ -766,4 +881,3 @@ if(Debug) qDebug() << "on_pushButton_on_pushButton_ordner_clicked";
ui->statusbar->showMessage("Ordner öffnen"); ui->statusbar->showMessage("Ordner öffnen");
if(Debug) qDebug() << "on_pushButton_on_pushButton_ordner_clicked-Ende"; if(Debug) qDebug() << "on_pushButton_on_pushButton_ordner_clicked-Ende";
} }

View file

@ -20,6 +20,8 @@
#include <QJsonArray> #include <QJsonArray>
#include <QDesktopServices> #include <QDesktopServices>
#include <QUrl> #include <QUrl>
#include <QtXml/QDomDocument>
#include <QtXml/QDomNode>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } namespace Ui { class MainWindow; }
@ -35,7 +37,8 @@ public:
private slots: private slots:
// Menü // Menü
void on_actionDaten_aktualisieren_triggered(); void on_actionVideopfad_einlesen_triggered();
void on_actionKodi_Daten_einlesen_triggered();
void on_actionDaten_ausgeben_triggered(); void on_actionDaten_ausgeben_triggered();
void on_actionBeenden_triggered(); void on_actionBeenden_triggered();
void on_actionPfad_zu_den_Videos_triggered(); void on_actionPfad_zu_den_Videos_triggered();
@ -68,5 +71,6 @@ private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
QSqlDatabase db; QSqlDatabase db;
QSqlQuery query; QSqlQuery query;
QSqlQuery query2;
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H

View file

@ -439,7 +439,14 @@
<property name="title"> <property name="title">
<string>Datei</string> <string>Datei</string>
</property> </property>
<addaction name="actionDaten_aktualisieren"/> <widget class="QMenu" name="menuDaten_aktualisieren">
<property name="title">
<string>Daten aktualisieren</string>
</property>
<addaction name="actionVideopfad_einlesen"/>
<addaction name="actionKodi_Daten_einlesen"/>
</widget>
<addaction name="menuDaten_aktualisieren"/>
<addaction name="actionDaten_ausgeben"/> <addaction name="actionDaten_ausgeben"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="actionBeenden"/> <addaction name="actionBeenden"/>
@ -454,11 +461,6 @@
<addaction name="menuEinstellungen"/> <addaction name="menuEinstellungen"/>
</widget> </widget>
<widget class="QStatusBar" name="statusbar"/> <widget class="QStatusBar" name="statusbar"/>
<action name="actionDaten_aktualisieren">
<property name="text">
<string>Daten aktualisieren</string>
</property>
</action>
<action name="actionDaten_ausgeben"> <action name="actionDaten_ausgeben">
<property name="text"> <property name="text">
<string>Daten ausgeben</string> <string>Daten ausgeben</string>
@ -474,6 +476,16 @@
<string>Beenden</string> <string>Beenden</string>
</property> </property>
</action> </action>
<action name="actionVideopfad_einlesen">
<property name="text">
<string>Videopfad einlesen</string>
</property>
</action>
<action name="actionKodi_Daten_einlesen">
<property name="text">
<string>Kodi Daten einlesen</string>
</property>
</action>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>