summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--movieinfopage.cpp23
-rw-r--r--movieinfopage.h3
2 files changed, 24 insertions, 2 deletions
diff --git a/movieinfopage.cpp b/movieinfopage.cpp
index ae77d00..4b02b05 100644
--- a/movieinfopage.cpp
+++ b/movieinfopage.cpp
@@ -232,10 +232,31 @@ void MovieInfoPage::extractMetadata(){
fn.replace(".mkv", "");
fn.replace(".mp4", "");
fn.replace(".", " ");
- mSubtitle->setText(fn);
+ if(!extractFromTitle(fn)){
+ mSubtitle->setText(fn);
+ }
+ }
+ }
+}
+bool MovieInfoPage::extractFromTitle(const QString &title){
+ QString curTitle = title;
+ static QRegularExpression removals("\\(4[kK]\\)");
+ static QRegularExpression titleRe("^(.*)?\\s?-\\s?(.*?)\\s+\\((\\d{4}-\\d{2}-\\d{2})\\)");
+ curTitle = curTitle.replace(removals, "");
+ QRegularExpressionMatch titleMatch = titleRe.match(curTitle);
+ if(titleMatch.hasMatch()){
+ QString subtitle = titleMatch.captured(2).simplified().toLower();
+ QDate created = QDate::fromString(titleMatch.captured(3), Qt::ISODate);
+ QStringList actors = titleMatch.captured(1).split('&');
+ for(const auto &a : std::as_const(actors)){
+ mPossbileActors.append(a.simplified().toLower());
}
+ mSubtitle->setText(subtitle);
+ mCreationDate->setDate(created);
+ return true;
}
+ return false;
}
void MovieInfoPage::addOld(){
diff --git a/movieinfopage.h b/movieinfopage.h
index 0407c33..d0354b2 100644
--- a/movieinfopage.h
+++ b/movieinfopage.h
@@ -8,7 +8,6 @@
#ifndef MOVIEINFOPAGE_H
#define MOVIEINFOPAGE_H
-#include <QDateTime>
#include <QWizardPage>
class WizardTreeModel;
@@ -48,6 +47,7 @@ class MovieInfoPage : public QWizardPage {
private:
void setupGui();
+ bool extractFromTitle(const QString &title);
SmTreeView *mFileView;
QLineEdit *mTitle;
QLineEdit *mSubtitle;
@@ -64,6 +64,7 @@ class MovieInfoPage : public QWizardPage {
QString mCurTitle;
QString mCurSubtitle;
QStringList mOrigins;
+ QStringList mPossbileActors;
int mCurSeriesno;
int mCurQuality;
};