├── LICENSE ├── README.md ├── config ├── ali.json ├── config.json ├── quark.json ├── tianyi.json ├── xunlei.json └── yidong.json ├── default.min.css ├── (改)百度网盘会员青春版.user.js └── (改)网盘直链下载助手.user.js /LICENSE: -------------------------------------------------------------------------------- 1 | GNU AFFERO GENERAL PUBLIC LICENSE 2 | Version 3, 19 November 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU Affero General Public License is a free, copyleft license for 11 | software and other kinds of works, specifically designed to ensure 12 | cooperation with the community in the case of network server software. 13 | 14 | The licenses for most software and other practical works are designed 15 | to take away your freedom to share and change the works. By contrast, 16 | our General Public Licenses are intended to guarantee your freedom to 17 | share and change all versions of a program--to make sure it remains free 18 | software for all its users. 19 | 20 | When we speak of free software, we are referring to freedom, not 21 | price. Our General Public Licenses are designed to make sure that you 22 | have the freedom to distribute copies of free software (and charge for 23 | them if you wish), that you receive source code or can get it if you 24 | want it, that you can change the software or use pieces of it in new 25 | free programs, and that you know you can do these things. 26 | 27 | Developers that use our General Public Licenses protect your rights 28 | with two steps: (1) assert copyright on the software, and (2) offer 29 | you this License which gives you legal permission to copy, distribute 30 | and/or modify the software. 31 | 32 | A secondary benefit of defending all users' freedom is that 33 | improvements made in alternate versions of the program, if they 34 | receive widespread use, become available for other developers to 35 | incorporate. Many developers of free software are heartened and 36 | encouraged by the resulting cooperation. However, in the case of 37 | software used on network servers, this result may fail to come about. 38 | The GNU General Public License permits making a modified version and 39 | letting the public access it on a server without ever releasing its 40 | source code to the public. 41 | 42 | The GNU Affero General Public License is designed specifically to 43 | ensure that, in such cases, the modified source code becomes available 44 | to the community. It requires the operator of a network server to 45 | provide the source code of the modified version running there to the 46 | users of that server. Therefore, public use of a modified version, on 47 | a publicly accessible server, gives the public access to the source 48 | code of the modified version. 49 | 50 | An older license, called the Affero General Public License and 51 | published by Affero, was designed to accomplish similar goals. This is 52 | a different license, not a version of the Affero GPL, but Affero has 53 | released a new version of the Affero GPL which permits relicensing under 54 | this license. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | TERMS AND CONDITIONS 60 | 61 | 0. Definitions. 62 | 63 | "This License" refers to version 3 of the GNU Affero General Public License. 64 | 65 | "Copyright" also means copyright-like laws that apply to other kinds of 66 | works, such as semiconductor masks. 67 | 68 | "The Program" refers to any copyrightable work licensed under this 69 | License. Each licensee is addressed as "you". "Licensees" and 70 | "recipients" may be individuals or organizations. 71 | 72 | To "modify" a work means to copy from or adapt all or part of the work 73 | in a fashion requiring copyright permission, other than the making of an 74 | exact copy. The resulting work is called a "modified version" of the 75 | earlier work or a work "based on" the earlier work. 76 | 77 | A "covered work" means either the unmodified Program or a work based 78 | on the Program. 79 | 80 | To "propagate" a work means to do anything with it that, without 81 | permission, would make you directly or secondarily liable for 82 | infringement under applicable copyright law, except executing it on a 83 | computer or modifying a private copy. Propagation includes copying, 84 | distribution (with or without modification), making available to the 85 | public, and in some countries other activities as well. 86 | 87 | To "convey" a work means any kind of propagation that enables other 88 | parties to make or receive copies. Mere interaction with a user through 89 | a computer network, with no transfer of a copy, is not conveying. 90 | 91 | An interactive user interface displays "Appropriate Legal Notices" 92 | to the extent that it includes a convenient and prominently visible 93 | feature that (1) displays an appropriate copyright notice, and (2) 94 | tells the user that there is no warranty for the work (except to the 95 | extent that warranties are provided), that licensees may convey the 96 | work under this License, and how to view a copy of this License. If 97 | the interface presents a list of user commands or options, such as a 98 | menu, a prominent item in the list meets this criterion. 99 | 100 | 1. Source Code. 101 | 102 | The "source code" for a work means the preferred form of the work 103 | for making modifications to it. "Object code" means any non-source 104 | form of a work. 105 | 106 | A "Standard Interface" means an interface that either is an official 107 | standard defined by a recognized standards body, or, in the case of 108 | interfaces specified for a particular programming language, one that 109 | is widely used among developers working in that language. 110 | 111 | The "System Libraries" of an executable work include anything, other 112 | than the work as a whole, that (a) is included in the normal form of 113 | packaging a Major Component, but which is not part of that Major 114 | Component, and (b) serves only to enable use of the work with that 115 | Major Component, or to implement a Standard Interface for which an 116 | implementation is available to the public in source code form. A 117 | "Major Component", in this context, means a major essential component 118 | (kernel, window system, and so on) of the specific operating system 119 | (if any) on which the executable work runs, or a compiler used to 120 | produce the work, or an object code interpreter used to run it. 121 | 122 | The "Corresponding Source" for a work in object code form means all 123 | the source code needed to generate, install, and (for an executable 124 | work) run the object code and to modify the work, including scripts to 125 | control those activities. However, it does not include the work's 126 | System Libraries, or general-purpose tools or generally available free 127 | programs which are used unmodified in performing those activities but 128 | which are not part of the work. For example, Corresponding Source 129 | includes interface definition files associated with source files for 130 | the work, and the source code for shared libraries and dynamically 131 | linked subprograms that the work is specifically designed to require, 132 | such as by intimate data communication or control flow between those 133 | subprograms and other parts of the work. 134 | 135 | The Corresponding Source need not include anything that users 136 | can regenerate automatically from other parts of the Corresponding 137 | Source. 138 | 139 | The Corresponding Source for a work in source code form is that 140 | same work. 141 | 142 | 2. Basic Permissions. 143 | 144 | All rights granted under this License are granted for the term of 145 | copyright on the Program, and are irrevocable provided the stated 146 | conditions are met. This License explicitly affirms your unlimited 147 | permission to run the unmodified Program. The output from running a 148 | covered work is covered by this License only if the output, given its 149 | content, constitutes a covered work. This License acknowledges your 150 | rights of fair use or other equivalent, as provided by copyright law. 151 | 152 | You may make, run and propagate covered works that you do not 153 | convey, without conditions so long as your license otherwise remains 154 | in force. You may convey covered works to others for the sole purpose 155 | of having them make modifications exclusively for you, or provide you 156 | with facilities for running those works, provided that you comply with 157 | the terms of this License in conveying all material for which you do 158 | not control copyright. Those thus making or running the covered works 159 | for you must do so exclusively on your behalf, under your direction 160 | and control, on terms that prohibit them from making any copies of 161 | your copyrighted material outside their relationship with you. 162 | 163 | Conveying under any other circumstances is permitted solely under 164 | the conditions stated below. Sublicensing is not allowed; section 10 165 | makes it unnecessary. 166 | 167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 168 | 169 | No covered work shall be deemed part of an effective technological 170 | measure under any applicable law fulfilling obligations under article 171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 172 | similar laws prohibiting or restricting circumvention of such 173 | measures. 174 | 175 | When you convey a covered work, you waive any legal power to forbid 176 | circumvention of technological measures to the extent such circumvention 177 | is effected by exercising rights under this License with respect to 178 | the covered work, and you disclaim any intention to limit operation or 179 | modification of the work as a means of enforcing, against the work's 180 | users, your or third parties' legal rights to forbid circumvention of 181 | technological measures. 182 | 183 | 4. Conveying Verbatim Copies. 184 | 185 | You may convey verbatim copies of the Program's source code as you 186 | receive it, in any medium, provided that you conspicuously and 187 | appropriately publish on each copy an appropriate copyright notice; 188 | keep intact all notices stating that this License and any 189 | non-permissive terms added in accord with section 7 apply to the code; 190 | keep intact all notices of the absence of any warranty; and give all 191 | recipients a copy of this License along with the Program. 192 | 193 | You may charge any price or no price for each copy that you convey, 194 | and you may offer support or warranty protection for a fee. 195 | 196 | 5. Conveying Modified Source Versions. 197 | 198 | You may convey a work based on the Program, or the modifications to 199 | produce it from the Program, in the form of source code under the 200 | terms of section 4, provided that you also meet all of these conditions: 201 | 202 | a) The work must carry prominent notices stating that you modified 203 | it, and giving a relevant date. 204 | 205 | b) The work must carry prominent notices stating that it is 206 | released under this License and any conditions added under section 207 | 7. This requirement modifies the requirement in section 4 to 208 | "keep intact all notices". 209 | 210 | c) You must license the entire work, as a whole, under this 211 | License to anyone who comes into possession of a copy. This 212 | License will therefore apply, along with any applicable section 7 213 | additional terms, to the whole of the work, and all its parts, 214 | regardless of how they are packaged. This License gives no 215 | permission to license the work in any other way, but it does not 216 | invalidate such permission if you have separately received it. 217 | 218 | d) If the work has interactive user interfaces, each must display 219 | Appropriate Legal Notices; however, if the Program has interactive 220 | interfaces that do not display Appropriate Legal Notices, your 221 | work need not make them do so. 222 | 223 | A compilation of a covered work with other separate and independent 224 | works, which are not by their nature extensions of the covered work, 225 | and which are not combined with it such as to form a larger program, 226 | in or on a volume of a storage or distribution medium, is called an 227 | "aggregate" if the compilation and its resulting copyright are not 228 | used to limit the access or legal rights of the compilation's users 229 | beyond what the individual works permit. Inclusion of a covered work 230 | in an aggregate does not cause this License to apply to the other 231 | parts of the aggregate. 232 | 233 | 6. Conveying Non-Source Forms. 234 | 235 | You may convey a covered work in object code form under the terms 236 | of sections 4 and 5, provided that you also convey the 237 | machine-readable Corresponding Source under the terms of this License, 238 | in one of these ways: 239 | 240 | a) Convey the object code in, or embodied in, a physical product 241 | (including a physical distribution medium), accompanied by the 242 | Corresponding Source fixed on a durable physical medium 243 | customarily used for software interchange. 244 | 245 | b) Convey the object code in, or embodied in, a physical product 246 | (including a physical distribution medium), accompanied by a 247 | written offer, valid for at least three years and valid for as 248 | long as you offer spare parts or customer support for that product 249 | model, to give anyone who possesses the object code either (1) a 250 | copy of the Corresponding Source for all the software in the 251 | product that is covered by this License, on a durable physical 252 | medium customarily used for software interchange, for a price no 253 | more than your reasonable cost of physically performing this 254 | conveying of source, or (2) access to copy the 255 | Corresponding Source from a network server at no charge. 256 | 257 | c) Convey individual copies of the object code with a copy of the 258 | written offer to provide the Corresponding Source. This 259 | alternative is allowed only occasionally and noncommercially, and 260 | only if you received the object code with such an offer, in accord 261 | with subsection 6b. 262 | 263 | d) Convey the object code by offering access from a designated 264 | place (gratis or for a charge), and offer equivalent access to the 265 | Corresponding Source in the same way through the same place at no 266 | further charge. You need not require recipients to copy the 267 | Corresponding Source along with the object code. If the place to 268 | copy the object code is a network server, the Corresponding Source 269 | may be on a different server (operated by you or a third party) 270 | that supports equivalent copying facilities, provided you maintain 271 | clear directions next to the object code saying where to find the 272 | Corresponding Source. Regardless of what server hosts the 273 | Corresponding Source, you remain obligated to ensure that it is 274 | available for as long as needed to satisfy these requirements. 275 | 276 | e) Convey the object code using peer-to-peer transmission, provided 277 | you inform other peers where the object code and Corresponding 278 | Source of the work are being offered to the general public at no 279 | charge under subsection 6d. 280 | 281 | A separable portion of the object code, whose source code is excluded 282 | from the Corresponding Source as a System Library, need not be 283 | included in conveying the object code work. 284 | 285 | A "User Product" is either (1) a "consumer product", which means any 286 | tangible personal property which is normally used for personal, family, 287 | or household purposes, or (2) anything designed or sold for incorporation 288 | into a dwelling. In determining whether a product is a consumer product, 289 | doubtful cases shall be resolved in favor of coverage. For a particular 290 | product received by a particular user, "normally used" refers to a 291 | typical or common use of that class of product, regardless of the status 292 | of the particular user or of the way in which the particular user 293 | actually uses, or expects or is expected to use, the product. A product 294 | is a consumer product regardless of whether the product has substantial 295 | commercial, industrial or non-consumer uses, unless such uses represent 296 | the only significant mode of use of the product. 297 | 298 | "Installation Information" for a User Product means any methods, 299 | procedures, authorization keys, or other information required to install 300 | and execute modified versions of a covered work in that User Product from 301 | a modified version of its Corresponding Source. The information must 302 | suffice to ensure that the continued functioning of the modified object 303 | code is in no case prevented or interfered with solely because 304 | modification has been made. 305 | 306 | If you convey an object code work under this section in, or with, or 307 | specifically for use in, a User Product, and the conveying occurs as 308 | part of a transaction in which the right of possession and use of the 309 | User Product is transferred to the recipient in perpetuity or for a 310 | fixed term (regardless of how the transaction is characterized), the 311 | Corresponding Source conveyed under this section must be accompanied 312 | by the Installation Information. But this requirement does not apply 313 | if neither you nor any third party retains the ability to install 314 | modified object code on the User Product (for example, the work has 315 | been installed in ROM). 316 | 317 | The requirement to provide Installation Information does not include a 318 | requirement to continue to provide support service, warranty, or updates 319 | for a work that has been modified or installed by the recipient, or for 320 | the User Product in which it has been modified or installed. Access to a 321 | network may be denied when the modification itself materially and 322 | adversely affects the operation of the network or violates the rules and 323 | protocols for communication across the network. 324 | 325 | Corresponding Source conveyed, and Installation Information provided, 326 | in accord with this section must be in a format that is publicly 327 | documented (and with an implementation available to the public in 328 | source code form), and must require no special password or key for 329 | unpacking, reading or copying. 330 | 331 | 7. Additional Terms. 332 | 333 | "Additional permissions" are terms that supplement the terms of this 334 | License by making exceptions from one or more of its conditions. 335 | Additional permissions that are applicable to the entire Program shall 336 | be treated as though they were included in this License, to the extent 337 | that they are valid under applicable law. If additional permissions 338 | apply only to part of the Program, that part may be used separately 339 | under those permissions, but the entire Program remains governed by 340 | this License without regard to the additional permissions. 341 | 342 | When you convey a copy of a covered work, you may at your option 343 | remove any additional permissions from that copy, or from any part of 344 | it. (Additional permissions may be written to require their own 345 | removal in certain cases when you modify the work.) You may place 346 | additional permissions on material, added by you to a covered work, 347 | for which you have or can give appropriate copyright permission. 348 | 349 | Notwithstanding any other provision of this License, for material you 350 | add to a covered work, you may (if authorized by the copyright holders of 351 | that material) supplement the terms of this License with terms: 352 | 353 | a) Disclaiming warranty or limiting liability differently from the 354 | terms of sections 15 and 16 of this License; or 355 | 356 | b) Requiring preservation of specified reasonable legal notices or 357 | author attributions in that material or in the Appropriate Legal 358 | Notices displayed by works containing it; or 359 | 360 | c) Prohibiting misrepresentation of the origin of that material, or 361 | requiring that modified versions of such material be marked in 362 | reasonable ways as different from the original version; or 363 | 364 | d) Limiting the use for publicity purposes of names of licensors or 365 | authors of the material; or 366 | 367 | e) Declining to grant rights under trademark law for use of some 368 | trade names, trademarks, or service marks; or 369 | 370 | f) Requiring indemnification of licensors and authors of that 371 | material by anyone who conveys the material (or modified versions of 372 | it) with contractual assumptions of liability to the recipient, for 373 | any liability that these contractual assumptions directly impose on 374 | those licensors and authors. 375 | 376 | All other non-permissive additional terms are considered "further 377 | restrictions" within the meaning of section 10. If the Program as you 378 | received it, or any part of it, contains a notice stating that it is 379 | governed by this License along with a term that is a further 380 | restriction, you may remove that term. If a license document contains 381 | a further restriction but permits relicensing or conveying under this 382 | License, you may add to a covered work material governed by the terms 383 | of that license document, provided that the further restriction does 384 | not survive such relicensing or conveying. 385 | 386 | If you add terms to a covered work in accord with this section, you 387 | must place, in the relevant source files, a statement of the 388 | additional terms that apply to those files, or a notice indicating 389 | where to find the applicable terms. 390 | 391 | Additional terms, permissive or non-permissive, may be stated in the 392 | form of a separately written license, or stated as exceptions; 393 | the above requirements apply either way. 394 | 395 | 8. Termination. 396 | 397 | You may not propagate or modify a covered work except as expressly 398 | provided under this License. Any attempt otherwise to propagate or 399 | modify it is void, and will automatically terminate your rights under 400 | this License (including any patent licenses granted under the third 401 | paragraph of section 11). 402 | 403 | However, if you cease all violation of this License, then your 404 | license from a particular copyright holder is reinstated (a) 405 | provisionally, unless and until the copyright holder explicitly and 406 | finally terminates your license, and (b) permanently, if the copyright 407 | holder fails to notify you of the violation by some reasonable means 408 | prior to 60 days after the cessation. 409 | 410 | Moreover, your license from a particular copyright holder is 411 | reinstated permanently if the copyright holder notifies you of the 412 | violation by some reasonable means, this is the first time you have 413 | received notice of violation of this License (for any work) from that 414 | copyright holder, and you cure the violation prior to 30 days after 415 | your receipt of the notice. 416 | 417 | Termination of your rights under this section does not terminate the 418 | licenses of parties who have received copies or rights from you under 419 | this License. If your rights have been terminated and not permanently 420 | reinstated, you do not qualify to receive new licenses for the same 421 | material under section 10. 422 | 423 | 9. Acceptance Not Required for Having Copies. 424 | 425 | You are not required to accept this License in order to receive or 426 | run a copy of the Program. Ancillary propagation of a covered work 427 | occurring solely as a consequence of using peer-to-peer transmission 428 | to receive a copy likewise does not require acceptance. However, 429 | nothing other than this License grants you permission to propagate or 430 | modify any covered work. These actions infringe copyright if you do 431 | not accept this License. Therefore, by modifying or propagating a 432 | covered work, you indicate your acceptance of this License to do so. 433 | 434 | 10. Automatic Licensing of Downstream Recipients. 435 | 436 | Each time you convey a covered work, the recipient automatically 437 | receives a license from the original licensors, to run, modify and 438 | propagate that work, subject to this License. You are not responsible 439 | for enforcing compliance by third parties with this License. 440 | 441 | An "entity transaction" is a transaction transferring control of an 442 | organization, or substantially all assets of one, or subdividing an 443 | organization, or merging organizations. If propagation of a covered 444 | work results from an entity transaction, each party to that 445 | transaction who receives a copy of the work also receives whatever 446 | licenses to the work the party's predecessor in interest had or could 447 | give under the previous paragraph, plus a right to possession of the 448 | Corresponding Source of the work from the predecessor in interest, if 449 | the predecessor has it or can get it with reasonable efforts. 450 | 451 | You may not impose any further restrictions on the exercise of the 452 | rights granted or affirmed under this License. For example, you may 453 | not impose a license fee, royalty, or other charge for exercise of 454 | rights granted under this License, and you may not initiate litigation 455 | (including a cross-claim or counterclaim in a lawsuit) alleging that 456 | any patent claim is infringed by making, using, selling, offering for 457 | sale, or importing the Program or any portion of it. 458 | 459 | 11. Patents. 460 | 461 | A "contributor" is a copyright holder who authorizes use under this 462 | License of the Program or a work on which the Program is based. The 463 | work thus licensed is called the contributor's "contributor version". 464 | 465 | A contributor's "essential patent claims" are all patent claims 466 | owned or controlled by the contributor, whether already acquired or 467 | hereafter acquired, that would be infringed by some manner, permitted 468 | by this License, of making, using, or selling its contributor version, 469 | but do not include claims that would be infringed only as a 470 | consequence of further modification of the contributor version. For 471 | purposes of this definition, "control" includes the right to grant 472 | patent sublicenses in a manner consistent with the requirements of 473 | this License. 474 | 475 | Each contributor grants you a non-exclusive, worldwide, royalty-free 476 | patent license under the contributor's essential patent claims, to 477 | make, use, sell, offer for sale, import and otherwise run, modify and 478 | propagate the contents of its contributor version. 479 | 480 | In the following three paragraphs, a "patent license" is any express 481 | agreement or commitment, however denominated, not to enforce a patent 482 | (such as an express permission to practice a patent or covenant not to 483 | sue for patent infringement). To "grant" such a patent license to a 484 | party means to make such an agreement or commitment not to enforce a 485 | patent against the party. 486 | 487 | If you convey a covered work, knowingly relying on a patent license, 488 | and the Corresponding Source of the work is not available for anyone 489 | to copy, free of charge and under the terms of this License, through a 490 | publicly available network server or other readily accessible means, 491 | then you must either (1) cause the Corresponding Source to be so 492 | available, or (2) arrange to deprive yourself of the benefit of the 493 | patent license for this particular work, or (3) arrange, in a manner 494 | consistent with the requirements of this License, to extend the patent 495 | license to downstream recipients. "Knowingly relying" means you have 496 | actual knowledge that, but for the patent license, your conveying the 497 | covered work in a country, or your recipient's use of the covered work 498 | in a country, would infringe one or more identifiable patents in that 499 | country that you have reason to believe are valid. 500 | 501 | If, pursuant to or in connection with a single transaction or 502 | arrangement, you convey, or propagate by procuring conveyance of, a 503 | covered work, and grant a patent license to some of the parties 504 | receiving the covered work authorizing them to use, propagate, modify 505 | or convey a specific copy of the covered work, then the patent license 506 | you grant is automatically extended to all recipients of the covered 507 | work and works based on it. 508 | 509 | A patent license is "discriminatory" if it does not include within 510 | the scope of its coverage, prohibits the exercise of, or is 511 | conditioned on the non-exercise of one or more of the rights that are 512 | specifically granted under this License. You may not convey a covered 513 | work if you are a party to an arrangement with a third party that is 514 | in the business of distributing software, under which you make payment 515 | to the third party based on the extent of your activity of conveying 516 | the work, and under which the third party grants, to any of the 517 | parties who would receive the covered work from you, a discriminatory 518 | patent license (a) in connection with copies of the covered work 519 | conveyed by you (or copies made from those copies), or (b) primarily 520 | for and in connection with specific products or compilations that 521 | contain the covered work, unless you entered into that arrangement, 522 | or that patent license was granted, prior to 28 March 2007. 523 | 524 | Nothing in this License shall be construed as excluding or limiting 525 | any implied license or other defenses to infringement that may 526 | otherwise be available to you under applicable patent law. 527 | 528 | 12. No Surrender of Others' Freedom. 529 | 530 | If conditions are imposed on you (whether by court order, agreement or 531 | otherwise) that contradict the conditions of this License, they do not 532 | excuse you from the conditions of this License. If you cannot convey a 533 | covered work so as to satisfy simultaneously your obligations under this 534 | License and any other pertinent obligations, then as a consequence you may 535 | not convey it at all. For example, if you agree to terms that obligate you 536 | to collect a royalty for further conveying from those to whom you convey 537 | the Program, the only way you could satisfy both those terms and this 538 | License would be to refrain entirely from conveying the Program. 539 | 540 | 13. Remote Network Interaction; Use with the GNU General Public License. 541 | 542 | Notwithstanding any other provision of this License, if you modify the 543 | Program, your modified version must prominently offer all users 544 | interacting with it remotely through a computer network (if your version 545 | supports such interaction) an opportunity to receive the Corresponding 546 | Source of your version by providing access to the Corresponding Source 547 | from a network server at no charge, through some standard or customary 548 | means of facilitating copying of software. This Corresponding Source 549 | shall include the Corresponding Source for any work covered by version 3 550 | of the GNU General Public License that is incorporated pursuant to the 551 | following paragraph. 552 | 553 | Notwithstanding any other provision of this License, you have 554 | permission to link or combine any covered work with a work licensed 555 | under version 3 of the GNU General Public License into a single 556 | combined work, and to convey the resulting work. The terms of this 557 | License will continue to apply to the part which is the covered work, 558 | but the work with which it is combined will remain governed by version 559 | 3 of the GNU General Public License. 560 | 561 | 14. Revised Versions of this License. 562 | 563 | The Free Software Foundation may publish revised and/or new versions of 564 | the GNU Affero General Public License from time to time. Such new versions 565 | will be similar in spirit to the present version, but may differ in detail to 566 | address new problems or concerns. 567 | 568 | Each version is given a distinguishing version number. If the 569 | Program specifies that a certain numbered version of the GNU Affero General 570 | Public License "or any later version" applies to it, you have the 571 | option of following the terms and conditions either of that numbered 572 | version or of any later version published by the Free Software 573 | Foundation. If the Program does not specify a version number of the 574 | GNU Affero General Public License, you may choose any version ever published 575 | by the Free Software Foundation. 576 | 577 | If the Program specifies that a proxy can decide which future 578 | versions of the GNU Affero General Public License can be used, that proxy's 579 | public statement of acceptance of a version permanently authorizes you 580 | to choose that version for the Program. 581 | 582 | Later license versions may give you additional or different 583 | permissions. However, no additional obligations are imposed on any 584 | author or copyright holder as a result of your choosing to follow a 585 | later version. 586 | 587 | 15. Disclaimer of Warranty. 588 | 589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 597 | 598 | 16. Limitation of Liability. 599 | 600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 608 | SUCH DAMAGES. 609 | 610 | 17. Interpretation of Sections 15 and 16. 611 | 612 | If the disclaimer of warranty and limitation of liability provided 613 | above cannot be given local legal effect according to their terms, 614 | reviewing courts shall apply local law that most closely approximates 615 | an absolute waiver of all civil liability in connection with the 616 | Program, unless a warranty or assumption of liability accompanies a 617 | copy of the Program in return for a fee. 618 | 619 | END OF TERMS AND CONDITIONS 620 | 621 | How to Apply These Terms to Your New Programs 622 | 623 | If you develop a new program, and you want it to be of the greatest 624 | possible use to the public, the best way to achieve this is to make it 625 | free software which everyone can redistribute and change under these terms. 626 | 627 | To do so, attach the following notices to the program. It is safest 628 | to attach them to the start of each source file to most effectively 629 | state the exclusion of warranty; and each file should have at least 630 | the "copyright" line and a pointer to where the full notice is found. 631 | 632 | 633 | Copyright (C) 634 | 635 | This program is free software: you can redistribute it and/or modify 636 | it under the terms of the GNU Affero General Public License as published 637 | by the Free Software Foundation, either version 3 of the License, or 638 | (at your option) any later version. 639 | 640 | This program is distributed in the hope that it will be useful, 641 | but WITHOUT ANY WARRANTY; without even the implied warranty of 642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 643 | GNU Affero General Public License for more details. 644 | 645 | You should have received a copy of the GNU Affero General Public License 646 | along with this program. If not, see . 647 | 648 | Also add information on how to contact you by electronic and paper mail. 649 | 650 | If your software can interact with users remotely through a computer 651 | network, you should also make sure that it provides a way for users to 652 | get its source. For example, if your program is a web application, its 653 | interface could display a "Source" link that leads users to an archive 654 | of the code. There are many ways you could offer source, and different 655 | solutions will be better for different programs; see section 13 for the 656 | specific requirements. 657 | 658 | You should also get your employer (if you work as a programmer) or school, 659 | if any, to sign a "copyright disclaimer" for the program, if necessary. 660 | For more information on this, and how to apply and follow the GNU AGPL, see 661 | . 662 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![LinkSwift](https://socialify.git.ci/hmjz100/LinkSwift/image?description=1&descriptionEditable=%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8E%20JavaScript%20%E7%9A%84%E7%BD%91%E7%9B%98%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80%E8%8E%B7%E5%8F%96%E5%B7%A5%E5%85%B7&font=Jost&language=1&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNMTAzLjYgMTA3LjRjMy41LTIuMiA4LjktNi4xIDEzLjgtMTIuNXM3LjMtMTIuNSA4LjUtMTYuNWMuNS0xLjcgMi4yLTcuNSAyLjItMTQuNyAwLTEwLjEtMy4zLTI1LjEtMTUuNC0zNi44LTE0LjUtMTQtMzIuMS0xNC4zLTM1LjctMTQuMy04IDAtMTUuNyAxLjktMjIuNiA1LjJDNDQgMjMgMzUuNyAzMS40IDMwLjggNDEuN2MtMS4zIDIuOC00IDQuNy03LjEgNS00IC4zLTcuNSA0LjQtOC45IDkuNi0uNSAxLjktMS42IDMuNS0zLjEgNC43QzQuNCA2Ni44IDAgNzUuNyAwIDg1YzAgNi44IDIuMyAxMy4xIDYuMSAxOC4yIDUuNSA3LjQgMTQuMiAxMi4yIDI0IDEyLjJoNDcuMWM0LjQgMCAxMS0uNSAxOC4zLTMuNSAzLjItMS40IDUuOS0zIDguMS00LjV6IiBmaWxsPSIjQTA5OUYwIi8%2BPHBhdGggZD0iTTExOS44IDY0LjNjLjEtMTcuMS0xMC40LTI4LTEyLjUtMzAuMUM5NSAyMi4xIDc5LjkgMjEuOCA3Ni45IDIxLjhjLTE3LjYgMC0zMy4zIDEwLjUtMzkuOSAyNi43LS42IDEuMy0xLjggMi4zLTMuNCAyLjNoLS40Yy01LjggMC0xMC42IDQuOC0xMC42IDEwLjd2LjVjMCAxLjQtLjggMi42LTEuOSAzLjNDMTMuNCA2OSA4LjggNzYuOCA4LjggODVjMCAxMi4yIDkuOSAyMi4zIDIyLjIgMjIuM2g0NS4yYzMuNi0uMSAxNy42LS45IDI5LjYtMTIgMi45LTIuOCAxMy45LTEzLjcgMTQtMzF6IiBmaWxsPSIjNTc0QUI4Ii8%2BPHBhdGggZD0iTTExMC44IDU3LjRsLjIgMy4zYzAgMS4zLTEuMSAyLjQtMi4zIDIuNC0xLjMgMC0yLjMtMS4xLTIuMy0yLjRsLS4xLTIuOHYtLjNjMC0xLjIuOS0yLjIgMi4xLTIuM2guM2MuNyAwIDEuMy4zIDEuNy43LS4yLjEuMy41LjQgMS40em0tMy4zLTEwLjNjMCAxLjItMSAyLjMtMi4yIDIuM2gtLjFjLS44IDAtMS42LS41LTItMS4yLTQuNi04LjMtMTMuMy0xMy41LTIyLjgtMTMuNS0xLjIgMC0yLjMtMS0yLjMtMi4ydi0uMWMwLTEuMiAxLTIuMyAyLjItMi4zaC4xYTMwLjM3IDMwLjM3IDAgMCAxIDE1LjggNC40YzQuNiAyLjggOC40IDYuOCAxMS4xIDExLjUuMS4zLjIuNy4yIDEuMXpNODguMyA3My44TDczLjUgOTMuMmMtMS41IDEuOS0zLjUgMy4xLTUuNyAzLjVoLS4yYy0uNC4xLS44LjEtMS4yLjEtLjYgMC0xLjEtLjEtMS42LS4yLTIuMi0uNC00LjItMS43LTUuNi0zLjVMNDQuMyA3My45Yy0yLTIuNi0yLjUtNS40LTEuNC03LjcuMS0uMS4xLS4yLjItLjIgMS4yLTIgMy41LTMuMiA2LjQtMy4yaDYuNnYtNS43YzAtNi44IDQuNy0xMiAxMC45LTEyIDQuOCAwIDguNSAyLjYgMTAuMyA3LjIuNSAxLjMtLjIgMi43LTEuNSAzLjJzLTIuOC0uMS0zLjMtMS40Yy0xLjEtMi43LTIuOS00LTUuNS00LTMuNSAwLTYgMy02IDd2OC4xYzAgLjUtLjIgMS0uNiAxLjQtLjYuNy0xLjcgMS4xLTIuNiAxLjFoLTguNGMtMS4zIDAtMiAuNC0yLjEuNy0uMi40IDAgMS4zLjkgMi40TDYzLjEgOTBjLjkgMS4yIDIuMSAxLjggMy4zIDEuOHMyLjMtLjYgMy4xLTEuN2wxNC44LTE5LjNjLjktMS4xIDEuMS0yIC45LTIuNC0uMi0uMy0uOS0uNy0yLjEtLjdoLTcuNmMtLjkgMC0xLjctLjUtMi4xLTEuMi0uMy0uNC0uNC0uOC0uNC0xLjMgMC0xLjQgMS4xLTIuNSAyLjUtMi41aDcuNmMzLjEgMCA1LjUgMS4zIDYuNiAzLjVsLjMuN2MuNyAyLjEuMSA0LjYtMS43IDYuOXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4%3D&name=1&owner=1&pattern=Charlie%20Brown&theme=Auto) 2 | 3 |

