fix(route): cw cookie (#11011)

This commit is contained in:
Tony 2022-10-05 10:12:23 -09:00 committed by GitHub
parent c7cc533c79
commit 5afb04400c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 5 deletions

View File

@ -1,9 +1,12 @@
const cheerio = require('cheerio');
const { baseUrl, cookieJar, got, parseList, parseItems } = require('./utils');
const { baseUrl, cookieJar, got, parseList, parseItems, getCookie } = require('./utils');
module.exports = async (ctx) => {
const { channel } = ctx.params;
const pageUrl = `${baseUrl}/masterChannel.action`;
if (!cookieJar) {
await getCookie();
}
const { data: response } = await got(pageUrl, {
headers: {
Referer: baseUrl,

View File

@ -1,9 +1,12 @@
const cheerio = require('cheerio');
const { baseUrl, cookieJar, got, parseList, parseItems } = require('./utils');
const { baseUrl, cookieJar, got, parseList, parseItems, getCookie } = require('./utils');
module.exports = async (ctx) => {
const { channel } = ctx.params;
const pageUrl = `${baseUrl}/subchannel.action`;
if (!cookieJar) {
await getCookie();
}
const { data: response } = await got(pageUrl, {
headers: {
Referer: baseUrl,

View File

@ -1,8 +1,11 @@
const cheerio = require('cheerio');
const { baseUrl, cookieJar, got, parseList, parseItems } = require('./utils');
const { baseUrl, cookieJar, got, parseList, parseItems, getCookie } = require('./utils');
module.exports = async (ctx) => {
const pageUrl = `${baseUrl}/today`;
if (!cookieJar) {
await getCookie();
}
const { data: response } = await got(pageUrl, {
headers: {
Referer: baseUrl,

View File

@ -1,7 +1,7 @@
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
const { CookieJar } = require('tough-cookie');
const cookieJar = new CookieJar();
const { Cookie, CookieJar } = require('tough-cookie');
let cookieJar;
const config = require('@/config').value;
const baseUrl = 'https://www.cw.com.tw';
@ -12,6 +12,17 @@ const got = require('@/utils/got').extend({
},
});
const getCookie = async () => {
const response = await got(`${baseUrl}/user/get/cookie-bar`);
const cookies = response.headers['set-cookie'];
if (Array.isArray(cookies)) {
cookieJar = cookies.map(Cookie.parse);
} else {
cookieJar = [Cookie.parse(cookieJar)];
}
cookieJar = CookieJar.fromJSON({ cookies: cookieJar });
};
const parseList = ($, limit) =>
$('.caption')
.toArray()
@ -58,6 +69,7 @@ module.exports = {
baseUrl,
cookieJar,
got,
getCookie,
parseList,
parseItems,
};