aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLibravatar Keshav Bhatt <keshavnrj@gmail.com>2023-03-22 20:20:13 +0530
committerLibravatar Keshav Bhatt <keshavnrj@gmail.com>2023-03-22 20:20:13 +0530
commit8f983031f7659ccd8bb95db75d243cdd1b00b2df (patch)
treeae00e9b8ff27e4be0addf7bed886ba318108ed12 /src
parentfa5add01ac0c35ba719d0eec194d11ab6b5d2f2c (diff)
downloadwhatsie-8f983031f7659ccd8bb95db75d243cdd1b00b2df.tar.gz
whatsie-8f983031f7659ccd8bb95db75d243cdd1b00b2df.zip
chore: update utils
- update genRand
Diffstat (limited to 'src')
-rw-r--r--src/utils.cpp65
-rw-r--r--src/utils.h3
2 files changed, 33 insertions, 35 deletions
diff --git a/src/utils.cpp b/src/utils.cpp
index da8d2a2..c00b25d 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -62,40 +62,35 @@ QString utils::toCamelCase(const QString &s) {
}
QString utils::generateRandomId(int length) {
+ return genRand(length, false, true, false);
+}
- QString str = QUuid::createUuid().toString();
- str.remove(QRegularExpression("{|}|-"));
- if (str.length() < length) {
- while (str.length() != length) {
- int required_char = length - str.length();
- str = str + str.append(genRand(required_char));
- }
+QString utils::genRand(int length, bool useUpper, bool useLower,
+ bool useDigits) {
+ QString possibleCharacters;
+ if (useUpper) {
+ possibleCharacters += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
}
- if (str.length() > length) {
- while (str.length() != length) {
- str = str.remove(str.length() - 1, 1);
- }
+ if (useLower) {
+ possibleCharacters += "abcdefghijklmnopqrstuvwxyz";
+ }
+ if (useDigits) {
+ possibleCharacters += "0123456789";
+ }
+
+ if (possibleCharacters.isEmpty()) {
+ return genRand(length, true, true, true);
}
- return str;
-}
-QString utils::genRand(int length) {
- QDateTime cd = QDateTime::currentDateTime();
- const QString possibleCharacters(
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" +
- QString::number(cd.currentMSecsSinceEpoch())
- .remove(QRegExp("[^a-zA-Z\\d\\s]")));
-
- const int randomStringLength = length;
- QString randomString;
- int rand = QRandomGenerator::global()->generate();
- for (int i = 0; i < randomStringLength; ++i) {
- int index = rand % possibleCharacters.length();
- QChar nextChar = possibleCharacters.at(index);
- randomString.append(nextChar);
+ QByteArray randomBytes;
+ randomBytes.resize(length);
+ for (int i = 0; i < length; ++i) {
+ randomBytes[i] =
+ possibleCharacters[QRandomGenerator::securelySeeded().generate() %
+ possibleCharacters.length()]
+ .toLatin1();
}
- randomString = randomString.trimmed().simplified().remove(" ");
- return randomString;
+ return QString::fromLatin1(randomBytes);
}
QString utils::convertSectoDay(qint64 secs) {
@@ -117,11 +112,13 @@ QString utils::convertSectoDay(qint64 secs) {
}
// static on demand path maker
-QString utils::returnPath(QString pathname,QString standardLocation = QStandardPaths::writableLocation(
- QStandardPaths::DataLocation)) {
- QChar sepe = QDir::separator();
- QDir d(standardLocation + sepe + pathname);
- d.mkpath(standardLocation + sepe + pathname);
+QString
+utils::returnPath(QString pathname,
+ QString standardLocation = QStandardPaths::writableLocation(
+ QStandardPaths::DataLocation)) {
+ QChar sepe = QDir::separator();
+ QDir d(standardLocation + sepe + pathname);
+ d.mkpath(standardLocation + sepe + pathname);
return standardLocation + sepe + pathname + sepe;
}
diff --git a/src/utils.h b/src/utils.h
index d5b9765..c972ba4 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -28,7 +28,6 @@ public slots:
static bool delete_cache(const QString cache_dir);
static QString toCamelCase(const QString &s);
static QString generateRandomId(int length);
- static QString genRand(int length);
static QString convertSectoDay(qint64 secs);
static QString returnPath(QString pathname, QString standardLocation);
static QString EncodeXML(const QString &encodeMe);
@@ -40,6 +39,8 @@ public slots:
static QString appDebugInfo();
static void desktopOpenUrl(const QString &str);
static bool isPhoneNumber(const QString &phoneNumber);
+ static QString genRand(int length, bool useUpper = true, bool useLower = true,
+ bool useDigits = true);
private slots:
// use refreshCacheSize
static quint64 dir_size(const QString &directory);