34 lines
1.2 KiB
JavaScript
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)
|
|
})
|