0.0.5 • Published 8 months ago

@agcplayer/core v0.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
8 months ago

@agcplayer/core

AGC Player 小组件通用模块

Usage

npm install @agcplayer/core --save-dev
pnpm install @agcplayer/core --save-dev
yarn install @agcplayer/core --save-dev
const { request, success, error, Cheerio, Cache } = require("@agcplayer/core");

const cheerio = new Cheerio();
const cache = new Cache();

async function detail({ vod_id, type_id }) {
    if (cache.get(`detail:${vod_id}`)) {
        return success(cache.get(`detail:${vod_id}`));
    }

    try {
        const response = await request(appConfig.playUrl(vod_id), {
            headers
        });
        const html = await response.text();

        const $ = cheerio.load(html);

        const vod_name = unescapeEntity($(".movie-details .card-title").text());
        const vod_pic = $(".poster-container .img-fluid").attr("src");
        const vod_blurb = unescapeEntity($(".movie-description > p").text());
        const vod_actor = $(".movie-info .movie-info-item")
            .eq(0)
            .find("p")
            .text();
        const vod_remarks = $(".poster-container .remarks-badge").text();
        const vod_year = "";
        const vod_link = [];
        const similar = cache.get(`type:${type_id}:page:1`) || [];

        $(".play-buttons .play-button").each((_, item) => {
            const name = $(item).text();
            const url = extractUrlFromButton($(item).attr("onclick"));
            vod_link.push({
                name,
                url
            });
        });

        const vod_info = {
            vod_blurb,
            vod_id,
            vod_name,
            vod_remarks,
            vod_pic,
            vod_year,
            vod_actor,
            vod_time: "",
            vod_lang: "cn",
            vod_area: "",
            vod_class: "",
            similar,
            vod_sources: [
                {
                    source_name: "选集列表",
                    vod_play_list: {
                        url_count: vod_link.length,
                        urls: vod_link
                    }
                }
            ]
        };

        cache.set("detail:" + vod_id, vod_info);

        return success(vod_info);
    } catch (e) {
        return error(e.message);
    }
}
0.0.5

8 months ago

0.0.4

8 months ago

0.0.3

8 months ago

0.0.2

8 months ago

0.0.1

8 months ago