KShare/src/formatter.cpp

30 lines
1.1 KiB
C++
Raw Normal View History

2017-04-23 20:29:24 +02:00
#include "formatter.hpp"
#include <QDateTime>
#include <QStringList>
2017-09-13 01:47:41 +02:00
QString formatter::format(QString toFormat, QString ext, QMap<QString, QString> variables) {
QString formatted(toFormat);
QRegExp dateRegex("%(?!%)\\((.+)\\)date");
dateRegex.indexIn(toFormat);
QStringList capturedTexts(dateRegex.capturedTexts());
QDateTime date = QDateTime::currentDateTime();
for (int i = 0; i < capturedTexts.length(); i += 2) {
formatted = formatted.replace(capturedTexts.at(i), date.toString(capturedTexts.at(i + 1)));
}
2017-09-13 01:47:41 +02:00
QRegExp randomRegex("%(?!%)\\((.+)\\)random");
randomRegex.indexIn(toFormat);
QStringList randomTexts(randomRegex.capturedTexts());
for (int i = 0; i < randomTexts.length(); i += 2) {
QStringList list = randomTexts.at(i + 1).split('|');
formatted = formatted.replace(randomTexts.at(i), list.at(rand() % (list.length())));
}
for (QString var : variables.keys()) formatted.replace("%" + var, variables[var]);
formatted = formatted.replace(QRegExp("%(?!%)ext"), ext);
return formatted;
2017-04-23 20:29:24 +02:00
}