Spaces:
Running
Running
| (async function() { | |
| let directoriesSocket = await fetch(`https://api.codetabs.com/v1/proxy?quest=${encodeURIComponent("https://codeberg.org/api/v1/repos/qikp/benchmarks/contents")}`); | |
| let directories = await directoriesSocket.json(); | |
| let directoryNames = directories.filter(e => e.type == "dir").map(e => e.name); | |
| for (const directory of directoryNames) { | |
| let filesSocket = await fetch(`https://api.codetabs.com/v1/proxy?quest=${encodeURIComponent(`https://codeberg.org/api/v1/repos/qikp/benchmarks/contents/${directory}`)}`); | |
| let files = await filesSocket.json(); | |
| let sheets = files.filter(e => e.type == "file").filter(e => e.name.endsWith(".csv")).map(e => ({name: e.name.split(".csv")[0], url: e.download_url})); | |
| let averageScores = {}; | |
| for (const sheet of sheets) { | |
| let sheetSocket = await fetch(`https://api.codetabs.com/v1/proxy?quest=${encodeURIComponent(sheet.url)}`); | |
| let sheetText = await sheetSocket.text(); | |
| let lines = sheetText.split("\r").join("").split("\n").slice(1) | |
| let processedLines = lines.slice(-1)[0] ? lines : lines.slice(0, -1) | |
| let scores = processedLines.map(e => parseFloat(e.split(",")[1])); | |
| let totalScore = 0; | |
| for (const score of scores) { | |
| totalScore += score; | |
| } | |
| averageScores[sheet.name] = totalScore / scores.length; | |
| } | |
| let container = document.createElement("div"); | |
| container.style.width = "640px"; | |
| container.style.height = "480px"; | |
| container.style.display = "inline-block"; | |
| let header = document.createElement("h2"); | |
| header.textContent = directory; | |
| let canvas = document.createElement("canvas"); | |
| new Chart(canvas, { | |
| type: "bar", | |
| data: { | |
| labels: Object.keys(averageScores), | |
| datasets: [{ | |
| label: "Mean similarity", | |
| data: Object.values(averageScores) | |
| }], | |
| }, | |
| options: { | |
| maintainAspectRatio: false | |
| } | |
| }); | |
| document.body.appendChild(header); | |
| container.appendChild(canvas); | |
| document.body.appendChild(container); | |
| } | |
| document.querySelector("#loading").outerHTML = ""; | |
| })(); |