bili-rm-ads-js

uran

2024/11/11

bilibili remove ads

修改内容位于:

  // iPad 我的页面
  if (obj?.data?.ipad_recommend_sections?.length > 0) {
    const itemList = [789, 790, 791, 792, 793]; // 789我的关注 790我的消息 791我的钱包 792直播中心 793大会员 794我的课程 2542我的游戏
    obj.data.ipad_recommend_sections = obj.data.ipad_recommend_sections.filter((i) => itemList?.includes(i.id));
  }
  if (obj?.data?.ipad_more_sections?.length > 0) {
    const itemList = [797, 798]; // 797我的客服 798设置 1070青少年守护
    obj.data.ipad_more_sections = obj.data.ipad_more_sections.filter((i) => itemList?.includes(i.id));
  }
  // iPhone 我的页面
  if (obj?.data?.sections_v2?.length > 0) {
    let newSects = [];
    for (let item of obj.data.sections_v2) {
      if (item?.button) {
        delete item.button;
      }
      if (item?.style) {
        if (item?.style === 1 || item?.style === 2) {
          if (item?.title) {
            if (item?.title === "创作中心") {  // 创作中心
              //if (item?.title) {
                //delete item.title;
              //}
              if (item?.items?.length > 0 && item.items[5]) {  //保留创作中心/稿件管理/主播中心/直播数据凑成一行
                item.items = [item.items[0], item.items[1], item.items[5], item.items[6]].filter(Boolean);
                //continue;
              }
              else {
                continue;
              }
            }
            else if (item?.title === "推荐服务") {  // 推荐服务
              continue;
            }
            else if (item?.title === "更多服务") {
              //if (item?.title) {
                //delete item.title;
              //}
              if (item?.items?.length > 0) {
                let newItems = [];
                for (let i of item.items) {
                  if (/user_center\/feedback/g.test(i?.uri)) {
                    newItems.push(i); // 联系客服
                  } else if (/user_center\/setting/g.test(i?.uri)) {
                    newItems.push(i); // 设置
                  } else {
                    continue;
                  }
                }
                item.items = newItems;
              }
            }
          }
        } else {
          continue; // 其他style
        }
      }
      newSects.push(item);
    }
    obj.data.sections_v2 = newSects;
  }
// 脚本引用 https://raw.githubusercontent.com/RuCu6/Loon/main/Scripts/bilibili/json.js
// 2024-11-08 12:30
// modified by uranv at 2024-11-12

const url = $request.url;
if (!$response.body) $done({});
let obj = JSON.parse($response.body);

if (url.includes("/x/resource/show/tab/v2")) {
  // 底部选项卡
  if (obj?.data?.bottom?.length > 0) {
    const sortLists = ["首页", "动态", "我的"];
    obj.data.bottom = obj.data.bottom
      .filter((i) => sortLists?.includes(i?.name))
      .sort((a, b) => sortLists.indexOf(a?.name) - sortLists.indexOf(b?.name));
  }
  // 首页导航栏
  if (obj?.data?.tab?.length > 0) {
    const sortLists = ["推荐", "热门", "动画", "影视", "直播"];
    obj.data.tab = obj.data.tab
      .filter((i) => sortLists?.includes(i?.name))
      .sort((a, b) => sortLists.indexOf(a?.name) - sortLists.indexOf(b?.name));
  }
  // 右上角按钮
  if (obj?.data?.top?.length > 0) {
    obj.data.top = obj.data.top.filter((i) => i?.name === "消息");
    if (obj?.data?.top?.[0]?.pos) {
      obj.data.top[0].pos = 1;
    }
  }
} else if (url.includes("/x/v2/account/mine")) {
  // 我的页面
  const del = ["rework_v1", "vip_section", "vip_section_v2"]; // 保留了投稿中心 "ipad_upper_sections",
  for (let i of del) {
    delete obj.data[i]; // 不必要项目
  }
  // iPad 我的页面
  if (obj?.data?.ipad_recommend_sections?.length > 0) {
    const itemList = [789, 790, 791, 792, 793]; // 789我的关注 790我的消息 791我的钱包 792直播中心 793大会员 794我的课程 2542我的游戏
    obj.data.ipad_recommend_sections = obj.data.ipad_recommend_sections.filter((i) => itemList?.includes(i.id));
  }
  if (obj?.data?.ipad_more_sections?.length > 0) {
    const itemList = [797, 798]; // 797我的客服 798设置 1070青少年守护
    obj.data.ipad_more_sections = obj.data.ipad_more_sections.filter((i) => itemList?.includes(i.id));
  }
  // iPhone 我的页面
  if (obj?.data?.sections_v2?.length > 0) {
    let newSects = [];
    for (let item of obj.data.sections_v2) {
      if (item?.button) {
        delete item.button;
      }
      if (item?.style) {
        if (item?.style === 1 || item?.style === 2) {
          if (item?.title) {
            if (item?.title === "创作中心") {  // 创作中心
              //if (item?.title) {
                //delete item.title;
              //}
              if (item?.items?.length > 0 && item.items[5]) {  //保留创作中心/稿件管理/主播中心/直播数据凑成一行
                item.items = [item.items[0], item.items[1], item.items[5], item.items[6]].filter(Boolean);
                //continue;
              }
              else {
                continue;
              }
            }
            else if (item?.title === "推荐服务") {  // 推荐服务
              continue;
            }
            else if (item?.title === "更多服务") {
              //if (item?.title) {
                //delete item.title;
              //}
              if (item?.items?.length > 0) {
                let newItems = [];
                for (let i of item.items) {
                  if (/user_center\/feedback/g.test(i?.uri)) {
                    newItems.push(i); // 联系客服
                  } else if (/user_center\/setting/g.test(i?.uri)) {
                    newItems.push(i); // 设置
                  } else {
                    continue;
                  }
                }
                item.items = newItems;
              }
            }
          }
        } else {
          continue; // 其他style
        }
      }
      newSects.push(item);
    }
    obj.data.sections_v2 = newSects;
  }
  // 非会员开启本地会员标识
  if (obj?.data?.vip) {
    if (obj?.data?.vip?.status === 0) {
      obj.data.vip_type = 2;
      obj.data.vip.type = 2;
      obj.data.vip.status = 1;
      obj.data.vip.due_date = 3818419199; // Unix 时间戳 2090-12-31 23:59:59
      obj.data.vip.label = {
        path: "",
        text: "年度大会员",
        label_theme: "annual_vip",
        text_color: "#FFFFFF",
        bg_style: 1,
        bg_color: "#FB7299",
        border_color: "",
        image: "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png"
      };
      obj.data.vip.nickname_color = "#FB7299";
      obj.data.vip.role = 3;
    }
  }
} else if (url.includes("/x/v2/account/myinfo")) {
  // 非会员开启会员专属清晰度
  if (obj?.data?.vip) {
    if (obj?.data?.vip?.status === 0) {
      obj.data.vip.type = 2;
      obj.data.vip.status = 1;
      obj.data.vip.due_date = 3818419199; // Unix 时间戳 2090-12-31 23:59:59
      obj.data.vip.role = 3;
    }
  }
} else if (url.includes("/x/v2/feed/index")) {
  // 首页推荐信息流
  if (obj?.data?.config?.toast?.has_toast) {
    obj.data.config.toast.has_toast = false; // 首页刷新通知
  }
  if (obj?.data?.items?.length > 0) {
    // 白名单
    let newItems = [];
    for (let item of obj.data.items) {
      if (item?.goto === "av") {
        // 常规模式
        if (item?.card_goto === "av") {
          newItems.push(item);
        } else {
          continue;
        }
      } else if (item?.goto === "vertical_av") {
        // 竖屏模式
        if (item?.card_goto === "av" || item?.card_goto === "vertical_av") {
          if (item?.creative_entrance) {
            item.creative_entrance = {}; // 推荐话题搜索框
          }
          if (item?.scroll_guide) {
            item.scroll_guide = {}; // 上滑观看提示
          }
          if (item?.story_cart_icon) {
            item.story_cart_icon = {}; // 相关话题图标
          }
          newItems.push(item);
        } else {
          continue;
        }
      } else {
        continue;
      }
    }
    obj.data.items = newItems;
  }
} else if (url.includes("/x/v2/search/square")) {
  // 搜索框
  if (obj?.data) {
    obj.data = { type: "history", title: "搜索历史", search_hotword_revision: 2 };
  }
} else if (url.includes("/x/v2/splash")) {
  // 开屏广告
  if (obj?.data) {
    const item = ["account", "event_list", "preload", "show"];
    item.forEach((i) => {
      delete obj.data[i];
    });
    if (obj?.data?.max_time) {
      obj.data.max_time = 0;
    }
    if (obj?.data?.min_interval) {
      obj.data.min_interval = 31536000;
    }
    if (obj?.data?.pull_interval) {
      obj.data.pull_interval = 31536000;
    }
    if (obj?.data?.list?.length > 0) {
      for (let i of obj.data.list) {
        i.duration = 0;
        i.enable_pre_download = false;
        i.begin_time = 3818332800; // Unix 时间戳 2090-12-31 00:00:00
        i.end_time = 3818419199; // Unix 时间戳 2090-12-31 23:59:59
      }
    }
  }
} else if (url.includes("/pgc/page/bangumi") || url.includes("/pgc/page/cinema/tab")) {
  // 观影页
  if (obj.result?.modules?.length > 0) {
    obj.result.modules.forEach((i) => {
      if (i?.style?.startsWith("banner")) {
        if (i?.items?.length > 0) {
          i.items = i.items.filter((ii) => ii?.link?.includes("play"));
        }
      } else if (i?.style?.startsWith("function")) {
        if (i?.items?.length > 0) {
          i.items = i.items.filter((ii) => ii?.blink?.startsWith("bilibili"));
        }
      } else if ([241, 1283, 1284, 1441]?.includes(i?.module_id)) {
        if (i?.items?.length > 0) {
          i.items = [];
        }
      } else if (i?.style?.startsWith("tip")) {
        if (i?.items?.length > 0) {
          i.items = [];
        }
      }
    });
  }
} else if (url.includes("/xlive/app-room/v1/index/getInfoByRoom")) {
  // 直播
  if (obj?.data?.activity_banner_info) {
    delete obj.data.activity_banner_info;
  }
  if (obj?.data?.shopping_info) {
    obj.data.shopping_info = { is_show: 0 };
  }
  if (obj?.data?.new_tab_info?.outer_list?.length > 0) {
    obj.data.new_tab_info.outer_list = obj.data.new_tab_info.outer_list.filter((i) => i?.biz_id !== 33);
  }
}

$done({ body: JSON.stringify(obj) });