├── .github ├── FUNDING.yml └── workflows │ ├── generate_md.yml │ └── pull_request_check.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── Template.md ├── importUrlsList.md ├── list.ts ├── package.json ├── pnpm-lock.yaml ├── scripts ├── check.ts ├── types.ts ├── update.ts └── writeFile.ts ├── subs └── 占位文件 └── tsconfig.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ["https://afdian.com/a/Adpro"] 2 | -------------------------------------------------------------------------------- /.github/workflows/generate_md.yml: -------------------------------------------------------------------------------- 1 | name: generate_md 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - '**' 8 | 9 | jobs: 10 | generate_readme: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4.1.1 14 | with: 15 | fetch-depth: 0 16 | 17 | - uses: actions/setup-node@v4.0.1 18 | with: 19 | node-version: 20 20 | 21 | - uses: pnpm/action-setup@v3 22 | 23 | - run: pnpm install 24 | 25 | - id: check 26 | run: pnpm check 27 | 28 | - if: ${{ steps.check.outcome == 'success' }} 29 | run: pnpm run update 30 | 31 | - name: Git commit 32 | id: commit 33 | run: | 34 | git config --local user.email github-actions[bot]@users.noreply.github.com 35 | git config --local user.name github-actions[bot] 36 | git config --global core.autocrlf true 37 | git config --global core.safecrlf false 38 | git status 39 | git add . 40 | git commit -a -m "docs: update README and importUrlsList" 41 | continue-on-error: true 42 | 43 | - name: Git push 44 | if: ${{ steps.commit.outcome == 'success' }} 45 | uses: ad-m/github-push-action@master 46 | with: 47 | github_token: ${{ secrets.GITHUB_TOKEN }} 48 | branch: ${{ github.ref }} 49 | -------------------------------------------------------------------------------- /.github/workflows/pull_request_check.yml: -------------------------------------------------------------------------------- 1 | name: pull_request_check 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | check: 10 | if: github.repository == 'Adpro-Team/GKD_THS_List' 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4.1.1 14 | 15 | - uses: actions/setup-node@v4.0.1 16 | with: 17 | node-version: 20 18 | 19 | - uses: pnpm/action-setup@v3 20 | 21 | - run: pnpm install 22 | 23 | - name: Ensure Files Changed 24 | uses: danieljimeneznz/ensure-files-changed@v4.1.1 25 | with: 26 | require-changes-to: | 27 | list.ts 28 | token: ${{ secrets.GITHUB_TOKEN }} 29 | 30 | - run: pnpm check 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vscode 3 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # 如何让本项目收录你的订阅 2 | 3 | 很高兴有更多人搭建了第三方的订阅,丰富GKD社区规则。 4 | 5 | 需要: 良好的网络(能登录、访问Github) 6 | 7 | ## 一般步骤 8 | 9 | 1. Fork 本项目 10 | 11 | 2. **只**修改其中的list.ts,仿照`list.ts`并参考`types.ts`,在最外层中括号内的末尾添加信息 12 | 13 | 3. 确认你的`id`不是负数或0。负数为GKD内部使用,0为默认订阅 14 | 15 | 4. 确认你的`id`与已收录的订阅的`id`没有相同的。如果存在相同,有以下几个解决方法: 16 | 17 | - 放弃申请收录 18 | 19 | - 更改你的`id` 20 | 21 | 5. 向本项目发起PR(Pull Request) 22 | 23 | ## 本地订阅步骤 24 | 25 | ### 无Github账号 26 | 27 | 1. 通过`邮箱`、`博客评论区`等方式(会在注意事项后给出),将你编写的本地订阅分享给我(可以是附件、网盘等形式) 28 | 29 | 2. 等待审核 30 | 31 | 3. 无论审核是否通过,都会通过各种方式回复 32 | 33 | ### 有Github账号 34 | 35 | 方式一: 36 | 37 | 1. 在issues页,通过附件的方式发送你的本地订阅 38 | 39 | 方式二: 40 | 41 | 1. fork本仓库 42 | 43 | 2. 将你的订阅文件提交到**subs**文件夹 44 | 45 | 3. 按照下列格式及一般步骤中的要求,正确修改list.ts 46 | 47 | ```json5 48 | { 49 | name: '订阅名字,与你的订阅文件里的name字段相同', //不得为空 50 | author: '订阅作者,与你的订阅文件里的author字段相同(如果填写了下方repo字段,也可以填仓库所有者)', //不得为空 51 | id: 1, //你的订阅的id,必填。不需要引号,为Number类型。此处的 1 为示范,请改为你自己的 52 | local: true, 53 | subUrls: [ 54 | { 55 | name: '链接显示的名字', //若不填该字段,则使用默认的“订阅链接”,多个导入链接建议填写 56 | importUrl: "https://raw.gitmirror.com/Adpro-Team/GKD_THS_List/main/subs/这里改成你的文件名", 57 | }, 58 | ], 59 | active: true, //必填,选填true或false。true表示仍在维护,false表示停止维护。 60 | }, 61 | ``` 62 | 63 | 4. 向本项目发起PR 64 | 65 | ## 注意事项 66 | 67 | 1. 如果你的订阅已经停止维护,请修改你的订阅的active字段为:`false` 68 | 69 | 2. 你的订阅的基本信息(上方需填写的项皆为基本信息)出现任何改动,请相应地修改信息 70 | 71 | ## 本地订阅申请 72 | 73 | 邮箱:adpro_qwq@qq.com 或 adpro@adproqwq.top 74 | 75 | 博客评论区:[点击跳转](https://blog.adproqwq.top/2024/02/24/GKD%E6%9C%AC%E5%9C%B0%E8%AE%A2%E9%98%85%E6%94%B6%E5%BD%95%E7%94%B3%E8%AF%B7/) 76 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution-NonCommercial-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International 58 | Public License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-NonCommercial-ShareAlike 4.0 International Public License 63 | ("Public License"). To the extent this Public License may be 64 | interpreted as a contract, You are granted the Licensed Rights in 65 | consideration of Your acceptance of these terms and conditions, and the 66 | Licensor grants You such rights in consideration of benefits the 67 | Licensor receives from making the Licensed Material available under 68 | these terms and conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. BY-NC-SA Compatible License means a license listed at 88 | creativecommons.org/compatiblelicenses, approved by Creative 89 | Commons as essentially the equivalent of this Public License. 90 | 91 | d. Copyright and Similar Rights means copyright and/or similar rights 92 | closely related to copyright including, without limitation, 93 | performance, broadcast, sound recording, and Sui Generis Database 94 | Rights, without regard to how the rights are labeled or 95 | categorized. For purposes of this Public License, the rights 96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 97 | Rights. 98 | 99 | e. Effective Technological Measures means those measures that, in the 100 | absence of proper authority, may not be circumvented under laws 101 | fulfilling obligations under Article 11 of the WIPO Copyright 102 | Treaty adopted on December 20, 1996, and/or similar international 103 | agreements. 104 | 105 | f. Exceptions and Limitations means fair use, fair dealing, and/or 106 | any other exception or limitation to Copyright and Similar Rights 107 | that applies to Your use of the Licensed Material. 108 | 109 | g. License Elements means the license attributes listed in the name 110 | of a Creative Commons Public License. The License Elements of this 111 | Public License are Attribution, NonCommercial, and ShareAlike. 112 | 113 | h. Licensed Material means the artistic or literary work, database, 114 | or other material to which the Licensor applied this Public 115 | License. 116 | 117 | i. Licensed Rights means the rights granted to You subject to the 118 | terms and conditions of this Public License, which are limited to 119 | all Copyright and Similar Rights that apply to Your use of the 120 | Licensed Material and that the Licensor has authority to license. 121 | 122 | j. Licensor means the individual(s) or entity(ies) granting rights 123 | under this Public License. 124 | 125 | k. NonCommercial means not primarily intended for or directed towards 126 | commercial advantage or monetary compensation. For purposes of 127 | this Public License, the exchange of the Licensed Material for 128 | other material subject to Copyright and Similar Rights by digital 129 | file-sharing or similar means is NonCommercial provided there is 130 | no payment of monetary compensation in connection with the 131 | exchange. 132 | 133 | l. Share means to provide material to the public by any means or 134 | process that requires permission under the Licensed Rights, such 135 | as reproduction, public display, public performance, distribution, 136 | dissemination, communication, or importation, and to make material 137 | available to the public including in ways that members of the 138 | public may access the material from a place and at a time 139 | individually chosen by them. 140 | 141 | m. Sui Generis Database Rights means rights other than copyright 142 | resulting from Directive 96/9/EC of the European Parliament and of 143 | the Council of 11 March 1996 on the legal protection of databases, 144 | as amended and/or succeeded, as well as other essentially 145 | equivalent rights anywhere in the world. 146 | 147 | n. You means the individual or entity exercising the Licensed Rights 148 | under this Public License. Your has a corresponding meaning. 149 | 150 | 151 | Section 2 -- Scope. 152 | 153 | a. License grant. 154 | 155 | 1. Subject to the terms and conditions of this Public License, 156 | the Licensor hereby grants You a worldwide, royalty-free, 157 | non-sublicensable, non-exclusive, irrevocable license to 158 | exercise the Licensed Rights in the Licensed Material to: 159 | 160 | a. reproduce and Share the Licensed Material, in whole or 161 | in part, for NonCommercial purposes only; and 162 | 163 | b. produce, reproduce, and Share Adapted Material for 164 | NonCommercial purposes only. 165 | 166 | 2. Exceptions and Limitations. For the avoidance of doubt, where 167 | Exceptions and Limitations apply to Your use, this Public 168 | License does not apply, and You do not need to comply with 169 | its terms and conditions. 170 | 171 | 3. Term. The term of this Public License is specified in Section 172 | 6(a). 173 | 174 | 4. Media and formats; technical modifications allowed. The 175 | Licensor authorizes You to exercise the Licensed Rights in 176 | all media and formats whether now known or hereafter created, 177 | and to make technical modifications necessary to do so. The 178 | Licensor waives and/or agrees not to assert any right or 179 | authority to forbid You from making technical modifications 180 | necessary to exercise the Licensed Rights, including 181 | technical modifications necessary to circumvent Effective 182 | Technological Measures. For purposes of this Public License, 183 | simply making modifications authorized by this Section 2(a) 184 | (4) never produces Adapted Material. 185 | 186 | 5. Downstream recipients. 187 | 188 | a. Offer from the Licensor -- Licensed Material. Every 189 | recipient of the Licensed Material automatically 190 | receives an offer from the Licensor to exercise the 191 | Licensed Rights under the terms and conditions of this 192 | Public License. 193 | 194 | b. Additional offer from the Licensor -- Adapted Material. 195 | Every recipient of Adapted Material from You 196 | automatically receives an offer from the Licensor to 197 | exercise the Licensed Rights in the Adapted Material 198 | under the conditions of the Adapter's License You apply. 199 | 200 | c. No downstream restrictions. You may not offer or impose 201 | any additional or different terms or conditions on, or 202 | apply any Effective Technological Measures to, the 203 | Licensed Material if doing so restricts exercise of the 204 | Licensed Rights by any recipient of the Licensed 205 | Material. 206 | 207 | 6. No endorsement. Nothing in this Public License constitutes or 208 | may be construed as permission to assert or imply that You 209 | are, or that Your use of the Licensed Material is, connected 210 | with, or sponsored, endorsed, or granted official status by, 211 | the Licensor or others designated to receive attribution as 212 | provided in Section 3(a)(1)(A)(i). 213 | 214 | b. Other rights. 215 | 216 | 1. Moral rights, such as the right of integrity, are not 217 | licensed under this Public License, nor are publicity, 218 | privacy, and/or other similar personality rights; however, to 219 | the extent possible, the Licensor waives and/or agrees not to 220 | assert any such rights held by the Licensor to the limited 221 | extent necessary to allow You to exercise the Licensed 222 | Rights, but not otherwise. 223 | 224 | 2. Patent and trademark rights are not licensed under this 225 | Public License. 226 | 227 | 3. To the extent possible, the Licensor waives any right to 228 | collect royalties from You for the exercise of the Licensed 229 | Rights, whether directly or through a collecting society 230 | under any voluntary or waivable statutory or compulsory 231 | licensing scheme. In all other cases the Licensor expressly 232 | reserves any right to collect such royalties, including when 233 | the Licensed Material is used other than for NonCommercial 234 | purposes. 235 | 236 | 237 | Section 3 -- License Conditions. 238 | 239 | Your exercise of the Licensed Rights is expressly made subject to the 240 | following conditions. 241 | 242 | a. Attribution. 243 | 244 | 1. If You Share the Licensed Material (including in modified 245 | form), You must: 246 | 247 | a. retain the following if it is supplied by the Licensor 248 | with the Licensed Material: 249 | 250 | i. identification of the creator(s) of the Licensed 251 | Material and any others designated to receive 252 | attribution, in any reasonable manner requested by 253 | the Licensor (including by pseudonym if 254 | designated); 255 | 256 | ii. a copyright notice; 257 | 258 | iii. a notice that refers to this Public License; 259 | 260 | iv. a notice that refers to the disclaimer of 261 | warranties; 262 | 263 | v. a URI or hyperlink to the Licensed Material to the 264 | extent reasonably practicable; 265 | 266 | b. indicate if You modified the Licensed Material and 267 | retain an indication of any previous modifications; and 268 | 269 | c. indicate the Licensed Material is licensed under this 270 | Public License, and include the text of, or the URI or 271 | hyperlink to, this Public License. 272 | 273 | 2. You may satisfy the conditions in Section 3(a)(1) in any 274 | reasonable manner based on the medium, means, and context in 275 | which You Share the Licensed Material. For example, it may be 276 | reasonable to satisfy the conditions by providing a URI or 277 | hyperlink to a resource that includes the required 278 | information. 279 | 3. If requested by the Licensor, You must remove any of the 280 | information required by Section 3(a)(1)(A) to the extent 281 | reasonably practicable. 282 | 283 | b. ShareAlike. 284 | 285 | In addition to the conditions in Section 3(a), if You Share 286 | Adapted Material You produce, the following conditions also apply. 287 | 288 | 1. The Adapter's License You apply must be a Creative Commons 289 | license with the same License Elements, this version or 290 | later, or a BY-NC-SA Compatible License. 291 | 292 | 2. You must include the text of, or the URI or hyperlink to, the 293 | Adapter's License You apply. You may satisfy this condition 294 | in any reasonable manner based on the medium, means, and 295 | context in which You Share Adapted Material. 296 | 297 | 3. You may not offer or impose any additional or different terms 298 | or conditions on, or apply any Effective Technological 299 | Measures to, Adapted Material that restrict exercise of the 300 | rights granted under the Adapter's License You apply. 301 | 302 | 303 | Section 4 -- Sui Generis Database Rights. 304 | 305 | Where the Licensed Rights include Sui Generis Database Rights that 306 | apply to Your use of the Licensed Material: 307 | 308 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 309 | to extract, reuse, reproduce, and Share all or a substantial 310 | portion of the contents of the database for NonCommercial purposes 311 | only; 312 | 313 | b. if You include all or a substantial portion of the database 314 | contents in a database in which You have Sui Generis Database 315 | Rights, then the database in which You have Sui Generis Database 316 | Rights (but not its individual contents) is Adapted Material, 317 | including for purposes of Section 3(b); and 318 | 319 | c. You must comply with the conditions in Section 3(a) if You Share 320 | all or a substantial portion of the contents of the database. 321 | 322 | For the avoidance of doubt, this Section 4 supplements and does not 323 | replace Your obligations under this Public License where the Licensed 324 | Rights include other Copyright and Similar Rights. 325 | 326 | 327 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 328 | 329 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 330 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 331 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 332 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 333 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 334 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 335 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 336 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 337 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 338 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 339 | 340 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 341 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 342 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 343 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 344 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 345 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 346 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 347 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 348 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 349 | 350 | c. The disclaimer of warranties and limitation of liability provided 351 | above shall be interpreted in a manner that, to the extent 352 | possible, most closely approximates an absolute disclaimer and 353 | waiver of all liability. 354 | 355 | 356 | Section 6 -- Term and Termination. 357 | 358 | a. This Public License applies for the term of the Copyright and 359 | Similar Rights licensed here. However, if You fail to comply with 360 | this Public License, then Your rights under this Public License 361 | terminate automatically. 362 | 363 | b. Where Your right to use the Licensed Material has terminated under 364 | Section 6(a), it reinstates: 365 | 366 | 1. automatically as of the date the violation is cured, provided 367 | it is cured within 30 days of Your discovery of the 368 | violation; or 369 | 370 | 2. upon express reinstatement by the Licensor. 371 | 372 | For the avoidance of doubt, this Section 6(b) does not affect any 373 | right the Licensor may have to seek remedies for Your violations 374 | of this Public License. 375 | 376 | c. For the avoidance of doubt, the Licensor may also offer the 377 | Licensed Material under separate terms or conditions or stop 378 | distributing the Licensed Material at any time; however, doing so 379 | will not terminate this Public License. 380 | 381 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 382 | License. 383 | 384 | 385 | Section 7 -- Other Terms and Conditions. 386 | 387 | a. The Licensor shall not be bound by any additional or different 388 | terms or conditions communicated by You unless expressly agreed. 389 | 390 | b. Any arrangements, understandings, or agreements regarding the 391 | Licensed Material not stated herein are separate from and 392 | independent of the terms and conditions of this Public License. 393 | 394 | 395 | Section 8 -- Interpretation. 396 | 397 | a. For the avoidance of doubt, this Public License does not, and 398 | shall not be interpreted to, reduce, limit, restrict, or impose 399 | conditions on any use of the Licensed Material that could lawfully 400 | be made without permission under this Public License. 401 | 402 | b. To the extent possible, if any provision of this Public License is 403 | deemed unenforceable, it shall be automatically reformed to the 404 | minimum extent necessary to make it enforceable. If the provision 405 | cannot be reformed, it shall be severed from this Public License 406 | without affecting the enforceability of the remaining terms and 407 | conditions. 408 | 409 | c. No term or condition of this Public License will be waived and no 410 | failure to comply consented to unless expressly agreed to by the 411 | Licensor. 412 | 413 | d. Nothing in this Public License constitutes or may be interpreted 414 | as a limitation upon, or waiver of, any privileges and immunities 415 | that apply to the Licensor or You, including from the legal 416 | processes of any jurisdiction or authority. 417 | 418 | ======================================================================= 419 | 420 | Creative Commons is not a party to its public 421 | licenses. Notwithstanding, Creative Commons may elect to apply one of 422 | its public licenses to material it publishes and in those instances 423 | will be considered the “Licensor.” The text of the Creative Commons 424 | public licenses is dedicated to the public domain under the CC0 Public 425 | Domain Dedication. Except for the limited purpose of indicating that 426 | material is shared under a Creative Commons public license or as 427 | otherwise permitted by the Creative Commons policies published at 428 | creativecommons.org/policies, Creative Commons does not authorize the 429 | use of the trademark "Creative Commons" or any other trademark or logo 430 | of Creative Commons without its prior written consent including, 431 | without limitation, in connection with any unauthorized modifications 432 | to any of its public licenses or any other arrangements, 433 | understandings, or agreements concerning use of licensed material. For 434 | the avoidance of doubt, this paragraph does not form part of the 435 | public licenses. 436 | 437 | Creative Commons may be contacted at creativecommons.org. 438 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # @Adpro-Team/GKD_THS_List 2 | 3 | Adpro-Team 整理的GKD第三方订阅列表 4 | 5 | 如何添加你自己的订阅 -> [CONTRIBUTING.md](./CONTRIBUTING.md) 6 | 7 | --- 8 | 9 | 第三方订阅列表: 10 | 11 | 说明: 12 | 13 | 1. 订阅链接栏请点击查看,超链接并非导入链接。 14 | 15 | 2. 订阅标识如果相同,请选择其一。GKD无法导入两个订阅标识相同的订阅。 16 | 17 | 3. 标示`国内`字样的订阅,都是无须特别的网络环境即可使用的。使用这些链接时,请避免使用网络工具。**注意:标注`由订阅内部规定链接更新`的订阅,更新链接为对应的标注`内置的更新链接`的链接;若标注`从导入链接更新`,则导入时选择的链接即是更新链接(意味着可以使用国内源更新)。** 18 | 19 | 4. 订阅超过 **1个月** 没有更新 **规则(不是订阅,即在1个月内没有任何提交)** 视为停止维护。 20 | 21 | |订阅名|订阅标识|作者|更新来源|Github仓库|订阅链接|维护状态| 22 | |-----|------|----|------|---------|-------|-------| 23 | |Adpro的GKD订阅|825|Adpro|从导入链接更新|[Adpro-Team/GKD_subscription](https://github.com/Adpro-Team/GKD_subscription/tree/main) ![GitHub Repo stars](https://img.shields.io/github/stars/Adpro-Team/GKD_subscription)||停止维护| |AIsouler的GKD订阅|666|AIsouler|从导入链接更新|[AIsouler/GKD_subscription](https://github.com/AIsouler/GKD_subscription/tree/main) ![GitHub Repo stars](https://img.shields.io/github/stars/AIsouler/GKD_subscription)||仍在维护| |奥怪的GKD订阅|86|aoguai|从导入链接更新|[aoguai/subscription](https://github.com/aoguai/subscription/tree/custom) ![GitHub Repo stars](https://img.shields.io/github/stars/aoguai/subscription)||仍在维护| |甘霖的GKD订阅|233|ganlinte|从导入链接更新|[ganlinte/GKD-subscription](https://github.com/ganlinte/GKD-subscription/tree/main) ![GitHub Repo stars](https://img.shields.io/github/stars/ganlinte/GKD-subscription)||仍在维护| |梦念逍遥の订阅|1|梦念逍遥|由订阅内部规定链接更新|[MengNianxiaoyao/gkd-subscription](https://github.com/MengNianxiaoyao/gkd-subscription/tree/main) ![GitHub Repo stars](https://img.shields.io/github/stars/MengNianxiaoyao/gkd-subscription)||仍在维护| |九千院的GKD订阅|717|jiuqianyuan|从导入链接更新|[jiuqianyuan/GKD_subscription](https://github.com/jiuqianyuan/GKD_subscription/tree/main) ![GitHub Repo stars](https://img.shields.io/github/stars/jiuqianyuan/GKD_subscription)||停止维护| |Mrlc的GKD订阅|2|Mrlc|从导入链接更新|[mrlctate/gkd-mrlc](https://github.com/mrlctate/gkd-mrlc/tree/main) ![GitHub Repo stars](https://img.shields.io/github/stars/mrlctate/gkd-mrlc)||仍在维护| 24 | 25 | --- 26 | 27 | ## 注意 28 | 29 | 本项目仅仅为收集GKD第三方订阅链接的仓库,规则使用中遇到的任何问题,请到对应的仓库或联系对应的作者反馈。 30 | 31 | 如果对本项目本体有建议,请在issues页提出issue,或fork本仓库,并提交PR(若修改代码PR检查会失败,为正常情况) 32 | 33 | ## 协议 34 | 35 | 本项目遵循 CC BY-NC-SA 4.0 协议。 36 | 37 | 即:署名-非商业性使用-相同方式共享 4.0 协议 38 | 39 | [点此查看协议全文(中文)](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.zh-hans) 40 | -------------------------------------------------------------------------------- /Template.md: -------------------------------------------------------------------------------- 1 | # @Adpro-Team/GKD_THS_List 2 | 3 | Adpro-Team 整理的GKD第三方订阅列表 4 | 5 | 如何添加你自己的订阅 -> [CONTRIBUTING.md](./CONTRIBUTING.md) 6 | 7 | --- 8 | 9 | 第三方订阅列表: 10 | 11 | 说明: 12 | 13 | 1. 订阅链接栏请点击查看,超链接并非导入链接。 14 | 15 | 2. 订阅标识如果相同,请选择其一。GKD无法导入两个订阅标识相同的订阅。 16 | 17 | 3. 标示`国内`字样的订阅,都是无须特别的网络环境即可使用的。使用这些链接时,请避免使用网络工具。**注意:标注`由订阅内部规定链接更新`的订阅,更新链接为对应的标注`内置的更新链接`的链接;若标注`从导入链接更新`,则导入时选择的链接即是更新链接(意味着可以使用国内源更新)。** 18 | 19 | 4. 订阅超过 **1个月** 没有更新 **规则(不是订阅,即在1个月内没有任何提交)** 视为停止维护。 20 | 21 | |订阅名|订阅标识|作者|更新来源|Github仓库|订阅链接|维护状态| 22 | |-----|------|----|------|---------|-------|-------| 23 | --thirdPartySubList-- 24 | 25 | --- 26 | 27 | ## 注意 28 | 29 | 本项目仅仅为收集GKD第三方订阅链接的仓库,规则使用中遇到的任何问题,请到对应的仓库或联系对应的作者反馈。 30 | 31 | 如果对本项目本体有建议,请在issues页提出issue,或fork本仓库,并提交PR(若修改代码PR检查会失败,为正常情况) 32 | 33 | ## 协议 34 | 35 | 本项目遵循 CC BY-NC-SA 4.0 协议。 36 | 37 | 即:署名-非商业性使用-相同方式共享 4.0 协议 38 | 39 | [点此查看协议全文(中文)](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.zh-hans) 40 | -------------------------------------------------------------------------------- /importUrlsList.md: -------------------------------------------------------------------------------- 1 | # Adpro的GKD订阅 ## Adpro的GKD订阅-gitmirror源(国内) ```text https://raw.gitmirror.com/Adpro-Team/GKD_subscription/main/dist/Adpro_gkd.json5 ``` ## Adpro的GKD订阅-npmmirror源(国内) ```text https://registry.npmmirror.com/@adpro/gkd_subscription/latest/files/dist/Adpro_gkd.json5 ``` # AIsouler的GKD订阅 ## AIsouler的GKD订阅-npmmirror源(国内) ```text https://registry.npmmirror.com/@aisouler/gkd_subscription/latest/files/dist/AIsouler_gkd.json5 ``` ## AIsouler的GKD订阅-GitHub源 ```text https://raw.githubusercontent.com/AIsouler/GKD_subscription/main/dist/AIsouler_gkd.json5 ``` # 奥怪的GKD订阅 ## 奥怪的GKD订阅-Github源 ```text https://raw.githubusercontent.com/aoguai/subscription/custom/dist/aoguai_gkd.json5 ``` ## 奥怪的GKD订阅-npmmirror源(国内) ```text https://registry.npmmirror.com/@aoguai/subscription/latest/files/dist/aoguai_gkd.json5 ``` ## 奥怪的GKD订阅-gitmirror源(国内) ```text https://raw.gitmirror.com/aoguai/subscription/custom/dist/aoguai_gkd.json5 ``` ## 奥怪的GKD订阅-jsDelivr源 ```text https://cdn.jsdelivr.net/gh/aoguai/subscription@custom/dist/aoguai_gkd.json5 ``` # 甘霖的GKD订阅 ## 甘霖的GKD订阅-Github源 ```text https://raw.githubusercontent.com/ganlinte/GKD-subscription/main/dist/ganlin_gkd.json5 ``` ## 甘霖的GKD订阅-npmmirror源(国内) ```text https://registry.npmmirror.com/@ganlinte/gkd-subscription/latest/files ``` # 梦念逍遥の订阅 ## 梦念逍遥の订阅-npmmirror源(国内)(内置的更新链接) ```text https://registry.npmmirror.com/gkd-subscription/latest/files ``` # 九千院的GKD订阅 ## 九千院的GKD订阅-gitmirror源(国内) ```text https://raw.gitmirror.com/jiuqianyuan/GKD_subscription/main/dist/gkd.json5 ``` # Mrlc的GKD订阅 ## Mrlc的GKD订阅-npmmirror源(国内) ```text https://registry.npmmirror.com/gkd-mrlc/latest/files/dist/gkd.json5 ``` -------------------------------------------------------------------------------- /list.ts: -------------------------------------------------------------------------------- 1 | import { Root } from './scripts/types' 2 | 3 | const List: Root = [ 4 | { 5 | name: 'Adpro的GKD订阅', 6 | author: 'Adpro', 7 | id: 825, 8 | prescribedUpdateUrl: false, 9 | subUrls: [ 10 | { 11 | name: 'gitmirror源(国内)', 12 | importUrl: 'https://raw.gitmirror.com/Adpro-Team/GKD_subscription/main/dist/Adpro_gkd.json5', 13 | }, 14 | { 15 | name: 'npmmirror源(国内)', 16 | importUrl: 'https://registry.npmmirror.com/@adpro/gkd_subscription/latest/files/dist/Adpro_gkd.json5', 17 | }, 18 | ], 19 | repo: 'Adpro-Team/GKD_subscription', 20 | branch: 'main', 21 | active: false, 22 | }, 23 | { 24 | name: 'AIsouler的GKD订阅', 25 | author: 'AIsouler', 26 | id: 666, 27 | prescribedUpdateUrl: false, 28 | subUrls: [ 29 | { 30 | name: 'npmmirror源(国内)', 31 | importUrl: 32 | 'https://registry.npmmirror.com/@aisouler/gkd_subscription/latest/files/dist/AIsouler_gkd.json5', 33 | }, 34 | { 35 | name: 'GitHub源', 36 | importUrl: 37 | 'https://raw.githubusercontent.com/AIsouler/GKD_subscription/main/dist/AIsouler_gkd.json5', 38 | }, 39 | ], 40 | repo: 'AIsouler/GKD_subscription', 41 | branch: 'main', 42 | active: true, 43 | }, 44 | { 45 | name: '奥怪的GKD订阅', 46 | author: 'aoguai', 47 | prescribedUpdateUrl: false, 48 | id: 86, 49 | subUrls: [ 50 | { 51 | name: 'Github源', 52 | importUrl: 'https://raw.githubusercontent.com/aoguai/subscription/custom/dist/aoguai_gkd.json5', 53 | }, 54 | { 55 | name: 'npmmirror源(国内)', 56 | importUrl: 'https://registry.npmmirror.com/@aoguai/subscription/latest/files/dist/aoguai_gkd.json5', 57 | }, 58 | { 59 | name: 'gitmirror源(国内)', 60 | importUrl: 'https://raw.gitmirror.com/aoguai/subscription/custom/dist/aoguai_gkd.json5', 61 | }, 62 | { 63 | name: 'jsDelivr源', 64 | importUrl: 'https://cdn.jsdelivr.net/gh/aoguai/subscription@custom/dist/aoguai_gkd.json5', 65 | }, 66 | ], 67 | repo: 'aoguai/subscription', 68 | branch: 'custom', 69 | active: true, 70 | }, 71 | { 72 | name: '甘霖的GKD订阅', 73 | author: 'ganlinte', 74 | prescribedUpdateUrl: false, 75 | id: 233, 76 | subUrls: [ 77 | { 78 | name: 'Github源', 79 | importUrl: 'https://raw.githubusercontent.com/ganlinte/GKD-subscription/main/dist/ganlin_gkd.json5', 80 | }, 81 | { 82 | name: 'npmmirror源(国内)', 83 | importUrl: 'https://registry.npmmirror.com/@ganlinte/gkd-subscription/latest/files', 84 | }, 85 | ], 86 | repo: 'ganlinte/GKD-subscription', 87 | branch: 'main', 88 | active: true, 89 | }, 90 | { 91 | name: '梦念逍遥の订阅', 92 | author: '梦念逍遥', 93 | id: 1, 94 | subUrls: [ 95 | { 96 | name: 'npmmirror源(国内)', 97 | defaultUpdateUrl: true, 98 | importUrl: 'https://registry.npmmirror.com/gkd-subscription/latest/files', 99 | }, 100 | ], 101 | repo: 'MengNianxiaoyao/gkd-subscription', 102 | branch: 'main', 103 | active: true, 104 | }, 105 | { 106 | name: '九千院的GKD订阅', 107 | author: 'jiuqianyuan', 108 | id: 717, 109 | prescribedUpdateUrl: false, 110 | subUrls: [ 111 | { 112 | name: 'gitmirror源(国内)', 113 | importUrl: 'https://raw.gitmirror.com/jiuqianyuan/GKD_subscription/main/dist/gkd.json5', 114 | }, 115 | ], 116 | repo: 'jiuqianyuan/GKD_subscription', 117 | branch: 'main', 118 | active: false, 119 | }, 120 | { 121 | name: 'Mrlc的GKD订阅', 122 | author: 'Mrlc', 123 | id: 2, 124 | prescribedUpdateUrl: false, 125 | subUrls: [ 126 | { 127 | name: 'npmmirror源(国内)', 128 | importUrl: 'https://registry.npmmirror.com/gkd-mrlc/latest/files/dist/gkd.json5', 129 | }, 130 | ], 131 | repo: 'mrlctate/gkd-mrlc', 132 | branch: 'main', 133 | active: true, 134 | }, 135 | ]; 136 | 137 | export default List; 138 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "scripts": { 4 | "check": "pnpm exec tsx ./scripts/check.ts", 5 | "update": "pnpm exec tsx ./scripts/update.ts" 6 | }, 7 | "dependencies": { 8 | "@types/node": "^22.14.1", 9 | "tsx": "^4.19.3", 10 | "typescript": "^5.8.3" 11 | }, 12 | "packageManager": "pnpm@10.8.0" 13 | } 14 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@types/node': 12 | specifier: ^22.14.1 13 | version: 22.14.1 14 | tsx: 15 | specifier: ^4.19.3 16 | version: 4.19.3 17 | typescript: 18 | specifier: ^5.8.3 19 | version: 5.8.3 20 | 21 | packages: 22 | 23 | '@esbuild/aix-ppc64@0.25.2': 24 | resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} 25 | engines: {node: '>=18'} 26 | cpu: [ppc64] 27 | os: [aix] 28 | 29 | '@esbuild/android-arm64@0.25.2': 30 | resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} 31 | engines: {node: '>=18'} 32 | cpu: [arm64] 33 | os: [android] 34 | 35 | '@esbuild/android-arm@0.25.2': 36 | resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} 37 | engines: {node: '>=18'} 38 | cpu: [arm] 39 | os: [android] 40 | 41 | '@esbuild/android-x64@0.25.2': 42 | resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} 43 | engines: {node: '>=18'} 44 | cpu: [x64] 45 | os: [android] 46 | 47 | '@esbuild/darwin-arm64@0.25.2': 48 | resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} 49 | engines: {node: '>=18'} 50 | cpu: [arm64] 51 | os: [darwin] 52 | 53 | '@esbuild/darwin-x64@0.25.2': 54 | resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} 55 | engines: {node: '>=18'} 56 | cpu: [x64] 57 | os: [darwin] 58 | 59 | '@esbuild/freebsd-arm64@0.25.2': 60 | resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} 61 | engines: {node: '>=18'} 62 | cpu: [arm64] 63 | os: [freebsd] 64 | 65 | '@esbuild/freebsd-x64@0.25.2': 66 | resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} 67 | engines: {node: '>=18'} 68 | cpu: [x64] 69 | os: [freebsd] 70 | 71 | '@esbuild/linux-arm64@0.25.2': 72 | resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} 73 | engines: {node: '>=18'} 74 | cpu: [arm64] 75 | os: [linux] 76 | 77 | '@esbuild/linux-arm@0.25.2': 78 | resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} 79 | engines: {node: '>=18'} 80 | cpu: [arm] 81 | os: [linux] 82 | 83 | '@esbuild/linux-ia32@0.25.2': 84 | resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} 85 | engines: {node: '>=18'} 86 | cpu: [ia32] 87 | os: [linux] 88 | 89 | '@esbuild/linux-loong64@0.25.2': 90 | resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} 91 | engines: {node: '>=18'} 92 | cpu: [loong64] 93 | os: [linux] 94 | 95 | '@esbuild/linux-mips64el@0.25.2': 96 | resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} 97 | engines: {node: '>=18'} 98 | cpu: [mips64el] 99 | os: [linux] 100 | 101 | '@esbuild/linux-ppc64@0.25.2': 102 | resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} 103 | engines: {node: '>=18'} 104 | cpu: [ppc64] 105 | os: [linux] 106 | 107 | '@esbuild/linux-riscv64@0.25.2': 108 | resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} 109 | engines: {node: '>=18'} 110 | cpu: [riscv64] 111 | os: [linux] 112 | 113 | '@esbuild/linux-s390x@0.25.2': 114 | resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} 115 | engines: {node: '>=18'} 116 | cpu: [s390x] 117 | os: [linux] 118 | 119 | '@esbuild/linux-x64@0.25.2': 120 | resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} 121 | engines: {node: '>=18'} 122 | cpu: [x64] 123 | os: [linux] 124 | 125 | '@esbuild/netbsd-arm64@0.25.2': 126 | resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} 127 | engines: {node: '>=18'} 128 | cpu: [arm64] 129 | os: [netbsd] 130 | 131 | '@esbuild/netbsd-x64@0.25.2': 132 | resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} 133 | engines: {node: '>=18'} 134 | cpu: [x64] 135 | os: [netbsd] 136 | 137 | '@esbuild/openbsd-arm64@0.25.2': 138 | resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} 139 | engines: {node: '>=18'} 140 | cpu: [arm64] 141 | os: [openbsd] 142 | 143 | '@esbuild/openbsd-x64@0.25.2': 144 | resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} 145 | engines: {node: '>=18'} 146 | cpu: [x64] 147 | os: [openbsd] 148 | 149 | '@esbuild/sunos-x64@0.25.2': 150 | resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} 151 | engines: {node: '>=18'} 152 | cpu: [x64] 153 | os: [sunos] 154 | 155 | '@esbuild/win32-arm64@0.25.2': 156 | resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} 157 | engines: {node: '>=18'} 158 | cpu: [arm64] 159 | os: [win32] 160 | 161 | '@esbuild/win32-ia32@0.25.2': 162 | resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} 163 | engines: {node: '>=18'} 164 | cpu: [ia32] 165 | os: [win32] 166 | 167 | '@esbuild/win32-x64@0.25.2': 168 | resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} 169 | engines: {node: '>=18'} 170 | cpu: [x64] 171 | os: [win32] 172 | 173 | '@types/node@22.14.1': 174 | resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} 175 | 176 | esbuild@0.25.2: 177 | resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} 178 | engines: {node: '>=18'} 179 | hasBin: true 180 | 181 | fsevents@2.3.3: 182 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 183 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 184 | os: [darwin] 185 | 186 | get-tsconfig@4.10.0: 187 | resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} 188 | 189 | resolve-pkg-maps@1.0.0: 190 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 191 | 192 | tsx@4.19.3: 193 | resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==} 194 | engines: {node: '>=18.0.0'} 195 | hasBin: true 196 | 197 | typescript@5.8.3: 198 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 199 | engines: {node: '>=14.17'} 200 | hasBin: true 201 | 202 | undici-types@6.21.0: 203 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 204 | 205 | snapshots: 206 | 207 | '@esbuild/aix-ppc64@0.25.2': 208 | optional: true 209 | 210 | '@esbuild/android-arm64@0.25.2': 211 | optional: true 212 | 213 | '@esbuild/android-arm@0.25.2': 214 | optional: true 215 | 216 | '@esbuild/android-x64@0.25.2': 217 | optional: true 218 | 219 | '@esbuild/darwin-arm64@0.25.2': 220 | optional: true 221 | 222 | '@esbuild/darwin-x64@0.25.2': 223 | optional: true 224 | 225 | '@esbuild/freebsd-arm64@0.25.2': 226 | optional: true 227 | 228 | '@esbuild/freebsd-x64@0.25.2': 229 | optional: true 230 | 231 | '@esbuild/linux-arm64@0.25.2': 232 | optional: true 233 | 234 | '@esbuild/linux-arm@0.25.2': 235 | optional: true 236 | 237 | '@esbuild/linux-ia32@0.25.2': 238 | optional: true 239 | 240 | '@esbuild/linux-loong64@0.25.2': 241 | optional: true 242 | 243 | '@esbuild/linux-mips64el@0.25.2': 244 | optional: true 245 | 246 | '@esbuild/linux-ppc64@0.25.2': 247 | optional: true 248 | 249 | '@esbuild/linux-riscv64@0.25.2': 250 | optional: true 251 | 252 | '@esbuild/linux-s390x@0.25.2': 253 | optional: true 254 | 255 | '@esbuild/linux-x64@0.25.2': 256 | optional: true 257 | 258 | '@esbuild/netbsd-arm64@0.25.2': 259 | optional: true 260 | 261 | '@esbuild/netbsd-x64@0.25.2': 262 | optional: true 263 | 264 | '@esbuild/openbsd-arm64@0.25.2': 265 | optional: true 266 | 267 | '@esbuild/openbsd-x64@0.25.2': 268 | optional: true 269 | 270 | '@esbuild/sunos-x64@0.25.2': 271 | optional: true 272 | 273 | '@esbuild/win32-arm64@0.25.2': 274 | optional: true 275 | 276 | '@esbuild/win32-ia32@0.25.2': 277 | optional: true 278 | 279 | '@esbuild/win32-x64@0.25.2': 280 | optional: true 281 | 282 | '@types/node@22.14.1': 283 | dependencies: 284 | undici-types: 6.21.0 285 | 286 | esbuild@0.25.2: 287 | optionalDependencies: 288 | '@esbuild/aix-ppc64': 0.25.2 289 | '@esbuild/android-arm': 0.25.2 290 | '@esbuild/android-arm64': 0.25.2 291 | '@esbuild/android-x64': 0.25.2 292 | '@esbuild/darwin-arm64': 0.25.2 293 | '@esbuild/darwin-x64': 0.25.2 294 | '@esbuild/freebsd-arm64': 0.25.2 295 | '@esbuild/freebsd-x64': 0.25.2 296 | '@esbuild/linux-arm': 0.25.2 297 | '@esbuild/linux-arm64': 0.25.2 298 | '@esbuild/linux-ia32': 0.25.2 299 | '@esbuild/linux-loong64': 0.25.2 300 | '@esbuild/linux-mips64el': 0.25.2 301 | '@esbuild/linux-ppc64': 0.25.2 302 | '@esbuild/linux-riscv64': 0.25.2 303 | '@esbuild/linux-s390x': 0.25.2 304 | '@esbuild/linux-x64': 0.25.2 305 | '@esbuild/netbsd-arm64': 0.25.2 306 | '@esbuild/netbsd-x64': 0.25.2 307 | '@esbuild/openbsd-arm64': 0.25.2 308 | '@esbuild/openbsd-x64': 0.25.2 309 | '@esbuild/sunos-x64': 0.25.2 310 | '@esbuild/win32-arm64': 0.25.2 311 | '@esbuild/win32-ia32': 0.25.2 312 | '@esbuild/win32-x64': 0.25.2 313 | 314 | fsevents@2.3.3: 315 | optional: true 316 | 317 | get-tsconfig@4.10.0: 318 | dependencies: 319 | resolve-pkg-maps: 1.0.0 320 | 321 | resolve-pkg-maps@1.0.0: {} 322 | 323 | tsx@4.19.3: 324 | dependencies: 325 | esbuild: 0.25.2 326 | get-tsconfig: 4.10.0 327 | optionalDependencies: 328 | fsevents: 2.3.3 329 | 330 | typescript@5.8.3: {} 331 | 332 | undici-types@6.21.0: {} 333 | -------------------------------------------------------------------------------- /scripts/check.ts: -------------------------------------------------------------------------------- 1 | import List from "../list"; 2 | 3 | export const check = ()=>{ 4 | let id: number[] = []; 5 | List.forEach((a)=>{ 6 | if((!a.repo && a.branch) || (a.repo && !a.branch)){ 7 | throw new Error('repo and branch must exist or not exist at the same time.'); 8 | } 9 | else id.push(a.id); 10 | }); 11 | let temp: number[] = []; 12 | for(let i = 0; i < id.length; i++){ 13 | if(id[i] <= 0){ 14 | throw new Error('Id can not be negative number or zero.'); 15 | } 16 | else temp.push(id[i]); 17 | } 18 | console.log('list.ts合法'); 19 | }; 20 | check(); -------------------------------------------------------------------------------- /scripts/types.ts: -------------------------------------------------------------------------------- 1 | export type Root = CommonInfo[]; 2 | 3 | type CommonInfo = { 4 | /** 5 | * 订阅名字,与你的订阅文件里的name字段相同 6 | */ 7 | name: string; 8 | 9 | /** 10 | * 订阅作者,与你的订阅文件里的author字段相同 11 | * 12 | * 如果填写了repo,也可以填仓库所有者 13 | */ 14 | author: string; 15 | 16 | /** 17 | * 订阅id 18 | */ 19 | id: number; 20 | 21 | /** 22 | * 订阅中的 `updateUrl` 是否规定 23 | * 24 | * 规定了为`true`,没规定为`false` 25 | * 26 | * @default true 27 | */ 28 | prescribedUpdateUrl?: boolean; 29 | 30 | /** 31 | * 是否为本地订阅 32 | */ 33 | local?: boolean; 34 | 35 | /** 36 | * 包含所有订阅链接的数组 37 | */ 38 | subUrls: SubUrlsInfo[]; 39 | 40 | /** 41 | * Github仓库名,形如:用户名/仓库名 42 | * 43 | * @example Adpro-Team/GKD_subscription 44 | */ 45 | repo?: string; 46 | 47 | /** 48 | * 订阅仓库中的发布分支,无repo,则branch也不能出现 49 | */ 50 | branch?: string; 51 | 52 | /** 53 | * 订阅维护状态,维护则为true,停止维护则为false 54 | */ 55 | active: boolean; 56 | }; 57 | 58 | type SubUrlsInfo = { 59 | /** 60 | * 超链接显示的字段 61 | */ 62 | name?: string; 63 | 64 | /** 65 | * 订阅导入链接 66 | */ 67 | importUrl: string; 68 | 69 | /** 70 | * 当前导入链接是订阅内部规定的 `updateUrl` 则设置该字段为 `true` 71 | * 72 | * @default false 73 | */ 74 | defaultUpdateUrl?: boolean; 75 | }; -------------------------------------------------------------------------------- /scripts/update.ts: -------------------------------------------------------------------------------- 1 | import { writeReadMeMd, writeUrlListMd } from "./writeFile"; 2 | 3 | writeReadMeMd(); 4 | writeUrlListMd(); -------------------------------------------------------------------------------- /scripts/writeFile.ts: -------------------------------------------------------------------------------- 1 | import List from "../list"; 2 | import fs from 'node:fs/promises'; 3 | 4 | export const writeReadMeMd = async() => { 5 | let list = ``; 6 | List.forEach((a)=>{ 7 | let repository = a.repo == undefined ? null : a.repo; 8 | let branch = repository == null ? null : a.branch; 9 | let repoUrl = repository != null && branch != null ? `https://github.com/${a.repo}/tree/${a.branch}` : null; 10 | let repoText = repoUrl == null ? '无' : a.repo; 11 | list += `|${a.name}|${String(a.id)}|${a.author}|`; 12 | list += a.prescribedUpdateUrl == undefined || a.prescribedUpdateUrl ? '由订阅内部规定链接更新|' : '从导入链接更新|'; 13 | list += repoText == '无' ? `${repoText}|` : `[${repoText}](${repoUrl}) ![GitHub Repo stars](https://img.shields.io/github/stars/${repoText})||仍在维护|' : '|停止维护|'; 24 | list +='\r'; 25 | }); 26 | const mdTemplate = await fs.readFile(process.cwd() + '/Template.md', 'utf-8'); 27 | const readMeMdText = mdTemplate.replace('--thirdPartySubList--', list); 28 | await fs.writeFile(process.cwd() + '/README.md', readMeMdText); 29 | }; 30 | 31 | export const writeUrlListMd = async() => { 32 | let list = ``; 33 | List.forEach((a)=>{ 34 | list += `# ${a.name}\r`; 35 | const subUrls = a.subUrls; 36 | subUrls.forEach((b)=>{ 37 | let index = 1; 38 | const urlName = (b.hasOwnProperty('name') ? `${a.name}-${b.name}` : `${a.name}-订阅链接${String(index)}`) + (b.defaultUpdateUrl ? '(内置的更新链接)' : ''); 39 | list += `## ${urlName}\r`; 40 | list += `\`\`\`text\r${b.importUrl}\r\`\`\`\r`; 41 | index++; 42 | }); 43 | }); 44 | await fs.writeFile(process.cwd() + '/importUrlsList.md', list); 45 | } -------------------------------------------------------------------------------- /subs/占位文件: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 15 | "lib": ["ESNext"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "ESNext", /* Specify what module code is generated. */ 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | "moduleResolution": "Bundler", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 39 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 40 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 41 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 42 | "resolveJsonModule": true, /* Enable importing .json files. */ 43 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 44 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 45 | 46 | /* JavaScript Support */ 47 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 48 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 49 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 50 | 51 | /* Emit */ 52 | "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 53 | "declarationMap": true, /* Create sourcemaps for d.ts files. */ 54 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 55 | "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 56 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 57 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 58 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 59 | // "removeComments": true, /* Disable emitting comments. */ 60 | // "noEmit": true, /* Disable emitting files from a compilation. */ 61 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 62 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 63 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 64 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 65 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 66 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 67 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 68 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 69 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 70 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 71 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 72 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 73 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 74 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 75 | 76 | /* Interop Constraints */ 77 | "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 78 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 79 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 80 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ 81 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 82 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 83 | 84 | /* Type Checking */ 85 | "strict": true, /* Enable all strict type-checking options. */ 86 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 87 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 88 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 89 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 90 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 91 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 92 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 93 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 94 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 95 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 96 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 97 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 98 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 99 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 100 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 101 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 102 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 103 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 104 | 105 | /* Completeness */ 106 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 107 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 108 | }, 109 | "include": ["./scripts/**/*.ts"] 110 | } 111 | --------------------------------------------------------------------------------