31 lines
		
	
	
		
			724 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			724 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const ipp = require('iptv-playlist-parser')
 | |
| const logger = require('./logger')
 | |
| const file = require('./file')
 | |
| 
 | |
| const parser = {}
 | |
| 
 | |
| parser.parsePlaylist = async function (filepath) {
 | |
|   const content = await file.read(filepath)
 | |
| 
 | |
|   return ipp.parse(content)
 | |
| }
 | |
| 
 | |
| parser.parseLogs = async function (filepath) {
 | |
|   const content = await file.read(filepath)
 | |
|   if (!content) return []
 | |
|   const lines = content.split('\n')
 | |
| 
 | |
|   return lines.map(line => (line ? JSON.parse(line) : null)).filter(l => l)
 | |
| }
 | |
| 
 | |
| parser.parseNumber = function (string) {
 | |
|   const parsed = parseInt(string)
 | |
|   if (isNaN(parsed)) {
 | |
|     throw new Error('scripts/core/parser.js:parseNumber() Input value is not a number')
 | |
|   }
 | |
| 
 | |
|   return parsed
 | |
| }
 | |
| 
 | |
| module.exports = parser
 |