feat: 支持过滤微博热搜中的广告(FILTER_WEIBO_ADVERTISEMENT=true)

This commit is contained in:
猪猪公主z
2025-10-17 14:00:48 +08:00
parent 10db165fc4
commit 0a3869f1a2
4 changed files with 28 additions and 14 deletions

View File

@@ -28,3 +28,6 @@ USE_LOG_FILE=true
# RSS Mode # RSS Mode
RSS_MODE=false RSS_MODE=false
# Weibo
FILTER_WEIBO_ADVERTISEMENT=false

View File

@@ -17,6 +17,7 @@ export type Config = {
REDIS_PASSWORD: string; REDIS_PASSWORD: string;
REDIS_DB: number; REDIS_DB: number;
ZHIHU_COOKIE: string; ZHIHU_COOKIE: string;
FILTER_WEIBO_ADVERTISEMENT: boolean;
}; };
// 验证并提取环境变量 // 验证并提取环境变量
@@ -55,4 +56,5 @@ export const config: Config = {
REDIS_PASSWORD: getEnvVariable("REDIS_PASSWORD") || "", REDIS_PASSWORD: getEnvVariable("REDIS_PASSWORD") || "",
REDIS_DB: getNumericEnvVariable("REDIS_DB", 0), REDIS_DB: getNumericEnvVariable("REDIS_DB", 0),
ZHIHU_COOKIE: getEnvVariable("ZHIHU_COOKIE") || "", ZHIHU_COOKIE: getEnvVariable("ZHIHU_COOKIE") || "",
FILTER_WEIBO_ADVERTISEMENT: getBooleanEnvVariable("FILTER_WEIBO_ADVERTISEMENT", false),
}; };

View File

@@ -92,6 +92,7 @@ export type RouterType = {
// num: number; // num: number;
desc_extr: number; desc_extr: number;
onboard_time: number; onboard_time: number;
pic: string;
}; };
zhihu: { zhihu: {
target: { target: {

View File

@@ -2,6 +2,7 @@ import type { RouterData } from "../types.js";
import type { RouterType } from "../router.types.js"; import type { RouterType } from "../router.types.js";
import { get } from "../utils/getData.js"; import { get } from "../utils/getData.js";
import { getTime } from "../utils/getTime.js"; import { getTime } from "../utils/getTime.js";
import { config } from "../config";
export const handleRoute = async (_: undefined, noCache: boolean) => { export const handleRoute = async (_: undefined, noCache: boolean) => {
const listData = await getList(noCache); const listData = await getList(noCache);
@@ -36,18 +37,25 @@ const getList = async (noCache: boolean) => {
const list = result.data.data.cards?.[0]?.card_group; const list = result.data.data.cards?.[0]?.card_group;
return { return {
...result, ...result,
data: list.map((v: RouterType["weibo"]) => { data: list
const key = v.word_scheme ? v.word_scheme : `#${v.desc}`; .filter(
return { (v: RouterType["weibo"]) =>
id: v.itemid, !(
title: v.desc, v?.pic === "https://simg.s.weibo.com/20210408_search_point_orange.png" &&
desc: key, config.FILTER_WEIBO_ADVERTISEMENT
// author: v.flag_desc, ),
timestamp: getTime(v.onboard_time), )
hot: v.desc_extr, .map((v: RouterType["weibo"]) => {
url: `https://s.weibo.com/weibo?q=${encodeURIComponent(key)}&t=31&band_rank=1&Refer=top`, const key = v.word_scheme ?? `#${v.desc}`;
mobileUrl: v?.scheme, return {
}; id: v.itemid,
}), title: v.desc,
desc: key,
timestamp: getTime(v.onboard_time),
hot: v.desc_extr,
url: `https://s.weibo.com/weibo?q=${encodeURIComponent(key)}&t=31&band_rank=1&Refer=top`,
mobileUrl: v?.scheme,
};
}),
}; };
}; };