RWKV-Runner/exportModelsJson.js
2023-12-25 16:56:46 +08:00

34 lines
1.2 KiB
JavaScript

// Execute this script on the Hugging Face files list page to export JSON data. Don't forget to click "Load more files".
// Run console.log(JSON.stringify(modelsJson, null, 2)) to output the JSON to the console.
let modelsJson = []
function extractValue(text, prefix) {
let ret
text.split('\n').forEach(line => {
if (!ret && line.startsWith(prefix))
ret = line.replace(prefix, '').trim()
})
return ret || ''
}
document.querySelectorAll('.grid.h-10.grid-cols-12.place-content-center.gap-x-3.border-t.px-3.dark\\:border-gray-800').forEach(async e => {
let data = {}
data.name = e.children[0].children[0].textContent.trim()
if (!data.name.endsWith('.bin') && !data.name.endsWith('.pth'))
return
data.desc = { en: '', zh: '', ja: '' }
const rawText = await (await fetch(e.children[1].href.replace('/resolve/', '/raw/'))).text()
data.size = parseInt(extractValue(rawText, 'size'))
data.SHA256 = extractValue(rawText, 'oid sha256:')
data.lastUpdated = e.children[3].children[0].getAttribute('datetime')
data.url = e.children[1].href.replace('/resolve/', '/blob/').replace('?download=true', '')
data.downloadUrl = e.children[1].href.replace('?download=true', '')
data.tags = []
modelsJson.push(data)
})