Added undeletedMessages() implementation.

This commit is contained in:
Martin Rotter 2015-12-08 12:12:39 +01:00
parent eb1eef3a50
commit c9bb406a50
2 changed files with 34 additions and 2 deletions

View File

@ -135,7 +135,7 @@ QList<Message> StandardFeed::undeletedMessages() const {
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings); QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
QSqlQuery query_read_msg(database); QSqlQuery query_read_msg(database);
query_read_msg.setForwardOnly(true); query_read_msg.setForwardOnly(true);
query_read_msg.prepare("SELECT title, url, author, date_created, contents " query_read_msg.prepare("SELECT title, url, author, date_created, contents, enclosures "
"FROM Messages " "FROM Messages "
"WHERE is_deleted = 0 AND feed = :feed AND account_id = :account_id;"); "WHERE is_deleted = 0 AND feed = :feed AND account_id = :account_id;");
@ -154,6 +154,7 @@ QList<Message> StandardFeed::undeletedMessages() const {
message.m_author = query_read_msg.value(2).toString(); message.m_author = query_read_msg.value(2).toString();
message.m_created = TextFactory::parseDateTime(query_read_msg.value(3).value<qint64>()); message.m_created = TextFactory::parseDateTime(query_read_msg.value(3).value<qint64>());
message.m_contents = query_read_msg.value(4).toString(); message.m_contents = query_read_msg.value(4).toString();
message.m_enclosures = Enclosures::decodeEnclosuresFromString(query_read_msg.value(5).toString());
messages.append(message); messages.append(message);
} }

View File

@ -21,6 +21,7 @@
#include "miscellaneous/application.h" #include "miscellaneous/application.h"
#include "miscellaneous/databasefactory.h" #include "miscellaneous/databasefactory.h"
#include "miscellaneous/iconfactory.h" #include "miscellaneous/iconfactory.h"
#include "miscellaneous/textfactory.h"
#include "services/tt-rss/ttrssserviceroot.h" #include "services/tt-rss/ttrssserviceroot.h"
#include <QSqlQuery> #include <QSqlQuery>
@ -86,7 +87,37 @@ int TtRssFeed::update() {
} }
QList<Message> TtRssFeed::undeletedMessages() const { QList<Message> TtRssFeed::undeletedMessages() const {
return QList<Message>(); QList<Message> messages;
int account_id = const_cast<TtRssFeed*>(this)->serviceRoot()->accountId();
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
QSqlQuery query_read_msg(database);
query_read_msg.setForwardOnly(true);
query_read_msg.prepare("SELECT title, url, author, date_created, contents, enclosures "
"FROM Messages "
"WHERE is_deleted = 0 AND feed = :feed AND account_id = :account_id;");
query_read_msg.bindValue(QSL(":feed"), id());
query_read_msg.bindValue(QSL(":account_id"), account_id);
// FIXME: Fix those const functions, this is fucking ugly.
if (query_read_msg.exec()) {
while (query_read_msg.next()) {
Message message;
message.m_feedId = account_id;
message.m_title = query_read_msg.value(0).toString();
message.m_url = query_read_msg.value(1).toString();
message.m_author = query_read_msg.value(2).toString();
message.m_created = TextFactory::parseDateTime(query_read_msg.value(3).value<qint64>());
message.m_contents = query_read_msg.value(4).toString();
message.m_enclosures = Enclosures::decodeEnclosuresFromString(query_read_msg.value(5).toString());
messages.append(message);
}
}
return messages;
} }
int TtRssFeed::customId() const { int TtRssFeed::customId() const {