MCPcopy
hub / github.com/iptv-org/iptv / RegionsTable

Class RegionsTable

scripts/tables/regionsTable.ts:15–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13}
14
15export class RegionsTable implements Table {
16 async create() {
17 const parser = new LogParser()
18 const logsStorage = new Storage(LOGS_DIR)
19 const generatorsLog = await logsStorage.load('generators.log')
20 const parsed = parser.parse(generatorsLog)
21 const logRegions = parsed.filter((logItem: LogItem) => logItem.type === 'region')
22
23 let items = new Collection<ListItem>()
24 data.regions.forEach((region: sdk.Models.Region) => {
25 const logItem = logRegions.find(
26 (logItem: LogItem) => logItem.filepath === `regions/${region.code.toLowerCase()}.m3u`
27 )
28
29 if (!logItem) return
30
31 items.add({
32 name: region.name,
33 count: logItem.count,
34 link: `https://iptv-org.github.io/iptv/${logItem.filepath}`
35 })
36 })
37
38 items = items.sortBy(item => item.name)
39
40 const output = items
41 .map(item => {
42 return `- ${item.name} <code>${item.link}</code>`
43 })
44 .join('\r\n')
45
46 const readmeStorage = new Storage(README_DIR)
47 await readmeStorage.save('_regions.md', output)
48 }
49}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected