diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96b68aec..0de21e19 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,31 +1,42 @@ -If you make any contributions to SponsorBlock after this file was created, you are agreeing that any code you have contributed will be licensed under GPL-3.0 and agree to allow distribution on app stores as outlined in LICENSE-APPSTORE. - -# Translations -https://crowdin.com/project/sponsorblock - -# Building -## Building locally -0. You must have [Node.js 16 or later](https://nodejs.org/) and npm installed. Works best on Linux -1. Clone with submodules - ```bash - git clone --recursive https://github.com/ajayyy/SponsorBlock - ``` - Or if you already cloned it, pull submodules with - ```bash - git submodule update --init --recursive - ``` -2. Copy the file `config.json.example` to `config.json` and adjust configuration as desired. - - Comments are invalid in JSON, make sure they are all removed. - - You will need to repeat this step in the future if you get build errors related to `CompileConfig` or `property does not exist on type ConfigClass`. This can happen for example when a new category is added. -3. Run `npm ci` in the repository to install dependencies. -4. Run `npm run build:dev` (for Chrome) or `npm run build:dev:firefox` (for Firefox) to generate a development version of the extension with source maps. - - You can also run `npm run build` (for Chrome) or `npm run build:firefox` (for Firefox) to generate a production build. -5. The built extension is now in `dist/`. You can load this folder directly in Chrome as an [unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/#manifest), or convert it to a zip file to load it as a [temporary extension](https://developer.mozilla.org/docs/Tools/about:debugging#loading_a_temporary_extension) in Firefox. - -## Developing with a clean profile and hot reloading -Run `npm run dev` (for Chrome) or `npm run dev:firefox` (for Firefox) to run the extension using a clean browser profile with hot reloading. This uses [`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands). - -Known chromium bug: Extension is not loaded properly on first start. Visit `chrome://extensions/` and reload the extension. - -For Firefox for Android, use `npm run dev:firefox-android -- --adb-device `. See the [Firefox documentation](https://extensionworkshop.com/documentation/develop/developing-extensions-for-firefox-for-android/#debug-your-extension) for more information. You may need to edit package.json and add the parameters directly there. +如果您向B站空降助手贡献代码,代表您同意您的贡献也以GPL-3.0协议开源 + +# 构建项目 + +本插件是在 [SponsorBlock](https://github.com/ajayyy/SponsorBlock) v5.4 版本基础上开发而来,从 SponsorBlock v5.5.9 版本开始不再进行功能同步,部分原项目中有价值的功能会手动添加到本项目中。 + +## 环境和准备 +1. 安装 Node.js 16 及以上版本 +1. 了解 Git,Node.js,npm 和命令行工具的基本使用方法 +1. 安装主流浏览器(Chrome以及Chromium内核的浏览器、Edge、Firefox、Safari……) + +## 构建 + +1. 下载源代码。推荐使用Git,或者图形化Git工具。 + + 执行下面的命令。 + ```bash + git clone --recursive https://github.com/HanYaodong/BilibiliSponsorBlock.git + ``` + 完成后执行下面的命令更新 submodule。 + ```bash + git submodule update --init --recursive + ``` + +1. 复制文件 `config.json.example`,并重命名为 `config.json`。你也可以根据需要,调整里面的选项。 + - JSON文件中不允许注释,请确保删除所有的注释。 + - 如果在构建过程中,你遇到了 `CompileConfig` 或者 `property does not exist on type ConfigClass` 相关的报错,你需要删除你的 `config.json` 并从 `config.json.example` 重新复制一份新的文件。项目修改 `config.json` 可能导致此类报错。 + +1. 在项目目录下执行 `npm ci` 安装依赖。你可能需要安装 C 语言构建工具才能完成安装。 + +1. 在项目目录下执行 `npm run build:dev` (Chrome) 或 `npm run build:dev:firefox` (Firefox),打包开发版插件。 + + 你也可以执行 `npm run build` 或者 `npm run build:firefox` 打包发行版插件, + +1. 打包好的程序会输出在 `dist/` 文件夹下,你可以直接把生成的文件直接[加载到Chrome浏览器中](https://developer.chrome.com/docs/extensions/mv3/getstarted/#manifest)或者[压缩后加载到火狐浏览器中](https://developer.mozilla.org/docs/Tools/about:debugging#loading_a_temporary_extension)。 + +## 开发和测试 + +执行 `npm run dev` (Chrome) 或者 `npm run dev:firefox` (火狐),npm 会打开一个安装好测试版插件的浏览器窗口,并且支持代码修改热加载。这里使用了[`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands)。 + +使用上面的方法,插件有可能在初次打开的时候不正常加载。如果你发现有问题,可以打开浏览器的插件管理,并手动重新加载插件。 diff --git a/README.md b/README.md index d5817d4e..8e21db4d 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,32 @@ Logo
- Logo by @munadikieh + Logo by @munadikieh. Modified by HanYaodong

-

BilibiliSponsorBlock(文档施工中)

+

B站空降助手

-BilibiliSponsorBlock是一款帮你跳过B站视频中广告片段的浏览器插件,插件自动获取并跳过广告片段,让你的刷视频体验毫无中断!插件中所有的标注片段都来自热心网友,您也可以提交自己的标注来帮助他人。除了广告之外,插件还支持其他类别,例如开场结尾的动画,一键三连提示等等。 +受够了B站视频中无处不在的恰饭广告了吗?受够了看了一半才发现的软广视频了吗?B站空降助手是一款帮你精准空降到广告之后的浏览器插件。插件自动获取并跳过广告片段,让你的视频体验毫无中断! -目前本项目还处于开发中(包括本文档)。 +除了广告之外,插件还支持跳过其他类别的片段,例如开场结尾的动画、一键三连提示,或者直接空降到视频封面的位置。插件中所有的标注片段都来自网友标注,您也可以提交自己的片段来为空降指挥部添砖加瓦。 本插件移植自油管插件[SponsorBlock](https://github.com/ajayyy/SponsorBlock),保留了大部分的UI和使用方法,加入一些了B站特色的功能。 -# 相比[原插件](https://github.com/ajayyy/SponsorBlock)变化 +目前本项目还处于开发中(包括本文档)。 + +# 安装 + +初版即将发布,敬请期待。 + +# 功能 + +## 使用说明 + +计划视频使用说明 + +## 相比[原插件](https://github.com/ajayyy/SponsorBlock)变化 + +如果你使用过YouTube的原插件,你会发现在核心功能和交互上,本插件基本没有做出大的改动。功能主要的不同有以下几点: - 放弃了多语言支持。不会真的有人看不懂中文还在刷B站吧? @@ -25,7 +39,7 @@ BilibiliSponsorBlock是一款帮你跳过B站视频中广告片段的浏览器 - 加入评论标记功能(制作中)。不用多说了,百亿红包,点击就领!评论区置顶链接yyds! -# 功能更新计划 +## 功能更新计划 - 评论和动态标记 @@ -48,8 +62,8 @@ BilibiliSponsorBlock是一款帮你跳过B站视频中广告片段的浏览器 # 致谢 -感谢[ajayyy](https://github.com/ajayyy)创建的[SponsorBlock](https://github.com/ajayyy/SponsorBlock)给我的启发! +感谢[ajayyy](https://github.com/ajayyy)创造的[SponsorBlock](https://github.com/ajayyy/SponsorBlock)给我的启发! -### License +### 开源协议 -This project is licensed under GNU GPL v3 or any later version +本项目在 GNU GPL v3 协议下开源。