Merge pull request #11075 from Chocobo1/cache

Cache and reuse detected MIME type
This commit is contained in:
Mike Tzou 2019-08-15 11:11:40 +08:00 committed by GitHub
commit d639c16f72
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 8 deletions

View file

@ -191,7 +191,7 @@ void WebApplication::sendWebUIFile()
sendFile(localPath); sendFile(localPath);
} }
void WebApplication::translateDocument(QString &data) void WebApplication::translateDocument(QString &data) const
{ {
const QRegularExpression regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR\\[CONTEXT=([a-zA-Z_][a-zA-Z0-9_]*)\\]"); const QRegularExpression regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR\\[CONTEXT=([a-zA-Z_][a-zA-Z0-9_]*)\\]");
@ -368,11 +368,10 @@ void WebApplication::sendFile(const QString &path)
const QDateTime lastModified {QFileInfo(path).lastModified()}; const QDateTime lastModified {QFileInfo(path).lastModified()};
// find translated file in cache // find translated file in cache
auto it = m_translatedFiles.constFind(path); const auto it = m_translatedFiles.constFind(path);
if ((it != m_translatedFiles.constEnd()) && (lastModified <= (*it).lastModified)) { if ((it != m_translatedFiles.constEnd()) && (lastModified <= it->lastModified)) {
const QString mimeName {QMimeDatabase().mimeTypeForFileNameAndData(path, (*it).data).name()}; print(it->data, it->mimeType);
print((*it).data, mimeName); header(Http::HEADER_CACHE_CONTROL, getCachingInterval(it->mimeType));
header(Http::HEADER_CACHE_CONTROL, getCachingInterval(mimeName));
return; return;
} }
@ -400,7 +399,7 @@ void WebApplication::sendFile(const QString &path)
translateDocument(dataStr); translateDocument(dataStr);
data = dataStr.toUtf8(); data = dataStr.toUtf8();
m_translatedFiles[path] = {data, lastModified}; // caching translated file m_translatedFiles[path] = {data, mimeType.name(), lastModified}; // caching translated file
} }
print(data, mimeType.name()); print(data, mimeType.name());

View file

@ -105,7 +105,7 @@ private:
void sendFile(const QString &path); void sendFile(const QString &path);
void sendWebUIFile(); void sendWebUIFile();
void translateDocument(QString &data); void translateDocument(QString &data) const;
// Session management // Session management
QString generateSid() const; QString generateSid() const;
@ -136,6 +136,7 @@ private:
struct TranslatedFile struct TranslatedFile
{ {
QByteArray data; QByteArray data;
QString mimeType;
QDateTime lastModified; QDateTime lastModified;
}; };
QHash<QString, TranslatedFile> m_translatedFiles; QHash<QString, TranslatedFile> m_translatedFiles;