From 66dc0e432182f152d323145e0b5c743b81241448 Mon Sep 17 00:00:00 2001 From: sve1r Date: Wed, 19 Jul 2023 16:17:28 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=95feat:=20=20=E9=9A=8F=E4=B8=8A?= =?UTF-8?q?=E6=B8=B8=E4=BC=98=E5=8C=96=E5=B0=8F=E7=BA=A2=E4=B9=A6=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8E=BB=E5=B9=BF=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rewrite/AdBlock/LittleRedBook.adblock | 29 ++- .../AdBlock/LittleRedBook/LittleRedBook.js | 200 ++++++++++++------ .../LittleRedBook/LittleRedBook.min.js | 4 +- 3 files changed, 169 insertions(+), 64 deletions(-) diff --git a/Rewrite/AdBlock/LittleRedBook.adblock b/Rewrite/AdBlock/LittleRedBook.adblock index 82c78bc..349eb9f 100644 --- a/Rewrite/AdBlock/LittleRedBook.adblock +++ b/Rewrite/AdBlock/LittleRedBook.adblock @@ -6,9 +6,9 @@ // @WechatID 公众号墨鱼手记 // @TgChannel https://t.me/ddgksf2021 // @Contribute https://t.me/ddgksf2013_bot -// @MainFunction 去开屏、瀑布流、启动服务广告及一些隐私、广告、青少年请求 +// @MainFunction 去开屏、瀑布流、启动服务广告及一些隐私、广告、青少年请求,去水印及功能增强 // @Feedback 📮 ddgksf2013@163.com 📮 -// @UpdateTime 2023-03-07 +// @UpdateTime 2023-06-08 // @Function 去广告配置(自用,不定期更新) // @Suitable 自行观看“# > ”注释内容 // @Attention 如需引用请注明出处,谢谢合作! @@ -16,29 +16,52 @@ // ==/UserScript== -hostname = edith.xiaohongshu.com,www.xiaohongshu.com,pages.xiaohongshu.com,referee.xiaohongshu.com +hostname = edith.xiaohongshu.com, www.xiaohongshu.com, pages.xiaohongshu.com, referee.xiaohongshu.com + +# > 小红书_视频播放页商品推广@ddgksf2013 +^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/note\/widgets url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + +# > 小红书_短视频流去水印+强制开启保存功能@ddgksf2013 +^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/note\/redtube\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + +# > 小红书_信息流视频去水印+强制开启保存功能@ddgksf2013 +^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/note\/videofeed\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + +# > 小红书_信息流图片去水印@ddgksf2013 +^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/note\/feed\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js # > 小红书_开屏广告@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/system_service\/splash_config url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + # > 小红书_首页瀑布流@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/homefeed\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + # > 小红书_启动处理@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/system_service\/config\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + # > 小红书_热搜发现@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/search\/hot_list url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + # > 小红书_默认填词@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/search\/hint url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + # > 小红书_去除购物@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/homefeed\/categories url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + # > 小红书_猜你想搜@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/search\/trending url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js + # > 小红书_通用广告请求@ddgksf2013 ^https?:\/\/www\.xiaohongshu\.com\/api\/sns\/v\d\/(tag\/)?ads url reject-dict + # > 小红书_隐私屏蔽@ddgksf2013 ^https?:\/\/referee\.xiaohongshu\.com\/v\d\/stateReport url reject-dict + # > 小红书_Switches@ddgksf2013 ^https?:\/\/pages\.xiaohongshu\.com\/data\/native\/matrix_switches url reject-dict + # > 小红书_青少年请求@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/user\/teenager\/status url reject-dict + # > 小红书_启动引导@ddgksf2013 ^https?:\/\/edith\.xiaohongshu\.com\/api\/sns\/v\d\/guide\/home_guide url reject-dict \ No newline at end of file diff --git a/Scripts/AdBlock/LittleRedBook/LittleRedBook.js b/Scripts/AdBlock/LittleRedBook/LittleRedBook.js index 572ce92..8a20deb 100644 --- a/Scripts/AdBlock/LittleRedBook/LittleRedBook.js +++ b/Scripts/AdBlock/LittleRedBook/LittleRedBook.js @@ -1,103 +1,185 @@ -/*********************************************** -> 应用名称:墨鱼自用小红书去广告脚本 -> 脚本作者:@ddgksf2013 -> 微信账号:墨鱼手记 -> 更新时间:2023-03-07 -> 通知频道:https://t.me/ddgksf2021 -> 贡献投稿:https://t.me/ddgksf2013_bot -> 问题反馈:ddgksf2013@163.com -> 特别提醒:如需转载请注明出处,谢谢合作! -***********************************************/ - -const version = "V1.0.5"; +const version = 'V1.0.10'; let body = $response.body; if (body) { switch (!0) { + case /api\/sns\/v\d\/note\/widgets/.test($request.url): + try { + let e = JSON.parse(body), + t = ['goods_card_v2', 'note_next_step']; + for (let a of t) e.data?.[a] && delete e.data[a]; + body = JSON.stringify(e); + } catch (s) { + console.log('widgets: ' + s); + } + break; + case /api\/sns\/v\d\/note\/redtube/.test($request.url): + try { + let o = JSON.parse(body); + for (let d of o.data.items) + d.related_goods_num && (d.related_goods_num = 0), + d.has_related_goods && (d.has_related_goods = !1), + d.media_save_config && + (d.media_save_config = { + disable_save: !1, + disable_watermark: !0, + disable_weibo_cover: !0, + }), + d.share_info && + (d.share_info.function_entries = [ + { type: 'video_download' }, + { type: 'generate_image' }, + { type: 'copy_link' }, + { type: 'native_voice' }, + { type: 'video_speed' }, + { type: 'dislike' }, + { type: 'report' }, + { type: 'video_feedback' }, + ]); + body = JSON.stringify(o); + } catch (r) { + console.log('redtube: ' + r); + } + break; + case /api\/sns\/v\d\/note\/videofeed/.test($request.url): + try { + let i = JSON.parse(body); + for (let l of i.data) + l.related_goods_num && (l.related_goods_num = 0), + l.has_related_goods && (l.has_related_goods = !1), + l.media_save_config && + (l.media_save_config = { + disable_save: !1, + disable_watermark: !0, + disable_weibo_cover: !0, + }), + l.share_info && + (l.share_info.function_entries = [ + { type: 'video_download' }, + { type: 'generate_image' }, + { type: 'copy_link' }, + { type: 'native_voice' }, + { type: 'video_speed' }, + { type: 'dislike' }, + { type: 'report' }, + { type: 'video_feedback' }, + ]); + body = JSON.stringify(i); + } catch (n) { + console.log('videofeed: ' + n); + } + break; + case /api\/sns\/v\d\/note\/feed/.test($request.url): + try { + let c = JSON.parse(body); + for (let y of c.data) + if ( + (y.related_goods_num && (y.related_goods_num = 0), + y.has_related_goods && (y.has_related_goods = !1), + y.note_list) + ) + for (let g of y.note_list) + g.media_save_config = { + disable_save: !1, + disable_watermark: !0, + disable_weibo_cover: !0, + }; + body = JSON.stringify(c); + } catch (f) { + console.log('feed: ' + f); + } + break; case /api\/sns\/v\d\/homefeed\/categories\?/.test($request.url): try { - let e = JSON.parse(body); - (e.data.categories = e.data.categories.filter( - (e) => "homefeed.shop" != e.oid + let b = JSON.parse(body); + (b.data.categories = b.data.categories.filter( + (e) => !('homefeed.shop' == e.oid || 'homefeed.live' == e.oid) )), - (body = JSON.stringify(e)); - } catch (t) { - console.log("categories: " + t); + (body = JSON.stringify(b)); + } catch (p) { + console.log('categories: ' + p); } break; case /api\/sns\/v\d\/search\/hint/.test($request.url): try { - let s = JSON.parse(body); - s.data?.hint_words && - (s.data.hint_words = [ + let h = JSON.parse(body); + h.data?.hint_words && + (h.data.hint_words = [ { - title: "搜索笔记", - type: "firstEnterOther#itemCfRecWord#搜索笔记#1", - search_word: "搜索笔记", + title: '搜索笔记', + type: 'firstEnterOther#itemCfRecWord#搜索笔记#1', + search_word: '搜索笔记', }, ]), - (body = JSON.stringify(s)); - } catch (a) { - console.log("hint: " + a); + (body = JSON.stringify(h)); + } catch (v) { + console.log('hint: ' + v); } break; case /api\/sns\/v\d\/search\/hot_list/.test($request.url): try { - let r = JSON.parse(body); - (r.data = { - scene: "", - title: "", + let m = JSON.parse(body); + (m.data = { + scene: '', + title: '', items: [], - host: "", + host: '', background_color: {}, - word_request_id: "", + word_request_id: '', }), - (body = JSON.stringify(r)); - } catch (d) { - console.log("hot_list: " + d); + (body = JSON.stringify(m)); + } catch (u) { + console.log('hot_list: ' + u); } break; case /api\/sns\/v\d\/search\/trending/.test($request.url): try { - let i = JSON.parse(body); - (i.data = { title: "", queries: [], type: "", word_request_id: "" }), - (body = JSON.stringify(i)); - } catch (o) { - console.log("trending: " + o); + let k = JSON.parse(body); + (k.data = { title: '', queries: [], type: '', word_request_id: '' }), + (body = JSON.stringify(k)); + } catch ($) { + console.log('trending: ' + $); } break; case /api\/sns\/v\d\/system_service\/splash_config/.test($request.url): try { - let c = JSON.parse(body); - c.data.ads_groups.forEach((e) => { - (e.start_time = "2208963661"), - (e.end_time = "2209050061"), + let w = JSON.parse(body); + w.data.ads_groups.forEach((e) => { + (e.start_time = '2208963661'), + (e.end_time = '2209050061'), e.ads && e.ads.forEach((e) => { - (e.start_time = "2208963661"), (e.end_time = "2209050061"); + (e.start_time = '2208963661'), (e.end_time = '2209050061'); }); }), - (body = JSON.stringify(c)); - } catch (l) { - console.log("splash_config: " + l); + (body = JSON.stringify(w)); + } catch (_) { + console.log('splash_config: ' + _); } break; case /api\/sns\/v\d\/homefeed\?/.test($request.url): try { - let y = JSON.parse(body); - (y.data = y.data.filter((e) => !e.is_ads)), (body = JSON.stringify(y)); - } catch (h) { - console.log("homefeed: " + h); + let q = JSON.parse(body); + (q.data = q.data.filter((e) => !e.is_ads)), (body = JSON.stringify(q)); + } catch (E) { + console.log('homefeed: ' + E); } break; case /api\/sns\/v\d\/system_service\/config\?/.test($request.url): try { - let n = JSON.parse(body), - g = ["store", "splash", "loading_img", "app_theme", "cmt_words"]; - for (let b of g) n.data?.[b] && delete n.data[b]; - body = JSON.stringify(n); - } catch (f) { - console.log("system_service: " + f); + let x = JSON.parse(body), + C = [ + 'store', + 'splash', + 'loading_img', + 'app_theme', + 'cmt_words', + 'highlight_tab', + ]; + for (let O of C) x.data?.[O] && delete x.data[O]; + body = JSON.stringify(x); + } catch (R) { + console.log('system_service: ' + R); } break; default: diff --git a/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js b/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js index b64d7ff..b9af6ab 100644 --- a/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js +++ b/Scripts/AdBlock/LittleRedBook/LittleRedBook.min.js @@ -1,3 +1,3 @@ -const version = 'V1.0.5'; +const version = 'V1.0.10'; -let body=$response.body;if(body){switch(!0){case/api\/sns\/v\d\/homefeed\/categories\?/.test($request.url):try{let e=JSON.parse(body);e.data.categories=e.data.categories.filter(e=>"homefeed.shop"!=e.oid),body=JSON.stringify(e)}catch(t){console.log("categories: "+t)}break;case/api\/sns\/v\d\/search\/hint/.test($request.url):try{let s=JSON.parse(body);s.data?.hint_words&&(s.data.hint_words=[{title:"搜索笔记",type:"firstEnterOther#itemCfRecWord#搜索笔记#1",search_word:"搜索笔记"}]),body=JSON.stringify(s)}catch(a){console.log("hint: "+a)}break;case/api\/sns\/v\d\/search\/hot_list/.test($request.url):try{let r=JSON.parse(body);r.data={scene:"",title:"",items:[],host:"",background_color:{},word_request_id:""},body=JSON.stringify(r)}catch(d){console.log("hot_list: "+d)}break;case/api\/sns\/v\d\/search\/trending/.test($request.url):try{let i=JSON.parse(body);i.data={title:"",queries:[],type:"",word_request_id:""},body=JSON.stringify(i)}catch(o){console.log("trending: "+o)}break;case/api\/sns\/v\d\/system_service\/splash_config/.test($request.url):try{let c=JSON.parse(body);c.data.ads_groups.forEach(e=>{e.start_time="2208963661",e.end_time="2209050061",e.ads&&e.ads.forEach(e=>{e.start_time="2208963661",e.end_time="2209050061"})}),body=JSON.stringify(c)}catch(l){console.log("splash_config: "+l)}break;case/api\/sns\/v\d\/homefeed\?/.test($request.url):try{let y=JSON.parse(body);y.data=y.data.filter(e=>!e.is_ads),body=JSON.stringify(y)}catch(h){console.log("homefeed: "+h)}break;case/api\/sns\/v\d\/system_service\/config\?/.test($request.url):try{let n=JSON.parse(body),g=["store","splash","loading_img","app_theme","cmt_words"];for(let b of g)n.data?.[b]&&delete n.data[b];body=JSON.stringify(n)}catch(f){console.log("system_service: "+f)}break;default:$done({})}$done({body})}else $done({}); \ No newline at end of file +let body=$response.body;if(body){switch(!0){case/api\/sns\/v\d\/note\/widgets/.test($request.url):try{let e=JSON.parse(body),t=["goods_card_v2","note_next_step"];for(let a of t)e.data?.[a]&&delete e.data[a];body=JSON.stringify(e)}catch(s){console.log("widgets: "+s)}break;case/api\/sns\/v\d\/note\/redtube/.test($request.url):try{let o=JSON.parse(body);for(let d of o.data.items)d.related_goods_num&&(d.related_goods_num=0),d.has_related_goods&&(d.has_related_goods=!1),d.media_save_config&&(d.media_save_config={disable_save:!1,disable_watermark:!0,disable_weibo_cover:!0}),d.share_info&&(d.share_info.function_entries=[{type:"video_download"},{type:"generate_image"},{type:"copy_link"},{type:"native_voice"},{type:"video_speed"},{type:"dislike"},{type:"report"},{type:"video_feedback"}]);body=JSON.stringify(o)}catch(r){console.log("redtube: "+r)}break;case/api\/sns\/v\d\/note\/videofeed/.test($request.url):try{let i=JSON.parse(body);for(let l of i.data)l.related_goods_num&&(l.related_goods_num=0),l.has_related_goods&&(l.has_related_goods=!1),l.media_save_config&&(l.media_save_config={disable_save:!1,disable_watermark:!0,disable_weibo_cover:!0}),l.share_info&&(l.share_info.function_entries=[{type:"video_download"},{type:"generate_image"},{type:"copy_link"},{type:"native_voice"},{type:"video_speed"},{type:"dislike"},{type:"report"},{type:"video_feedback"}]);body=JSON.stringify(i)}catch(n){console.log("videofeed: "+n)}break;case/api\/sns\/v\d\/note\/feed/.test($request.url):try{let c=JSON.parse(body);for(let y of c.data)if(y.related_goods_num&&(y.related_goods_num=0),y.has_related_goods&&(y.has_related_goods=!1),y.note_list)for(let g of y.note_list)g.media_save_config={disable_save:!1,disable_watermark:!0,disable_weibo_cover:!0};body=JSON.stringify(c)}catch(f){console.log("feed: "+f)}break;case/api\/sns\/v\d\/homefeed\/categories\?/.test($request.url):try{let b=JSON.parse(body);b.data.categories=b.data.categories.filter(e=>!("homefeed.shop"==e.oid||"homefeed.live"==e.oid)),body=JSON.stringify(b)}catch(p){console.log("categories: "+p)}break;case/api\/sns\/v\d\/search\/hint/.test($request.url):try{let h=JSON.parse(body);h.data?.hint_words&&(h.data.hint_words=[{title:"搜索笔记",type:"firstEnterOther#itemCfRecWord#搜索笔记#1",search_word:"搜索笔记"}]),body=JSON.stringify(h)}catch(v){console.log("hint: "+v)}break;case/api\/sns\/v\d\/search\/hot_list/.test($request.url):try{let m=JSON.parse(body);m.data={scene:"",title:"",items:[],host:"",background_color:{},word_request_id:""},body=JSON.stringify(m)}catch(u){console.log("hot_list: "+u)}break;case/api\/sns\/v\d\/search\/trending/.test($request.url):try{let k=JSON.parse(body);k.data={title:"",queries:[],type:"",word_request_id:""},body=JSON.stringify(k)}catch($){console.log("trending: "+$)}break;case/api\/sns\/v\d\/system_service\/splash_config/.test($request.url):try{let w=JSON.parse(body);w.data.ads_groups.forEach(e=>{e.start_time="2208963661",e.end_time="2209050061",e.ads&&e.ads.forEach(e=>{e.start_time="2208963661",e.end_time="2209050061"})}),body=JSON.stringify(w)}catch(_){console.log("splash_config: "+_)}break;case/api\/sns\/v\d\/homefeed\?/.test($request.url):try{let q=JSON.parse(body);q.data=q.data.filter(e=>!e.is_ads),body=JSON.stringify(q)}catch(E){console.log("homefeed: "+E)}break;case/api\/sns\/v\d\/system_service\/config\?/.test($request.url):try{let x=JSON.parse(body),C=["store","splash","loading_img","app_theme","cmt_words","highlight_tab"];for(let O of C)x.data?.[O]&&delete x.data[O];body=JSON.stringify(x)}catch(R){console.log("system_service: "+R)}break;default:$done({})}$done({body})}else $done({}); \ No newline at end of file