2020-02-28 13:51:23 +08:00
|
|
|
|
/*
|
2022-07-11 16:08:25 +08:00
|
|
|
|
README:https://github.com/yichahucha/surge/tree/master
|
2020-02-28 13:51:23 +08:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
const path1 = "/groups/timeline";
|
|
|
|
|
const path2 = "/statuses/unread";
|
|
|
|
|
const path3 = "/statuses/extend";
|
|
|
|
|
const path4 = "/comments/build_comments";
|
|
|
|
|
const path5 = "/photo/recommend_list";
|
|
|
|
|
const path6 = "/stories/video_stream";
|
|
|
|
|
const path7 = "/statuses/positives/get";
|
|
|
|
|
const path8 = "/stories/home_list";
|
|
|
|
|
const path9 = "/profile/statuses";
|
|
|
|
|
const path10 = "/statuses/friends/timeline";
|
|
|
|
|
const path11 = "/service/picfeed";
|
|
|
|
|
const path12 = "/fangle/timeline";
|
|
|
|
|
const path13 = "/searchall";
|
|
|
|
|
const path14 = "/cardlist";
|
|
|
|
|
const path15 = "/statuses/video_timeline";
|
|
|
|
|
const path16 = "/page";
|
|
|
|
|
const path17 = "/statuses/friends_timeline";
|
|
|
|
|
const path18 = "/!/photos/pic_recommend_status";
|
2022-07-11 16:08:25 +08:00
|
|
|
|
const path19 = "/statuses/video_mixtimeline";
|
|
|
|
|
const path20 = "/video/tiny_stream_video_list";
|
|
|
|
|
const path21 = "/photo/info";
|
|
|
|
|
const path22 = "/live/media_homelist";
|
|
|
|
|
const path23 = "/remind/unread_count";
|
2020-02-28 13:51:23 +08:00
|
|
|
|
|
|
|
|
|
const url = $request.url;
|
2022-07-11 16:08:25 +08:00
|
|
|
|
let body = $response.body;
|
2020-02-28 13:51:23 +08:00
|
|
|
|
|
|
|
|
|
if (
|
2022-07-11 16:08:25 +08:00
|
|
|
|
url.indexOf(path1) !== -1 ||
|
|
|
|
|
url.indexOf(path2) !== -1 ||
|
|
|
|
|
url.indexOf(path10) !== -1 ||
|
|
|
|
|
url.indexOf(path15) !== -1 ||
|
|
|
|
|
url.indexOf(path17) !== -1 ||
|
|
|
|
|
url.indexOf(path20) !== -1
|
2020-02-28 13:51:23 +08:00
|
|
|
|
) {
|
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
if (obj.statuses) obj.statuses = filter_timeline_statuses(obj.statuses);
|
|
|
|
|
if (obj.advertises) obj.advertises = [];
|
|
|
|
|
if (obj.ad) obj.ad = [];
|
|
|
|
|
if (obj.num) obj.num = obj.original_num;
|
|
|
|
|
if (obj.trends) obj.trends = [];
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path3) !== -1) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
if (obj.trend) delete obj.trend;
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path4) !== -1) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
obj.recommend_max_id = 0;
|
|
|
|
|
if (obj.status) {
|
|
|
|
|
if (obj.top_hot_structs) {
|
|
|
|
|
obj.max_id = obj.top_hot_structs.call_back_struct.max_id;
|
|
|
|
|
delete obj.top_hot_structs;
|
|
|
|
|
}
|
|
|
|
|
if (obj.datas) obj.datas = filter_comments(obj.datas);
|
|
|
|
|
} else {
|
|
|
|
|
obj.datas = [];
|
|
|
|
|
}
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path5) !== -1 || url.indexOf(path18) !== -1) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
obj.data = {};
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path6) !== -1) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
let segments = obj.segments;
|
|
|
|
|
if (segments && segments.length > 0) {
|
|
|
|
|
let i = segments.length;
|
|
|
|
|
while (i--) {
|
|
|
|
|
const element = segments[i];
|
|
|
|
|
let is_ad = element.is_ad;
|
2022-07-11 16:08:25 +08:00
|
|
|
|
if (is_ad && is_ad === true) segments.splice(i, 1);
|
2020-02-28 13:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path7) !== -1) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
obj.datas = [];
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path8) !== -1) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
obj.story_list = [];
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path11) !== -1 || url.indexOf(path22) !== -1) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
obj.data = [];
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (
|
|
|
|
|
url.indexOf(path9) !== -1 ||
|
|
|
|
|
url.indexOf(path12) !== -1 ||
|
|
|
|
|
url.indexOf(path13) !== -1 ||
|
|
|
|
|
url.indexOf(path14) !== -1 ||
|
|
|
|
|
url.indexOf(path16) !== -1
|
2020-02-28 13:51:23 +08:00
|
|
|
|
) {
|
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
if (obj.cards) obj.cards = filter_timeline_cards(obj.cards);
|
|
|
|
|
body = JSON.stringify(obj);
|
2022-07-11 16:08:25 +08:00
|
|
|
|
} else if (url.indexOf(path19) !== -1) {
|
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
delete obj.expandable_view;
|
|
|
|
|
if (obj.hasOwnProperty("expandable_views")) delete obj.expandable_views;
|
|
|
|
|
body = JSON.stringify(obj);
|
|
|
|
|
} else if (url.indexOf(path21) !== -1) {
|
|
|
|
|
if (body.indexOf("ad_params") !== -1) {
|
|
|
|
|
body = JSON.stringify({});
|
|
|
|
|
}
|
|
|
|
|
} else if (url.indexOf(path23) !== -1) {
|
|
|
|
|
let obj = JSON.parse(body);
|
|
|
|
|
obj.video = {};
|
|
|
|
|
body = JSON.stringify(obj);
|
2020-02-28 13:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
$done({ body });
|
|
|
|
|
|
|
|
|
|
function filter_timeline_statuses(statuses) {
|
|
|
|
|
if (statuses && statuses.length > 0) {
|
|
|
|
|
let i = statuses.length;
|
|
|
|
|
while (i--) {
|
|
|
|
|
let element = statuses[i];
|
2022-07-11 16:08:25 +08:00
|
|
|
|
if (
|
|
|
|
|
is_timeline_likerecommend(element.title) ||
|
|
|
|
|
is_timeline_ad(element) ||
|
|
|
|
|
is_stream_video_ad(element)
|
|
|
|
|
) {
|
|
|
|
|
statuses.splice(i, 1);
|
|
|
|
|
}
|
2020-02-28 13:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return statuses;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function filter_comments(datas) {
|
|
|
|
|
if (datas && datas.length > 0) {
|
|
|
|
|
let i = datas.length;
|
|
|
|
|
while (i--) {
|
|
|
|
|
const element = datas[i];
|
2022-07-11 16:08:25 +08:00
|
|
|
|
const type = element.type;
|
|
|
|
|
if (type === 5 || type === 1 || type === 6) datas.splice(i, 1);
|
2020-02-28 13:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return datas;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function filter_timeline_cards(cards) {
|
|
|
|
|
if (cards && cards.length > 0) {
|
|
|
|
|
let j = cards.length;
|
|
|
|
|
while (j--) {
|
|
|
|
|
let item = cards[j];
|
|
|
|
|
let card_group = item.card_group;
|
|
|
|
|
if (card_group && card_group.length > 0) {
|
2022-07-11 16:08:25 +08:00
|
|
|
|
if (item.itemid && item.itemid === "hotword") {
|
|
|
|
|
filter_top_search(card_group);
|
|
|
|
|
} else {
|
|
|
|
|
let i = card_group.length;
|
|
|
|
|
while (i--) {
|
|
|
|
|
let card_group_item = card_group[i];
|
|
|
|
|
let card_type = card_group_item.card_type;
|
|
|
|
|
if (card_type) {
|
|
|
|
|
if (card_type === 9) {
|
|
|
|
|
if (is_timeline_ad(card_group_item.mblog))
|
|
|
|
|
card_group.splice(i, 1);
|
|
|
|
|
} else if (card_type === 118 || card_type === 89) {
|
|
|
|
|
card_group.splice(i, 1);
|
|
|
|
|
} else if (card_type === 42) {
|
|
|
|
|
if (
|
|
|
|
|
card_group_item.desc ===
|
|
|
|
|
"\u53ef\u80fd\u611f\u5174\u8da3\u7684\u4eba"
|
|
|
|
|
) {
|
|
|
|
|
cards.splice(j, 1);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} else if (card_type === 17) {
|
|
|
|
|
filter_top_search(card_group_item.group);
|
|
|
|
|
}
|
2020-02-28 13:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
let card_type = item.card_type;
|
2022-07-11 16:08:25 +08:00
|
|
|
|
if (card_type && card_type === 9) {
|
2020-02-28 13:51:23 +08:00
|
|
|
|
if (is_timeline_ad(item.mblog)) cards.splice(j, 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return cards;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 16:08:25 +08:00
|
|
|
|
function filter_top_search(group) {
|
|
|
|
|
if (group && group.length > 0) {
|
|
|
|
|
let k = group.length;
|
|
|
|
|
while (k--) {
|
|
|
|
|
let group_item = group[k];
|
|
|
|
|
if (group_item.hasOwnProperty("promotion")) {
|
|
|
|
|
group.splice(k, 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-02-28 13:51:23 +08:00
|
|
|
|
function is_timeline_ad(mblog) {
|
|
|
|
|
if (!mblog) return false;
|
2022-07-11 16:08:25 +08:00
|
|
|
|
let promotiontype =
|
|
|
|
|
mblog.promotion && mblog.promotion.type && mblog.promotion.type === "ad";
|
|
|
|
|
let mblogtype = mblog.mblogtype && mblog.mblogtype === 1;
|
|
|
|
|
return !!(promotiontype || mblogtype);
|
2020-02-28 13:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function is_timeline_likerecommend(title) {
|
2022-07-11 16:08:25 +08:00
|
|
|
|
return !!(title && title.type && title.type === "likerecommend");
|
2020-02-28 13:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 16:08:25 +08:00
|
|
|
|
function is_stream_video_ad(item) {
|
|
|
|
|
return item.ad_state && item.ad_state === 1;
|
|
|
|
|
}
|