summaryrefslogtreecommitdiffstats
path: root/logic/URNResolver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logic/URNResolver.cpp')
-rw-r--r--logic/URNResolver.cpp98
1 files changed, 0 insertions, 98 deletions
diff --git a/logic/URNResolver.cpp b/logic/URNResolver.cpp
deleted file mode 100644
index b6bdcf41..00000000
--- a/logic/URNResolver.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "URNResolver.h"
-#include <logger/QsLog.h>
-#include "MultiMC.h"
-#include "logic/forge/ForgeVersionList.h"
-#include "logic/forge/ForgeVersion.h"
-
-QString unescapeNSS(QString RawNSS)
-{
- QString NSS;
- NSS.reserve(RawNSS.size());
- enum
- {
- Normal,
- FirstHex,
- SecondHex
- } ParseState = Normal;
-
- QByteArray translator(" ");
-
- for (auto ch : RawNSS)
- {
- if(ParseState == Normal)
- {
- if(ch == '%')
- {
- ParseState = FirstHex;
- continue;
- }
- else
- {
- NSS.append(ch);
- }
- }
- if(ParseState == FirstHex)
- {
- translator[0] = ch.toLower().unicode();
- ParseState = SecondHex;
- }
- else if(ParseState == SecondHex)
- {
- translator[1] = ch.toLower().unicode();
- auto result = QByteArray::fromHex(translator);
- if (result[0] == '\0')
- return NSS;
- NSS.append(result);
- ParseState = Normal;
- }
- }
- return NSS;
-}
-
-bool URNResolver::parse(const QString &URN, QString &NID, QString &NSS)
-{
- QRegExp URNPattern(
- "^urn:([a-z0-9][a-z0-9-]{0,31}):(([a-z0-9()+,\\-.:=@;$_!*']|%[0-9a-f]{2})+).*",
- Qt::CaseInsensitive);
- if (URNPattern.indexIn(URN) == -1)
- return false;
- auto captures = URNPattern.capturedTexts();
- QString RawNID = captures[1];
- QString RawNSS = captures[2];
-
- NID = RawNID.toLower();
- NSS = unescapeNSS(RawNSS);
- return true;
-}
-
-URNResolver::URNResolver()
-{
-}
-
-QVariant URNResolver::resolve(QString URN)
-{
- QString NID, NSS;
- parse(URN, NID, NSS);
-
- if(NID != "x-mmc")
- return QVariant();
- auto parts = NSS.split(":");
- if(parts.size() < 1)
- return QVariant();
- unsigned int version = parts[0].toUInt();
- switch(version)
- {
- case 1:
- return resolveV1(parts.mid(1));
- default:
- return QVariant();
- }
-}
-
-/**
- * TODO: implement.
- */
-QVariant URNResolver::resolveV1(QStringList parts)
-{
- return QVariant();
-}