4 | GreasyFork Version 5 | GreasyFork Good Rings 6 | Github Stargazers 7 | GreasyFork Daily Install 8 | GreasyFork Total Install 9 | Github Forks 10 |
11 | Github Licence 12 | GreasyFork Licence 13 |
14 | Tampermonkey BETA 篡改猴测试版 15 | TamperMonkey 篡改猴 16 |
17 | Google Chrome-≥76.0 18 | Microsoft Edge-≥88.0 19 | 支持平台 20 |
21 | Starchart 22 |

23 | 24 | ## 安装 25 | - LinkSwift 26 | https://github.moeyy.xyz/https://github.com/hmjz100/LinkSwift/raw/main/%EF%BC%88%E6%94%B9%EF%BC%89%E7%BD%91%E7%9B%98%E7%9B%B4%E9%93%BE%E4%B8%8B%E8%BD%BD%E5%8A%A9%E6%89%8B.user.js 27 | - (改)百度网盘会员青春版 28 | https://github.moeyy.xyz/https://github.com/hmjz100/LinkSwift/raw/main/%EF%BC%88%E6%94%B9%EF%BC%89%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98%E4%BC%9A%E5%91%98%E9%9D%92%E6%98%A5%E7%89%88.user.js 29 | 30 | ## 说明 31 | 32 | 基于[【网盘直链下载助手】](https://www.baiduyun.wiki/install.html)修改 33 | - 原作者:[油小猴](https://www.youxiaohou.com/) 34 | - 原仓库:[https://github.com/syhyz1990/baiduyun](https://github.com/syhyz1990/baiduyun) 35 | - 本脚本发布至 GreasyFork:[https://greasyfork.org/scripts/449291](https://greasyfork.org/scripts/449291) 36 | - 还有脚本猫:[https://scriptcat.org/script-show-page/1604](https://scriptcat.org/script-show-page/1604) 37 | 38 | ## 简介 39 | 40 | 支持 百度网盘/阿里云盘/中国移动云盘/天翼云盘/迅雷云盘/夸克网盘/UC网盘/123云盘 八大网盘,相比较原脚本,增加了更多功能~ 41 | 42 | #### 卑微的小标题 43 | 44 | 这个脚本只有一个人在修改\~如果喜欢的话还请留个 Star 哦\~ 45 | - 如有 bug 等问题请在这发[议题反馈](https://github.com/hmjz100/Online-disk-direct-link-download-assistant/issues) 46 | 47 | ## 版本号 48 | V. 1.1.1.2(改自 6.2.7 版本) 49 | 本脚本目前仅在 Github 与 GreasyFork 还有 脚本猫 发布,如果您是在其他渠道获取到本脚本的,请不要安装。 50 | 51 | ## 更新日志 52 | 53 | | 版本号 | 创建日期 | 更新日志 | 54 | | -------- | -------- | -------- | 55 | | 1.1.1.2 | 2025年06月08日 | 1、修复无法删除第一项远程配置的 Bug。 | 56 | | 1.1.1.1 | 2025年06月02日 | 1、修复推送到 Aria2 时推送成功但报错的 Bug。 | 57 | | 1.1.1 | 2025年06月01日 | 六一儿童节快乐!萌萌哒更新~
1、配置文件格式更新,支持添加、删除、切换多个服务配置;
2、支持比特彗星推送下载,原 RPC 已并入 Aria2 下载;
3、界面增加 Font Awesome 图标!更好看啦;
4、优化脚本代码、界面,运行更轻快;
5、修复上个版本遗存的问题。 | 58 | | 1.1.0.1 | 2025年05月09日 | 1、修复查看 RPC 下载任务的 Bug。 | 59 | | 1.1.0 | 2025年05月08日 | 1、支持 UC 网盘、123 云盘;
2、改进了网盘主题的注入方式;
3、聚合并重构了部分重复函数,对整体脚本逻辑进行了梳理和精简;
4、将脚本执行阶段从 document-body 适配为 document-start。 | 60 | | 1.0.9.7 | 2025年02月13日 | 1、修复移动云盘下载错误;
2、优化代码,更好的错误识别;
3、去除了游小猴云服务。 | 61 | | 1.0.9.6 | 2024年10月28日 | 1、支持在百度网盘中选择文件夹下载;
2、优化部分提示。 | 62 | | 1.0.9.5 | 2024年10月14日 | 1、修复因代码逻辑错误而无法获取链接的 Bug。 | 63 | | 1.0.9.4 | 2024年10月09日 | 1、修复因百度网盘 AccessToken 过期导致无法获取链接的 Bug。 | 64 | | 1.0.9.3 | 2024年08月10日 | 1、若网盘不支持在分享中下载,将仅显示保存网盘按钮;
2、优化下载界面,支持选择 Iframe 或 Blob 的方式来下载文件,增加按钮的提示文本;
3、优化 CSS 样式,统一了 SweetAlert2 按钮样式,同时适配了 Dark Reader 插件,界面更协调;
4、支持修改油小猴网站主题色;
5、原有主题相关设置现已移动至助手美化页面中。 | 65 | | 1.0.9.2 | 2024年08月04日 | 1、修复使用API下载时有可能会导致IDM无限弹窗的Bug。 | 66 | | 1.0.9.1 | 2024年07月30日 | 1、修复在百度网盘旧版下脚本无法删除元素的Bug。 | 67 | | 1.0.9 | 2024年07月29日 | 1、跟进官方V6.2.7,修复因无法进行百度授权而导致获取直链报错 9019 的 Bug。 | 68 | | 1.0.8.9 | 2024年07月22日 | 1、跟进官方V6.2.3,优化保存到网盘提示,修复阿里云盘、移动云盘失效的问题;
2、优化修改网盘主题的代码,减少对页面的破坏。 | 69 | | 1.0.8.8 | 2024年05月09日 | 1、修复下载菜单字体过小的Bug。| 70 | | 1.0.8.7 | 2024年05月06日 | 1、修复在阿里云盘分享页面下点击“未点亮”按钮时没有任何反应的Bug;
2、更新并优化网盘界面精简规则;
3、支持更换 百度网盘、阿里云盘、迅雷云盘、夸克网盘、移动云盘 界面的主题颜色。 | 71 | | 1.0.8.6 | 2024年04月08日 | 1、新增移动云盘会员中心页面,可在网盘中点击“会员中心”按钮查看(但无法使用第三方支付)。 | 72 | | 1.0.8.5 | 2024年04月07日 | 1、跟进官方V6.1.6,修复迅雷网盘分享页面无法选中文件,修复移动云盘无法判断页面。 | 73 | | 1.0.8.4 | 2024年04月07日 | 1、修复因重复绑定按钮而导致命令重复执行的Bug;
2、优化调试信息界面排版;
3、移除对百度网盘手机网页版的支持。 | 74 | | 1.0.8.3 | 2024年02月11日 | 1、适配阿里云盘新域名alipan.com。 | 75 | | 1.0.8.2 | 2023年11月29日 | 1、更换新图标。 | 76 | | 1.0.8.1 | 2023年11月25日 | 1、修复因重复绑定按钮而导致RPC下载会发送多条下载请求的Bug;
2、选择不使用油小猴服务器时,“用ghproxy连接Github仓库”更换为“用jsdelivr连接Github仓库”;
3、跟进官方V6.1.4版本,修复移动网盘无法获取链接,支持阿里云盘新域名alipan.com。 | 77 | | 1.0.8 | 2023年11月05日 | 1、修复迅雷网盘勾选文件后仍提示未勾选。 | 78 | | 1.0.7.9 | 2023年11月05日 | 1、更新精简网盘元素匹配规则,防止因通知横条而导致不能点到“API下载”以下的按钮。 | 79 | | 1.0.7.8 | 2023年09月10日 | 1、跟进官方V6.1.2,加入V2接口;
2、修复百度网盘下载时因为获取不到accessToken而一直转圈。 | 80 | | 1.0.7.7 | 2023年09月03日 | 1、修复百度网盘的按钮会因为主题不同而被改变颜色的Bug;
2、更新夸克网盘按钮与界面。 | 81 | | 1.0.7.6 | 2023年09月01日 | 1、修复“注入”功能;
2、黑暗模式支持随设置热切换。 | 82 | | 1.0.7.5 | 2023年08月31日 | 1、修复阿里云盘下载逻辑;
2、精简代码;
3、支持深色模式;
4、修改部分提示文本;
5、修改部分CSS;
6、设置可测试RPC连接。 | 83 | | 1.0.7.4 | 2023年08月27日 | 1、优化下载逻辑;
2、修复阿里云盘无法使用API下载。 | 84 | | 1.0.7.3 | 2023年08月24日 | 1、如果出现网络请求错误时支持自动重新请求;
2、可选择是否使用油小猴服务器。 | 85 | | 1.0.7.2 | 2023年07月29日 | 1、修复使用RPC下载时会重复发送链接的Bug。 | 86 | | 1.0.7.1 | 2023年07月27日 | 1、\[实验功能,不影响正常使用\]支持百度网盘手机网页版,勾选文件后可在顶栏找到“下载助手”按钮。 | 87 | | 1.0.7 | 2023年07月26日 | 1、重构夸克网盘、阿里云盘按钮。 | 88 | | 1.0.6.9 | 2023年07月25日 | 1、下载窗口加入关闭按钮。 | 89 | | 1.0.6.8 | 2023年07月24日 | 1、修复夸克网盘按钮错位。 | 90 | | 1.0.6.7 | 2023年07月24日 | 1、将百度网盘界面修改为主题色,可在设置选择是否修改;
2、增加主题色名称,更改部分内容颜色;
3、移动云盘API下载支持批量复制;
4、优化控制台输出结果;
5、百度网盘API下载不使用IDM时可以显示剩余时间;
6、“取消点亮按钮”按钮的位置现已移动到设置页面。
7、homo特有的彩蛋又回来力(喜)。 | 91 | | 1.0.6.6 | 2023年06月07日 | 1、修复暗号错误。 | 92 | | 1.0.6.5 | 2023年06月04日 | 1、修复即使输入正确暗号也不能成功点亮按钮的服务器错误。 | 93 | | 1.0.6.4 | 2023年06月02日 | 1、跟进官方V6.1.1版本,修复阿里云盘获取下载链接时的问题。 | 94 | | 1.0.6.3 | 2023年05月19日 | 1、照顾小屏幕用户,将始终显示复制全部链接的按钮;
2、增加取消下载时的动画。 | 95 | | 1.0.6.2 | 2023年05月08日 | 1、修复部分界面错位,实现CSS内置;
2、百度网盘界面将变得更加简洁。 | 96 | | 1.0.6.1 | 2023年05月06日 | 1、新增百度云盘API下载支持复制链接;
2、为了照顾手机浏览器用户,增大项目之间间隙,新增隐藏IDM提示选项,可在助手设置中启用;
3、修改CSS,界面会出现更多的主题色;
4、支持在游小猴官网查看暗号;
5、修复部分语法错误。 | 97 | | 1.0.6 | 2023年04月15日 | 1、修复了打开阿里云盘分享连接时因下载移动端广告导致只能点击API下载;
2、跟进官方6.0.4版本,修复夸克网盘获取下载链接失效、支持移动云盘。 | 98 | | 1.0.5.5 | 2023年04月01日 | 1、感谢[Night-stars](https://github.com/Night-stars-1)的帮助,修复因为原作者服务器导致的初始化暗号识别错误;
2、修改一些文本以及提供给服务器的信息。 | 99 | | 1.0.5.4 | 2023年03月13日 | 1、小修小改css,让主题色出现在更多地方;
2、修改下载链接获取失败的提示;
3、增加更多的主题色,可在助手设置查看;
4、homo彩蛋被删去力(悲)。 | 100 | | 1.0.5.3 | 2023年03月10日 | 1、阿里云盘可以摸到下载菜单了。 | 101 | | 1.0.5.2 | 2022年10月04日 | 1、增加脚本信息菜单;
2、优化阿里云盘显示svg图片;
3、修改弹窗按钮颜色。 | 102 | | 1.0.5.1 | 2022年09月30日 | 1、修复在切换按钮主题后夸克网盘不能正常显示按钮。 | 103 | | 1.0.5 | 2022年09月21日 | 1、跟进官方5.9.4版,修复文件名识别。 | 104 | | 1.0.4 | 2022年08月13日 | 1、修复了原作者留下的夸克网盘切换文件夹就多一个“下载助手”按钮的大BUG;
2、在下载菜单增加“助手设置”“更新日志”按钮;
3、修改阿里云盘和夸克网盘下载助手按钮样式;
4、增加“取消点亮按钮”油猴菜单;
5、修改部分css,使其与选择的主题更贴切。 | 105 | | 1.0.3 | 2022年08月11日 | 1、增加homo特有的彩蛋 | 106 | | 1.0.2 | 2022年08月10日 | 1、修改并加宽界面,调整部分css,使Sweetalert2界面更美观,更与原版相近;
2、修改部分提示文字,使文字更容易复制。 | 107 | | 1.0.1 | 2022年08月10日 | 1、去除更新提示;
2、更新Sweetalert2至11版本。 | 108 | | 1.0.0 | 2022年08月10日 | (脚本发布)
1、增加“注入”功能(bushi);
2、去除广告。 | 109 | 110 | --- 111 | 112 |

这是给认真阅读完README文件的人的赞美

113 |

个人博客: https://hmjz100blog.rf.gd

114 | -------------------------------------------------------------------------------- /config/ali.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": 200, 3 | "tips": "这是一个油小猴服务器配置的备份文件,只在 (改)网盘直连下载助手 这个脚本无法访问油小猴的服务器时自动调用", 4 | "pcs": { 5 | "0": "https://api.aliyundrive.com/v2/file/get_share_link_download_url", 6 | "1": "https://api.aliyundrive.com/v2/file/get_download_url" 7 | }, 8 | "img": "https://pic.rmb.bdstatic.com/bjh/8b9e14345b3cdf96aedac2f3971adcb02681.png", 9 | "btn": { 10 | "home": ".actions--M9Np-", 11 | "share": ".right--x0Z1g" 12 | }, 13 | "d": "https://d.youxiaohou.com", 14 | "dom": { 15 | "list": "[class^=\"node-list-table-view--\"]", 16 | "grid": "[class^=\"node-list-grid-view--\"]", 17 | "switch": "[class^=\"switch-wrapper--\"]" 18 | }, 19 | "name": "网盘直链下载助手", 20 | "init": { 21 | "0": "请输入初始化暗号", 22 | "1": "请输入暗号点亮按钮,扫二维码免费获取", 23 | "2": "暗号正确!【下载助手】点亮成功!", 24 | "3": "暗号不正确!", 25 | "4": "试试用微信扫码回复👉暗号👈来点亮按钮吧!", 26 | "5": "请先安装网盘万能助手,安装后请刷新本页!!!" 27 | }, 28 | "api": { 29 | "0": "API下载(适用于 IDMNDM 以及浏览器自带下载)", 30 | "1": "点击链接直接下载,例如:IDM,若未唤起IDM,请 点击这里 配置文件类型。" 31 | }, 32 | "aria": { 33 | "0": "Aria下载(适用于 XDownLinux Shell命令行", 34 | "1": "点击链接复制地址到剪切板,粘贴到支持 aria2c 协议的下载器中,例如:XDownLinux Shell。" 35 | }, 36 | "rpc": { 37 | "0": "RPC下载(适用于 MotrixAria2 ToolsAriaNgGUI", 38 | "1": "点击按钮发送链接至本地或远程 RPC 服务,例如:Motrix,RPC 参数含义见此处。" 39 | }, 40 | "curl": { 41 | "0": "cURL下载(适用于 Windows,Linux,MacOS 终端", 42 | "1": "点击链接复制地址到剪切板,粘贴到 Windows,Linux,MacOS 终端,支持断点续传。" 43 | }, 44 | "bc": { 45 | "0": "BC下载(适用于 比特彗星", 46 | "1": "点击链接复制地址到剪切板,粘贴到 比特彗星 下载器中。" 47 | }, 48 | "num": "865746", 49 | "license": "AGPL3", 50 | "version": "6.2.3", 51 | "footer": "
感谢您使用本脚本,给我们一个Star吧~
" 52 | } -------------------------------------------------------------------------------- /config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": 200, 3 | "tips": "这是一个油小猴服务器配置的备份文件,只在 (改)网盘直连下载助手 这个脚本无法访问油小猴的服务器时自动调用", 4 | "pcs": { 5 | "0": "https://pan.baidu.com/rest/2.0/xpan/multimedia?method=filemetas&dlink=1", 6 | "1": "https://pan.baidu.com/api/sharedownload?channel=chunlei&clienttype=12&web=1&app_id=250528", 7 | "2": "https://pan.baidu.com/share/tplconfig?fields=sign,timestamp&channel=chunlei&web=1&app_id=250528&clienttype=0", 8 | "3": "https://openapi.baidu.com/oauth/2.0/authorize?client_id=IlLqBbU3GjQ0t46TRwFateTprHWl39zF&response_type=token&redirect_uri=oob&confirm_login=0&scope=basic,netdisk" 9 | }, 10 | "img": "https://pic.rmb.bdstatic.com/bjh/8b9e14345b3cdf96aedac2f3971adcb02681.png", 11 | "btn": { 12 | "home": ".tcuLAu", 13 | "main": ".wp-s-agile-tool-bar__header", 14 | "share": ".module-share-top-bar .x-button-box" 15 | }, 16 | "d": "https://d.youxiaohou.com", 17 | "idm": "https://www.youxiaohou.com/zh-cn/idm.html", 18 | "name": "网盘直链下载助手", 19 | "init": { 20 | "0": "请输入初始化暗号", 21 | "1": "请输入暗号点亮按钮,扫二维码免费获取", 22 | "2": "暗号正确!【下载助手】点亮成功!", 23 | "3": "暗号不正确!", 24 | "4": "试试用微信扫码回复👉暗号👈来点亮按钮吧!", 25 | "5": "请先安装网盘万能助手,安装后请刷新本页!!!" 26 | }, 27 | "api": { 28 | "0": "API下载(适用于 IDMNDM 以及浏览器自带下载)", 29 | "1": "点击链接直接下载,例如:IDM,若未唤起IDM,请 点击这里 配置文件类型,建议配合超级会员使用。" 30 | }, 31 | "aria": { 32 | "0": "Aria下载(适用于 XDownLinux Shell命令行", 33 | "1": "点击链接复制地址到剪切板,粘贴到支持 aria2c 协议的下载器中,例如:XDownLinux Shell,建议配合超级会员使用。" 34 | }, 35 | "rpc": { 36 | "0": "RPC下载(适用于 MotrixAria2 ToolsAriaNgGUI", 37 | "1": "点击按钮发送链接至本地或远程 RPC 服务,例如:Motrix,RPC 参数含义见此处,建议配合超级会员使用。" 38 | }, 39 | "curl": { 40 | "0": "cURL下载(适用于 Windows,Linux,MacOS 终端", 41 | "1": "点击链接复制地址到剪切板,粘贴到 Windows,Linux,MacOS 终端,支持断点续传,建议配合超级会员使用。" 42 | }, 43 | "bc": { 44 | "0": "BC下载(适用于 比特彗星", 45 | "1": "点击链接复制地址到剪切板,粘贴到 比特彗星 下载器中,建议配合超级会员使用。" 46 | }, 47 | "assistant": "https://www.crxsoso.com/addon/detail/mphijdmblaalbakceeadippfkbgfgaaa", 48 | "num": "865746", 49 | "license": "AGPL3", 50 | "version": "6.2.3", 51 | "ua": "pan.baidu.com", 52 | "footer": "
感谢您使用本脚本,给我们一个Star吧~
" 53 | } -------------------------------------------------------------------------------- /config/quark.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": 200, 3 | "tips": "这是一个油小猴服务器配置的备份文件,只在 (改)网盘直连下载助手 这个脚本无法访问油小猴的服务器时自动调用", 4 | "pcs": { 5 | "0": "https://drive.quark.cn/1/clouddrive/file/download?pr=ucpro&fr=pc" 6 | }, 7 | "img": "https://pic.rmb.bdstatic.com/bjh/8b9e14345b3cdf96aedac2f3971adcb02681.png", 8 | "btn": { 9 | "home": ".btn-operate .btn-main", 10 | "share": ".file-info-share-buttom" 11 | }, 12 | "d": "https://d.youxiaohou.com", 13 | "name": "网盘直链下载助手", 14 | "init": { 15 | "0": "请输入初始化暗号", 16 | "1": "请输入暗号点亮按钮,扫二维码免费获取", 17 | "2": "暗号正确!【下载助手】点亮成功!", 18 | "3": "暗号不正确!", 19 | "4": "试试用微信扫码回复👉暗号👈来点亮按钮吧!", 20 | "5": "请先安装网盘万能助手,安装后请刷新本页!!!" 21 | }, 22 | "api": { 23 | "0": "API下载(适用于 IDMNDM 以及浏览器自带下载)", 24 | "1": "点击链接直接下载,例如:IDM,若未唤起IDM,请 点击这里 配置文件类型。" 25 | }, 26 | "aria": { 27 | "0": "Aria下载(适用于 XDownLinux Shell命令行", 28 | "1": "点击链接复制地址到剪切板,粘贴到支持 aria2c 协议的下载器中,例如:XDownLinux Shell。" 29 | }, 30 | "rpc": { 31 | "0": "RPC下载(适用于 MotrixAria2 ToolsAriaNgGUI", 32 | "1": "点击按钮发送链接至本地或远程 RPC 服务,例如:Motrix,RPC 参数含义见此处。" 33 | }, 34 | "curl": { 35 | "0": "cURL下载(适用于 Windows,Linux,MacOS 终端", 36 | "1": "点击链接复制地址到剪切板,粘贴到 Windows,Linux,MacOS 终端,支持断点续传。" 37 | }, 38 | "bc": { 39 | "0": "BC下载(适用于 比特彗星", 40 | "1": "点击链接复制地址到剪切板,粘贴到 比特彗星 下载器中。" 41 | }, 42 | "num": "865746", 43 | "license": "AGPL3", 44 | "version": "6.2.3", 45 | "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch", 46 | "footer": "
感谢您使用本脚本,给我们一个Star吧~
" 47 | } -------------------------------------------------------------------------------- /config/tianyi.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": 200, 3 | "tips": "这是一个油小猴服务器配置的备份文件,只在 (改)网盘直连下载助手 这个脚本无法访问油小猴的服务器时自动调用", 4 | "pcs": { 5 | "0": "https://cloud.189.cn/api/open/file/getFileDownloadUrl.action", 6 | "1": "https://api.cloud.189.cn/open/oauth2/ssoH5.action", 7 | "2": "https://api.cloud.189.cn/open/file/getFileDownloadUrl.action" 8 | }, 9 | "img": "https://pic.rmb.bdstatic.com/bjh/8b9e14345b3cdf96aedac2f3971adcb02681.png", 10 | "btn": { 11 | "home": ".nav-opea", 12 | "share": ".nav-opea" 13 | }, 14 | "d": "https://d.youxiaohou.com", 15 | "name": "网盘直链下载助手", 16 | "init": { 17 | "0": "请输入初始化暗号", 18 | "1": "请输入暗号点亮按钮,扫二维码免费获取", 19 | "2": "暗号正确!【下载助手】点亮成功!", 20 | "3": "暗号不正确!", 21 | "4": "试试用微信扫码回复👉暗号👈来点亮按钮吧!", 22 | "5": "请先安装网盘万能助手,安装后请刷新本页!!!" 23 | }, 24 | "api": { 25 | "0": "API下载(适用于 IDMNDM 以及浏览器自带下载)", 26 | "1": "点击链接直接下载,例如:IDM,若未唤起IDM,请 点击这里 配置文件类型。" 27 | }, 28 | "aria": { 29 | "0": "Aria下载(适用于 XDownLinux Shell命令行", 30 | "1": "点击链接复制地址到剪切板,粘贴到支持 aria2c 协议的下载器中,例如:XDownLinux Shell。" 31 | }, 32 | "rpc": { 33 | "0": "RPC下载(适用于 MotrixAria2 ToolsAriaNgGUI", 34 | "1": "点击按钮发送链接至本地或远程 RPC 服务,例如:Motrix,RPC 参数含义见此处。" 35 | }, 36 | "curl": { 37 | "0": "cURL下载(适用于 Windows,Linux,MacOS 终端", 38 | "1": "点击链接复制地址到剪切板,粘贴到 Windows,Linux,MacOS 终端,支持断点续传。" 39 | }, 40 | "bc": { 41 | "0": "BC下载(适用于 比特彗星", 42 | "1": "点击链接复制地址到剪切板,粘贴到 比特彗星 下载器中。" 43 | }, 44 | "num": "865746", 45 | "license": "AGPL3", 46 | "version": "6.2.3", 47 | "footer": "
感谢您使用本脚本,给我们一个Star吧~
" 48 | } -------------------------------------------------------------------------------- /config/xunlei.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": 200, 3 | "tips": "这是一个油小猴服务器配置的备份文件,只在 (改)网盘直连下载助手 这个脚本无法访问油小猴的服务器时自动调用", 4 | "pcs": { 5 | "0": "https://api-pan.xunlei.com/drive/v1/files/" 6 | }, 7 | "img": "https://pic.rmb.bdstatic.com/bjh/8b9e14345b3cdf96aedac2f3971adcb02681.png", 8 | "btn": { 9 | "home": ".FileMenu__menu--XBFEH", 10 | "share": ".Share__batchActionBox--VKPyR" 11 | }, 12 | "d": "https://d.youxiaohou.com", 13 | "name": "网盘直链下载助手", 14 | "init": { 15 | "0": "请输入初始化暗号", 16 | "1": "请输入暗号点亮按钮,扫二维码免费获取", 17 | "2": "暗号正确!【下载助手】点亮成功!", 18 | "3": "暗号不正确!", 19 | "4": "试试用微信扫码回复👉暗号👈来点亮按钮吧!", 20 | "5": "请先安装网盘万能助手,安装后请刷新本页!!!" 21 | }, 22 | "api": { 23 | "0": "API下载(适用于 IDMNDM 以及浏览器自带下载)", 24 | "1": "点击链接直接下载,例如:IDM,若未唤起IDM,请 点击这里 配置文件类型,IDM 不显示文件名时,请手动复制填写" 25 | }, 26 | "aria": { 27 | "0": "Aria下载(适用于 XDownLinux Shell命令行", 28 | "1": "点击链接复制地址到剪切板,粘贴到支持 aria2c 协议的下载器中,例如:XDownLinux Shell。" 29 | }, 30 | "rpc": { 31 | "0": "RPC下载(适用于 MotrixAria2 ToolsAriaNgGUI", 32 | "1": "点击按钮发送链接至本地或远程 RPC 服务,例如:Motrix,RPC 参数含义见此处。" 33 | }, 34 | "curl": { 35 | "0": "cURL下载(适用于 Windows,Linux,MacOS 终端", 36 | "1": "点击链接复制地址到剪切板,粘贴到 Windows,Linux,MacOS 终端,支持断点续传。" 37 | }, 38 | "bc": { 39 | "0": "BC下载(适用于 比特彗星", 40 | "1": "点击链接复制地址到剪切板,粘贴到 比特彗星 下载器中,镜像地址可用于加速下载,使用方法见此处。" 41 | }, 42 | "mirror": [ 43 | "vod0007-h05-vip-lixian.xunlei.com", 44 | "vod0008-h05-vip-lixian.xunlei.com", 45 | "vod0009-h05-vip-lixian.xunlei.com", 46 | "vod0010-h05-vip-lixian.xunlei.com", 47 | "vod0011-h05-vip-lixian.xunlei.com", 48 | "vod0012-h05-vip-lixian.xunlei.com", 49 | "vod0013-h05-vip-lixian.xunlei.com", 50 | "vod0014-h05-vip-lixian.xunlei.com", 51 | "vod0067-aliyun08-vip-lixian.xunlei.com", 52 | "vod0254-aliyun08-vip-lixian.xunlei.com", 53 | "vod0255-aliyun08-vip-lixian.xunlei.com", 54 | "vod0256-aliyun08-vip-lixian.xunlei.com", 55 | "vod0257-aliyun08-vip-lixian.xunlei.com", 56 | "vod0258-aliyun08-vip-lixian.xunlei.com", 57 | "vod0259-aliyun08-vip-lixian.xunlei.com", 58 | "vod0260-aliyun08-vip-lixian.xunlei.com", 59 | "vod0261-aliyun08-vip-lixian.xunlei.com", 60 | "vod0262-aliyun08-vip-lixian.xunlei.com", 61 | "vod0263-aliyun08-vip-lixian.xunlei.com", 62 | "vod0264-aliyun08-vip-lixian.xunlei.com", 63 | "vod0265-aliyun08-vip-lixian.xunlei.com", 64 | "vod0266-aliyun08-vip-lixian.xunlei.com", 65 | "vod0267-aliyun08-vip-lixian.xunlei.com", 66 | "vod0554-aliyun06-vip-lixian.xunlei.com", 67 | "vod0555-aliyun06-vip-lixian.xunlei.com", 68 | "vod0556-aliyun06-vip-lixian.xunlei.com", 69 | "vod0680-aliyun08-vip-lixian.xunlei.com", 70 | "vod0681-aliyun08-vip-lixian.xunlei.com", 71 | "vod0682-aliyun08-vip-lixian.xunlei.com", 72 | "vod0683-aliyun08-vip-lixian.xunlei.com", 73 | "vod0684-aliyun08-vip-lixian.xunlei.com", 74 | "vod0685-aliyun08-vip-lixian.xunlei.com", 75 | "vod0686-aliyun08-vip-lixian.xunlei.com", 76 | "vod0687-aliyun08-vip-lixian.xunlei.com", 77 | "vod0688-aliyun08-vip-lixian.xunlei.com", 78 | "vod0689-aliyun08-vip-lixian.xunlei.com", 79 | "vod0690-aliyun08-vip-lixian.xunlei.com", 80 | "vod0724-aliyun08-vip-lixian.xunlei.com", 81 | "vod0725-aliyun08-vip-lixian.xunlei.com", 82 | "vod0726-aliyun08-vip-lixian.xunlei.com", 83 | "vod0727-aliyun08-vip-lixian.xunlei.com", 84 | "vod0728-aliyun08-vip-lixian.xunlei.com", 85 | "vod0075.aliyun06.vip.lixian.xunlei.com", 86 | "vod0076.aliyun06.vip.lixian.xunlei.com", 87 | "vod0077.aliyun06.vip.lixian.xunlei.com", 88 | "vod0779-aliyun04-vip-lixian.xunlei.com", 89 | "vod0078.aliyun06.vip.lixian.xunlei.com", 90 | "vod0780-aliyun04-vip-lixian.xunlei.com", 91 | "vod0781-aliyun04-vip-lixian.xunlei.com", 92 | "vod0079.aliyun06.vip.lixian.xunlei.com", 93 | "vod0080.aliyun06.vip.lixian.xunlei.com", 94 | "vod0117.aliyun04.vip.lixian.xunlei.com", 95 | "vod0118.aliyun04.vip.lixian.xunlei.com", 96 | "vod0119.aliyun04.vip.lixian.xunlei.com", 97 | "vod1284-aliyun06-vip-lixian.xunlei.com", 98 | "vod1285-aliyun06-vip-lixian.xunlei.com", 99 | "vod1363-aliyun06-vip-lixian.xunlei.com", 100 | "vod1371-aliyun06-vip-lixian.xunlei.com", 101 | "vod1372-aliyun06-vip-lixian.xunlei.com", 102 | "vod1426-aliyun06-vip-lixian.xunlei.com", 103 | "vod1427-aliyun06-vip-lixian.xunlei.com", 104 | "vod1428-aliyun06-vip-lixian.xunlei.com", 105 | "vod1429-aliyun06-vip-lixian.xunlei.com", 106 | "vod1442-aliyun06-vip-lixian.xunlei.com", 107 | "vod1443-aliyun06-vip-lixian.xunlei.com", 108 | "vod1444-aliyun06-vip-lixian.xunlei.com", 109 | "vod1445-aliyun06-vip-lixian.xunlei.com", 110 | "vod1446-aliyun06-vip-lixian.xunlei.com", 111 | "vod1447-aliyun06-vip-lixian.xunlei.com", 112 | "vod1469-aliyun06-vip-lixian.xunlei.com", 113 | "vod1470-aliyun06-vip-lixian.xunlei.com", 114 | "vod1471-aliyun06-vip-lixian.xunlei.com", 115 | "vod1489-aliyun06-vip-lixian.xunlei.com", 116 | "vod1490-aliyun06-vip-lixian.xunlei.com", 117 | "vod1491-aliyun06-vip-lixian.xunlei.com", 118 | "vod1492-aliyun06-vip-lixian.xunlei.com", 119 | "vod1493-aliyun06-vip-lixian.xunlei.com", 120 | "vod0215.aliyun06.vip.lixian.xunlei.com", 121 | "vod0216.aliyun06.vip.lixian.xunlei.com", 122 | "vod0217.aliyun06.vip.lixian.xunlei.com", 123 | "vod0218.aliyun06.vip.lixian.xunlei.com", 124 | "vod0219.aliyun06.vip.lixian.xunlei.com", 125 | "vod0220.aliyun06.vip.lixian.xunlei.com", 126 | "vod0241.aliyun08.vip.lixian.xunlei.com", 127 | "vod0244.aliyun08.vip.lixian.xunlei.com", 128 | "vod0251.aliyun08.vip.lixian.xunlei.com", 129 | "vod0252.aliyun08.vip.lixian.xunlei.com", 130 | "vod0253.aliyun08.vip.lixian.xunlei.com", 131 | "vod0254.aliyun08.vip.lixian.xunlei.com", 132 | "vod0255.aliyun08.vip.lixian.xunlei.com", 133 | "vod0256.aliyun08.vip.lixian.xunlei.com", 134 | "vod0257.aliyun08.vip.lixian.xunlei.com", 135 | "vod0260.aliyun08.vip.lixian.xunlei.com", 136 | "vod0261.aliyun08.vip.lixian.xunlei.com", 137 | "vod0262.aliyun08.vip.lixian.xunlei.com", 138 | "vod0263.aliyun08.vip.lixian.xunlei.com", 139 | "vod0264.aliyun08.vip.lixian.xunlei.com", 140 | "vod0265.aliyun08.vip.lixian.xunlei.com", 141 | "vod0266.aliyun08.vip.lixian.xunlei.com", 142 | "vod0267.aliyun08.vip.lixian.xunlei.com", 143 | "vod3379-aliyun04-vip-lixian.xunlei.com", 144 | "vod3380-aliyun04-vip-lixian.xunlei.com", 145 | "vod3429-aliyun04-vip-lixian.xunlei.com", 146 | "vod3458-aliyun04-vip-lixian.xunlei.com", 147 | "vod3459-aliyun04-vip-lixian.xunlei.com", 148 | "vod3496-aliyun04-vip-lixian.xunlei.com", 149 | "vod3497-aliyun04-vip-lixian.xunlei.com", 150 | "vod3498-aliyun04-vip-lixian.xunlei.com", 151 | "vod3499-aliyun04-vip-lixian.xunlei.com", 152 | "vod3500-aliyun04-vip-lixian.xunlei.com", 153 | "vod3501-aliyun04-vip-lixian.xunlei.com", 154 | "vod3522-aliyun04-vip-lixian.xunlei.com", 155 | "vod3523-aliyun04-vip-lixian.xunlei.com", 156 | "vod3533-aliyun04-vip-lixian.xunlei.com", 157 | "vod3534-aliyun04-vip-lixian.xunlei.com", 158 | "vod3535-aliyun04-vip-lixian.xunlei.com", 159 | "vod3536-aliyun04-vip-lixian.xunlei.com", 160 | "vod3549-aliyun04-vip-lixian.xunlei.com", 161 | "vod3550-aliyun04-vip-lixian.xunlei.com", 162 | "vod3551-aliyun04-vip-lixian.xunlei.com", 163 | "vod3552-aliyun04-vip-lixian.xunlei.com", 164 | "vod3553-aliyun04-vip-lixian.xunlei.com", 165 | "vod3554-aliyun04-vip-lixian.xunlei.com", 166 | "vod3555-aliyun04-vip-lixian.xunlei.com", 167 | "vod0551.aliyun06.vip.lixian.xunlei.com", 168 | "vod0552.aliyun06.vip.lixian.xunlei.com", 169 | "vod0553.aliyun06.vip.lixian.xunlei.com", 170 | "vod0554.aliyun06.vip.lixian.xunlei.com", 171 | "vod0555.aliyun06.vip.lixian.xunlei.com", 172 | "vod0556.aliyun06.vip.lixian.xunlei.com", 173 | "vod0686.aliyun08.vip.lixian.xunlei.com", 174 | "vod0687.aliyun08.vip.lixian.xunlei.com", 175 | "vod0688.aliyun08.vip.lixian.xunlei.com", 176 | "vod0689.aliyun08.vip.lixian.xunlei.com", 177 | "vod0724.aliyun08.vip.lixian.xunlei.com", 178 | "vod0725.aliyun08.vip.lixian.xunlei.com", 179 | "vod0726.aliyun08.vip.lixian.xunlei.com", 180 | "vod0727.aliyun08.vip.lixian.xunlei.com", 181 | "vod0728.aliyun08.vip.lixian.xunlei.com", 182 | "vod0759.aliyun04.vip.lixian.xunlei.com", 183 | "vod0760.aliyun04.vip.lixian.xunlei.com", 184 | "vod0769.aliyun04.vip.lixian.xunlei.com", 185 | "vod0770.aliyun04.vip.lixian.xunlei.com", 186 | "vod0771.aliyun04.vip.lixian.xunlei.com", 187 | "vod0772.aliyun04.vip.lixian.xunlei.com", 188 | "vod0773.aliyun04.vip.lixian.xunlei.com", 189 | "vod0774.aliyun04.vip.lixian.xunlei.com", 190 | "vod0775.aliyun04.vip.lixian.xunlei.com", 191 | "vod0776.aliyun04.vip.lixian.xunlei.com", 192 | "vod0777.aliyun04.vip.lixian.xunlei.com", 193 | "vod0778.aliyun04.vip.lixian.xunlei.com", 194 | "vod0779.aliyun04.vip.lixian.xunlei.com", 195 | "vod0780.aliyun04.vip.lixian.xunlei.com", 196 | "vod0781.aliyun04.vip.lixian.xunlei.com", 197 | "vod3522.aliyun04.vip.lixian.xunlei.com", 198 | "vod3523.aliyun04.vip.lixian.xunlei.com", 199 | "vod3533.aliyun04.vip.lixian.xunlei.com", 200 | "vod3535.aliyun04.vip.lixian.xunlei.com", 201 | "vod3550.aliyun04.vip.lixian.xunlei.com", 202 | "vod3551.aliyun04.vip.lixian.xunlei.com", 203 | "vod3552.aliyun04.vip.lixian.xunlei.com", 204 | "vod3553.aliyun04.vip.lixian.xunlei.com", 205 | "vod3554.aliyun04.vip.lixian.xunlei.com", 206 | "vod3555.aliyun04.vip.lixian.xunlei.com" 207 | ], 208 | "num": "865746", 209 | "license": "AGPL3", 210 | "version": "6.2.3", 211 | "footer": "
感谢您使用本脚本,给我们一个Star吧~
" 212 | } -------------------------------------------------------------------------------- /config/yidong.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": 200, 3 | "tips": "这是一个油小猴服务器配置的备份文件,只在 (改)网盘直连下载助手 这个脚本无法访问油小猴的服务器时自动调用", 4 | "pcs": { 5 | "0": "https://yun.139.com/orchestration/personalCloud/uploadAndDownload/v1.0/downloadRequest", 6 | "1": "https://caiyun.139.com/stapi/outlink/content/download" 7 | }, 8 | "img": "https://pic.rmb.bdstatic.com/bjh/8b9e14345b3cdf96aedac2f3971adcb02681.png", 9 | "btn": { 10 | "home": ".top_button", 11 | "share": ".top-btns" 12 | }, 13 | "d": "https://d.youxiaohou.com", 14 | "name": "网盘直链下载助手", 15 | "init": { 16 | "0": "请输入初始化暗号", 17 | "1": "请输入暗号点亮按钮,扫二维码免费获取", 18 | "2": "暗号正确!【下载助手】点亮成功!", 19 | "3": "暗号不正确!", 20 | "4": "试试用微信扫码回复👉暗号👈来点亮按钮吧!", 21 | "5": "请先安装网盘万能助手,安装后请刷新本页!!!" 22 | }, 23 | "api": { 24 | "0": "API下载(适用于 IDMNDM 以及浏览器自带下载)", 25 | "1": "点击链接直接下载,例如:IDM,若未唤起IDM,请 点击这里 配置文件类型。" 26 | }, 27 | "aria": { 28 | "0": "Aria下载(适用于 XDownLinux Shell命令行", 29 | "1": "点击链接复制地址到剪切板,粘贴到支持 aria2c 协议的下载器中,例如:XDownLinux Shell。" 30 | }, 31 | "rpc": { 32 | "0": "RPC下载(适用于 MotrixAria2 ToolsAriaNgGUI", 33 | "1": "点击按钮发送链接至本地或远程 RPC 服务,例如:Motrix,RPC 参数含义见此处。" 34 | }, 35 | "curl": { 36 | "0": "cURL下载(适用于 Windows,Linux,MacOS 终端", 37 | "1": "点击链接复制地址到剪切板,粘贴到 Windows,Linux,MacOS 终端,支持断点续传。" 38 | }, 39 | "bc": { 40 | "0": "BC下载(适用于 比特彗星", 41 | "1": "点击链接复制地址到剪切板,粘贴到 比特彗星 下载器中。" 42 | }, 43 | "num": "865746", 44 | "license": "AGPL3", 45 | "version": "6.2.3", 46 | "footer": "
感谢您使用本脚本,给我们一个Star吧~
" 47 | } -------------------------------------------------------------------------------- /default.min.css: -------------------------------------------------------------------------------- 1 | .swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#6459dd transparent #6459dd transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#dd3333;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#6459dd;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#6459dd}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#6459dd}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.leave-russia-now-and-apply-your-skills-to-the-world{display:flex;position:fixed;z-index:1939;top:0;right:0;bottom:0;left:0;flex-direction:column;align-items:center;justify-content:center;padding:25px 0 20px;background:#20232a;color:#fff;text-align:center}.leave-russia-now-and-apply-your-skills-to-the-world div{max-width:560px;margin:10px;line-height:146%}.leave-russia-now-and-apply-your-skills-to-the-world iframe{max-width:100%;max-height:55.5555555556vmin;margin:16px auto}.leave-russia-now-and-apply-your-skills-to-the-world strong{border-bottom:2px dashed #fff}.leave-russia-now-and-apply-your-skills-to-the-world button{display:flex;position:fixed;z-index:1940;top:0;right:0;align-items:center;justify-content:center;width:48px;height:48px;margin-right:10px;margin-bottom:-10px;border:none;background:0 0;color:#aaa;font-size:48px;font-weight:700;cursor:pointer}.leave-russia-now-and-apply-your-skills-to-the-world button:hover{color:#fff}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto} -------------------------------------------------------------------------------- /(改)百度网盘会员青春版.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name (改)百度网盘会员青春版 3 | // @author Hmjz100、Gwen 4 | // @namespace github.com/hmjz100 5 | // @version 1.2.6.2 6 | // @description 《也许同类型中最好用?》系列、LinkSwift 官方扩展 - 显示百度网盘身份信息为会员,支持使用视频倍速、生成字幕、下载AI字幕、关闭AI聊天、修改头像、修改用户名等功能,自定义程度超高!需要修改头部代码来配置显示内容(非常简单!) 7 | // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA1bSURBVHgB7VoJcFXVGf5PgkISkhcIL2GRzAMrKBYFtCjEDjyjw4DRGrcEp0pSTShuvIB1EMEkMq2jtRiLLGoliYAQrICJyAygOJWkILZBR61IS56CAgkZHmRhaXJPz7689wJZO9NOfrjJXc6993z/8v3/f24AeqVXeqVX/ocEQScF1xTHA/SZChAR36EbHWO/tdXYb2tsq76mx/jR+OyPoRPSBzoh+Pu3Xz7w5Xe+I4dqoan5HNEa1RvW1+kuOYUQOYmB/iTnsNAuEvv8Nx+P1X1Y7Jj7dAC5A/FhGNyDXID/XuyHFkhHE7P3QwekwxamYMvX7/aVl1VyJPKnfBIOGg9YKMQWh86e3ORIsMCBs9/ANcWwIj5WX+M6cLtdUPjUvYHE2BgvSsltN+gI6IDgw+vzd1bs81UwsABg/pSzESAvBFbqRFrRBksBOmI/CKjcyCOP152CxS9sjG8437IZVxe3O6zaDZhY9s7Dh44XlL35kTKn4cTc6+RDlS8jBR4UGGwA1S7NroGtAMd4h7K4CA+6UdDLVm/zwL/xZuhOwISgPHXHThYvf36TOMGnISKX+ibRAeLGRPwyUta3X8FcVECl4xzLVbENnoIWY8hvanesgAM9h/Ge6n/C21sqp+I9xS9DO+SigCnY5jPOrqXPlsWfOB6gwCyrUUzqCId9ggCgQUqgkrDpbwdDqOuCYVmuX6SfhZhW6bV171XCF99858N//dMs6CpgiLxkS8mybZ662lMcLNZxKchYWFoFcBBcaTnlGMzKEoxjqMUEalk+6JokSsXk5HjJq5vhaG2gCFe+Pg46C5gycsWGqmur9x60qEdiMs+Z5CTD2cHCBSUI7oZBjIuhVZGUZmRQ43XqdvgDles7xjMaSHpc8NI78acbzm/Gu9omsTYBM0Yu3+cr31AZgk5nIK1zrOzAB4QwMW6DccUNPE45CKkYMEhPWlyPkTFONsQtfrT+FKx6Z5cH+rRs7hBgXLOGMPKxgrLVHxknVZrAEiCzKoqwSMp0OQdwG3FpTBaCiYvfz3K0SNIavH2/2nc0uW2v+hJKy6um4k/eyA+HDYWCLfbU1jbvWppf5qkncRtWIRAax/oamCwK0kqjr7kCrkuZAFdeeyXERPVlZSWmpSXZmk43gv9fh6G4tBwam87oZyADGDYITFjUMSo0B4zqjMjSeRkwbnRyFprycGmbgCnYJsLIS+aVKrDBgNpQALUxEqbXJENOR/WPghzfL2HCZMIlkaSSjYgEaGnhdbTcxPHGsu2w4d0dBptjAdqwqiBOFe9idqRY4eWnMEh/otTXFj4QGDbIPR55s/1yrrZLR15S/H5ZlaeeJHQdqLqgCBEkfyEkig8FVrrr00sehQk3jLXUo3expm4i0TH9wrg+tOnKsljn/yRYvp0mJLZ41XuExE7vMklMAaYkVb6haurOis+4lWRxgRAKmqYgJTLCMctBEJrWOTU9YxokjxgGoYoK9Zna2pNQsW23XU1Z4DUry3jVOV2PMfI2fHukDpa9+7EHWs8pEmPdEv5+XVb1ngMFFZSRZeODkVEkcxsq1JykkBVj6pJ25597r7O0VHe8HkpXlrF4dcSssEhJjY3N0EDiV8a8ZGExd8SPTWBynOYJ1XQY89i65yv4yTD3VLzjNR+6dXZRHzHLuaxGBlAuhpBNSnRetHg0CcvBWGnDSjtEiGXRoMSBwpp8fMmKMvi0qpoTPXmBsJIAhNX7FPnw5yL5HvpmR/SKsoRV97DU5mjwgsiovPF+JUyfeHU+2eWAD/vrxmmSskoIDpzNT2QhjBR5cKLCFlj2QjIyKibKNC7bCFjrHuUsQhzBetK6INiYTgJrMuR+p/gCWUwuTYKV5Uk8nzkL1QcPx+NtKz0RWkdiblZ4IZtjhHo1U2r3VbEswDQRF7UFwZhrRokpI5WHZfpSHCCeF5KfhSLAcGtZsEjXlvHN7xcbtTp5H2VtKszCCe44P2FIT3PT2eA52voglpNWUHkSQMcOnyibSY3/R6gjROQe4lYPevSph2Drpp3Q2NAIvP3h/c9xEtuHan4gMdwMDlZRBJLtzSkIYExrDqhSSDUV3PpGnIsbE12xfjR9jp8BJmCLbs+cXETjGCsf44gUGQkXUw9EYMUJBtXPKh8pfXMLPLkoR51JHJwA2Y9k2nnY2N/54aew9s870LG6k6IOF7ndsKTIgMhR6YySJ9YVGp2DOmaXIXfGZBg+yMUKkEj6o7Bo0963Vj0+jlj4yppvj1rmRRKsyYACsNY26BworEynduSHWvbCq0mVBRERfGNh4hj5y1G5ZeTwJJh03VVQ9dnXtBlAwalJAhdpEaylIAjN3XRgpncCPHbHlP1o+q9n0jO68Gg9n535q9T9Kam6SJAuZdK8GadCiUiPk2TGXJ/WPrhs3VZ4dekaqCVuq54qZ2WFDD9OSnBB/tyZwlIybLCKSxWnYHAHMo7FOPo/7cafwvy7U/fDmUu9YJlRvpcuvUb0rX5p8dueA18eDqlPzYW34DLPtLD6jWwGnXjTePCMHA5JJF3R+IVWh9XVI5MHE6Bx3L1buHsvX7MV3t2xl81QLwtpwIAMa5qkSfbpEtMVl7lhxeP3+V1R/bw0dsMC5qDXk3q6adfvF5d5vq85btexAKGbBRB09aNY1NEuj0Vvq0Gwa9HR/eDFwjlw+WWJAnALfP7VIfC9UBLktpxJ1KIB1op1SGslVihgCPGStQse9Mf162uBtV1aamDETH9MVIz3N89l+BPIUmgIWC4Qtr/FOgQAFNGhEAVhmTN58dHQfBbWbNxuaJ27tnRdXToi5GCtVEmUDvUWXorAELJmvfyJ+8KCDQtYgY6O8T5ZmOlPSHSpAoCTFUL4Qr0piAYejKbdHEutIUC0Oo567mmat636lVuUL9livVoir5jHopobMtAFK5/ICAwf6AoLtk3AEnRSUnz6gucyAgPdcWCTlaPBOI61GqHcTDK5MI8u+KVj8onKFY5p3p9ps5HzR+sDjMZw0PoVB6qtLs8OIRywYm4GaQf7twmW4YKLCK5ZN+5EXaD6aV8xac7Pqlc44chKgATDtaNjomHE5ZfZXiIZXfhmyvVj4K4ZN/H4pcTltMLvXtsEH+yutsEaFuV1M39XLOGAtQtnwdABrnQ0bfaWC+G5KGAO+q0s/6G64iWL1tMVCU4cqqC3QYulGXZ846Rr4Zlnc3njHxnJNxpvBhtbBYgAfLS2Hu7NW8rerTMFlks+SLI/5ajY6L6wypcBo4YnZaFbZpdeDEu7FuLRiAdLPB533vwF6crNQsEKyxs98h2/mALhet8QPauyCMPREwF44rerQaxmYpbMBWi2Dm0nUph398141FB3YXvAthswm+LlDxaNGZNc+MhjM1iq4USENDPzis9o0jF88cVBXWBI4FI7wUJOfbLva8he8Ef48cRJWYtQgEjHr0ZLc+28e1Ih7YYxz6FpcwqgvTigg4IPril4v2Jf/uriD0PzLyjXUwXKrbdOIjX0IMARcoWTFxzM/SlLk/0GwtDbPtrLFgBkuxfSCHALix8Ycm5Lgdzpkwo7Albe3WHBB0oLNmyszF+/4ROTRJgtRX7VpCbZNEzFpHI3YMvwjghQWkxgxFtxo4kiYCdDbtpNr6Bbcn3QQenUB3E0elYB/scaD5nZrHUbdwMvmRCyqi4FDIU5Z3qEzQHAj3l7iHSzL02Tk0Ysm5ZSglI7DrbTgBnoqx7Iwl+VuBoaz9255YN9YWprfexYYPRHcEeuURjhwMcwlCD/SkB+wKOdT+70yZ8TsNnQSenQB/EQOY+zc2bdvD91ylhFVA62P4vYQLBRfWGrsOCCwizv8Ctpk8bC/AzS+Vxy6VTognQJMBqfHSAfo73zHpnhHzsmWRYVGIzqSC6WYzBqbMOtrW9GogqTXymlX9DOJ+8ebw1EOOlkUT0AXZCuWRg06EV5d/pHehJZ3MmvfmIEr4ixKC8BrOLfrKDMhQbRVrPOZ0Vepj8uNu5m5G27ZGyvdBkwFQLaHxcd5X1xYaY/if6FjayMQH28touUoIZdub3RPNBn0Pp4uS/D74q91Gt+LumKdAtgKgx0fwGaNBtg97F6RcRoMMQinByHjacxsCvnzwwMT4rzdodlpXQbYCoU9LCEAel/eGZmIHFQrOW2PA/rY/3FgF9E4psOPR5Kwc7LJJ2Pq1vBiml0v+BPi8cdqw9UZy1cTaqnsxo06LUvDdaIW+DNwNpFWaTzGZCObnl4C3SzdKuFpdC/jhucEJe97Jn7ob/6IohDPpDrdVE6EdH5zM+EoQP7Z/cEWP6eHhI08aGSK5Ldvufn3gXB1ZX+mM7pGovvLnn3pcKoYYmFKHVOCfSQ9BhgKmjiw69MGJ1cuDgnTRFVEDuxnEs6H5SX4YXbJ19NwM4ugB6UHgVMBU16qOA2AiTv/lSWdhDiIM0/jMm5PQVmpl5fiLw9C5ZKp2vpjghKySnAlW9QkPnrt39GmvxTDChdmhFgX0He3AL4L0iPsHRbgv/yehbpifP/9s13nliyAD94QFyAFCzEsjlF8P8s9G8uyOaBXumVXumVXrmw/AdT224dpRDt7wAAAABJRU5ErkJggg== 8 | // @license MIT 9 | // @match *://pan.baidu.com/* 10 | // @match *://yun.baidu.com/* 11 | // @grant GM_addStyle 12 | // @grant GM_openInTab 13 | // @grant unsafeWindow 14 | // @run-at document-start 15 | // @require https://unpkg.com/jquery@3.6.0/dist/jquery.min.js 16 | // ==/UserScript== 17 | 18 | (function () { 19 | 'use strict'; 20 | 21 | /* 22 | unsafeWindow 检测 23 | 代码为自创 24 | */ 25 | if (typeof unsafeWindow === 'undefined') { 26 | window.unsafeWindow = window; 27 | } 28 | 29 | /* 30 | 防止代码因其他原因被执行多次 31 | 代码出自 “Via 轻插件”,作者谷花泰 32 | */ 33 | const key = encodeURIComponent('百度网盘会员青春版:主代码'); 34 | if (window[key]) return; 35 | window[key] = true; 36 | 37 | let mount = idontknow("LinkSwiftBaiduYouthMember") 38 | 39 | var user = { 40 | // 以下设置项中,常规项目(就是以//开头注释的项目)除非特殊说明,否则一般 0 为关闭,1 为开启 41 | vip: 1, // 开启会员修改(总开关) 42 | svip: 1, // 显示为超级会员,建议 1 43 | previous: 0, // 显示为会员过期,建议 0,变为仅修改历史最高的会员类型、等级 44 | 45 | // 以下是自定义项目(以/*开头注释的项目),修改也非常简单 46 | /* 47 | 自定义用户名与头像,留空则使用已登录账号数据 48 | */ 49 | name: "百湿不得其解", 50 | photo: "https://bkimg.cdn.bcebos.com/pic/cdbf6c81800a19d8bc3e5cfd95ab958ba61ea9d3e8b3", 51 | /* 52 | 会员等级与成长值,可留空为"" 53 | 普通会员等级最高为 10 (以前是 8) 54 | 超级会员等级最高为 10 55 | 超级会员 1~10 的成长值分别为 0 1000 3000 7000 15000 27000 43000 56000 88000 152000,后两个值为猜测 56 | */ 57 | level: 10, 58 | point: 152000, 59 | /* 60 | 自定义会员ID,留空则使用已登录账号数据 61 | 据网上观察应为六位数,现在亦可输入文本 62 | */ 63 | vip_id: "000001 - What's your problem?", 64 | /* 65 | 会员过期时间 格式为Unix时间戳,可留空为"" 66 | 1562118175 - 2019-07-03 09:42:55 (宏彦获水时) 67 | 2147483648 - 2038-01-19 11:14:08 (2038问题时) 68 | 253402185600 - 9999-12-31 00:00:00 (终极时) 69 | */ 70 | endtime: 253402185600, 71 | 72 | // 以下的常规项目(就是以//开头注释的项目)均为独立功能,不受总开关控制 73 | aiChat: 0, // 显示云一朵 AI 聊天的相关功能,建议 0,相关功能大多数都是在右上角的 AI 聊天的右侧边栏入口中 74 | aiCollect: 0, // 显示百度网盘 AI 看的相关入口,建议 0,作用于左侧边栏 75 | versionSwitchButton: 1, // 显示百度网盘的新旧版界面切换按钮,建议 1 76 | feedbackButton: 0, // 显示百度网盘的反馈录屏工具的相关入口,建议 0 77 | pfileView: 1, // 在线打开文档时,使用新版在线文档查看器,而不是旧版的在线 WPS 文档查看器,建议 1 78 | analytics: 0, // 允许百度网盘网页分析浏览信息,建议 0,分析原理是以 new Image 或 document.createElement("img") 的形式让浏览器访问特殊的图片来给服务器传递信息 79 | adTime: 0.0001, // 视频播放时的广告(等待)时间,建议 0.0001 80 | debug: 0, // 显示本脚本的调试信息到 JavaScript 控制台中,建议 0,另外,1 显示所有,2 仅显示 Hook 修改参数,3 仅显示禁用网页分析 81 | 82 | // 以下是关键参数,不能修改 83 | adToken: null, 84 | } 85 | 86 | var originalOpen = XMLHttpRequest.prototype.open; 87 | unsafeWindow.XMLHttpRequest.prototype.open = function (method, url) { 88 | url = new URL(url, window.location.origin).href 89 | if (url.includes('/api/loginStatus')) { 90 | this.addEventListener('readystatechange', function () { 91 | if (this.readyState == 4) { 92 | let res, oriRes 93 | try { 94 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 95 | } catch (e) { 96 | res = this.response, oriRes = this.response 97 | } 98 | res?.login_info?.vip_type && user.vip === 1 && user.previous === 0 ? res.login_info.vip_type = `${user.svip === 1 ? 2 : 1}1` : "" 99 | res?.login_info?.vip_identity && user.vip === 1 && user.previous === 0 ? res.login_info.vip_identity = Number(`${user.svip === 1 ? 2 : 1}1`) : "" 100 | res?.login_info?.vip_level && user.vip === 1 && user.previous === 0 ? res.login_info.vip_level = user.level : "" 101 | res?.login_info?.vip_point && user.vip === 1 && user.previous === 0 ? res.login_info.vip_point = user.point : "" 102 | res.login_info["photo_url"] && user.photo ? res.login_info["photo_url"] = user.photo : "" 103 | res?.login_info?.username && user.name ? res.login_info.username = user.name : "" 104 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 105 | Object.defineProperty(this, "responseText", { 106 | writable: true, 107 | }); 108 | this.responseText = JSON.stringify(res) 109 | Object.defineProperty(this, "responseText", { 110 | writable: false, 111 | }); 112 | } 113 | }) 114 | originalOpen.apply(this, arguments); 115 | } else if (url.includes('/user/info')) { 116 | user.vip === 1 && user.previous === 0 ? this.addEventListener('readystatechange', function () { 117 | if (this.readyState == 4) { 118 | let res, oriRes 119 | try { 120 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 121 | } catch (e) { 122 | res = this.response, oriRes = this.response 123 | } 124 | res.user_info.is_vip ? res.user_info.is_vip = user.vip : "" 125 | res.user_info.is_svip ? res.user_info.is_svip = user.svip : "" 126 | res.user_info.is_plus_buy ? res.user_info.is_plus_buy = user.svip : "" 127 | res.user_info.plus_buy_hit ? res.user_info.plus_buy_hit = user.svip : "" 128 | res.user_info.is_vip_v2 && user.level && user.level >= 2 ? res.user_info.is_vip_v2 = user.vip : ""; 129 | res.user_info.is_vip_v2_new && user.level && user.level >= 2 ? res.user_info.is_vip_v2_new = user.vip : ""; 130 | res.user_info.username && user.name ? res.user_info.username = user.name : ""; 131 | res.user_info.photo && user.photo ? res.user_info.photo = user.photo : ""; 132 | res.user_info.vipsid && user.vip_id ? res.user_info.vipsid = user.vip_id : ""; 133 | res.user_info.phone ? res.user_info.phone = "01095099" : ""; 134 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 135 | Object.defineProperty(this, "responseText", { 136 | writable: true, 137 | }); 138 | Object.defineProperty(this, "response", { 139 | writable: true, 140 | }); 141 | this.response = JSON.stringify(res) 142 | this.responseText = JSON.stringify(res) 143 | } 144 | }) : "" 145 | originalOpen.apply(this, arguments); 146 | } else if (url.includes('/membership/user') && !url.includes('method=rights')) { 147 | this.addEventListener('readystatechange', function () { 148 | if (this.readyState == 4) { 149 | let res, oriRes 150 | try { 151 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 152 | } catch (e) { 153 | res = this.response, oriRes = this.response 154 | } 155 | // 决定网页显示会员标识 156 | user.vip === 1 && user.previous === 0 ? res.current_product = { 157 | "cluster": "vip", 158 | "detail_cluster": user.svip === 1 ? "svip" : "vip", // 决定修改会员标签 159 | "product_type": user.svip === 1 ? `vip2_1m_auto` : `vip_1m_auto`, 160 | "product_id": "12187135090581539740" 161 | } : "" 162 | user.vip === 1 && user.previous === 0 ? res.current_product_v2 = { 163 | "cluster": "vip", 164 | "detail_cluster": user.svip === 1 ? "svip" : "vip", // 决定修改会员标签 165 | "product_type": user.svip === 1 ? `vip2_1m_auto` : `vip_1m_auto`, 166 | "product_id": "12187135090581539740" 167 | } : "" 168 | 169 | // 决定网页显示会员等级 170 | user.vip === 1 ? res.level_info = { 171 | ...res.level_info, 172 | "current_value": user.point, // 决定所有会员标签 173 | "current_level": user.level, // 决定所有会员标签 174 | "history_value": user.point, 175 | "history_level": user.level, 176 | "v10_id": user.vip_id ? user.vip_id : "", 177 | "last_manual_collection_time": 0 178 | } : "" 179 | 180 | if (user.vip === 1 && res.privilege_list) { 181 | [...res.privilege_list].forEach(item => { 182 | item.free_count = 100 183 | }) 184 | } 185 | 186 | // 决定网页展示会员剩余时间 187 | user.vip === 1 && user.previous === 0 && user.svip === 0 ? res.reminder = { 188 | ...res.reminder, 189 | "vip": { 190 | "leftseconds": ((user.endtime ? user.endtime : 2147483648) * 1000 - Date.now()) / 1000, 191 | "nextState": "normal" 192 | } 193 | } : user.svip === 1 && user.previous === 0 ? res.reminder = { 194 | ...res.reminder, 195 | "svip": { 196 | "leftseconds": ((user.endtime ? user.endtime : 2147483648) * 1000 - Date.now()) / 1000, 197 | "nextState": "normal" 198 | } 199 | } : "" 200 | 201 | // 其它(已有套餐、之前套餐) 202 | user.vip === 1 && user.previous === 0 && res.product_infos ? res.product_infos = [{ 203 | "product_id": "12187135090581539740", 204 | "buy_time": "946656000", 205 | "start_time": 946656000, 206 | "end_time": user.endtime ? user.endtime : 2147483648, 207 | "cluster": "vip", 208 | "detail_cluster": user.svip === 1 ? "svip" : "vip", 209 | "product_name": user.svip === 1 ? "svip2_nd" : "vip1_nd", 210 | "cur_svip_type": "year", 211 | "function_num": 8, 212 | "status": 0, 213 | "buy_description": "超级SVIP套餐(永久)", 214 | "product_description": "自打百度一诞生我就买了!" 215 | }, ...res.product_infos] : "" 216 | user.vip === 1 ? res.previous_product = { 217 | "cluster": "vip", 218 | "detail_cluster": user.svip === 1 ? "svip" : "vip", // 决定之前会员标签 219 | "product_type": user.svip === 1 ? `vip2_1m_auto` : `vip_1m_auto`, 220 | "expired_time": 946656000 221 | } : "" 222 | user.vip === 1 ? res.previous_product_v2 = { 223 | "cluster": "vip", 224 | "detail_cluster": user.svip === 1 ? "svip" : "vip", // 决定之前会员标签 225 | "product_type": user.svip === 1 ? `vip2_1m_auto` : `vip_1m_auto`, 226 | "expired_time": 946656000 227 | } : "" 228 | 229 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 230 | 231 | Object.defineProperty(this, "response", { 232 | writable: true, 233 | }); 234 | Object.defineProperty(this, "responseText", { 235 | writable: true, 236 | }); 237 | this.response = JSON.stringify(res) 238 | this.responseText = JSON.stringify(res) 239 | } 240 | }) 241 | originalOpen.apply(this, arguments); 242 | } else if (url.includes('/api/streaming') && !url.includes('M3U8_SUBTITLE_SRT')) { //获取视频m3u8接口 243 | let pureURL = url.replace(/vip=\d+/, 'vip=0').replace(/_1080&/, '_720&') 244 | if (user.adToken) { 245 | pureURL += ('&adToken=' + encodeURIComponent(user.adToken)) 246 | this.adToken = user.adToken 247 | user.adToken = null 248 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n修改地址:", pureURL) 249 | originalOpen.call(this, method, pureURL, false); 250 | } else { 251 | this.addEventListener('readystatechange', function () { 252 | if (this.readyState == 4 && this.responseText[0] == '{') { 253 | let res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText), log 254 | user.adToken = res.adToken 255 | 256 | let m3uRequest = new XMLHttpRequest(); 257 | m3uRequest.open(method, pureURL, false); 258 | m3uRequest.send(); 259 | let m3uText = m3uRequest.responseText 260 | 261 | Object.defineProperty(this, "status", { 262 | writable: true, 263 | }); 264 | this.status = m3uRequest.status; 265 | 266 | if (m3uText.startsWith('#EXTM3U')) { 267 | log = "M3U8预览\n" + m3uText.split('\n').slice(0, 5).join('\n') 268 | res = m3uText 269 | } else { 270 | res = JSON.parse(m3uText) 271 | res.errno = 133 272 | user.adTime ? (res.ltime = user.adTime) : (res.ltime = 0.0001) 273 | user.adTime ? (res.adTime = user.adTime) : (res.adTime = 0.0001) 274 | } 275 | 276 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", log || res) 277 | 278 | Object.defineProperty(this, "responseText", { 279 | writable: true, 280 | }); 281 | this.responseText = res; 282 | } 283 | }) 284 | originalOpen.call(this, method, pureURL); 285 | } 286 | } else if (url.includes('/api/streaming') && url.includes('M3U8_SUBTITLE_SRT')) { 287 | this.addEventListener('readystatechange', function () { 288 | if (this.readyState == 4 && this.responseText.includes('#EXT-X-MEDIA:TYPE=SUBTITLES')) { 289 | let res = this.response; 290 | console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", res); 291 | 292 | // 使用正则表达式提取所有字幕信息 293 | var subsMatch = [...res.matchAll(/#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="([^"]+)",DEFAULT=[^,]+,AUTOSELECT=[^,]+,LANGUAGE="([^"]+)",VIDEO-LAN=[^,]+,AI-SUB=\s*([^,\s]+)\s*(https?:\/\/[^\s]+)/g)]; 294 | 295 | var subsHTML = $(`

[独家功能] AI字幕均为逐句分割而非整段分割

`); // 用于存储所有按钮的HTML 296 | 297 | // 遍历所有字幕项,生成对应的下载按钮 298 | let index = 1 299 | subsMatch.forEach(subInfo => { 300 | console.log(subInfo) 301 | var subName = subInfo[1]; // 字幕名称 302 | var language = subInfo[2]; // 字幕语言 303 | var aiSub = subInfo[3] === 'YES' ? 'AI-' : ''; // 是否为AI生成 304 | var subUrl = subInfo[4]; // 字幕下载地址 305 | 306 | let buttons = $(`
307 | 308 | 普通下载 ${aiSub}${subName} 309 |
`) 310 | 311 | subsHTML.append(buttons); 312 | index++; 313 | }); 314 | 315 | waitForKeyElements(`aside.vp-aside div.vp-tabs div.vp-tabs__content`, function (element) { 316 | $(`.${mount}`).remove(); 317 | element.after(subsHTML); 318 | subsHTML.find(".downloadSubtitle.beta").on('click', async function (event) { 319 | event.preventDefault(); 320 | let element = $(this); 321 | let oriHTML = element.html() 322 | let ins = {}; 323 | let progress = {}; 324 | let index = element.data('index'); 325 | 326 | element.prop('disabled', true); 327 | 328 | ins[index] = setInterval(function () { 329 | let prog = +progress[index] || 0; 330 | if (prog === 0) { 331 | element.html(' 正在下载...'); 332 | } else { 333 | element.html(' 已下载 ' + prog + '%'); 334 | } 335 | }, 10); 336 | 337 | try { 338 | let response = await fetch(element.data("url")); 339 | if (!response.ok) throw new Error('网络响应失败'); 340 | 341 | let totalSize = response.headers.get('Content-Length') || 0; 342 | let reader = response.body.getReader(); 343 | let receivedLength = 0; 344 | let chunks = []; 345 | 346 | while (true) { 347 | const { done, value } = await reader.read(); 348 | if (done) break; 349 | chunks.push(value); 350 | receivedLength += value.length; 351 | progress[index] = ((receivedLength / totalSize) * 100).toFixed(1); 352 | } 353 | 354 | const blob = new Blob(chunks); 355 | 356 | clearInterval(ins[index]); 357 | progress[index] = 100; 358 | element.html(' 下载完成,浏览器弹框中'); 359 | 360 | const url = URL.createObjectURL(blob); 361 | const a = document.createElement('a'); 362 | a.href = url; 363 | a.download = element.data("name"); 364 | a.style.display = 'none'; 365 | document.body.appendChild(a); 366 | a.click(); 367 | 368 | setTimeout(() => { 369 | URL.revokeObjectURL(url); 370 | document.body.removeChild(a); 371 | }, 1000); 372 | 373 | setTimeout(function () { 374 | element.html(oriHTML); 375 | $(this).prop('disabled', false); 376 | }.bind(this), 3000); 377 | } catch (error) { 378 | clearInterval(ins[index]); 379 | console.error("下载失败:", error); 380 | element.html(' 下载失败,点击重试?'); 381 | $(this).prop('disabled', false).one('click', async function () { 382 | $(this).trigger('click'); 383 | }); 384 | } 385 | }); 386 | }, true); 387 | } 388 | }); 389 | originalOpen.apply(this, arguments); 390 | } else if (url.includes('/msg/streaming') || url.includes('/share/streaming')) { 391 | this.addEventListener('readystatechange', function () { 392 | if (this.readyState == 4 && this.responseText[0] == '{') { 393 | let res, oriRes 394 | try { 395 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 396 | } catch (e) { 397 | res = this.response, oriRes = this.response 398 | } 399 | user.adTime ? (res.ltime = user.adTime) : (res.ltime = 0.0001) 400 | user.adTime ? (res.adTime = user.adTime) : (res.adTime = 0.0001) 401 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 402 | Object.defineProperty(this, 'responseText', { 403 | writable: true, 404 | }) 405 | this.responseText = JSON.stringify(res) 406 | } 407 | }) 408 | originalOpen.apply(this, arguments); 409 | } else if (url.includes('/api/getsyscfg') && url.includes('huge_upgrade')) { 410 | this.addEventListener('readystatechange', function () { 411 | if (this.readyState == 4) { 412 | let res, oriRes 413 | try { 414 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 415 | } catch (e) { 416 | res = this.response, oriRes = this.response 417 | } 418 | res.huge_upgrade.cfg_list[1].show_features = (user.feedbackButton === 0 ? "0" : "1") 419 | res.huge_upgrade.cfg_list[0].new_nav_show = (user.versionSwitchButton === 0 ? "0" : "1") 420 | res.huge_upgrade.cfg_list[0].new_nav_href = "https://pan.baidu.com/disk/main" 421 | res.huge_upgrade.cfg_list[0].old_nav_show = (user.versionSwitchButton === 0 ? "0" : "1") 422 | res.huge_upgrade.cfg_list[0].old_nav_href = "https://pan.baidu.com/disk/home?stayAtHome=true" 423 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 424 | Object.defineProperty(this, "response", { 425 | writable: true, 426 | }); 427 | Object.defineProperty(this, "responseText", { 428 | writable: true, 429 | }); 430 | this.response = JSON.stringify(res) 431 | this.responseText = JSON.stringify(res) 432 | } 433 | }) 434 | originalOpen.apply(this, arguments); 435 | } else if (url.includes('/api/getsyscfg') && url.includes('netdisk_docchat_config')) { 436 | user.aiChat === 0 ? this.addEventListener('readystatechange', function () { 437 | if (this.readyState == 4) { 438 | let res, oriRes 439 | try { 440 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 441 | } catch (e) { 442 | res = this.response, oriRes = this.response 443 | } 444 | res.netdisk_docchat_config.cfg_list[0].is_chat_show = "0" 445 | res.netdisk_docchat_config.cfg_list[0].is_docview_chat_auto_show = "0" 446 | res.netdisk_docchat_config.cfg_list[0].is_docview_chat_show = "0" 447 | res.netdisk_docchat_config.cfg_list[0].is_home_need_out_sug = "0" 448 | res.netdisk_docchat_config.cfg_list[0].is_main_chat_show = "0" 449 | res.netdisk_docchat_config.cfg_list[0].is_videoview_chat_auto_show = "0" 450 | res.netdisk_docchat_config.cfg_list[0].is_videoview_chat_show = "0" 451 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 452 | Object.defineProperty(this, "response", { 453 | writable: true, 454 | }); 455 | Object.defineProperty(this, "responseText", { 456 | writable: true, 457 | }); 458 | this.response = JSON.stringify(res) 459 | this.responseText = JSON.stringify(res) 460 | } 461 | }) : "" 462 | originalOpen.apply(this, arguments); 463 | } else if (url.includes('/api/getsyscfg') && url.includes('ai_collect')) { 464 | user.aiCollect === 0 ? this.addEventListener('readystatechange', function () { 465 | if (this.readyState == 4) { 466 | let res, oriRes 467 | try { 468 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 469 | } catch (e) { 470 | res = this.response, oriRes = this.response 471 | } 472 | res.ai_collect.cfg_list[0].is_ai_collect_show = "0" 473 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 474 | Object.defineProperty(this, "response", { 475 | writable: true, 476 | }); 477 | Object.defineProperty(this, "responseText", { 478 | writable: true, 479 | }); 480 | this.response = JSON.stringify(res) 481 | this.responseText = JSON.stringify(res) 482 | } 483 | }) : "" 484 | originalOpen.apply(this, arguments); 485 | } else if (url.includes('/api/getsyscfg') && url.includes('netdisk_docview_config')) { 486 | this.addEventListener('readystatechange', function () { 487 | if (this.readyState == 4) { 488 | let res, oriRes 489 | try { 490 | res = JSON.parse(this.responseText), oriRes = JSON.parse(this.responseText) 491 | } catch (e) { 492 | res = this.response, oriRes = this.response 493 | } 494 | res.netdisk_docview_config.cfg_list[0].auto_search_to_ai = (user.aiChat === 0 ? "0" : "1") 495 | res.netdisk_docview_config.cfg_list[0].use_pfile_for_doc = (user.pfileView === 0 ? "0" : "1") 496 | res.netdisk_docview_config.cfg_list[0].use_pfile_for_ppt = (user.pfileView === 0 ? "0" : "1") 497 | res.netdisk_docview_config.cfg_list[0].use_pfile_reader = (user.pfileView === 0 ? "0" : "1") 498 | res.netdisk_docview_config.cfg_list[0].use_wps_reader = (user.pfileView === 0 ? "1" : "0") 499 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook XHR", "\n请求地址:", url, "\n原始回复:", oriRes, "\n修改回复:", res) 500 | Object.defineProperty(this, "response", { 501 | writable: true, 502 | }); 503 | Object.defineProperty(this, "responseText", { 504 | writable: true, 505 | }); 506 | this.response = JSON.stringify(res) 507 | this.responseText = JSON.stringify(res) 508 | } 509 | }) 510 | originalOpen.apply(this, arguments); 511 | } else { 512 | originalOpen.apply(this, arguments); 513 | } 514 | } 515 | var hookedOpen = unsafeWindow.XMLHttpRequest.prototype.open 516 | 517 | GM_addStyle(` 518 | /* 帮助百度网盘修正错误的会员色 */ 519 | dt.level-1 { 520 | background: #fd6d65 !important; 521 | } 522 | dt.level-2 { 523 | background: #f3a723 !important; 524 | } 525 | dt.level-1 i.desc-arrow { 526 | border-bottom: 10px solid #dd6966 !important; 527 | } 528 | dt.level-2 i.desc-arrow { 529 | border-bottom: 10px solid #d29633 !important; 530 | } 531 | 532 | .${mount} { 533 | margin: 15px 0 15px 20px; 534 | display: grid; 535 | grid-gap: 5px; 536 | } 537 | 538 | .${mount} h1 { 539 | font-size: small; 540 | } 541 | 542 | [data-theme="dark"] .${mount} h1 { 543 | color: white; 544 | } 545 | 546 | a.downloadSubtitle, button.downloadSubtitle { 547 | border: none; 548 | border-radius: 5px; 549 | font-size: 12px; 550 | background: #0095ff; 551 | color: #fff; 552 | padding: 5px; 553 | width: fit-content; 554 | white-space: nowrap; 555 | text-decoration:none; 556 | } 557 | a.downloadSubtitle:hover, a.downloadSubtitle:disabled, button.downloadSubtitle:hover, button.downloadSubtitle:disabled { 558 | background: #0095ffD0; 559 | } 560 | `) 561 | 562 | // 禁止分析网页信息 563 | if (user.analytics === 0) unsafeWindow.Image = function () { 564 | const img = new Image(); 565 | return new Proxy(img, { 566 | set(target, prop, value) { 567 | if (prop === 'src' && (value.includes('analytics') || value.includes('ztbox'))) { 568 | let url = new URL(value, location.origin); 569 | if (user.debug === 1 || user.debug === 3) console.warn("【(改)百度网盘会员青春版】unAnalytics", '\n类型:new Image\n禁止网页分析信息:', url.href); 570 | return true; // 阻止设置 571 | } 572 | target[prop] = value; // 设置其他属性 573 | return true; 574 | }, 575 | get(target, prop) { 576 | return target[prop]; // 获取属性值 577 | } 578 | }); 579 | }; 580 | const originalCreateElement = document.createElement; 581 | if (user.analytics === 0) unsafeWindow.document.createElement = function (tagName) { 582 | const element = originalCreateElement.call(unsafeWindow.document, tagName); 583 | if (tagName.toLowerCase() === 'img') { 584 | Object.defineProperty(element, 'src', { 585 | set(value) { 586 | if (value.includes('analytics') || value.includes('ztbox')) { 587 | let url = new URL(value, location.origin); 588 | if (user.debug === 1 || user.debug === 3) console.warn("【(改)百度网盘会员青春版】unAnalytics", '\n类型:document.createElement("img")\n禁止网页分析信息:', url.href) 589 | return true; 590 | } else { 591 | element.setAttribute('src', value) 592 | } 593 | }, 594 | get() { 595 | return element.getAttribute('src'); 596 | } 597 | }); 598 | } 599 | return element; 600 | }; 601 | 602 | waitForKeyElements(`.vp-video__control-bar--playback-rates button, vp-video__control-bar--video-subtitles-select-item`, function (element) { 603 | element.on('click', function () { 604 | XMLHttpRequest.prototype.open = originalOpen; 605 | setTimeout(function () { 606 | XMLHttpRequest.prototype.open = hookedOpen; 607 | }, 20) 608 | }) 609 | }) 610 | 611 | let localsTimer = setInterval(() => { 612 | if (!unsafeWindow.locals) return 613 | clearInterval(localsTimer) 614 | let locals = unsafeWindow.locals 615 | let originalSet = locals.set 616 | locals.set = function (...args) { 617 | if (typeof args[1] == 'number' || typeof args[1] == 'string') { 618 | let oriarg = args[1] 619 | if (args[0].includes('is_vip')) { 620 | args[1] = user.vip === 1 && user.previous === 0 ? 1 : 0 621 | } else if (args[0].includes('is_svip')) { 622 | args[1] = user.svip === 1 && user.previous === 0 ? 1 : 0; 623 | } else if (args[0] === 'vip_level') { 624 | user.level ? args[1] = user.level : ""; 625 | } else if (args[0] === 'v10_id') { 626 | user.vip_id ? args[1] = user.vip_id : ""; 627 | } else if (args[0] === 'username') { 628 | user.name ? args[1] = user.name : ""; 629 | } else if (args[0] === 'photo') { 630 | user.photo ? args[1] = user.photo : ""; 631 | } 632 | if (oriarg !== args[1]) { 633 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook Locals", "\n原始数据:", args[0], "-", oriarg, "\n修改数据:", args[0], "-", args[1]); 634 | } 635 | } 636 | originalSet.apply(this, args); 637 | } 638 | if (/\/s\/.*?\?fid=.*?/.test(location.href)) unsafeWindow.locals.self = 1 639 | if (locals.userInfo) { 640 | user.vip === 1 && user.previous === 0 ? locals.userInfo.vip_identity = Number(`${user.svip === 1 ? 2 : 1}1`) : "" 641 | user.name ? locals.userInfo.username = user.name : "" 642 | user.photo ? locals.userInfo["photo_url"] = user.photo : "" 643 | user.level ? locals.userInfo.vip_level = user.level : "" 644 | user.vip_id ? locals.userInfo.svip10_id = user.vip_id : "" 645 | } else if (locals.mset && user.vip === 1 && user.previous === 0) { 646 | locals.mset({ 647 | 'is_vip': user.vip === 1 && user.previous === 0 ? 1 : 0, 648 | 'is_svip': user.svip === 1 && user.previous === 0 ? 1 : 0, 649 | 'vip_level': user.level ? user.level : "", 650 | 'svip10_id': user.vip_id ? user.vip_id : "", 651 | 'show_vip_ad': 0 652 | }) 653 | } else { 654 | user.level ? locals.vip_level = user.level : "" 655 | locals.is_vip = user.vip === 1 && user.previous === 0 ? 1 : 0 656 | locals.is_svip = user.svip === 1 && user.previous === 0 ? 1 : 0 657 | user.vip === 1 && user.previous === 0 ? locals.show_vip_ad = 0 : "" 658 | user.photo ? locals.photo = user.photo : "" 659 | user.name ? locals.username = user.name : "" 660 | } 661 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook", "\nLocals:", locals) 662 | }, 1) 663 | 664 | let yunDataTimer = setInterval(() => { 665 | if (!unsafeWindow.yunData) return; 666 | clearInterval(yunDataTimer) 667 | let yunData = unsafeWindow.yunData 668 | 669 | let originalSet = yunData.setData; 670 | yunData.setData = function (...args) { 671 | if (typeof args[0] === 'object') { 672 | let oriargs = { ...args[0] } 673 | let newargs = args[0] 674 | if (oriargs.hasOwnProperty('is_vip')) { 675 | newargs.is_vip = user.vip === 1 && user.previous === 0 ? 1 : 0; 676 | } 677 | if (oriargs.hasOwnProperty('is_svip')) { 678 | newargs.is_svip = user.svip === 1 && user.previous === 0 ? 1 : 0; 679 | } 680 | if (oriargs.hasOwnProperty('vip_level')) { 681 | user.level ? newargs.vip_level = user.level : ""; 682 | } 683 | if (oriargs.hasOwnProperty('v10_id')) { 684 | user.vip_id ? newargs.v10_id = user.vip_id : ""; 685 | } 686 | if (oriargs.hasOwnProperty('photo')) { 687 | user.photo ? newargs.photo = user.photo : ""; 688 | } 689 | if (oriargs.hasOwnProperty('username')) { 690 | user.name ? newargs.username = user.name : ""; 691 | } 692 | if (JSON.stringify(oriargs) !== JSON.stringify(newargs)) { 693 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook yunData", "\n原始数据:", oriargs, "\n修改数据:", newargs); 694 | } 695 | } else { 696 | let oriarg = args[1] 697 | if (args[0].includes('is_vip')) { 698 | args[1] = user.vip === 1 && user.previous === 0 ? 1 : 0 699 | } else if (args[0].includes('is_svip')) { 700 | args[1] = user.svip === 1 && user.previous === 0 ? 1 : 0; 701 | } else if (args[0] === 'vip_level') { 702 | user.level ? args[1] = user.level : ""; 703 | } else if (args[0] === 'v10_id') { 704 | user.vip_id ? args[1] = user.vip_id : ""; 705 | } else if (args[0] === 'username') { 706 | user.name ? args[1] = user.name : ""; 707 | } else if (args[0] === 'photo') { 708 | user.photo ? args[1] = user.photo : ""; 709 | } 710 | if (oriarg !== args[1]) { 711 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook yunData", "\n原始数据:", args[0], "-", oriarg, "\n修改数据:", args[0], "-", args[1]); 712 | } 713 | } 714 | originalSet.apply(this, args); 715 | } 716 | user.name ? yunData.username = user.name : "" 717 | user.name ? yunData.MYNAME = user.name : "" 718 | user.photo ? yunData.MYAVATAR = user.photo : "" 719 | user.photo ? yunData.photo = user.photo : "" 720 | user.level ? yunData.vip_level = user.level : "" 721 | yunData.ISVIP = user.vip === 1 && user.previous === 0 ? 1 : 0 722 | yunData.ISSVIP = user.svip === 1 ? 1 : 0 723 | user.vip ? yunData.ISYEARVIP = 1 : "" 724 | yunData.is_vip = user.vip === 1 && user.previous === 0 ? 1 : 0 725 | yunData.is_svip = user.svip === 1 ? 1 : 0 726 | yunData.is_vip_v2 = user.vip === 1 && user.previous === 0 ? 1 : 0 727 | yunData.is_svip_v2_new = user.svip === 1 ? 1 : 0 728 | user.vip ? yunData.show_vip_ad = 0 : "" 729 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook", "\nyunData:", yunData) 730 | }, 1) 731 | 732 | let yunDataRequireTimer = setInterval(() => { 733 | if (!unsafeWindow.require) return; 734 | clearInterval(yunDataRequireTimer) 735 | require.async('pan-center:widget/data/yunData', function (yunData) { 736 | let originalSet = yunData.setData; 737 | yunData.setData = function (...args) { 738 | if (typeof args[0] === 'object') { 739 | let oriargs = { ...args[0] } 740 | let newargs = args[0] 741 | if (oriargs.hasOwnProperty('is_vip')) { 742 | user.vip === 1 && user.previous === 0 ? newargs.is_vip = 1 : newargs.is_vip = 0; 743 | } 744 | if (oriargs.hasOwnProperty('is_svip')) { 745 | user.svip === 1 && user.previous === 0 ? newargs.is_svip = 1 : newargs.is_svip = 0; 746 | } 747 | if (oriargs.hasOwnProperty('is_evip')) { 748 | user.svip === 1 && user.previous === 0 ? newargs.is_evip = 1 : newargs.is_evip = 0; 749 | } 750 | if (oriargs.hasOwnProperty('vip_level')) { 751 | user.level ? newargs.vip_level = user.level : ""; 752 | } 753 | if (oriargs.hasOwnProperty('v10_id')) { 754 | user.vip_id ? newargs.v10_id = user.vip_id : ""; 755 | } 756 | if (oriargs.hasOwnProperty('has_3V1_coupon')) { 757 | user.svip === 1 && user.previous === 0 ? newargs.has_3V1_coupon = 1 : newargs.has_3V1_coupon = 0; 758 | } 759 | if (oriargs.hasOwnProperty('photo')) { 760 | user.photo ? newargs.photo = user.photo : ""; 761 | } 762 | if (oriargs.hasOwnProperty('username')) { 763 | user.name ? newargs.username = user.name : ""; 764 | } 765 | if (JSON.stringify(oriargs) !== JSON.stringify(newargs)) { 766 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook yunDataModule", "\n原始数据:", oriargs, "\n修改数据:", newargs); 767 | } 768 | } else { 769 | let oriarg = args[1] 770 | if (args[0].includes('is_vip')) { 771 | args[1] = user.vip === 1 && user.previous === 0 ? 1 : 0 772 | } else if (args[0].includes('is_svip')) { 773 | args[1] = user.svip === 1 && user.previous === 0 ? 1 : 0; 774 | } else if (args[0] === 'vip_level') { 775 | user.level ? args[1] = user.level : ""; 776 | } else if (args[0] === 'v10_id') { 777 | user.vip_id ? args[1] = user.vip_id : ""; 778 | } else if (args[0] === 'username') { 779 | user.name ? args[1] = user.name : ""; 780 | } else if (args[0] === 'photo') { 781 | user.photo ? args[1] = user.photo : ""; 782 | } 783 | if (oriarg !== args[1]) { 784 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook yunDataModule", "\n原始数据:", args[0], "-", oriarg, "\n修改数据:", args[0], "-", args[1]); 785 | } 786 | } 787 | originalSet.apply(this, args); 788 | } 789 | if (user.debug === 1 || user.debug === 2) console.log("【(改)百度网盘会员青春版】Hook", "\nyunDataModule:", yunData) 790 | }) 791 | }, 1) 792 | 793 | /** 794 | * waitForKeyElements 795 | * @description 监测动态加载的 DOM 元素并在元素出现时执行回调函数。适用于 AJAX/iframe 内容。 796 | * @param {string} selectorTxt - jQuery 选择器字符串,用于定位目标元素 797 | * @param {function} actionFunction - 回调函数,会将 jQuery 元素对象作为参数返回。在函数中 `return true` 可以取消后续查找 798 | * @param {boolean} [bWaitOnce=true] - 找到元素后是否仅执行一次回调函数 799 | * @param {string} [iframeSelector] - 可选,iframe 元素选择器 800 | * @example 801 | * waitForKeyElements(".comments", (jNode) => { 802 | * jNode.text("内容已修改"); 803 | * // return true; // 取消后续检测 804 | * }); 805 | * @requires jQuery 806 | */ 807 | function waitForKeyElements(selectorTxt, actionFunction, bWaitOnce, iframeSelector) { 808 | var targetNodes, btargetsFound; 809 | 810 | if (typeof iframeSelector == "undefined") 811 | targetNodes = $(selectorTxt); 812 | else 813 | targetNodes = $(iframeSelector).contents().find(selectorTxt); 814 | 815 | if (targetNodes && targetNodes.length > 0) { 816 | btargetsFound = true; 817 | targetNodes.each(function () { 818 | var jThis = $(this); 819 | var alreadyFound = jThis.data('alreadyFound') || false; 820 | 821 | if (!alreadyFound) { 822 | var cancelFound = actionFunction(jThis); 823 | if (cancelFound) 824 | btargetsFound = false; 825 | else { 826 | jThis.data('alreadyFound'); 827 | } 828 | } 829 | }); 830 | } else { 831 | btargetsFound = false; 832 | } 833 | 834 | var controlObj = waitForKeyElements.controlObj || {}; 835 | var controlKey = selectorTxt.replace(/[^\w]/g, "_") + actionFunction.toString().replace(/[^\w]/g, "_"); 836 | var timeControl = controlObj[controlKey]; 837 | 838 | if (btargetsFound && bWaitOnce && timeControl) { 839 | clearInterval(timeControl); 840 | delete controlObj[controlKey] 841 | } else { 842 | if (!timeControl) { 843 | timeControl = setInterval(() => { 844 | waitForKeyElements(selectorTxt, actionFunction, bWaitOnce, iframeSelector); 845 | }, 1000); 846 | controlObj[controlKey] = timeControl; 847 | } 848 | } 849 | waitForKeyElements.controlObj = controlObj; 850 | } 851 | 852 | // 这是啥?我不到啊 853 | function idontknow(input) { 854 | let charArray = input.split(''); 855 | // Fisher-Yates 洗牌算法 856 | for (let i = charArray.length - 1; i > 0; i--) { 857 | let j = Math.floor(Math.random() * (i + 1)); 858 | [charArray[i], charArray[j]] = [charArray[j], charArray[i]]; 859 | } 860 | return charArray.join(''); 861 | } 862 | })() --------------------------------------------------------------------------------