private static CurseMod MakeTestMod() { var cmod = new CurseMod { license = "CC-BY", title = "Dogecoin Flag", //short_description = "Such test. Very unit. Wow.", authors = new string[] { "pjf" } //versions = new SDVersion[1] }; cmod.files = new Dictionary <int, CurseFile>(); cmod.files[0] = new CurseFile(); cmod.files[0].SetFileVersion("0.25"); cmod.files[0].SetDownloadUrl("http://example.com/download.zip"); return(cmod); }
private static CurseMod MakeTestMod() { var cmod = new CurseMod { license = "CC-BY", title = "Dogecoin Flag", //short_description = "Such test. Very unit. Wow.", authors = new string[] {"pjf"} //versions = new SDVersion[1] }; cmod.files = new Dictionary<int, CurseFile>(); cmod.files[0] = new CurseFile(); cmod.files[0].SetFileVersion("0.25"); cmod.files[0].SetDownloadUrl("http://example.com/download.zip"); return cmod; }
private static CurseMod MakeTestMod() { var cmod = new CurseMod { license = "CC-BY", title = "Dogecoin Flag", description = "Such test. Very unit. Wow.", members = new List <CurseModMember> { new CurseModMember { username = "******" } } }; cmod.files = new List <CurseFile>() { new CurseFile() }; cmod.files[0].SetFileVersion("0.25"); cmod.files[0].SetDownloadUrl("http://example.com/download.zip"); return(cmod); }
private Metadata TransformOne(JObject json, CurseMod curseMod, CurseFile latestVersion) { Log.InfoFormat("Found Curse mod: {0} {1}", curseMod.GetName(), latestVersion.GetFileVersion()); // Only pre-fill version info if there's none already. GH #199 if (json["ksp_version_min"] == null && json["ksp_version_max"] == null && json["ksp_version"] == null) { KspVersion minVer = latestVersion.versions.Min(); KspVersion maxVer = latestVersion.versions.Max(); if (minVer == maxVer) { Log.DebugFormat("Writing ksp_version from Curse: {0}", latestVersion.version); json["ksp_version"] = latestVersion.version.ToString(); } else { Log.DebugFormat("Writing ksp_version_min,_max from Curse: {0}, {1}", minVer, maxVer); json["ksp_version_min"] = minVer.ToString(); json["ksp_version_max"] = maxVer.ToString(); } } var useDownloadNameVersion = false; var useFilenameVersion = false; var useCurseIdVersion = false; var curseMetadata = (JObject)json["x_netkan_curse"]; if (curseMetadata != null) { var useDownloadNameVersionMetadata = (bool?)curseMetadata["use_download_name_version"]; if (useDownloadNameVersionMetadata != null) { useDownloadNameVersion = useDownloadNameVersionMetadata.Value; } var useFilenameVersionMetadata = (bool?)curseMetadata["use_filename_version"]; if (useFilenameVersionMetadata != null) { useFilenameVersion = useFilenameVersionMetadata.Value; } var useCurseIdVersionMetadata = (bool?)curseMetadata["use_curse_id_version"]; if (useCurseIdVersionMetadata != null) { useCurseIdVersion = useCurseIdVersionMetadata.Value; } if ((useDownloadNameVersion ? 1 : 0) + (useFilenameVersion ? 1 : 0) + (useCurseIdVersion ? 1 : 0) > 1) { throw new Kraken("Conflicting version options set in x_netkan_curse"); } } json.SafeAdd("name", curseMod.GetName()); json.SafeAdd("abstract", curseMod.description); if (useDownloadNameVersion) { json.SafeAdd("version", latestVersion.name); } else if (useFilenameVersion) { json.SafeAdd("version", latestVersion.GetFilename()); } else if (useCurseIdVersion) { json.SafeAdd("version", latestVersion.GetCurseIdVersion()); } else { json.SafeAdd("version", latestVersion.GetFileVersion()); } json.SafeAdd("author", JToken.FromObject(curseMod.authors)); json.SafeAdd("download", Regex.Replace(latestVersion.GetDownloadUrl(), " ", "%20")); // Curse provides users with the following default selection of licenses. Let's convert them to CKAN // compatible license strings if possible. // // "Academic Free License v3.0" - Becomes "AFL-3.0" // "Ace3 Style BSD" - Becomes "restricted" // "All Rights Reserved" - Becomes "restricted" // "Apache License version 2.0" - Becomes "Apache-2.0" // "Apple Public Source License version 2.0 (APSL)" - Becomes "APSL-2.0" // "BSD License" - Becomes "BSD-3-clause" // "Common Development and Distribution License (CDDL) " - Becomes "CDDL" // "GNU Affero General Public License version 3 (AGPLv3)" - Becomes "AGPL-3.0" // "GNU General Public License version 2 (GPLv2)" - Becomes "GPL-2.0" // "GNU General Public License version 3 (GPLv3)" - Becomes "GPL-3.0" // "GNU Lesser General Public License version 2.1 (LGPLv2.1)" - Becomes "LGPL-2.1" // "GNU Lesser General Public License version 3 (LGPLv3)" - Becomes "LGPL-3.0" // "ISC License (ISCL)" - Becomes "ISC" // "Microsoft Public License (Ms-PL)" - Becomes "Ms-PL" // "Microsoft Reciprocal License (Ms-RL)" - Becomes "Ms-RL" // "MIT License" - Becomes "MIT" // "Mozilla Public License 1.0 (MPL)" - Becomes "MPL-1.0" // "Mozilla Public License 1.1 (MPL 1.1)" - Becomes "MPL-1.1" // "Public Domain" - Becomes "public-domain" // "WTFPL" - Becomes "WTFPL" // "zlib/libpng License" - Becomes "Zlib" // "Custom License" - Becomes "unknown" var curseLicense = curseMod.license.Trim(); switch (curseLicense) { case "Academic Free License v3.0": json.SafeAdd("license", "AFL-3.0"); break; case "Ace3 Style BSD": json.SafeAdd("license", "restricted"); break; case "All Rights Reserved": json.SafeAdd("license", "restricted"); break; case "Apache License version 2.0": json.SafeAdd("license", "Apache-2.0"); break; case "Apple Public Source License version 2.0 (APSL)": json.SafeAdd("license", "APSL-2.0"); break; case "BSD License": json.SafeAdd("license", "BSD-3-clause"); break; case "Common Development and Distribution License (CDDL) ": json.SafeAdd("license", "CDDL"); break; case "GNU Affero General Public License version 3 (AGPLv3)": json.SafeAdd("license", "AGPL-3.0"); break; case "GNU General Public License version 2 (GPLv2)": json.SafeAdd("license", "GPL-2.0"); break; case "GNU General Public License version 3 (GPLv3)": json.SafeAdd("license", "GPL-3.0"); break; case "GNU Lesser General Public License version 2.1 (LGPLv2.1)": json.SafeAdd("license", "LGPL-2.1"); break; case "GNU Lesser General Public License version 3 (LGPLv3)": json.SafeAdd("license", "LGPL-3.0"); break; case "ISC License (ISCL)": json.SafeAdd("license", "ISC"); break; case "Microsoft Public License (Ms-PL)": json.SafeAdd("license", "Ms-PL"); break; case "Microsoft Reciprocal License (Ms-RL)": json.SafeAdd("license", "Ms-RL"); break; case "MIT License": json.SafeAdd("license", "MIT"); break; case "Mozilla Public License 1.0 (MPL)": json.SafeAdd("license", "MPL-1.0"); break; case "Mozilla Public License 1.1 (MPL 1.1)": json.SafeAdd("license", "MPL-1.1"); break; case "Public Domain": json.SafeAdd("license", "public-domain"); break; case "WTFPL": json.SafeAdd("license", "WTFPL"); break; case "zlib/libpng License": json.SafeAdd("license", "Zlib"); break; default: json.SafeAdd("license", "unknown"); break; } // Make sure resources exist. if (json["resources"] == null) { json["resources"] = new JObject(); } var resourcesJson = (JObject)json["resources"]; //resourcesJson.SafeAdd("homepage", Normalize(curseMod.website)); //resourcesJson.SafeAdd("repository", Normalize(curseMod.source_code)); resourcesJson.SafeAdd("curse", curseMod.GetProjectUrl()); if (curseMod.thumbnail != null) { resourcesJson.SafeAdd("x_screenshot", Normalize(new Uri(curseMod.thumbnail))); } Log.DebugFormat("Transformed metadata:{0}{1}", Environment.NewLine, json); return(new Metadata(json)); }