| 116 | } |
| 117 | |
| 118 | QString toJSON(QList<Mod*> mods, OptionalData extraData) |
| 119 | { |
| 120 | QJsonArray lines; |
| 121 | for (auto mod : mods) { |
| 122 | auto meta = mod->metadata(); |
| 123 | auto modName = mod->name(); |
| 124 | QJsonObject line; |
| 125 | line["name"] = modName; |
| 126 | if (extraData & Url) { |
| 127 | auto url = mod->metaurl(); |
| 128 | if (!url.isEmpty()) |
| 129 | line["url"] = url; |
| 130 | } |
| 131 | if (extraData & Version) { |
| 132 | auto ver = mod->version(); |
| 133 | if (ver.isEmpty() && meta != nullptr) |
| 134 | ver = meta->version().toString(); |
| 135 | if (!ver.isEmpty()) |
| 136 | line["version"] = ver; |
| 137 | } |
| 138 | if (extraData & Authors && !mod->authors().isEmpty()) |
| 139 | line["authors"] = QJsonArray::fromStringList(mod->authors()); |
| 140 | if (extraData & FileName) |
| 141 | line["filename"] = mod->fileinfo().fileName(); |
| 142 | lines << line; |
| 143 | } |
| 144 | QJsonDocument doc; |
| 145 | doc.setArray(lines); |
| 146 | return doc.toJson(); |
| 147 | } |
| 148 | |
| 149 | QString toCSV(QList<Mod*> mods, OptionalData extraData) |
| 150 | { |