diff --git a/package.json b/package.json index 5b83475..2cb366e 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "fast-xml-parser": "^3.17.4", "html2canvas": "^1.0.0-rc.5", "iptv-playlist-parser": "^0.5.0", + "m3u": "0.0.2", "modern-normalize": "^0.6.0", "mousetrap": "^1.6.5", "qrcode.vue": "^1.7.0", diff --git a/src/components/IPTV.vue b/src/components/IPTV.vue index 8003390..fc30944 100644 --- a/src/components/IPTV.vue +++ b/src/components/IPTV.vue @@ -171,19 +171,18 @@ export default { }) }, exportSites () { - this.getAllSites() - const arr = [...this.iptvList] - const str = JSON.stringify(arr, null, 4) const options = { filters: [ - { name: 'JSON file', extensions: ['json'] }, - { name: 'Normal text file', extensions: ['txt'] }, - { name: 'All types', extensions: ['*'] } + { name: 'm3u file', extensions: ['m3u'] } ] } remote.dialog.showSaveDialog(options).then(result => { if (!result.canceled) { - fs.writeFileSync(result.filePath, str) + var writer = require('m3u').extendedWriter() + this.iptvList.forEach(e => { + writer.file(e.url, -1, e.name) + }) + fs.writeFileSync(result.filePath, writer.toString()) this.$message.success('已保存成功') } }).catch(err => { @@ -193,8 +192,7 @@ export default { importSites () { const options = { filters: [ - { name: 'm3u file', extensions: ['m3u'] }, - { name: 'JSON file', extensions: ['json'] } + { name: 'm3u file', extensions: ['m3u'] } ], properties: ['openFile'] }