aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/modplatform/helpers')
-rw-r--r--launcher/modplatform/helpers/ExportToModList.cpp (renamed from launcher/modplatform/helpers/ExportModsToStringTask.cpp)60
-rw-r--r--launcher/modplatform/helpers/ExportToModList.h (renamed from launcher/modplatform/helpers/ExportModsToStringTask.h)10
2 files changed, 39 insertions, 31 deletions
diff --git a/launcher/modplatform/helpers/ExportModsToStringTask.cpp b/launcher/modplatform/helpers/ExportToModList.cpp
index e7be5ce1..5e01367f 100644
--- a/launcher/modplatform/helpers/ExportModsToStringTask.cpp
+++ b/launcher/modplatform/helpers/ExportToModList.cpp
@@ -15,11 +15,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#include "ExportModsToStringTask.h"
-#include "modplatform/ModIndex.h"
+#include "ExportToModList.h"
-namespace ExportToString {
-QString ExportModsToStringTask(QList<Mod*> mods, Formats format, OptionalData extraData)
+namespace ExportToModList {
+QString ExportToModList(QList<Mod*> mods, Formats format, OptionalData extraData)
{
switch (format) {
case HTML: {
@@ -28,12 +27,7 @@ QString ExportModsToStringTask(QList<Mod*> mods, Formats format, OptionalData ex
auto meta = mod->metadata();
auto modName = mod->name();
if (extraData & Url) {
- auto url = mod->homeurl();
- if (meta != nullptr) {
- url = (meta->provider == ModPlatform::ResourceProvider::FLAME ? "https://www.curseforge.com/minecraft/mc-mods/"
- : "https://modrinth.com/mod/") +
- meta->slug.remove(".pw.toml");
- }
+ auto url = mod->metaurl();
if (!url.isEmpty())
modName = QString("<a href=\"%1\">%2</a>").arg(url, modName);
}
@@ -49,7 +43,7 @@ QString ExportModsToStringTask(QList<Mod*> mods, Formats format, OptionalData ex
line += " by " + mod->authors().join(", ");
lines.append(QString("<ul>%1</ul>").arg(line));
}
- return QString("<html><body>\n\t%1\n</body></html>").arg(lines.join("\n\t"));
+ return QString("<html><body><li>\n\t%1\n</li></body></html>").arg(lines.join("\n\t"));
}
case MARKDOWN: {
QStringList lines;
@@ -57,12 +51,7 @@ QString ExportModsToStringTask(QList<Mod*> mods, Formats format, OptionalData ex
auto meta = mod->metadata();
auto modName = mod->name();
if (extraData & Url) {
- auto url = mod->homeurl();
- if (meta != nullptr) {
- url = (meta->provider == ModPlatform::ResourceProvider::FLAME ? "https://www.curseforge.com/minecraft/mc-mods/"
- : "https://modrinth.com/mod/") +
- meta->slug.remove(".pw.toml");
- }
+ auto url = mod->metaurl();
if (!url.isEmpty())
modName = QString("[%1](%2)").arg(modName, url);
}
@@ -76,6 +65,31 @@ QString ExportModsToStringTask(QList<Mod*> mods, Formats format, OptionalData ex
}
if (extraData & Authors && !mod->authors().isEmpty())
line += " by " + mod->authors().join(", ");
+ lines << "- " + line;
+ }
+ return lines.join("\n");
+ }
+ case PLAINTXT: {
+ QStringList lines;
+ for (auto mod : mods) {
+ auto meta = mod->metadata();
+ auto modName = mod->name();
+
+ auto line = "name: " + modName + ";";
+ if (extraData & Url) {
+ auto url = mod->metaurl();
+ if (!url.isEmpty())
+ line += " url: " + url + ";";
+ }
+ if (extraData & Version) {
+ auto ver = mod->version();
+ if (ver.isEmpty() && meta != nullptr)
+ ver = meta->version().toString();
+ if (!ver.isEmpty())
+ line += " version: " + QString("[%1]").arg(ver) + ";";
+ }
+ if (extraData & Authors && !mod->authors().isEmpty())
+ line += " authors " + mod->authors().join(", ") + ";";
lines << line;
}
return lines.join("\n");
@@ -86,19 +100,13 @@ QString ExportModsToStringTask(QList<Mod*> mods, Formats format, OptionalData ex
}
}
-QString ExportModsToStringTask(QList<Mod*> mods, QString lineTemplate)
+QString ExportToModList(QList<Mod*> mods, QString lineTemplate)
{
QStringList lines;
for (auto mod : mods) {
auto meta = mod->metadata();
auto modName = mod->name();
-
- auto url = mod->homeurl();
- if (meta != nullptr) {
- url = (meta->provider == ModPlatform::ResourceProvider::FLAME ? "https://www.curseforge.com/minecraft/mc-mods/"
- : "https://modrinth.com/mod/") +
- meta->slug.remove(".pw.toml");
- }
+ auto url = mod->metaurl();
auto ver = mod->version();
if (ver.isEmpty() && meta != nullptr)
ver = meta->version().toString();
@@ -111,4 +119,4 @@ QString ExportModsToStringTask(QList<Mod*> mods, QString lineTemplate)
}
return lines.join("\n");
}
-} // namespace ExportToString \ No newline at end of file
+} // namespace ExportToModList \ No newline at end of file
diff --git a/launcher/modplatform/helpers/ExportModsToStringTask.h b/launcher/modplatform/helpers/ExportToModList.h
index 756c69f7..9ff8d25a 100644
--- a/launcher/modplatform/helpers/ExportModsToStringTask.h
+++ b/launcher/modplatform/helpers/ExportToModList.h
@@ -20,14 +20,14 @@
#include <QString>
#include "minecraft/mod/Mod.h"
-namespace ExportToString {
+namespace ExportToModList {
-enum Formats { HTML, MARKDOWN };
+enum Formats { HTML, MARKDOWN, PLAINTXT, CUSTOM };
enum OptionalData {
Authors = 1 << 0,
Url = 1 << 1,
Version = 1 << 2,
};
-QString ExportModsToStringTask(QList<Mod*> mods, Formats format, OptionalData extraData);
-QString ExportModsToStringTask(QList<Mod*> mods, QString lineTemplate);
-} // namespace ExportToString
+QString ExportToModList(QList<Mod*> mods, Formats format, OptionalData extraData);
+QString ExportToModList(QList<Mod*> mods, QString lineTemplate);
+} // namespace ExportToModList