Skip to content

Commit 01aba44

Browse files
authored
Rename 微博发现页去广告.json to weibo_find_ads.json
1 parent 692c6eb commit 01aba44

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"enabled":true,"name":"微博发现页去广告","url":"^https?://api.weibo.cn/2/search/(finder|container_timeline|container_discover)","script":"/**\n * author:fmz200\n * date:2023-11-19 10:13:00\n */\n\n// 在请求到达服务器之前,调用此函数,您可以在此处修改请求数据\nasync function onRequest(context, request) {\n console.log(\"请求URL=\" + request.url);\n //URL参数\n request.queries[\"reqParams\"] = \"value\";\n //更新或添加新标头\n request.headers[\"X-New-Headers\"] = \"My-Value\";\n delete request.headers[\"Key-Need-Delete\"];\n\n //Update Body 使用fetch API请求接口,具体文档可网上搜索fetch API\n //request.body = await fetch('https://www.baidu.com/').then(response => response.text());\n\n //共享参数 后面onResponse时取出\n context[\"request_url\"] = request.url;\n return request;\n}\n\nconst url1 = '/search/finder';\nconst url2 = '/search/container_timeline'; // 发现页面\nconst url3 = '/search/container_discover';\nconst url4 = '/api.weibo.cn/2/page'; // 微博热搜页面url\nconst url5 = '/statuses/container_timeline_topicpage'; // 微博超话页面\nconst url6 = '/statuses/extend'; // 微博详情页面广告\nconst url7 = '/groups/allgroups/v2' // 微博首页Tab标签页\n\nconst weiboPic = [\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-01.png\",\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-27.png\",\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-30.png\",\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-32.png\"\n];\nconst titleSubPicMap = {\n '电影': 'https://simg.s.weibo.com/imgtool/20221207_dianying.png',\n '热议': 'https://simg.s.weibo.com/20220402_hottopic-icon.png',\n '影像年': 'https://simg.s.weibo.com/ads/1%2Fads_1692185628.png',\n '本地': 'https://simg.s.weibo.com/20190123154142_tongcheng.png',\n '亚运电竞': 'https://simg.s.weibo.com/ads/1%2Fads_1694765662.png',\n '直播': 'https://simg.s.weibo.com/20210705_live0705.png',\n '财经': 'https://simg.s.weibo.com/20190124150415_caijing.png',\n '找人': 'https://simg.s.weibo.com/20190125144608_zhaoren.png',\n '时尚': 'https://simg.s.weibo.com/imgtool/20220928_fashion.png',\n '长文': 'https://simg.s.weibo.com/20220621_%E9%95%BF%E6%96%87%E5%8F%91%E7%8E%B0%E9%A1%B5icon%403x.png',\n '赛事': 'https://simg.s.weibo.com/20201030_%E8%B5%9B%E4%BA%8B.png',\n '教育': 'https://simg.s.weibo.com/20200303_edu0303.png',\n '音乐': 'https://simg.s.weibo.com/imgtool/20221207_yinyue.png',\n '房产': 'https://simg.s.weibo.com/20190129182003_house.png',\n '小游戏': 'https://simg.s.weibo.com/20190118185226_youxi.png',\n '美食': 'https://simg.s.weibo.com/imgtool/20221207_food.png',\n '热聊': 'https://simg.s.weibo.com/20220402_reliao.png',\n '新知': 'https://simg.s.weibo.com/20211105_xinzhi.png',\n '微公益': 'https://simg.s.weibo.com/ads/1%2Fads_1689323535.png',\n '大健康': 'https://simg.s.weibo.com/imgtool/20221116_health.png',\n '活动': 'https://simg.s.weibo.com/20200915_huodong.png',\n '母婴': 'https://simg.s.weibo.com/20210222_mombaby.png',\n '珠宝玉石': 'https://simg.s.weibo.com/20210317_yushi.png',\n '游戏中心': 'https://simg.s.weibo.com/ads/1%2Fads_1687759038.png'\n};\nlet index = 1;\n\n// 在将响应数据发送到客户端之前,调用此函数,您可以在此处修改响应数据\nasync function onResponse(context, request, response) {\n // 更新或添加新标头\n // response.headers[\"Name\"] = context[\"name\"];\n\n // Update status Code\n // response.statusCode = 500;\n\n let url = context[\"request_url\"];\n let body = response.body;\n console.log(\"响应URL=\" + url);\n try {\n body = modifyMain(url, body);\n } catch (e) {\n console.log('脚本运行出现错误,部分广告未去除⚠️');\n console.log('错误信息:' + e.message);\n }\n\n response.body = JSON.stringify(body);\n return response;\n}\n\nfunction modifyMain(url, data) {\n let resp_data = JSON.parse(data);\n // 1、首次点击发现按钮\n if (url.includes(url1)) {\n const payload = resp_data.channelInfo?.channels?.[0]?.payload;\n console.log('进入发现页...');\n if (payload.items[1].data.itemid === \"hot_search_push\") {\n index = 2;\n }\n\n // 1.1、下标是1的为热搜模块\n payload.items[index].data.group = removeHotSearchAds(payload.items[index].data.group);\n\n // 1.2、下标为2的是轮播图模块\n console.log('移除轮播模块💕💕');\n payload.items[index + 1] = {};\n\n // 1.3、下标为3的是热议模块\n console.log('移除finder_channel模块💕💕');\n if (payload.items[index + 2].data?.more_pic?.includes('ads')) {\n delete payload.items[index + 2].data.more_pic;\n }\n payload.items[index + 2].data.group = removeFinderChannelAds(payload.items[index + 2].data.group);\n\n // 1.4、items[i].category = \"feed\" 是热门微博的部分\n payload.items = removeCategoryFeedAds(payload.items);\n\n // 1.5、背景图广告\n if (payload.loadedInfo?.headerBack) {\n delete payload.loadedInfo.headerBack;\n }\n\n return JSON.stringify(resp_data);\n }\n\n // 2、发现页面刷新/再次点击发现按钮\n if (url.includes(url2) || url.includes(url3)) {\n console.log('刷新发现页...');\n if (resp_data.items[1].data.itemid === \"hot_search_push\") {\n index = 2;\n }\n\n // 2.1、下标是1的为热搜模块\n resp_data.items[index].data.group = removeHotSearchAds(resp_data.items[index].data.group);\n\n // 2.2、下标为2的是轮播图模块\n console.log('移除轮播图模块🤣🤣');\n resp_data.items[index + 1] = {};\n\n // 2.3、下标为3的是热议模块\n console.log('移除finder_channel模块💕💕');\n if (resp_data.items[index + 2].data?.more_pic?.includes('ads')) {\n delete resp_data.items[index + 2].data.more_pic;\n }\n resp_data.items[index + 2].data.group = removeFinderChannelAds(resp_data.items[index + 2].data.group);\n\n // 2.4、items[i].category = \"feed\" 是热门微博的部分\n resp_data.items = removeCategoryFeedAds(resp_data.items);\n\n // 2.5、背景图广告\n if (resp_data.loadedInfo?.headerBack) {\n delete resp_data.loadedInfo.headerBack;\n }\n return JSON.stringify(resp_data);\n }\n\n // 3、微博热搜页面刷新\n if (url.includes(url4) && resp_data.cards && resp_data.cards[0].card_group) {\n console.log('微博热搜页面广告开始💕');\n resp_data.cards[0].card_group = resp_data.cards[0].card_group.filter(group => group.promotion == null);\n console.log('微博热搜页面广告结束💕💕');\n return JSON.stringify(resp_data);\n }\n\n // 4、微博超话页面\n if (url.includes(url5) && resp_data.items) {\n console.log('微博超话页面广告开始💕');\n resp_data.items = resp_data.items.filter(item => !item.data || item.data.mblogtypename !== \"广告\");\n console.log('微博超话页面广告结束💕💕');\n return JSON.stringify(resp_data);\n }\n\n // 5、微博超话页面\n if (url.includes(url6)) {\n console.log('微博详情页面广告开始💕');\n resp_data.head_cards = [];\n console.log('微博详情页面广告结束💕💕');\n return JSON.stringify(resp_data);\n }\n\n // 6、移除微博首页的多余tab页\n if (url.includes(url7)) {\n resp_data.pageDatas = removePageDataAds(resp_data.pageDatas);\n swapObjectsInArray(resp_data.pageDatas[0].categories[0].pageDatas, 0, 1);\n return JSON.stringify(resp_data);\n }\n\n console.log('没有广告数据🧧🧧');\n return data;\n}\n\n// 移除“微博热搜”的广告\nfunction removeHotSearchAds(groups) {\n if (!groups) return;\n console.log('移除发现页热搜广告开始💕');\n const newGroups = groups.filter(group => !(group.itemid?.includes(\"is_ad_pos\") || group.promotion));\n console.log('移除发现页热搜广告结束💕💕');\n return newGroups;\n}\n\n// 移除“微博热搜”下面的“热聊,本地等”的广告\nfunction removeFinderChannelAds(groups) {\n if (!groups) return;\n console.log('移除发现页finder_channel广告开始💕');\n const newGroups = [];\n for (const group of groups) {\n if (group.pic?.includes('ads')) {\n group.pic = titleSubPicMap[group.title_sub] || \"https://simg.s.weibo.com/20200915_huodong.png\";\n }\n newGroups.push(group);\n }\n console.log('移除发现页finder_channel广告结束💕💕');\n return newGroups;\n}\n\n// 移除“热搜微博”信息流的广告\nfunction removeCategoryFeedAds(items) {\n console.log('移除发现页热门微博广告开始💕');\n const newItems = items.filter(item => item.category !== \"feed\" || (item.data && item.data.mblogtypename !== \"广告\"));\n console.log('移除发现页热门微博广告结束💕💕');\n return newItems;\n}\n\n// 移除微博首页的多余tab页\nfunction removePageDataAds(items) {\n console.log('移除微博首页的多余tab页开始💕');\n const newItems = items.filter(item => item.pageDataType !== \"homeExtend\");\n console.log('移除微博首页的多余tab页结束💕💕');\n return newItems;\n}\n\n// 交换集合中两个对象的位置\nfunction swapObjectsInArray(array, index1, index2) {\n console.log('交换tab页顺序开始💕');\n const temp = array[index1];\n array[index1] = array[index2];\n array[index2] = temp;\n\n array[index2].type = array[index1].type;\n array[index2].apipath = \"statuses/container_timeline_unread\";\n delete array[index2].navigation_title;\n console.log('交换tab页顺序结束💕💕');\n}"}
1+
{"enabled":true,"name":"微博发现页去广告","url":"^https?://api.weibo.cn/2/search/(finder|container_timeline|container_discover)","script":"/**\n * author:fmz200\n * date:2023-11-19 10:13:00\n */\n\n// 在请求到达服务器之前,调用此函数,您可以在此处修改请求数据\nasync function onRequest(context, request) {\n console.log(\"请求URL=\" + request.url);\n //URL参数\n request.queries[\"reqParams\"] = \"value\";\n //更新或添加新标头\n request.headers[\"X-New-Headers\"] = \"My-Value\";\n delete request.headers[\"Key-Need-Delete\"];\n\n //Update Body 使用fetch API请求接口,具体文档可网上搜索fetch API\n //request.body = await fetch('https://www.baidu.com/').then(response => response.text());\n\n //共享参数 后面onResponse时取出\n context[\"request_url\"] = request.url;\n return request;\n}\n\nconst url1 = '/search/finder';\nconst url2 = '/search/container_timeline'; // 发现页面\nconst url3 = '/search/container_discover';\nconst url4 = '/api.weibo.cn/2/page'; // 微博热搜页面url\nconst url5 = '/statuses/container_timeline_topicpage'; // 微博超话页面\nconst url6 = '/statuses/extend'; // 微博详情页面广告\nconst url7 = '/groups/allgroups/v2' // 微博首页Tab标签页\n\nconst weiboPic = [\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-01.png\",\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-27.png\",\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-30.png\",\n \"https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Weibo-32.png\"\n];\nconst titleSubPicMap = {\n '电影': 'https://simg.s.weibo.com/imgtool/20221207_dianying.png',\n '热议': 'https://simg.s.weibo.com/20220402_hottopic-icon.png',\n '影像年': 'https://simg.s.weibo.com/ads/1%2Fads_1692185628.png',\n '本地': 'https://simg.s.weibo.com/20190123154142_tongcheng.png',\n '亚运电竞': 'https://simg.s.weibo.com/ads/1%2Fads_1694765662.png',\n '直播': 'https://simg.s.weibo.com/20210705_live0705.png',\n '财经': 'https://simg.s.weibo.com/20190124150415_caijing.png',\n '找人': 'https://simg.s.weibo.com/20190125144608_zhaoren.png',\n '时尚': 'https://simg.s.weibo.com/imgtool/20220928_fashion.png',\n '长文': 'https://simg.s.weibo.com/20220621_%E9%95%BF%E6%96%87%E5%8F%91%E7%8E%B0%E9%A1%B5icon%403x.png',\n '赛事': 'https://simg.s.weibo.com/20201030_%E8%B5%9B%E4%BA%8B.png',\n '教育': 'https://simg.s.weibo.com/20200303_edu0303.png',\n '音乐': 'https://simg.s.weibo.com/imgtool/20221207_yinyue.png',\n '房产': 'https://simg.s.weibo.com/20190129182003_house.png',\n '小游戏': 'https://simg.s.weibo.com/20190118185226_youxi.png',\n '美食': 'https://simg.s.weibo.com/imgtool/20221207_food.png',\n '热聊': 'https://simg.s.weibo.com/20220402_reliao.png',\n '新知': 'https://simg.s.weibo.com/20211105_xinzhi.png',\n '微公益': 'https://simg.s.weibo.com/ads/1%2Fads_1689323535.png',\n '大健康': 'https://simg.s.weibo.com/imgtool/20221116_health.png',\n '活动': 'https://simg.s.weibo.com/20200915_huodong.png',\n '母婴': 'https://simg.s.weibo.com/20210222_mombaby.png',\n '珠宝玉石': 'https://simg.s.weibo.com/20210317_yushi.png',\n '游戏中心': 'https://simg.s.weibo.com/ads/1%2Fads_1687759038.png'\n};\nlet index = 1;\n\n// 在将响应数据发送到客户端之前,调用此函数,您可以在此处修改响应数据\nasync function onResponse(context, request, response) {\n // 更新或添加新标头\n // response.headers[\"Name\"] = context[\"name\"];\n\n // Update status Code\n // response.statusCode = 500;\n\n let url = context[\"request_url\"];\n let body = response.body;\n console.log(\"响应URL=\" + url);\n try {\n body = modifyMain(url, body);\n } catch (e) {\n console.log('脚本运行出现错误,部分广告未去除⚠️');\n console.log('错误信息:' + e.message);\n }\n\n response.body = JSON.stringify(body);\n return response;\n}\n\nfunction modifyMain(url, data) {\n let resp_data = JSON.parse(data);\n // 1、首次点击发现按钮\n if (url.includes(url1)) {\n const payload = resp_data.channelInfo?.channels?.[0]?.payload;\n console.log('进入发现页...');\n if (payload.items[1].data.itemid === \"hot_search_push\") {\n index = 2;\n }\n\n // 1.1、下标是1的为热搜模块\n payload.items[index].data.group = removeHotSearchAds(payload.items[index].data.group);\n\n // 1.2、下标为2的是轮播图模块\n console.log('移除轮播模块💕💕');\n payload.items[index + 1] = {};\n\n // 1.3、下标为3的是热议模块\n console.log('移除finder_channel模块💕💕');\n if (payload.items[index + 2].data?.more_pic?.includes('ads')) {\n delete payload.items[index + 2].data.more_pic;\n }\n payload.items[index + 2].data.group = removeFinderChannelAds(payload.items[index + 2].data.group);\n\n // 1.4、items[i].category = \"feed\" 是热门微博的部分\n payload.items = removeCategoryFeedAds(payload.items);\n\n // 1.5、背景图广告\n if (payload.loadedInfo?.headerBack) {\n delete payload.loadedInfo.headerBack;\n }\n\n return JSON.stringify(resp_data);\n }\n\n // 2、发现页面刷新/再次点击发现按钮\n if (url.includes(url2) || url.includes(url3)) {\n console.log('刷新发现页...');\n if (resp_data.items[1].data.itemid === \"hot_search_push\") {\n index = 2;\n }\n\n // 2.1、下标是1的为热搜模块\n resp_data.items[index].data.group = removeHotSearchAds(resp_data.items[index].data.group);\n\n // 2.2、下标为2的是轮播图模块\n console.log('移除轮播图模块🤣🤣');\n resp_data.items[index + 1] = {};\n\n // 2.3、下标为3的是热议模块\n console.log('移除finder_channel模块💕💕');\n if (resp_data.items[index + 2].data?.more_pic?.includes('ads')) {\n delete resp_data.items[index + 2].data.more_pic;\n }\n resp_data.items[index + 2].data.group = removeFinderChannelAds(resp_data.items[index + 2].data.group);\n\n // 2.4、items[i].category = \"feed\" 是热门微博的部分\n resp_data.items = removeCategoryFeedAds(resp_data.items);\n\n // 2.5、背景图广告\n if (resp_data.loadedInfo?.headerBack) {\n delete resp_data.loadedInfo.headerBack;\n }\n return JSON.stringify(resp_data);\n }\n\n // 3、微博热搜页面刷新\n if (url.includes(url4) && resp_data.cards && resp_data.cards[0].card_group) {\n console.log('微博热搜页面广告开始💕');\n resp_data.cards[0].card_group = resp_data.cards[0].card_group.filter(group => group.promotion == null);\n console.log('微博热搜页面广告结束💕💕');\n return JSON.stringify(resp_data);\n }\n\n // 4、微博超话页面\n if (url.includes(url5) && resp_data.items) {\n console.log('微博超话页面广告开始💕');\n resp_data.items = resp_data.items.filter(item => !item.data || item.data.mblogtypename !== \"广告\");\n console.log('微博超话页面广告结束💕💕');\n return JSON.stringify(resp_data);\n }\n\n // 5、微博超话页面\n if (url.includes(url6)) {\n console.log('微博详情页面广告开始💕');\n resp_data.head_cards = [];\n console.log('微博详情页面广告结束💕💕');\n return JSON.stringify(resp_data);\n }\n\n // 6、移除微博首页的多余tab页\n if (url.includes(url7)) {\n resp_data.pageDatas = removePageDataAds(resp_data.pageDatas);\n swapObjectsInArray(resp_data.pageDatas[0].categories[0].pageDatas, 0, 1);\n return JSON.stringify(resp_data);\n }\n\n console.log('没有广告数据🧧🧧');\n return data;\n}\n\n// 移除“微博热搜”的广告\nfunction removeHotSearchAds(groups) {\n if (!groups) return;\n console.log('移除发现页热搜广告开始💕');\n const newGroups = groups.filter(group => !(group.itemid?.includes(\"is_ad_pos\") || group.promotion));\n console.log('移除发现页热搜广告结束💕💕');\n return newGroups;\n}\n\n// 移除“微博热搜”下面的“热聊,本地等”的广告\nfunction removeFinderChannelAds(groups) {\n if (!groups) return;\n console.log('移除发现页finder_channel广告开始💕');\n const newGroups = [];\n for (const group of groups) {\n if (group.pic?.includes('ads')) {\n group.pic = titleSubPicMap[group.title_sub] || \"https://simg.s.weibo.com/20200915_huodong.png\";\n }\n newGroups.push(group);\n }\n console.log('移除发现页finder_channel广告结束💕💕');\n return newGroups;\n}\n\n// 移除“热搜微博”信息流的广告\nfunction removeCategoryFeedAds(items) {\n console.log('移除发现页热门微博广告开始💕');\n const newItems = items.filter(item => item.category !== \"feed\" || (item.data && item.data.mblogtypename !== \"广告\"));\n console.log('移除发现页热门微博广告结束💕💕');\n return newItems;\n}\n\n// 移除微博首页的多余tab页\nfunction removePageDataAds(items) {\n console.log('移除微博首页的多余tab页开始💕');\n const newItems = items.filter(item => item.pageDataType !== \"homeExtend\");\n console.log('移除微博首页的多余tab页结束💕💕');\n return newItems;\n}\n\n// 交换集合中两个对象的位置\nfunction swapObjectsInArray(array, index1, index2) {\n console.log('交换tab页顺序开始💕');\n const temp = array[index1];\n array[index1] = array[index2];\n array[index2] = temp;\n\n array[index2].type = array[index1].type;\n array[index2].apipath = \"statuses/container_timeline_unread\";\n delete array[index2].navigation_title;\n console.log('交换tab页顺序结束💕💕');\n}"}

0 commit comments

Comments
 (0)