From 77792f0ca44f93a3717021a0e95dd5af90b7b452 Mon Sep 17 00:00:00 2001 From: haiyangcui Date: Tue, 6 Oct 2020 21:14:35 +0200 Subject: [PATCH] =?UTF-8?q?IPTV=E6=94=AF=E6=8C=81=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E4=B8=BAm3u=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/components/IPTV.vue | 16 +++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) 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'] }