253 lines
8.7 KiB
JavaScript
253 lines
8.7 KiB
JavaScript
const url = $request.url;
|
|
const method = $request.method;
|
|
const postMethod = "POST";
|
|
const notifyTitle = "贴吧json脚本错误";
|
|
console.log(`贴吧json-2023.06.12.2`);
|
|
|
|
let body = JSON.parse($response.body);
|
|
// 直接全局搜索 @Modify(
|
|
if (url.includes("tiebaads/commonbatch") && method === postMethod) {
|
|
// 看图模式下的广告
|
|
let adCmd = getUrlParamValue(url, "adcmd");
|
|
if (!adCmd) {
|
|
console.log(`url:${url}`);
|
|
$notification.post(notifyTitle, "贴吧-tiebaads/commonbatch", "adCmd参数不存在");
|
|
} else {
|
|
console.log(`commonbatch:${adCmd}`);
|
|
if (body.error_code === 0) {
|
|
if (!body.res.ad?.length) {
|
|
console.log('ad字段为空');
|
|
} else {
|
|
body.res.ad = [];
|
|
// 即使ad有内容 也不一定显示广告
|
|
// 因为如果服务器下发的数据少了一些字段同样是无广告的
|
|
console.log('成功');
|
|
}
|
|
} else {
|
|
console.log('error_code不为0:' + body.error_code);
|
|
}
|
|
}
|
|
} else if (url.includes('c/f/pb/picpage')) {
|
|
console.log(`picpage`);
|
|
const liveLength = body.recom_live_list?.length;
|
|
if (liveLength) {
|
|
console.log(`去除直播:${liveLength}`);
|
|
body.recom_live_list = [];
|
|
}
|
|
} else if (url.includes('c/s/sync')) {
|
|
// get post(贴吧使用了post)均可访问
|
|
console.log('贴吧-sync');
|
|
if ('floating_icon' in body) {
|
|
console.log('右下角悬浮icon');
|
|
if (body.floating_icon) {
|
|
if (body.floating_icon.homepage?.icon_url) {
|
|
console.log('homepage悬浮去除');
|
|
} else {
|
|
console.log('无需去除homepage悬浮');
|
|
}
|
|
if (body.floating_icon.pb?.icon_url) {
|
|
console.log('pb悬浮去除');
|
|
} else {
|
|
console.log('无需去除pb悬浮');
|
|
}
|
|
body.floating_icon = null;
|
|
} else {
|
|
console.log('无需修改floating_icon字段值');
|
|
}
|
|
} else {
|
|
console.log(`body:${$response.body}`);
|
|
$notification.post(notifyTitle, "贴吧-sync", "无floating_icon字段");
|
|
}
|
|
|
|
// 回帖栏的广告
|
|
if ('advertisement_config' in body) {
|
|
if (!body.advertisement_config?.advertisement_str) {
|
|
console.log('无需处理advertisement_config');
|
|
} else {
|
|
console.log(`advertisement_str:${body.advertisement_config.advertisement_str}`);
|
|
body.advertisement_config = null;
|
|
}
|
|
} else {
|
|
console.log(`body:${$response.body}`);
|
|
$notification.post(notifyTitle, "贴吧-sync", "无advertisement_config字段");
|
|
}
|
|
|
|
if ('config' in body) {
|
|
if (body.config?.switch) {
|
|
for (const item of body.config.switch) {
|
|
if (['platform_csj_init', 'platform_ks_init', 'platform_gdt_init'].includes(item.name)) {
|
|
item.type = '0';
|
|
// 禁止初始化穿山甲/广点通/快手
|
|
console.log(`禁止初始化${item.name}`);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
console.log(`body:${$response.body}`);
|
|
$notification.post(notifyTitle, "贴吧-sync", "无config字段");
|
|
}
|
|
|
|
if ('screen_fill_data_result' in body) {
|
|
if (body.screen_fill_data_result.screen_fill_advertisement_bear_switch === "1") {
|
|
body.screen_fill_data_result.screen_fill_advertisement_bear_switch = '0';
|
|
console.log('开屏不展示小熊广告');
|
|
} else {
|
|
console.log('无需修改screen_fill_advertisement_bear_switch');
|
|
}
|
|
if (body.screen_fill_data_result.screen_fill_advertisement_plj_cpc_switch === "1") {
|
|
body.screen_fill_data_result.screen_fill_advertisement_plj_cpc_switch = '0';
|
|
console.log('开屏不展示序章CPC');
|
|
} else {
|
|
console.log('无需修改screen_fill_advertisement_plj_cpc_switch');
|
|
}
|
|
if (body.screen_fill_data_result.screen_fill_advertisement_plj_switch === "1") {
|
|
body.screen_fill_data_result.screen_fill_advertisement_plj_switch = '0';
|
|
console.log('开屏不展示序章');
|
|
} else {
|
|
console.log('无需修改screen_fill_advertisement_plj_switch');
|
|
}
|
|
} else {
|
|
console.log(`body:${$response.body}`);
|
|
$notification.post(notifyTitle, "贴吧-sync", "无screen_fill_data_result字段");
|
|
}
|
|
|
|
if ('ad_stlog_switch' in body) {
|
|
if (body.ad_stlog_switch === '1') {
|
|
body.ad_stlog_switch = '0';
|
|
console.log('修改ad_stlog_switch');
|
|
} else {
|
|
console.log('无需修改ad_stlog_switch');
|
|
}
|
|
} else {
|
|
console.log(`body:${$response.body}`);
|
|
$notification.post(notifyTitle, "贴吧-sync", "无ad_stlog_switch字段");
|
|
}
|
|
|
|
if ('lcs_strategy' in body) {
|
|
// 控制长连接开关 开启时帖子会走socket
|
|
if (body.lcs_strategy.conn_conf === '0') {
|
|
// 关闭
|
|
body.lcs_strategy.conn_conf = '1';
|
|
console.log('修改conn_conf');
|
|
} else {
|
|
console.log('无需修改conn_conf');
|
|
}
|
|
} else {
|
|
console.log(`body:${$response.body}`);
|
|
$notification.post(notifyTitle, "贴吧-sync", "无lcs_strategy字段");
|
|
}
|
|
} else if (url.includes("c/f/frs/page")) {
|
|
console.log('贴吧-FrsPage');
|
|
if (body.live_fuse_forum?.length) {
|
|
body.live_fuse_forum = [];
|
|
console.log(`去除吧头直播`);
|
|
} else {
|
|
console.log(`无需处理吧头直播`);
|
|
}
|
|
|
|
if (body.activityhead?.is_ad) {
|
|
body.activityhead = {};
|
|
console.log('去除吧内header图片广告');
|
|
} else {
|
|
console.log('无需处理activityhead');
|
|
}
|
|
body.thread_list = removeLive(body.thread_list);
|
|
removeGoodsInfo(body.forum?.banner_list?.app);
|
|
} else if (url.includes("c/f/frs/threadlist")) {
|
|
console.log('贴吧-threadlist');
|
|
removeGoodsInfo(body.banner_list?.app);
|
|
} else if (url.includes("c/f/pb/page")) {
|
|
console.log('贴吧-PbPage');
|
|
if (body.recom_ala_info?.live_id) {
|
|
console.log('帖子详情页推荐的直播广告去除');
|
|
body.recom_ala_info = null;
|
|
} else {
|
|
console.log('帖子详情页无直播广告');
|
|
}
|
|
|
|
if (body.post_list?.length) {
|
|
for (const post of body.post_list) {
|
|
if (post.outer_item) {
|
|
console.log('outer_item去除');
|
|
post.outer_item = null;
|
|
}
|
|
}
|
|
} else {
|
|
console.log('无需处理postList中的outer_item');
|
|
}
|
|
removeGoodsInfo(body.banner_list?.app);
|
|
const bannerGoodsInfoLength = body.banner_list?.pb_banner_ad?.goods_info?.length;
|
|
if (bannerGoodsInfoLength) {
|
|
console.log(`去除pb_banner_ad的goods_info:${bannerGoodsInfoLength}`)
|
|
body.banner_list.pb_banner_ad.goods_info = []
|
|
}
|
|
} else if (url.includes("c/f/excellent/personalized")) {
|
|
console.log('贴吧-personalized');
|
|
removeGoodsInfo(body.banner_list?.app);
|
|
body.thread_list = removeLive(body.thread_list);
|
|
if(body.live_answer){
|
|
console.log('去除推荐页上方的banner广告');
|
|
body.live_answer = null;
|
|
} else {
|
|
console.log('推荐页无banner广告');
|
|
}
|
|
} else if (url.includes("c/f/frs/generalTabList")) {
|
|
console.log('贴吧-generalTabList');
|
|
removeGoodsInfo(body.app_list);
|
|
} else {
|
|
$notification.post(notifyTitle, "路径/请求方法匹配错误:", method + "," + url);
|
|
}
|
|
|
|
body = JSON.stringify(body);
|
|
|
|
$done({
|
|
body
|
|
});
|
|
|
|
|
|
function getUrlParamValue(url, queryName) {
|
|
return Object.fromEntries(url.substring(url.indexOf("?") + 1)
|
|
.split("&")
|
|
.map(pair => pair.split("="))
|
|
)[queryName];
|
|
}
|
|
|
|
function removeGoodsInfo(app) {
|
|
if (app?.length) {
|
|
let goodsInfoSize = 0;
|
|
app.forEach(item => {
|
|
if (item.goods_info?.length) {
|
|
goodsInfoSize++;
|
|
item.goods_info = [];
|
|
}
|
|
})
|
|
if (goodsInfoSize) {
|
|
console.log(`去除goods_info:${goodsInfoSize}`);
|
|
} else {
|
|
console.log(`app内无goods_info`)
|
|
}
|
|
|
|
} else {
|
|
console.log(`app为空,无需处理`);
|
|
}
|
|
}
|
|
|
|
function removeLive(threadList) {
|
|
let newThreadList = threadList;
|
|
const beforeLength = threadList?.length;
|
|
if (beforeLength) {
|
|
newThreadList = threadList.filter(item => {
|
|
if (item.ala_info) {
|
|
console.log('去除推荐的直播帖子');
|
|
return false;
|
|
}
|
|
return true;
|
|
});
|
|
if (beforeLength === newThreadList.length) {
|
|
console.log("无推荐的直播帖子");
|
|
}
|
|
} else {
|
|
console.log('无需处理threadList');
|
|
}
|
|
return newThreadList;
|
|
} |