mirror of https://github.com/iptv-org/iptv
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { CategoriesTable, CountriesTable, LanguagesTable, RegionsTable } from '../../tables'
|
|
import { DataLoader, DataProcessor, Markdown } from '../../core'
|
|
import { DataProcessorData } from '../../types/dataProcessor'
|
|
import { DataLoaderData } from '../../types/dataLoader'
|
|
import { README_DIR, DATA_DIR, ROOT_DIR } from '../../constants'
|
|
import { Logger, Storage } from '@freearhey/core'
|
|
|
|
async function main() {
|
|
const logger = new Logger()
|
|
const dataStorage = new Storage(DATA_DIR)
|
|
const processor = new DataProcessor()
|
|
const loader = new DataLoader({ storage: dataStorage })
|
|
const data: DataLoaderData = await loader.load()
|
|
const {
|
|
subdivisionsKeyByCode,
|
|
languagesKeyByCode,
|
|
countriesKeyByCode,
|
|
categoriesKeyById,
|
|
subdivisions,
|
|
countries,
|
|
regions,
|
|
cities
|
|
}: DataProcessorData = processor.process(data)
|
|
|
|
logger.info('creating category table...')
|
|
await new CategoriesTable({ categoriesKeyById }).make()
|
|
logger.info('creating language table...')
|
|
await new LanguagesTable({ languagesKeyByCode }).make()
|
|
logger.info('creating countires table...')
|
|
await new CountriesTable({
|
|
countriesKeyByCode,
|
|
subdivisionsKeyByCode,
|
|
subdivisions,
|
|
countries,
|
|
cities
|
|
}).make()
|
|
logger.info('creating region table...')
|
|
await new RegionsTable({ regions }).make()
|
|
|
|
logger.info('updating playlists.md...')
|
|
const playlists = new Markdown({
|
|
build: `${ROOT_DIR}/PLAYLISTS.md`,
|
|
template: `${README_DIR}/template.md`
|
|
})
|
|
playlists.compile()
|
|
}
|
|
|
|
main()
|