mirror of
https://github.com/modrinth/code.git
synced 2026-08-31 12:05:53 +00:00
Update moderation checklist (#7056)
* fix: missing delphi severity (#7054) * Utils nav, new disclosures stage, ai button in rules * add prefix to collect * Finish up new disclosures stage * update r4 messages * new r4 msg, update showcase clarity message * fix: version upload failing to detect mrpack loader (#7063) * fix: mrpack exporting with zip64 (#7064) * fix: action bar max width (#7048) * fix: action bar max width * fix: width * changelog * Rule placeholders with subsections & anchors, update messages. * update new messages to account for new rule and placeholder layout * Add nag for content disclosures --------- Co-authored-by: ThatGravyBoat <gravy@thatgravyboat.tech> Co-authored-by: chyzman <chyzalt@gmail.com> Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com> Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
This commit is contained in:
co-authored by
ThatGravyBoat
chyzman
Truman Gao
Prospector
parent
e88708998b
commit
8e9d425b1d
@@ -19,6 +19,26 @@ export interface InferredVersionInfo {
|
||||
game_versions?: string[]
|
||||
}
|
||||
|
||||
async function readMrpackManifest(rawFile: RawFile): Promise<string> {
|
||||
const { BlobReader, TextWriter, ZipReader } = await import('@zip.js/zip.js')
|
||||
const reader = new ZipReader(new BlobReader(rawFile))
|
||||
|
||||
try {
|
||||
const entries = await reader.getEntries()
|
||||
const manifest = entries.find(
|
||||
(entry) => !entry.directory && entry.filename === 'modrinth.index.json',
|
||||
)
|
||||
|
||||
if (!manifest || manifest.directory) {
|
||||
throw new Error('Missing modrinth.index.json')
|
||||
}
|
||||
|
||||
return await manifest.getData(new TextWriter())
|
||||
} finally {
|
||||
await reader.close()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills in missing version information from the filename if not already present.
|
||||
*/
|
||||
@@ -56,11 +76,18 @@ export const inferVersionInfo = async function (
|
||||
const simplifiedGameVersions = gameVersions
|
||||
.filter((it) => it.version_type === 'release')
|
||||
.map((it) => it.version)
|
||||
const loaderParsers = createLoaderParsers(project, gameVersions, simplifiedGameVersions)
|
||||
const fileName = rawFile.name.toLowerCase()
|
||||
|
||||
if (fileName.endsWith('.mrpack') || fileName.endsWith('.mrpack-primary')) {
|
||||
const manifest = await readMrpackManifest(rawFile)
|
||||
const result = loaderParsers['modrinth.index.json'](manifest)
|
||||
return fillMissingFromFilename(result, rawFile.name, project.title)
|
||||
}
|
||||
|
||||
const zipReader = new JSZip()
|
||||
const zip = await zipReader.loadAsync(rawFile)
|
||||
|
||||
const loaderParsers = createLoaderParsers(project, gameVersions, simplifiedGameVersions)
|
||||
const packParser = createPackParser(project, gameVersions, rawFile)
|
||||
const multiFileDetectors = createMultiFileDetectors(project, gameVersions, rawFile)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user