diff --git a/src/database.cpp b/src/database.cpp index d607cb16..bfab4fa6 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -18,16 +18,18 @@ * along with this program. If not, see . */ -#include -#include -#include -#include #include +#include +#include +#include +#include -#include "database.h" #include "alligatorsettings.h" +#include "database.h" -#define TRUE_OR_RETURN(x) if(!x) return false; +#define TRUE_OR_RETURN(x) \ + if (!x) \ + return false; Database::Database() { @@ -37,19 +39,22 @@ Database::Database() db.setDatabaseName(databasePath + QStringLiteral("/database.db3")); db.open(); - if(!migrate()) { + if (!migrate()) { qCritical() << "Failed to migrate the database"; } cleanup(); } -bool Database::migrate() { - if(version() < 1) TRUE_OR_RETURN(migrateTo1()); +bool Database::migrate() +{ + if (version() < 1) + TRUE_OR_RETURN(migrateTo1()); return true; } -bool Database::migrateTo1() { +bool Database::migrateTo1() +{ qDebug() << "Migrating database to version 1"; QSqlQuery query(QSqlDatabase::database()); TRUE_OR_RETURN(execute(QStringLiteral("CREATE TABLE IF NOT EXISTS Feeds (name TEXT, url TEXT, image TEXT);"))); @@ -59,14 +64,16 @@ bool Database::migrateTo1() { return true; } -bool Database::execute(QString query) { +bool Database::execute(QString query) +{ QSqlQuery q; q.prepare(query); return execute(q); } -bool Database::execute(QSqlQuery &query) { - if(!query.exec()) { +bool Database::execute(QSqlQuery &query) +{ + if (!query.exec()) { qWarning() << "Failed to execute SQL Query"; qWarning() << query.lastQuery(); qWarning() << query.lastError(); @@ -75,33 +82,39 @@ bool Database::execute(QSqlQuery &query) { return true; } -int Database::version() { +int Database::version() +{ QSqlQuery query; query.prepare(QStringLiteral("PRAGMA user_version;")); execute(query); - if(query.next()) { + if (query.next()) { bool ok; int value = query.value(0).toInt(&ok); qDebug() << "Database version " << value; - if(ok) return value; + if (ok) + return value; } else { qCritical() << "Failed to check database version"; } return -1; } -void Database::cleanup() { +void Database::cleanup() +{ AlligatorSettings settings; int count = settings.deleteAfterCount(); int type = settings.deleteAfterType(); - if(type == 0) { // Delete after posts per feed - //TODO + if (type == 0) { // Delete after posts per feed + // TODO } else { QDateTime dateTime = QDateTime::currentDateTime(); - if(type == 1) dateTime = dateTime.addDays(-count); - else if(type == 2) dateTime = dateTime.addDays(-7*count); - else if(type == 3) dateTime = dateTime.addMonths(-count); + if (type == 1) + dateTime = dateTime.addDays(-count); + else if (type == 2) + dateTime = dateTime.addDays(-7 * count); + else if (type == 3) + dateTime = dateTime.addMonths(-count); qint64 sinceEpoch = dateTime.toSecsSinceEpoch(); QSqlQuery query; diff --git a/src/entryListModel.cpp b/src/entryListModel.cpp index 5679e31c..672e4950 100644 --- a/src/entryListModel.cpp +++ b/src/entryListModel.cpp @@ -18,12 +18,12 @@ * along with this program. If not, see . */ -#include #include +#include +#include "database.h" #include "entryListModel.h" #include "fetcher.h" -#include "database.h" EntryListModel::EntryListModel(QObject *parent) : QSqlTableModel(parent) @@ -36,12 +36,12 @@ EntryListModel::EntryListModel(QObject *parent) QVariant EntryListModel::data(const QModelIndex &index, int role) const { - if(role == Updated || role == Created) { + if (role == Updated || role == Created) { QDateTime updated; updated.setSecsSinceEpoch(QSqlQueryModel::data(createIndex(index.row(), role), 0).toInt()); return updated; } - return QSqlQueryModel::data(createIndex(index.row(), role), 0); + return QSqlQueryModel::data(createIndex(index.row(), role), 0); } QHash EntryListModel::roleNames() const diff --git a/src/entryListModel.h b/src/entryListModel.h index d41797f5..d36a7d38 100644 --- a/src/entryListModel.h +++ b/src/entryListModel.h @@ -20,8 +20,8 @@ #pragma once -#include #include +#include #include class EntryListModel : public QSqlTableModel diff --git a/src/feedListModel.cpp b/src/feedListModel.cpp index 38d26b0e..c78794ac 100644 --- a/src/feedListModel.cpp +++ b/src/feedListModel.cpp @@ -18,15 +18,15 @@ * along with this program. If not, see . */ -#include -#include #include #include #include +#include +#include +#include "database.h" #include "feedListModel.h" #include "fetcher.h" -#include "database.h" FeedListModel::FeedListModel(QObject *parent) : QSqlTableModel(parent) @@ -49,7 +49,7 @@ QHash FeedListModel::roleNames() const void FeedListModel::addFeed(QString url) { qDebug() << "Adding feed"; - if(feedExists(url)) { + if (feedExists(url)) { qDebug() << "Feed already exists"; return; } @@ -75,7 +75,8 @@ QVariant FeedListModel::data(const QModelIndex &index, int role) const return QSqlTableModel::data(createIndex(index.row(), role), 0); } -bool FeedListModel::feedExists(QString url) { +bool FeedListModel::feedExists(QString url) +{ QSqlQuery query; query.prepare(QStringLiteral("SELECT COUNT (url) FROM Feeds WHERE url=:url;")); query.bindValue(QStringLiteral(":url"), url); @@ -95,7 +96,7 @@ void FeedListModel::removeFeed(int index) query.bindValue(QStringLiteral(":feed"), data(createIndex(index, 0), 1).toString()); Database::instance().execute(query); - //Workaround... + // Workaround... query.prepare(QStringLiteral("DELETE FROM Feeds WHERE url=:url;")); query.bindValue(QStringLiteral(":url"), data(createIndex(index, 0), 1).toString()); Database::instance().execute(query); diff --git a/src/fetcher.cpp b/src/fetcher.cpp index 84320134..ff9ba111 100644 --- a/src/fetcher.cpp +++ b/src/fetcher.cpp @@ -23,10 +23,11 @@ #include -#include "fetcher.h" #include "database.h" +#include "fetcher.h" -Fetcher::Fetcher() { +Fetcher::Fetcher() +{ } void Fetcher::fetch(QUrl url) @@ -44,7 +45,8 @@ void Fetcher::fetch(QUrl url) Syndication::DocumentSource *document = new Syndication::DocumentSource(data, url.toString()); Syndication::FeedPtr feed = Syndication::parserCollection()->parse(*document, QStringLiteral("Atom")); - if(feed.isNull()) return; + if (feed.isNull()) + return; QSqlQuery query; @@ -61,14 +63,15 @@ void Fetcher::fetch(QUrl url) query.bindValue(QStringLiteral(":id"), entry->id()); Database::instance().execute(query); query.next(); - if(query.value(0).toInt() != 0) continue; + if (query.value(0).toInt() != 0) + continue; query.prepare(QStringLiteral("INSERT INTO Entries VALUES (:feed, :id, :title, :content, :created, :updated);")); query.bindValue(QStringLiteral(":feed"), url.toString()); query.bindValue(QStringLiteral(":id"), entry->id()); query.bindValue(QStringLiteral(":title"), entry->title()); query.bindValue(QStringLiteral(":created"), static_cast(entry->datePublished())); query.bindValue(QStringLiteral(":updated"), static_cast(entry->dateUpdated())); - if(!entry->content().isEmpty()) + if (!entry->content().isEmpty()) query.bindValue(QStringLiteral(":content"), entry->content()); else query.bindValue(QStringLiteral(":content"), entry->description()); diff --git a/src/main.cpp b/src/main.cpp index 5b4e9010..d4ba1f5d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,18 +25,18 @@ #endif #include -#include #include +#include #include -#include #include +#include -#include "entryListModel.h" -#include "feedListModel.h" -#include "database.h" #include "alligatorsettings.h" +#include "database.h" +#include "entryListModel.h" #include "feed.h" +#include "feedListModel.h" #ifdef Q_OS_ANDROID Q_DECL_EXPORT @@ -60,8 +60,7 @@ int main(int argc, char *argv[]) QQmlApplicationEngine engine; engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); - KAboutData about(QStringLiteral("alligator"), i18n("Alligator"), QStringLiteral("0.1"), i18n("Feed Reader"), - KAboutLicense::GPL, i18n("© 2020 KDE Community")); + KAboutData about(QStringLiteral("alligator"), i18n("Alligator"), QStringLiteral("0.1"), i18n("Feed Reader"), KAboutLicense::GPL, i18n("© 2020 KDE Community")); about.addAuthor(i18n("Tobias Fella"), QString(), QStringLiteral("fella@posteo.de")); KAboutData::setApplicationData(about);