mirror of
https://github.com/yuanwangokk-1/TV-BOX.git
synced 2025-10-24 11:31:22 +00:00
131 lines
No EOL
4.4 KiB
HTML
131 lines
No EOL
4.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
|
<title>Banners</title>
|
|
<link href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
|
|
<style>
|
|
html, body {
|
|
margin: 0;
|
|
padding: 0;
|
|
width: 100%;
|
|
height: 240px;
|
|
overflow: hidden;
|
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
}
|
|
|
|
a:focus, input:focus, p:focus, div:focus {
|
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
-webkit-user-modify: read-write-plaintext-only;
|
|
}
|
|
|
|
#app {
|
|
width: 100%;
|
|
height: 240px;
|
|
}
|
|
|
|
.carousel {
|
|
padding: 12px 12px 0 12px;
|
|
width: calc(100% - 24px);
|
|
height: 228px;
|
|
}
|
|
|
|
.carousel .el-carousel__container {
|
|
height: 198px;
|
|
}
|
|
|
|
.carousel .el-carousel__container .image {
|
|
width: 100%;
|
|
height: 198px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<el-carousel arrow="always" class="carousel" indicator-position="outside" trigger="click">
|
|
<el-carousel-item :key="index" v-for="(item, index) in imageList">
|
|
<el-image :src="item.src" @click="imageClickHandle(index)" class="image" fit="cover"></el-image>
|
|
</el-carousel-item>
|
|
</el-carousel>
|
|
</div>
|
|
<script src="https://unpkg.com/vue@2/dist/vue.js"></script>
|
|
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
|
|
<script>
|
|
eval(fba.getInternalJs());
|
|
window.request = window.request00 || window.request
|
|
new Vue({
|
|
el: '#app',
|
|
data() {
|
|
return {
|
|
imageList: []
|
|
}
|
|
},
|
|
created() {
|
|
const saveTime = localStorage.getItem('time') || 0
|
|
if (new Date().getTime() - parseInt(saveTime) > 1000 * 60 * 60 * 2)
|
|
this.initData()
|
|
else
|
|
this.initImageList()
|
|
},
|
|
methods: {
|
|
initImageList() {
|
|
this.imageList = JSON.parse(localStorage.getItem('imageList'))
|
|
},
|
|
initData() {
|
|
try {
|
|
const html = request("https://www.gcores.com")
|
|
const json = fba.parseDomForArray(html, '.slick-list&&.slick-item')
|
|
const arr = JSON.parse(json)
|
|
let list = []
|
|
arr.forEach(item => {
|
|
let href = fba.parseDomForHtml(item, 'a&&href')
|
|
let [type, id] = href.split('/').filter(item => item)
|
|
let image = fba.parseDomForHtml(item, 'img&&src')
|
|
list.push({
|
|
src: image,
|
|
url: 'https://www.gcores.com' + href,
|
|
type: type,
|
|
id: id,
|
|
})
|
|
})
|
|
localStorage.setItem('imageList', JSON.stringify(list))
|
|
localStorage.setItem('time', new Date().getTime().toString())
|
|
this.imageList = list
|
|
} catch (e) {
|
|
alert(e)
|
|
}
|
|
|
|
},
|
|
imageClickHandle(index) {
|
|
const bannerItem = this.imageList[index]
|
|
switch (bannerItem.type) {
|
|
case 'albums':
|
|
bannerItem.url += '#immersiveTheme##noHistory#$$fypage';
|
|
break
|
|
default:
|
|
bannerItem.url += '#immersiveTheme##noHistory#';
|
|
break
|
|
}
|
|
|
|
let findRule = 'js:' + $$$.toString(bannerItem => {
|
|
bannerItem.url = MY_URL
|
|
eval(fetch('https://git.tyrantg.com/tyrantgenesis/hikerViewRules/raw/master/COLLECTION/gcores.js'))
|
|
gcores.x5SubUrlBuild(bannerItem)
|
|
}, bannerItem)
|
|
|
|
fba.open(JSON.stringify({
|
|
title: "",
|
|
url: bannerItem.url,
|
|
findRule: findRule,
|
|
/*extra: {
|
|
newWindow: true,
|
|
windowId: "机核GCORES·轮播"
|
|
}*/
|
|
}))
|
|
},
|
|
},
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |