Skip to content

配置文件

xrz edited this page May 4, 2023 · 10 revisions

配置文件填写注意

接下来将分区块解析配置文件。
您需要最基础的TypeScript知识以保证不填写错误。

export const a: string = "这是一段字符串";
导出 创建变量 变量名: 变量类型(字符串) = 变量的内容;

注意,只修改你认识的东西,不要瞎改!!!

类型定义区(不用改)

//=============================类型定义区(不用改)=================================
type io = 0 | 1;
type _block_region = ["cn" | "hk" | "tw" | "th"];
//=============================================================================

这里是一些TS类型,防止下面填写错误。

API区(不用改)

//==============================API区(不用改)====================================
//搜索、信息查询等APP端功能
//export const api_search: string = "https://app.bilibili.com";
//playurl等主要功能 api
//export const api_playurl: string = "https://api.bilibili.com";
//main 为 主站API(大陆+港澳台) ;intl 为 海外版API(东南亚)
export const api = {
  main: {
    web: {
      playurl: "https://api.bilibili.com",
      search: "https://api.bilibili.com",
      season_info: "https://api.bilibili.com",
      user_info: "https://api.bilibili.com",
      third_login: "https://passport.bilibili.com",
    },
    app: {
      playurl: "https://api.bilibili.com",
      search: "https://app.bilibili.com",
      season_info: "https://api.bilibili.com",
      user_info: "https://app.bilibili.com",
    },
  },
  intl: {
    playurl: "https://app.biliintl.com",
    subtitle: "https://app.biliintl.com",
    search: "https://app.biliintl.com",
    season_info: "https://app.biliintl.com",
  },
  grpc: {
    web: {
      playurl: "https://app.bilibili.com",
    },
    app: {
      playurl: "https://grpc.biliapi.net",
      subtitle: "https://app.bilibili.com",
    },
  },
};
//OAuth用API
export const api_oauth = {
  main: "https://passport.bilibili.com/x/passport-login/oauth2/refresh_token",
  intl: "https://passport.biliintl.com/x/intl/passport-login/oauth2/refresh_token",
};
//==============================================================================

这里是请求信息时的API,默认为B站官方API,可以Proxy其它BiliRoaming Service以使用本服务独享功能及个性化定制(影响请求速度)。

替换搜索 Fuck Search

//===========================替换搜索 Fuck Search================================
//添加假番剧作公告板
//标题 <em class="keyword">标签可以重点标注
export const fs_title: string = '功能测试 <em class="keyword">xrz</em>';

包在<em class="keyword"></em>里的文字将会变成B站中设置的强调色。

//封面
export const fs_cover: string =
  "https://i0.hdslb.com/bfs/face/046974d6dde4af386f7eb4f231b84ec08bad693b.jpg";
//用处不明
export const fs_uri: string = "https://xrz.cool";
//标签-副标题1
export const fs_style: string = "标签1 | 测试";
//标签-副标题2
export const fs_label: string = "标签2 | test";
//描述(WEB版API)
export const fs_desc: string = "这是一个公告哦!";

字面意思。

//番剧分数
export const fs_rating: number = 10;
//打分人数
export const fs_vote: number = 1;

类型为number,不要打引号。

//立即观看按钮-主选项标题
export const fs_watch_button_title: string = "立即观看";
//立即观看按钮-主选项链接
export const fs_watch_button_link: string = "https://cn.bing.com";
//追番按钮-追番
export const fs_follow_button_title: string = "别点";
//追番按钮-取消追番
export const fs_unfollow_button_title: string = "谢邀";
//番剧封面右上角标签
export const fs_badges: string = "萨日朗";

字面意思。

//番剧剧集显示方式 grid-单行方块(按钮式) horizontal-列表长条(横条式)
export const fs_selection_style: "grid" | "horizontal" = "horizontal";

类型为"grid" | "horizontal",意为在gridhorizontal中二选一。

//番剧剧集数据(APP端API)
export const fs_episodes_app = [
  {
    title: "教程",
    uri: "https://github.com/yujincheng08/BiliRoaming/wiki#使用方法",
  },
  {
    title: "官方反馈群",
    uri: "https://t.me/biliroaming",
    badges: [
      {
        text: "官方",
        text_color: "#FFFFFF",
        text_color_night: "#E5E5E5",
        bg_color: "#FB7299",
        bg_color_night: "#BB5B76",
        border_color: "#FB7299",
        border_color_night: "#BB5B76",
        bg_style: 1,
      },
    ],
  },
  {
    title: "这里没东西",
    uri: "https://www.bilibili.com/video/av928861104",
    badges: [
      {
        text: "愿者上勾",
        text_color: "#FFFFFF",
        text_color_night: "#E5E5E5",
        bg_color: "#FB7299",
        bg_color_night: "#BB5B76",
        border_color: "#FB7299",
        border_color_night: "#BB5B76",
        bg_style: 1,
      },
    ],
  },
];
//番剧剧集数据(WEB端API) 在官方WEB中,long_title与index_title设置可能无效,显示的为title (显示为:index_title空格long_title) ;cover不显示
//此处参考 https://socialsisteryi.github.io/bilibili-API-collect/docs/search/search_response.html#%E5%AF%B9%E8%B1%A1%E7%B1%BB%E5%9E%8B2-%E7%BB%93%E6%9E%9C%E4%B8%BA%E7%95%AA%E5%89%A7-%E5%BD%B1%E8%A7%86
export const fs_episodes_web = [
  {
    id: 1,
    cover: "",
    title: "教程",
    url: "https://github.com/yujincheng08/BiliRoaming/wiki#使用方法",
    release_date: "",
    badges: null,
    index_title: "1",
    long_title: "教程",
  },
  {
    id: 1,
    cover: "",
    title: "官方反馈群",
    url: "https://t.me/biliroaming",
    release_date: "",
    badges: [
      {
        text: "官方",
        text_color: "#FFFFFF",
        text_color_night: "#E5E5E5",
        bg_color: "#FB7299",
        bg_color_night: "#BB5B76",
        border_color: "#FB7299",
        border_color_night: "#BB5B76",
        bg_style: 1,
      },
    ],
    index_title: "2",
    long_title: "官方反馈群",
  },
  {
    id: 1,
    cover: "",
    title: "这里没东西",
    url: "https://www.bilibili.com/video/av928861104",
    release_date: "",
    badges: [
      {
        text: "愿者上勾",
        text_color: "#FFFFFF",
        text_color_night: "#E5E5E5",
        bg_color: "#FB7299",
        bg_color_night: "#BB5B76",
        border_color: "#FB7299",
        border_color_night: "#BB5B76",
        bg_style: 1,
      },
    ],
    index_title: "3",
    long_title: "这里没东西",
  },
];
//============================================================

类型参考bilibili-api-collect项目
显示问题参照注释。
不懂别改!

数据库

process.env.即读取环境变量,不会暴露在Github上。
若储存库不公开或本地部署,可以不填写环境变量,直接填写在后面字符串引号里。

//===========================数据库============================
//支持 本地模式(日志、缓存)、NOTION(日志、黑名单)、PostgreSOL(日志、缓存、黑名单)
//注:本地模式 与 PostgreSQL 优先本地
//缓存时间 单位:15分钟(min) 需打开缓存数据库 仅当deadline不存在时生效
export const cache_time = 1000 * 60 * 15;
//本地模式设置
//本地模式开关
export const db_local_enabled: io = 1;
//本地数据库查询密钥
export const local_cache_secret = process.env.local_cache_secret || "";
//PostgreSQL配置(需Read/Write权限)
import { Pool } from "pg"; //导入(不用改)
export const db_bitio_enabled: io = 0; //启用postgresql数据库
const connectionString = //三种配置方法
  process.env.POSTGRES_URL || //在Vercel项目Storage里连接数据库,并将上方 db_bitio_enabled 设为1
  process.env.db_bitio_pool || //配置环境变量 db_bitio_pool 为下方格式
  "postgresql://用户名:秘钥@服务器域名:端口/数据库名"; //配置数据库链接
export const db_bitio_pool = new Pool({ connectionString, ssl: true }); //导出(不用改)
//NOTION数据库配置
//NOTION KEY
export const NOTION_KEY =
  process.env.NOTION_KEY || "secret_***BUrz1***********eknk*****gm";
//NOTION DATABASES
//为空""且不添加环境变量即禁用该功能
export const db_NOTION_blacklist = process.env.NOTION_db_blacklist || "";
export const db_NOTION_log = process.env.NOTION_db_log || "";
//============================================================

NOTION密钥、ID等请查询其开发者网站查看详细教程。
cache_time在Vercel的本地模式下无效,单位为毫秒(ms),1000 * 60 * 15即15分钟。
local_cache_secret即访问api/admin/log?s=api/admin/clean?s=后面带的字符串。 NOTION数据库范例:
https://bili-vd-bak.notion.site/BiliRoamingExample-61fd1f61ab1a4b74adfb0fd3673af7aa
PostgreSQL初始化方法(二选一):

黑白名单设置

//======================黑白名单设置============================
//黑名单模式 1-开 0-关
export const blacklist_enabled: io = 1;
//白名单模式 1-开 0-关
export const whitelist_enabled: io = 0;

两项可同时开启。
只要有一个开启,都请选择开启public_blacklist_enableddb_NOTION_blacklist(可同时开启)。

//验证vip与视频要求 1-开 0-关
export const check_vip_enabled: io = 1;
//禁忌设置-白名单调用vip access_key 1-开 0-关
export const whitelist_vip_enabled: io = 0;
//============================================================

这两项目前似乎没什么用,没有测试过。
若有问题,请发issue。

获取公共黑白名单

//===================获取公共黑白名单============================
//功能开关 1-开 0-关
export const public_blacklist_enabled: io = 0;
//公共黑名单地址 要求:URL后需可以直接加 UID/mid
export const public_blacklist: string = "https://black.qimo.ink/api/users/";
//============================================================

public_blacklist的要求是:
若UID/mid为666,则查询其状态链接为https://black.qimo.ink/api/users/666

限制API调用

//=====================限制API调用=============================
//要求登录 1-开 0-关
export const need_login: io = 1;
//允许WEB版使用 1-开 0-关
export const web_on: io = 0;
//限制哔哩漫游最低版本 填写数字 0-不限制
//1110为1.6.10的版本号
export const ver_min: number = 1110;
//锁区,填写的是支持的地区 cn-中国大陆 hk-中国香港 tw-中国台湾 th-泰国/新加坡/东南亚地区
//TODO 暂时未加地区检测,访问不支持地区由B站服务器提示错误。
export const block_region: _block_region = ["hk"];
//============================================================

哔哩漫游版本号表(stable稳定版)

显示版本 实际版本号
1.6.10 1110
1.6.9 1097
1.6.8 1084
1.6.7 1048
... ...

若本地部署至其它地区,请添加修改block_region数组(虽然目前添不添加也无影响)。

获取非官方泰区字幕

//=====================获取非官方泰区字幕========================
//为空则禁用
//字幕获取地址 要求:URL={th_subtitle_api}{season_id}/subtitle.json?id={当集ID}
export const th_subtitle_api: string = "";
//============================================================

暂时没用。

封锁类型(不用改)

//===================封锁类型(不用改)===========================
export enum block_type {
  "web_on已关闭,请使用BiliRoaming" = 1,
  "BiliRoaming版本过低,请更新",
  "黑/白名单数据获取错误,请稍后再试",
  "宁已进入黑名单,请不要再传播漫游",
  "白名单模式已启用,您未在白名单中",
  "已设置登录可用,请登录",
  "缺少参数",
}
export const block = (code: number) => {
  return {
    code: Number(`-${code}`),
    message: `${
      block_type[code] + (code === 2 ? `至${ver_min}(版本号)以上` : "")
    }(E=${code})`,
  };
};
//============================================================

处理不符合要求的请求时显示的错误信息,以及对应处理函数。

日志函数(不用改)

//===================日志函数(不用改)===========================
export const log = {
  str: (info: string, data: string) => console.log(info, data),
  obj: (info: string, data: Object) => console.log(info, JSON.stringify(data)),
};
//============================================================