Files
tvbox_collect/recha18/drpy_libs/maccms-1.0.2.js
T
2026-07-11 04:45:19 +00:00

204 lines
8.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// let option ={
// playerContent: {
// defaultResult: {
// class: [{
// type_id: 6,
// type_name: "短剧"
// }]
// }
// }
// }
var MacCmsGMSpiderTool = {
formatImgUrl: function (url, configPicUserAgent, customBaseUrl) {
if (!url.startsWith("http")) {
if (customBaseUrl) {
url = customBaseUrl + url;
} else {
url = window.location.origin + url;
}
}
if (configPicUserAgent) {
url = url + "@User-Agent=" + window.navigator.userAgent;
}
return url;
}
}
var MacCmsGMSpider = function (options) {
const categoryFilterCachePrefix = "category_";
function getVodList() {
if (options?.getVodList) {
return options.getVodList();
}
let vodList = [];
$("a.module-item").each(function () {
vodList.push({
vod_id: $(this).attr("href"),
vod_name: $(this).find(".module-poster-item-title").text().trim(),
vod_pic: MacCmsGMSpiderTool.formatImgUrl($(this).find(".module-item-pic img").data("original"), options?.configPicUserAgent),
vod_remarks: $(this).find(".module-item-douban").text().trim(),
vod_year: $(this).find(".module-item-note").text().trim()
})
});
return vodList;
}
function getSearchVodList() {
let vodList = [];
$(".module-card-item").each(function () {
vodList.push({
vod_id: $(this).find(".module-card-item-poster").attr("href"),
vod_name: $(this).find(".module-card-item-title").text().trim(),
vod_pic: MacCmsGMSpiderTool.formatImgUrl($(this).find(".module-item-pic img").data("original"), options?.configPicUserAgent),
vod_remarks: $(this).find(".module-item-douban").text().trim(),
vod_year: $(this).find(".module-item-note").text().trim()
})
});
return vodList;
}
function getPageCount(currentPage) {
if (options?.pageCountStyle) {
return $(options?.pageCountStyle).length > 0 ? currentPage + 1 : currentPage;
} else {
return $("#page").find(".page-link:last").attr("href")?.split(/[/.]/).at(2).split("-").at(8) || 1;
}
}
function cacheCategoryFilter(tid) {
let filters;
if (options?.getCategoryFilter) {
filters = options.getCategoryFilter();
} else {
filters = getCategoryFilter();
}
localStorage.setItem(categoryFilterCachePrefix + tid, JSON.stringify(filters));
}
function getCategoryFilter() {
const filters = [];
$(".module-class-item").each(function () {
const filter = {
key: "",
name: $(this).find(".module-item-title").text().trim(),
value: []
}
$(this).find(".module-item-box a").each(function () {
const params = $(this).attr("href").split(/[/.]/).at(2).split("-").slice(1);
filter.key = "index" + params.findIndex((element) => element.length > 0)
filter.value.push({
n: $(this).text().trim(),
v: params.find((element) => element.length > 0) || ""
})
})
filters.push(filter);
})
return filters;
}
return {
homeContent: function (filter) {
const option = options.homeContent;
let result = Object.assign({
class: [],
filters: {},
list: []
}, option?.defaultResult || {});
$(option.category.select).slice(...option.category.slice).each(function () {
let categoryHref = $(this).find("a").attr("href");
if (categoryHref.startsWith("http")) {
if (categoryHref.startsWith(window.location.origin)) {
categoryHref = categoryHref.substring(window.location.origin.length);
} else {
return true;
}
}
const categoryId = categoryHref.split(/[/.]/).at(2);
result.class.push({
type_id: categoryId,
type_name: $(this).find("a").text().trim()
});
})
result.class.forEach(function (item) {
const cacheFilter = localStorage.getItem(categoryFilterCachePrefix + item.type_id);
if (typeof cacheFilter !== "undefined" && cacheFilter !== null) {
result.filters[item.type_id] = JSON.parse(cacheFilter);
}
})
result.list = getVodList();
return result;
},
categoryContent: function (tid, pg, filter, extend) {
let result = {
list: [],
pagecount: getPageCount(pg)
};
cacheCategoryFilter(tid);
result.list = getVodList();
return result;
},
detailContent: function (ids) {
if (options?.detailContent?.customFunction) {
return options.detailContent.customFunction(ids);
}
let items = {};
$(".module-info-item").each(function () {
items[$(this).find(".module-info-item-title").text().trim().replace("", "")] = $(this).find(".module-info-item-content").text().trim();
});
let vodPlayData = [];
$("#y-playList .module-tab-item").each(function (i) {
let media = [];
$(`.module-play-list:eq(${i}) .module-play-list-link`).each(function () {
media.push({
name: $(this).text().trim(),
type: "webview",
ext: {
replace: {
playUrl: $(this).attr("href"),
}
}
});
})
vodPlayData.push({
from: $(this).data("dropdown-value"),
media: media
})
})
return vod = {
vod_id: ids[0],
vod_name: $(".module-info-heading h1").text().trim(),
vod_pic: MacCmsGMSpiderTool.formatImgUrl($(".module-info-poster .module-item-pic img").data("original"),options?.configPicUserAgent),
vod_remarks: items?.["更新"] || "",
vod_director: items?.["导演"] || "",
vod_actor: items?.["主演"] || "",
vod_content: $(".module-info-introduction-content").text().trim(),
vod_play_data: vodPlayData
};
},
playerContent: function (flag, id, vipFlags) {
if (options?.playerContent?.OkPlayer) {
if ($("#playleft iframe").contents()[0].readyState === 'complete') {
$("#playleft iframe").contents().find("#start").click();
} else {
$('#playleft iframe').on("load", function () {
$("#playleft iframe").contents().ready(function () {
$("#playleft iframe").contents().find("#start").click();
})
});
}
}
return {
type: "match"
};
},
searchContent: function (key, quick, pg) {
const result = {
list: [],
pagecount: getPageCount(pg)
};
result.list = getSearchVodList();
return result;
}
};
}