mirror of
https://github.com/cuiocean/ZY-Player.git
synced 2026-02-10 05:55:04 +08:00
删除添加新频道功能
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
<div class="detail">
|
||||
<div class="detail-content">
|
||||
<div class="detail-header">
|
||||
<div class="zy-select">
|
||||
<div class="vs-placeholder vs-noAfter" @click="openAddSite">添加</div>
|
||||
</div>
|
||||
<div class="zy-select">
|
||||
<div class="vs-placeholder vs-noAfter" @click="exportSites">导出</div>
|
||||
</div>
|
||||
@@ -21,31 +18,6 @@
|
||||
<div class="detail-body zy-scroll">
|
||||
<div class="zy-table">
|
||||
<div class="tBody zy-scroll">
|
||||
<div class="iptv-box zy-scroll" v-show="showAddSite">
|
||||
<ul>
|
||||
<li >
|
||||
<span class="name">频道名</span>
|
||||
<span class="name">Url</span>
|
||||
<span class="operate">
|
||||
<span class="btn"></span>
|
||||
<span class="btn"></span>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="name" style="display:inline-block;vertical-align:middle">
|
||||
<input style="height: 30px" v-model="newSite.name">
|
||||
</span>
|
||||
<span class="name" style="display:inline-block;vertical-align:middle">
|
||||
<input style="height: 30px" v-model="newSite.url">
|
||||
</span>
|
||||
<span class="operate">
|
||||
<span class="btn" @click="addNewSite">添加</span>
|
||||
<span class="btn" @click="closeAddSite">关闭</span>
|
||||
</span>
|
||||
</li>
|
||||
<li ></li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul>
|
||||
<draggable v-model="iptvList" @change="listUpdatedEvent">
|
||||
<transition-group>
|
||||
@@ -77,12 +49,6 @@ export default {
|
||||
data () {
|
||||
return {
|
||||
iptvList: [],
|
||||
showAddSite: false,
|
||||
newSite:
|
||||
{
|
||||
name: '',
|
||||
site: ''
|
||||
},
|
||||
searchkeyword: ''
|
||||
}
|
||||
},
|
||||
@@ -135,30 +101,6 @@ export default {
|
||||
this.$message.warning('删除频道失败, 错误信息: ' + err)
|
||||
})
|
||||
},
|
||||
closeAddSite () {
|
||||
this.showAddSite = false
|
||||
},
|
||||
openAddSite () {
|
||||
this.showAddSite = true
|
||||
},
|
||||
addNewSite () {
|
||||
if (!this.newSite.name || !this.newSite.url) {
|
||||
this.$message.error('名称和API接口不能为空。')
|
||||
return
|
||||
}
|
||||
var doc = {
|
||||
name: this.newSite.name,
|
||||
url: this.newSite.url
|
||||
}
|
||||
iptv.add(doc).then(res => {
|
||||
this.newSite = {
|
||||
name: '',
|
||||
url: ''
|
||||
}
|
||||
this.$message.success('添加新源成功!')
|
||||
this.getAllSites()
|
||||
})
|
||||
},
|
||||
listUpdatedEvent () {
|
||||
iptv.clear().then(res1 => {
|
||||
// 重新排序
|
||||
@@ -171,19 +113,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,47 +134,35 @@ export default {
|
||||
importSites () {
|
||||
const options = {
|
||||
filters: [
|
||||
{ name: 'm3u file', extensions: ['m3u'] },
|
||||
{ name: 'JSON file', extensions: ['json'] }
|
||||
{ name: 'm3u file', extensions: ['m3u'] }
|
||||
],
|
||||
properties: ['openFile']
|
||||
}
|
||||
remote.dialog.showOpenDialog(options).then(result => {
|
||||
if (!result.canceled) {
|
||||
result.filePaths.forEach(file => {
|
||||
if (file.endsWith('json')) {
|
||||
var str = fs.readFileSync(file)
|
||||
const json = JSON.parse(str)
|
||||
const parser = require('iptv-playlist-parser')
|
||||
const playlist = fs.readFileSync(file, { encoding: 'utf-8' })
|
||||
const result = parser.parse(playlist)
|
||||
var docs = []
|
||||
result.items.forEach(ele => {
|
||||
if (ele.name && ele.url && ele.url.endsWith('m3u8')) {
|
||||
var doc = {
|
||||
name: ele.name,
|
||||
url: ele.url
|
||||
}
|
||||
docs.push(doc)
|
||||
}
|
||||
})
|
||||
if (docs) {
|
||||
iptv.clear().then(res => {
|
||||
iptv.bulkAdd(json).then(e => {
|
||||
iptv.bulkAdd(docs).then(e => {
|
||||
this.getAllSites()
|
||||
this.$message.success('导入成功')
|
||||
})
|
||||
})
|
||||
} else if (file.endsWith('m3u')) {
|
||||
const parser = require('iptv-playlist-parser')
|
||||
const playlist = fs.readFileSync(file, { encoding: 'utf-8' })
|
||||
const result = parser.parse(playlist)
|
||||
var docs = []
|
||||
result.items.forEach(ele => {
|
||||
if (ele.name && ele.url && ele.url.endsWith('m3u8')) {
|
||||
var doc = {
|
||||
name: ele.name,
|
||||
url: ele.url
|
||||
}
|
||||
docs.push(doc)
|
||||
}
|
||||
})
|
||||
if (docs) {
|
||||
iptv.clear().then(res => {
|
||||
iptv.bulkAdd(docs).then(e => {
|
||||
this.getAllSites()
|
||||
this.$message.success('导入成功')
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.$message.error('m3u文件没有读取到可用源数据')
|
||||
}
|
||||
} else {
|
||||
this.$message.error('m3u文件没有读取到可用源数据')
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -248,7 +177,7 @@ export default {
|
||||
},
|
||||
getAllSites () {
|
||||
iptv.all().then(res => {
|
||||
this.iptvList = res
|
||||
this.iptvList = [...new Set(res)]
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user