-
Notifications
You must be signed in to change notification settings - Fork 315
Expand file tree
/
Copy pathzilecosystem.js
More file actions
68 lines (60 loc) · 1.59 KB
/
Copy pathzilecosystem.js
File metadata and controls
68 lines (60 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const fs = require('fs')
const _ = require('lodash')
const axios = require('axios')
const { dlImage, exec, writeFile } = require('./utils')
const main = async () => {
const { data } = await axios(
'https://www.zilliqa.com/_next/data/iapeNMXP9k_E8-UagXQ5u/index.json',
)
const apps = data.pageProps.data.projects
for (const app of apps) {
const {
name: rawName,
description,
website,
discord,
telegram,
twitter,
addresses,
categories,
} = app
const name = rawName.replace(/\(.*/, '')
console.log(name)
const key = _.kebabCase(name.toLowerCase())
const hasLogo = !!app.logo
const logoExt = hasLogo && app.logo.match(/\.([0-9a-z]+)$/i)[1]
await exec(`mkdir -p data/zilliqa/ecosystem/${key}`)
if (hasLogo) {
await dlImage(
`https://www.zilliqa.com/zil-ecosystem/projects/${app.path}/${app.logo}`,
`data/zilliqa/ecosystem/${key}/logo.${logoExt}`,
)
}
await writeFile(
`data/zilliqa/ecosystem/${key}/meta.json`,
JSON.stringify(
{
name,
description,
web: website ? website.replace(/\/$/, '') : null,
links: Object.entries({
twitter,
telegram,
discord,
}).reduce((acc, [key, val]) => {
if (val) acc[key] = val
return acc
}, {}),
addresses,
categories: (categories || '').split(','),
gen: {
...(hasLogo ? { logo: `logo.${logoExt}` } : {}),
},
},
null,
2,
),
)
}
}
main()