package app.revanced.meta.readme import app.revanced.meta.Bundle import app.revanced.patcher.data.Context import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages import app.revanced.patcher.extensions.PatchExtensions.description import app.revanced.patcher.extensions.PatchExtensions.patchName import app.revanced.patcher.patch.Patch import java.io.File private const val TABLE_HEADER = "| \uD83D\uDC8A Patch | \uD83D\uDCDC Description | \uD83C\uDFF9 Target Version |\n" + "|:--------:|:--------------:|:-----------------:|" private val TABLE_REGEX = Regex("\\{\\{\\s?table\\s?}}") fun generateText(bundle: Bundle) { val output = StringBuilder() val packages = mutableMapOf>>>() for (patch in bundle) { patch.compatiblePackages?.forEach { pkg -> if (!packages.contains(pkg.name)) packages[pkg.name] = mutableListOf() packages[pkg.name]!!.add(patch) } } for (pkg in packages.entries.sortedByDescending { it.value.size }) { output.appendLine("### [\uD83D\uDCE6 `${pkg.key}`](https://play.google.com/store/apps/details?id=${pkg.key})") output.appendLine("
\n") output.appendLine(TABLE_HEADER) pkg.value.forEach { output.appendLine("| `${it.patchName}` | ${it.description} | ${it.getLatestVersion() ?: "all"} |") } output.appendLine("
\n") } val readmeTemplate = Template(File("README-template.md").readText()) readmeTemplate.replaceVariable(TABLE_REGEX, output.toString()) val readme = File("README.md") readme.writeText(readmeTemplate.toString()) }