diff --git a/.github/1 b/.github/1 new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/.github/1 @@ -0,0 +1 @@ + diff --git a/.github/pull.yml b/.github/pull.yml new file mode 100644 index 000000000..a2bbd1a57 --- /dev/null +++ b/.github/pull.yml @@ -0,0 +1,8 @@ +# 使用方法见[@lxk0301](https://raw.githubusercontent.com/lxk0301/scripts/master/githubAction.md) + +version: "1" +rules: # Array of rules + - base: master # Required. Target branch + upstream: Sunert:master # Required. Must be in the same fork network. + mergeMethod: hardreset # Optional, one of [none, merge, squash, rebase, hardreset], Default: none. + mergeUnstable: true # Optional, merge pull request even when the mergeable_state is not clean. Default: false \ No newline at end of file diff --git a/.github/workflows/QQread.yml b/.github/workflows/QQread.yml new file mode 100644 index 000000000..7e7266278 --- /dev/null +++ b/.github/workflows/QQread.yml @@ -0,0 +1,50 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: QQ阅读APP + +on: + workflow_dispatch: + schedule: + - cron: '30 10-23 * * *' + watch: + types: started + +jobs: + build: + runs-on: ubuntu-latest + if: github.event.repository.owner.id == github.event.sender.id + env: + QQREADAPP_HEADER: ${{ secrets.QQREADAPP_HEADER }} + QQREADAPP_VIDEOHD: ${{ secrets.QQREADAPP_VIDEOHD }} + COOKIES_SPLIT: ${{ secrets.COOKIES_SPLIT }} + + steps: + - name: Checkout + run: | + git clone https://github.com/ziye12/JavaScript.git ~/JavaScript + - name: Use Node.js 12.x + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: npm install + if: env.QQREADAPP_HEADER + run: | + cd ~/JavaScript + npm install + - name: '运行 【QQ阅读APP】' + if: env.QQREADAPP_HEADER + run: | + cd ~/JavaScript + node Task/QQread.js + env: + + PUSH_KEY: ${{ secrets.PUSH_KEY }} + BARK_PUSH: ${{ secrets.BARK_PUSH }} + TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN }} + TG_USER_ID: ${{ secrets.TG_USER_ID }} + BARK_SOUND: ${{ secrets.BARK_SOUND }} + DD_BOT_TOKEN: ${{ secrets.DD_BOT_TOKEN }} + DD_BOT_SECRET: ${{ secrets.DD_BOT_SECRET }} + + diff --git a/.github/workflows/qqreads.yml b/.github/workflows/qqreads.yml new file mode 100644 index 000000000..78e9ae550 --- /dev/null +++ b/.github/workflows/qqreads.yml @@ -0,0 +1,50 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: 企鹅读书 + +on: + workflow_dispatch: + schedule: + - cron: '*/11 * * * *' + watch: + types: started + +jobs: + build: + runs-on: ubuntu-latest + if: github.event.repository.owner.id == github.event.sender.id + env: + QQREAD_BODY: ${{ secrets.QQREAD_BODY }} + QQREAD_TIMEURL: ${{ secrets.QQREAD_TIMEURL }} + QQREAD_TIMEHD: ${{ secrets.QQREAD_TIMEHD }} + + steps: + - name: Checkout + run: | + git clone https://github.com/ziye12/JavaScript.git ~/JavaScript + - name: Use Node.js 12.x + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: npm install + if: env.QQREAD_TIMEHD + run: | + cd ~/JavaScript + npm install + - name: '运行 【企鹅读书】' + if: env.QQREAD_TIMEHD + run: | + cd ~/JavaScript + node Task/qqreads.js + env: + + PUSH_KEY: ${{ secrets.PUSH_KEY }} + BARK_PUSH: ${{ secrets.BARK_PUSH }} + TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN }} + TG_USER_ID: ${{ secrets.TG_USER_ID }} + BARK_SOUND: ${{ secrets.BARK_SOUND }} + DD_BOT_TOKEN: ${{ secrets.DD_BOT_TOKEN }} + DD_BOT_SECRET: ${{ secrets.DD_BOT_SECRET }} + + diff --git a/.github/workflows/sync-repo.yml b/.github/workflows/sync-repo.yml new file mode 100644 index 000000000..9ab0005cf --- /dev/null +++ b/.github/workflows/sync-repo.yml @@ -0,0 +1,47 @@ +# File: .github/workflows/repo-sync.yml +name: sync-ziye12-JavaScript +on: + schedule: + - cron: '1 */3 * * *' + workflow_dispatch: + watch: + types: started + repository_dispatch: + types: sync-ziye12-JavaScript +jobs: + repo-sync: + env: + PAT: ${{ secrets.PAT }} #此处PAT需要申请,教程详见:https://www.jianshu.com/p/bb82b3ad1d11 + dst_key: ${{ secrets.GITEE_PRIVATE_KEY }} # 我自己同步到gitee使用,其他人可忽略 + runs-on: ubuntu-latest + if: github.event.repository.owner.id == github.event.sender.id + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + + - name: sync ziye12-JavaScript + uses: repo-sync/github-sync@v2 + if: env.PAT + with: + source_repo: "https://github.com/ziye12/JavaScript.git" + source_branch: "master" + destination_branch: "master" + github_token: ${{ secrets.PAT }} + # 我自己同步到gitee使用,其他人可忽略 + - name: sync github -> gitee + uses: Yikun/hub-mirror-action@master + if: env.dst_key + with: + # 必选,需要同步的Github用户(源) + src: github/Sunert + # 必选,需要同步到的Gitee的用户(目的) + dst: gitee/Sunert + # 必选,更新指定库名字 + static_list: "Scripts" + + # 必选,Gitee公钥对应的私钥,https://gitee.com/profile/sshkeys + dst_key: ${{ secrets.GITEE_PRIVATE_KEY }} + + # 必选,Gitee对应的用于创建仓库的token,https://gitee.com/profile/personal_access_tokens + dst_token: ${{ secrets.GITEE_TOKEN }} diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..dbbe35581 --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/Script/1 b/Script/1 new file mode 100644 index 000000000..d00491fd7 --- /dev/null +++ b/Script/1 @@ -0,0 +1 @@ +1 diff --git a/Script/babeldiy.js b/Script/babeldiy.js new file mode 100644 index 000000000..ca34caca2 --- /dev/null +++ b/Script/babeldiy.js @@ -0,0 +1 @@ +/* 总裁送好礼@wenmoux 没加判断 凑合用吧 或者等大佬发脚本 抄自 @yangtingxiao 抽奖机脚本 活动入口: 更新地址:https://cdn.jsdelivr.net/gh/Wenmoux/scripts/js/partyTonight.js 已支持IOS双京东账号, Node.js支持N个京东账号 脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js ============Quantumultx=============== [task_local] #沸腾之夜抽奖 30 9,10 * * * https://cdn.jsdelivr.net/gh/Wenmoux/scripts/babelDiy.js, tag=总裁送好礼, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true ================Loon============== [Script] cron "0 20,21,22,23 31 5 *" script-path=https://g/jd_scripts/raw/ tag=总裁送好礼 ===============Surge================= 总裁送好礼 = type=cron,cronexp="0 20,21,22,23 31 5 *",wake-system=1,timeout=3600,script-path=https://cdn.jsdelivr.net/gh/Wenmoux/scripts/js/babelDiy.js ============小火箭========= 总裁送好礼 = type=cron,script-path=https://cdn.jsdelivr.net/gh/Wenmoux/scripts/js/babelDiy.js, cronexpr="20 8 * * *", timeout=3600, enable=true */ const $ = new Env('总裁送好礼'); //Node.js用户请在jdCookie.js处填写京东ck; const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; const randomCount = $.isNode() ? 20 : 5; const notify = $.isNode() ? require('./sendNotify') : ''; let merge = {} let codeList = [] //IOS等用户直接用NobyDa的jd cookie let cookiesArr = [], cookie = ''; if ($.isNode()) { Object.keys(jdCookieNode).forEach((item) => { cookiesArr.push(jdCookieNode[item]) }) if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; } else { cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); } const JD_API_HOST = `https://api.m.jd.com/client.action`; !(async () => { if (!cookiesArr[0]) { $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { "open-url": "https://bean.m.jd.com/" }); return; } for (let i = 0; i < cookiesArr.length; i++) { cookie = cookiesArr[i]; if (cookie) { $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) $.index = i + 1; $.isLogin = true; $.nickName = ''; $.beans = 0 message = '' // await shareCodesFormat(); console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); if (!$.isLogin) { $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); if ($.isNode()) { await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); } continue } let headers = { // 'Origin': `https://h5static.m.jd.com`, 'cookie': cookie, Host: "api.m.jd.com", 'Referer': "https://h5.m.jd.com/babelDiy/Zeus/BryCkeWYJm4YwzVhpTo9RSqzCFz/index.html?ad_od=1&inviteId=mseweb&lng=107.147022&lat=33.255229&sid=e5150a3fdd017952350b4b41294b145w&un_area=27_2442_2444_31912" } for (let k = 0; k < cookiesArr.length; k++) { let pin = cookiesArr[k].match(/pt_pin=(.+?);/)[1] console.log("为"+pin+"助力中") let code = await help(pin) if (code != 0) { console.log("助力次数已满/账号火爆") k= 9999 } await $.wait(500); } await geTaskList() } } })() .catch((e) => $.logErr(e)) .finally(() => $.done()) //获取活动信息 function shareCodesFormat() { return new Promise(async resolve => { // resolve(); }) } function geTaskList() { return new Promise(async (resolve) => { const options = taskPostUrl(`functionId=superbrand_getHomePageData&body={}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=2393039353533623-7383235613364343&t=1622583423563`) $.post(options, async (err, resp, data) => { try { if (err) { console.log(`${JSON.stringify(err)}`); console.log(`${$.name} API请求失败,请检查网路重试`); } else { data = JSON.parse(data); if (data && data.code === 0) { let taskList = data.data.result.taskPresidentVoList console.log("开始执行品牌会场任务") for (task of taskList[1].taskVoList ){ type = taskList[1].taskType await dotask(type,task.taskId) await $.wait(500); } console.log("开始执行超级会场任务") for (task of taskList[2].taskVoList ){ type = taskList[2].taskType await dotask(type,task.taskId) await $.wait(500); } console.log("开始翻牌") for (card of data.data.result.giftCardVoList) { await filpCard(card.cardId) await $.wait(500); } } console.log(`获取任务列表成功\n`); } } catch (e) { $.logErr(e, resp); } finally { resolve(); } }); }); } function help(pin) { return new Promise(async (resolve) => { const options = taskPostUrl(`functionId=superbrand_doTask&body={"taskType":"4","inviteId":"${pin}"}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=2393039353533623-7383235613364343&t=1622582583791`) $.post(options, async (err, resp, data) => { try { if (err) { console.log(`${JSON.stringify(err)}`); console.log(`${$.name} API请求失败,请检查网路重试`); } else { console.log(data) data = JSON.parse(data); if (data && data.code === 0) { if (data.data.bizCode === 0) { console.log("助力成功啦~") } resolve(data.data.bizCode) } } } catch (e) { $.logErr(e, resp); } finally { resolve(); } }); }); } function filpCard(id) { return new Promise(async (resolve) => { const options = taskPostUrl(`functionId=superbrand_filpCard&body={"cardId":${id}}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=2393039353533623-7383235613364343&t=1622584839698`) $.post(options, async (err, resp, data) => { try { if (err) { console.log(`${JSON.stringify(err)}`); console.log(`${$.name} API请求失败,请检查网路重试`); } else { data = JSON.parse(data); if (data && data.code === 0) { if (data.data.bizCode === 0) { console.log(`获得${data.data.result.jpeasList[0].prizeName}`) } else { console.log(data.data.bizMsg) } } } } catch (e) { $.logErr(e, resp); } finally { resolve(); } }); }); } function dotask(type, id) { return new Promise(async (resolve) => { const options = taskPostUrl(`functionId=superbrand_doTask&body={"taskType":${type},"taskId":${id}}&client=wh5&clientVersion=1.0.0&appid=content_ecology&uuid=2393039353533623-7383235613364343&t=1622583266816`) $.post(options, (err, resp, data) => { try { if (err) { console.log(`${JSON.stringify(err)}`); console.log(`${$.name} API请求失败,请检查网路重试`); } else { data = JSON.parse(data); if (data && data.code === 0) { console.log(`任务已完成,获得330总裁力\n`); } } } catch (e) { $.logErr(e, resp); } finally { resolve(); } }); }); } function taskPostUrl(body) { let o = '', r = ''; const time = Date.now(); o = "07035cabb557f096" + time; r = time.toString(); // let t = "/khc/task/doQuestion"; // let a = "brandId=555555&questionId=2&result=1" return { url: "https://api.m.jd.com/client.action", body, headers: { Accept: "application/json,text/plain, */*", "Content-Type": "application/x-www-form-urlencoded", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-cn", Connection: "keep-alive", Cookie: cookie, Host: "api.m.jd.com", Referer: "https://h5.m.jd.com/babelDiy/Zeus/BryCkeWYJm4YwzVhpTo9RSqzCFz/index.html?ad_od=1&inviteId=mseweb&lng=107.147022&lat=33.255229&sid=e5150a3fdd017952350b4b41294b145w&un_area=27_2442_2444_31912", "User-Agent": "jdapp;android;9.4.4;10;3b78ecc3f490c7ba;network/UNKNOWN;model/M2006J10C;addressid/138543439;aid/3b78ecc3f490c7ba;oaid/7d5870c5a1696881;osVer/29;appBuild/85576;psn/3b78ecc3f490c7ba|541;psq/2;uid/3b78ecc3f490c7ba;adk/;ads/;pap/JA2015_311210|9.2.4|ANDROID 10;osv/10;pv/548.2;jdv/0|iosapp|t_335139774|appshare|CopyURL|1606277982178|1606277986;ref/com.jd.lib.personal.view.fragment.JDPersonalFragment;partner/xiaomi001;apprpd/MyJD_Main;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", } } } function jsonParse(str) { if (typeof str == "string") { try { return JSON.parse(str); } catch (e) { console.log(e); $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') return []; } } } function Env(t, e) { class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch {} return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => {})) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => {})) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t) { let e = { "M+": (new Date).getMonth() + 1, "d+": (new Date).getDate(), "H+": (new Date).getHours(), "m+": (new Date).getMinutes(), "s+": (new Date).getSeconds(), "q+": Math.floor(((new Date).getMonth() + 3) / 3), S: (new Date).getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, ((new Date).getFullYear() + "").substr(4 - RegExp.$1.length))); for (let s in e) new RegExp("(" + s + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[s] : ("00" + e[s]).substr(("" + e[s]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))); let h = ["", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="]; h.push(e), s && h.push(s), i && h.push(i), console.log(h.join("\n")), this.logs = this.logs.concat(h) } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : this.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } \ No newline at end of file diff --git a/Script/jd_gcip.js b/Script/jd_gcip.js new file mode 100644 index 000000000..b63f9aa85 --- /dev/null +++ b/Script/jd_gcip.js @@ -0,0 +1,325 @@ +/* +[task_local] +1 0 * * * https://raw.githubusercontent.com/panghu999/panghu/master/jd_gcip.js, tag= 柠檬特物国创IP, img-url=http://nm66.top/1.jpg, enabled=true +*/ +const $ = new Env('柠檬特物国创IP'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +const logs =0; +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + $.beans = 0 + message = '' + + // await shareCodesFormat(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + //continue + } + + await qiandao() + await guanzhu() + await kaika() + await help() + await cj() + await cj1() + } + } + +})() +.catch((e) => $.logErr(e)) + .finally(() => $.done()) + +function shareCodesFormat() { + return new Promise(async resolve => { + + // resolve(); + }) +} + + +async function qiandao(){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=1622650311894&body={"source":"sign","activityId":1000021,"encryptProjectId":"uK2fYitTgioETuevoY88bGEts3U","encryptAssignmentId":"47E6skJcyZx7GSUFXyomLgF1FLCA","assignmentType":5,"itemId":"1","actionType":0}', + //headers: JSON.parse(kjjhd), + headers: { + + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + //console.log(result) + if(logs)$.log(data) + + if(result.code == 0){ +//await notify.sendNotify(`${$.name} - ${$.UserName}`, `京东账号${$.index} ${$.UserName}`+'\n签到完成'); +} else { + console.log(result.bizMsg) +} + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function guanzhu (){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=1622650321436&body={"source":"secondfloor","activityId":1000008,"encryptProjectId":"3FuSjdHqM3qxirdwkJAYKuHaHD2K","encryptAssignmentId":"3Sxqj96CfFDFWqMys72d7q5PZwpw","assignmentType":3,"itemId":"15096","actionType":0}', + //headers: JSON.parse(kjjhd), + headers: { + + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + //console.log(result) + if(logs)$.log(data) + + if(result.code == 0){ +//await notify.sendNotify(`${$.name} - ${$.UserName}`, `京东账号${$.index} ${$.UserName}`+'\n签到完成'); +} else { + console.log(result.bizMsg) +} + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function kaika (){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=1622650334922&body={"source":"secondfloor","activityId":1000008,"encryptProjectId":"3FuSjdHqM3qxirdwkJAYKuHaHD2K","encryptAssignmentId":"NDTJ3mknmwDMQfTnCktosLLY253","assignmentType":7,"itemId":"0101509411","actionType":0}', + //headers: JSON.parse(kjjhd), + headers: { + + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + //console.log(result) + if(logs)$.log(data) + + if(result.code == 0){ +//await notify.sendNotify(`${$.name} - ${$.UserName}`, `京东账号${$.index} ${$.UserName}`+'\n签到完成'); +} else { + console.log(result.bizMsg) +} + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +async function help(){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://api.m.jd.com/api?functionId=superBrandDoTask&appid=ProductZ4Brand&client=wh5&t=1622610530872&body={"source":"secondfloor","activityId":1000008,"encryptProjectId":"cUNnf3E6aMLQcEQbTVxn8AyhjXb","encryptAssignmentId":"mfKcFqmELt1BcmTJoZ4BJ4JWjkR","assignmentType":2,"itemId":"S5KkcRkpNpFGFKRKik_YMIg","actionType":0}', + //headers: JSON.parse(kjjhd), + headers: { + + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + //console.log(result) + if(logs)$.log(data) + + if(result.code == 0){ +//await notify.sendNotify(`${$.name} - ${$.UserName}`, `京东账号${$.index} ${$.UserName}`+'\n签到完成'); +} else { + console.log(result.bizMsg) +} + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } +async function cj(){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://api.m.jd.com/api?functionId=superBrandTaskLottery&appid=ProductZ4Brand&client=wh5&t=1622650382167&body={"source":"secondfloor","activityId":1000008}', + //headers: JSON.parse(kjjhd), + headers: { + + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + console.log(result) + if(logs)$.log(data) + + if(result.data.result.userAwardInfo.beanNum != 0){ +await notify.sendNotify(`${$.name} - ${$.UserName}`, `京东账号${$.index} ${$.UserName}`+'\n抽奖京豆:'+result.data.result.userAwardInfo.beanNum); +} else { + console.log(result.bizMsg) +} + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + async function cj1(){ + return new Promise((resolve) => { + + let plant6_url = { + url: 'https://api.m.jd.com/api?functionId=superBrandTaskLottery&appid=ProductZ4Brand&client=wh5&t=1622650376384&body={"source":"sign","activityId":1000021,"encryptProjectId":"uK2fYitTgioETuevoY88bGEts3U","encryptAssignmentId":"zFayjeUTzZWJGwv2rVNWY4DNAQw"}', + //headers: JSON.parse(kjjhd), + headers: { + + "Cookie": cookie, + "Origin": "https://prodev.m.jd.com", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + } + + } + $.post(plant6_url,async(error, response, data) =>{ + try{ + const result = JSON.parse(data) + console.log(result) + if(logs)$.log(data) + + if(result.data.result.userAwardInfo.beanNum != 0){ +await notify.sendNotify(`${$.name} - ${$.UserName}`, `京东账号${$.index} ${$.UserName}`+'\n抽奖京豆:'+result.data.result.userAwardInfo.beanNum); +} else { + console.log(result.bizMsg) +} + + }catch(e) { + $.logErr(e, response); + } finally { + resolve(); + } + }) + }) + } + +function taskPostUrl(body) { + let o = '', + r = ''; + const time = Date.now(); + o = "07035cabb557f096" + time; + r = time.toString(); + // let t = "/khc/task/doQuestion"; + // let a = "brandId=555555&questionId=2&result=1" + return { + url: "https://api.m.jd.com/client.action", + body, + headers: { + Accept: "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + Connection: "keep-alive", + Cookie: cookie, + Host: "api.m.jd.com", + Referer: "https://h5.m.jd.com/babelDiy/Zeus/BryCkeWYJm4YwzVhpTo9RSqzCFz/index.html?ad_od=1&inviteId=jd_68997b52ea865&lng=107.147022&lat=33.255229&sid=e5150a3fdd017952350b4b41294b145w&un_area=27_2442_2444_31912", + "User-Agent": "jdapp;android;9.4.4;10;3b78ecc3f490c7ba;network/UNKNOWN;model/M2006J10C;addressid/138543439;aid/3b78ecc3f490c7ba;oaid/7d5870c5a1696881;osVer/29;appBuild/85576;psn/3b78ecc3f490c7ba|541;psq/2;uid/3b78ecc3f490c7ba;adk/;ads/;pap/JA2015_311210|9.2.4|ANDROID 10;osv/10;pv/548.2;jdv/0|iosapp|t_335139774|appshare|CopyURL|1606277982178|1606277986;ref/com.jd.lib.personal.view.fragment.JDPersonalFragment;partner/xiaomi001;apprpd/MyJD_Main;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", + } + } +} + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + + +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/Script/jd_mcxhd_brandcity.js b/Script/jd_mcxhd_brandcity.js new file mode 100644 index 000000000..d55e3e491 --- /dev/null +++ b/Script/jd_mcxhd_brandcity.js @@ -0,0 +1,273 @@ +/* +新潮品牌狂欢@wenmoux +https://t.me/wenmouxx +抄自 @yangtingxiao 抽奖机脚本 +活动入口: +更新地址:https://cdn.jsdelivr.net/gh/Wenmoux/scripts/js/jd_mcxhd_brandcity.js +已支持IOS双京东账号, Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, 小火箭,JSBox, Node.js +============Quantumultx=============== +[task_local] +#新潮品牌狂欢 +30 9,10 1-18 6 * https://cdn.jsdelivr.net/gh/Wenmoux/scripts/jd_mcxhd_brandcity.js, tag=新潮品牌狂欢, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Color/jd.png, enabled=true + +================Loon============== +[Script] +cron "30 9,10 1-18 6 *" script-path=https://g/jd_scripts/raw/ tag=新潮品牌狂欢 + +===============Surge================= +新潮品牌狂欢 = type=cron,cronexp="30 9,10 1-18 6 *",wake-system=1,timeout=3600,script-path=https://cdn.jsdelivr.net/gh/Wenmoux/scripts/js/jd_mcxhd_brandcity.js + +============小火箭========= +新潮品牌狂欢 = type=cron,script-path=https://cdn.jsdelivr.net/gh/Wenmoux/scripts/js/jd_mcxhd_brandcity.js, cronexpr="30 9,10 1-18 6 *", timeout=3600, enable=true + + */ +const $ = new Env('新潮品牌狂欢'); +//Node.js用户请在jdCookie.js处填写京东ck; +const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + +const randomCount = $.isNode() ? 20 : 5; +const notify = $.isNode() ? require('./sendNotify') : ''; +let merge = {} +let codeList = [] +//IOS等用户直接用NobyDa的jd cookie +let cookiesArr = [], + cookie = ''; +if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + cookiesArr.push(jdCookieNode[item]) + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; +} else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); +} + +const JD_API_HOST = `https://api.m.jd.com/client.action`; + + +!(async () => { + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/', { + "open-url": "https://bean.m.jd.com/" + }); + return; + } + message = '' + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + + // $.taskList=[] + // await shareCodesFormat(); + console.log(`\n******开始【京东账号${$.index}】${$.nickName || $.UserName}*********\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { + "open-url": "https://bean.m.jd.com/bean/signIndex.action" + }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + + await getaskList() + for (j = 0; j < $.taskList.length; j++) { + let taskType = $.taskList[j].taskType + if ($.taskList[j].status === 2) { + console.log("该任务已完成") + } else { + for (k = 0; k < $.taskList[j].subItem.length; k++) { + console.log("去做任务:" + $.taskList[j].taskName) + await doTask("mcxhd_brandcity_doTask",`{"itemToken":"${$.taskList[j].subItem[k].itemToken}","token":"jd17919499fb7031e5"}`) + if (taskType === "9") { + taskToken = $.taskList[j].subItem[k].taskToken + // console.log( $.taskList[j]) + await $.wait(5500); + await doTask("qryViewkitCallbackResult", `{"dataSource":"newshortAward","method":"getTaskAward","reqParams":"{\\"taskToken\\":\\"${taskToken}\\"}","sdkVersion":"1.0.0","clientLanguage":"zh"}`) + await doTask("mcxhd_brandcity_checkTaskStatus", `{"itemToken":"${$.taskList[j].subItem[k].itemToken}","token":"jd17919499fb7031e5"}`) + } + } + } + + + } + + } + } + + for (let i = cookiesArr.length-1; i >=0; i--) { + cookie = cookiesArr[i]; + if (cookie) { + $.index = i + 1; + console.log(`\n******开始【京东账号${$.index}】\n`); + for (l = 0; l < codeList.length; l++) { + console.log(`为 ${codeList[l]}助力中`) + let status= await doTask("mcxhd_brandcity_doTask",`{"itemToken":"${codeList[l]}","token":"jd17919499fb7031e5"}`) + await $.wait(500); + if(status === "108"){ + l=999 + console.log("助力次数已满") + } + } + } + } + + for (let i = 0; i < cookiesArr.length; i++) { + cookie = cookiesArr[i]; + if (cookie) { + $.beans = 0 + $.index = i + 1; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + + // await shareCodesFormat(); + console.log(`\n******开始【京东账号${$.index}】${ $.UserName}\n`); + + console.log("开始抽奖") + for (g=0;g<5;g++){ + await playgame() + await $.wait(1000); + } + console.log(`共获得${$.beans} 京豆`) + message += `【京东账号${$.index}】${ $.UserName}\n共获得${$.beans} 京豆\n` + + } + } + await notify.sendNotify(`新潮品牌狂欢`, `${message}`); +})() +.catch((e) => $.logErr(e)) + .finally(() => $.done()) +//获取活动信息 + +function playgame() { + return new Promise(async (resolve) => { + let score = parseInt(Math.random() * 50, 10) + 100 + console.log("上传分数:" + score) + let options = taskPostUrl("mcxhd_brandcity_reportGame", `{"token":"jd17919499fb7031e5","score":${score}}`) + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + // console.log(data) + if (data.retCode === "200" && data.result) { + gift = data.result.gift + console.log("上传成功") + if (gift) { + console.log("获得" + gift.jbeanNum + "京豆") + $.beans += gift.jbeanNum + } + } else { + console.log(data.retMessage) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function getaskList() { + return new Promise(async (resolve) => { + let options = taskPostUrl("mcxhd_brandcity_taskList", `{"lat":"33.255229","lng":"107.147022","token":"jd17919499fb7031e5"}`) + + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + data = JSON.parse(data); + // console.log(data) + + if (data.result.tasks && data.result.tasks.length == 4) { + $.taskList = data.result.tasks + codeList[codeList.length] = data.result.tasks[3].subItem[0].itemToken + } else { + console.log(data) + console.log(data.retMessage) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + +function doTask(functionid,body) { + return new Promise(async (resolve) => { + let options = taskPostUrl(functionid,body ) + $.post(options, async (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`); + console.log(`${$.name} API请求失败,请检查网路重试`); + } else { + // console.log(data) + data = JSON.parse(data); + if (data.retCode === "200") { + console.log("任务成功啦~") + } else { + + console.log(data) + } + resolve(data.retCode) + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + }); +} + + + + + +function taskPostUrl(functionid, body) { + return { + url: `https://api.m.jd.com/?client=wh5&clientVersion=1.0.0&functionId=${functionid}&body=${body}&appid=${functionid==="qryViewkitCallbackResult"?"":"publicUseApi"}&_t=${Date.now()}`, + body: "", + headers: { + Accept: "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + Connection: "keep-alive", + Cookie: cookie, + Host: "api.m.jd.com", + Referer: "https://h5.m.jd.com/babelDiy/Zeus/31LKY9sFZZUvj5aN1TrZUE4V6xzQ/index.html?itemToken=43xA_erJaPow6F86M-TPd4qDWtScVpq8Ic-Xv4e0CQu-AoXanOJaHrqaPyBlbQkCd0kw&lng=107.147022&lat=33.255229&sid=e5150a3fdd017952350b4b41294b145w&un_area=27_2442_2444_31912", + "User-Agent": "jdapp;android;9.4.4;10;3b78ecc3f490c7ba;network/UNKNOWN;model/M2006J10C;addressid/138543439;aid/3b78ecc3f490c7ba;oaid/7d5870c5a1696881;osVer/29;appBuild/85576;psn/3b78ecc3f490c7ba|541;psq/2;uid/3b78ecc3f490c7ba;adk/;ads/;pap/JA2015_311210|9.2.4|ANDROID 10;osv/10;pv/548.2;jdv/0|iosapp|t_335139774|appshare|CopyURL|1606277982178|1606277986;ref/com.jd.lib.personal.view.fragment.JDPersonalFragment;partner/xiaomi001;apprpd/MyJD_Main;Mozilla/5.0 (Linux; Android 10; M2006J10C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", + } + } +} + + +function jsonParse(str) { + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } + } +} + +// prettier-ignore +function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/Script/zooLongzhou.js b/Script/zooLongzhou.js new file mode 100644 index 000000000..c6ec79caf --- /dev/null +++ b/Script/zooLongzhou.js @@ -0,0 +1,22 @@ +/** + * Author:Panda + * Date:2021-06-03 + * Version:1.0 + * Url:https://raw.githubusercontent.com/zooPanda/zoo/dev/zooLongzhou.js + * 浓情618 与“粽”不同 + * 活动地址:https://lzdz-isv.isvjcloud.com/dingzhi/union/longzhou/activity?activityId=901053001 + * 活动时间:2021-06-01至2021-06-18 + * 推荐cron: 15 13 1-18 6 * + * 账号1默认助力Panda,后续账号助力账号1,如账号1无法正常获取到参数,则所有账号均助力Panda + * + * 环境变量: + * - export ZOO_OPENCAD="true" //默认不开通会员 + * - export ZOO_ADD2CART="true" //默认不加购商品 + */ + const $ = new Env("与'粽'不同"); + const ZOO_OPENCAD = $.isNode() ? process.env.ZOO_OPENCAD || 'false' : 'false' + const ZOO_ADD2CART = $.isNode() ? process.env.ZOO_ADD2CART || 'false' : 'false' + var _0xod6='zoo.20210603',_0x5c38=[_0xod6,'44Ke6by+5bqUwo7lv4LliKzlj7Dkva/nlqXjgLQ=','w5XDrQnDp8KmPSDClw==','w4tJdRETwqIEw4E=','44K26b615biSb+W8g+WKgOWOguaIkuWnveOBjw==','MCrDsj5H','SsO0OXcy','44Ke5q6G5oio5aeS','Fk48wocSAzJPwpAbwog=','MiNUX8KP','w7jDhsO8w7A=','w6XCh04=','V8K3EQ==','ZBhA','w4jDqhjDpcKcaWnDl8ObW8KNBsK+EsKxwr4Ww4NTMQLDrmnDl8O8EnTCtsO/w4psJGcHJ8K0wqbCkcOPw4DCtB7DnxbCj8Kuw7LDhm/DhMOwRiXChcOqXCvChTfCq8OOH8OaKcO+TGnDr8KxSFgmwrV6JzpLw7t4G2zDkQlnwrfDkh3Ckic2w6fChA==','w6bDj8OwwpvCn1t+wrjCpWkUZQ==','JRjCo8K/dA4oworDusON','ESAGaEvDucOWwqs9wqjDtQx8w59wQMOeVxUMWljCksK9','wrHCjSRa','w6XDnhLCmmvCgcKUMsOLw6jCjF0lw7rDpDR4Wgs=','VRd0dQ==','EzATaEjDuMKQw5Qmwq/DtBkqwoMzF8KVEQBQRxzDgMKow7fCk8K2wpQXwoBtw5I/w7Bbw59AKMKBw5YIwqMdUQnDjcKK','w7LCgcO2w6zDsA9xdcOhGQ==','El4UPcOgw419GcKdwozCtg==','dTBJWMOENSHDrj1PEg==','IMKtw4s=','w7vCgMO7w4UO','w4LDn8KGEFNc','NSfDrRBAGTXDrnnCpCpPb8KMeHxB','w4hKdcKTQjoiw5bDii4MwoVoVBdzwpPDgg==','w5TCiXjCsMKGwrM=','w6ZzwqjDjcKiwprDhHVmXm3DkcOaZzPDpX0=','XUIFLMOnw5pgOMKcwqnDpcKLDw==','UMKhw5HClERuS2TCqkM=','woknKg==','w6zDmsO8w4XDnxR4wrXDvW8=','wp54woxaHA==','NQY3IcKrwqzChjbChUzDqWEiwo3DrcKcw7A=','dksOcHwDOsODPz3DkUZhwoNqfWhgNg/DgsKJf2d1QHxTLcKlJzHCnihVwr3Du25nS8O2YMOCw69DKcOQMyrDlUQWwpTDu1ATTsOWw6sza8KlTsOOwpnCql0RNFEIMw7Cr8OFwqhqw4XDmhLCu8Osw6rDkcOdwrVe','wrpucSrDt8ONfk46K8KvHEnCgXJuwr8xPMKrw6LDi8KTQjXDpFwowrjDkcK1w7XDtcKqLUnDiVHClXoJ','w5fCjlV8Aw==','WSFWVsOz','CD8Qwp1NYk/DscKnw7fChsOxw5zDrQDDvjTDt3xLw5EbbSU=','Dk47CEpyFSYOwp0Oe39uw5Jpw5UIwoI=','QCkIfF7CrsKQwpIFwq/DtAciw5duWcODWE9ZDQTDgcO1w6fClcK/wpRUw5Njw5Isw5Ncw5IDc8OYwoJQw7BOFXjCksOdw5jDu1PDr8KHCCjDqcOCw57DvmpUacOnDHYkSk3DkHDDkWjDt8Ore8KtSQ/CvS0KN8K6wpPDsRxqw5JxFijDpcONGkw+MgLCojfCkATDqiowXcO4w70adcONwoM7FsOUFMKXw71TLMO8wpPDicKpPsOXwrEPw6XDhsOawpQha8KHwpbCpkfDuBR4OcKJw7rDvlXClcKbD8KHw4IWwrDDiwTDn2PDsnbCmsO5wpACw4XCrMOTw5AYw5HClcO4wopQw7DDtMK/fSnDhMOow7FWw4UPwrZGODUpw5DDtcOB','w7N6VAcA','w47CmH/CtcKZw73CjhjCjF/Dv2TCgQ1if1hawog6ET8bw6HDvcOwIcO7w584M10/FsODI8OHCGTDkwfDicONM0oPw48=','GicTcU3Cq8OLwoIAwrXDtw==','w7HCrkbCi8K6','A8K/bQ==','w6Nywrs=','N8Kpw40yw54=','w7tkezfDm8ONbBw=','BRYoX8Okwr7DhnI=','dMKOcHklZsOQwq4=','w5xTwq7DqcK8','KMO5XsOPWcOhbghE','w4V1c+iMhuW/quOAmA==','PwjCp8KhLQYwwpo=','w4TCiWrCqw==','wpVlw4BXBgbDnMK1','w7fCmT0=','wrwxTTA=','NQHDrAFz','AnXCmsKiwqw=','WMKHaSnCuMKPacOnw4RXwrvCgMKuw6bCsw==','woAldS0j','wrnDlQPCnm7CgcKCLMKHw6s=','wqgsXzM=','ScKFbzPCqw==','PFIZwqLDsiM=','FDINdUE=','w4TDvxjDtA==','L8KiworClMOEGuS5quWkluWRl++/psKn6I2P5b2d44Oo','w63CiV3DlQ==','bk0Temo=','wpctOsOQD2zCr8OPw7LClA==','wpctOsOQD2zCtcOXw6/ClA==','e8KuMcKd','AMKNU8KWQw==','woDCuRl/','w714wqvDicKiwpvDuWB4aQ==','w7nChMO5w5oKLTI=','CwwARMOMwrI=','F8K/d8K7ScO5LwLDgxc=','w47DvwHDsA==','wpDjgqfku5jkuJ/otYnljr4=','GVPClMKmwpNkw59r','NygUwp9zOEvDhA==','PjVaIC8ZNcOMfuKVmcKY6I+f5b6bwo3jgJA=','woBxw5VY','dMOUA1sC','JBsiMmIUw6rChsK+w5Q=','44OP44Kyfea3leWKtOWfnuWepu+9gw==','w65+wqjDgcKmwpbDg3hAfnQ=','w7F+eg==','5LuJ5aaO5Lur','FOOAr+S7luS4nOi0qeWPjg==','cMKlNMKWIw==','HQx7fsO8w61qw6w=','w4/DhBFxIShPwq4=','YMOHHkA=','QcKww4zCh1c=','FlnCg8Kkwqtsw4Z3ZcKmwqM=','M8OHNi1BNuWsuuaLkea5heaIuO+9pOiOjeW/sOOBoQ==','w6vDhsOhw6U=','44CI6b2S5bmR','VsKjw4jCmB10S3zCkVM=','w6jDhsO4w6HDmAU=','UUEqHQ==','w5rCq3hePcOg','VcKjw5HCnA==','w5zCoU1R','w4tVdw==','44CV5LiK6LCs','wromTSk=','KlYewrY=','woctLMOf','AMK7bcK+','PybDsBs=','wrwtPWPCv8Kd5a6G5omj5LqJ5Yq/776F6I+I5b6y44O4','w6vDkMO+','w4NNZwQ=','wofCsAxwZ8Oy','44Gf5rmF5ouJ5p+15L2D','w4vDk3DDsMKZ','wpNow6BaBgbDh8KiMSMNf03CliNbw4/CqcOIc8KpFHEswpxJ','Jhc7Gn0X','OCjDrRQ=','wotOwoHCpzpUwovCocKSwqYRw5UQw4M=','Jhc7HXkTw48=','w4LCjX/CpA==','IhdWQsO5','EsOFw5XDsw==','w55JYjw5','w77CiMOt','w7LDjMO8w4fCuxtywrM=','w7hsaSI=','KVIewpjDrjLDnDTClsKxw7IfBMOSEA==','IUcPwrnDnTbDgBPCpcKmw6E3GMOQ','PMOqQ8OU','FMOBw4DDvA==','WEMW','GcOEPWDDo8OY5a6R5oqO5Lm85YqZ77+Z6I2D5b2c44KY','wobCvQxw','44Ka5LmN6LOP','w5TDm8KBBA==','cMKIf2M=','NHMdEcKfYuWvmeaKh+S6k+WKnO+9suiOoeW+ueOCrA==','44Co6b295bic','I8Kpw4sg','FcOMw4DDvMKyJw==','w6PDiMOy','FQB+XBAj5a+r5omd5Lua5YmL772r6I6q5b6B44GF','FFLClsKjwr5g','44K25riU5oic5p2f5L2K','wrshW8OswoZtw67Cq8KlfcOtYg==','elkdJ8O9','dMOUBUUSwqlmwowowpN8','asK/IsKaNTzDlgjDlQ==','5LiL5Lim5rKx5p+06L+V5ZqF5pSg5o+c','clAd','XQJi','b8ODD1FKwqt+wqk3woU=','acKPO24C','Ulo3DBE9AyhHwoYGaXN5wrNPw64=','w7R5aTPDocKZJVwTbsOgUUjDhn1kw6UENsK0wr7DgcKQRW3CswY0w7fCgsOnw6nDr8KtdhXCgRnDhCYMAFI6w71Bw7Ewwo7DpMKme8K6aQrCvk7CpsKSwrnDszfCoFjDul7Dp2UpSXIEfSVTw7rDhcK1ChRZWsKuwq/Cvn/DigbDozMBw5g=','JQonOn4Xw43CgcKq','YcKrw5Mow57DjcKlw6EPMUlVFsKddDjDjMOpK8KIw43CqcOXL1o9MA1jwoA8SMK3w7PCnhwVwo/CqgBp','ADfCkhXCsQ==','w7/CqGdUPQ==','wrInTTcZQyDCv8K9acKKwqgYwqLDjcKUw5HCsFPCuzXDscKpwpw=','bwsDCA==','Lz1YRcOFMyfDvEdKF3BHwofChDrCtXbCnw==','X3szRA==','w5/CjsOgw50F','w6PClcO9w4YYdHgpIWtxwq/DpcKMwrLDkHfCgcOCD8KOwrTCnwIKwrvCuzbCs8O5QTbDuMOJwpwGFFPDqV4uOiNOw6Zlw7U=','H30SwoVcN0jDhMKjwqXDn8Kkw5bDoAjCuX/CtzIIwoxgKXLDmw==','w6DCgMO4w4Ac','w6xxwrTDr8K6','aMOJDQ==','w5PDqw/DtsKKIDU=','w6nCkynCksK8JQ==','J1kewrLDrDLDgQPChMKRw6M6D8O4FsOAwqQ=','RkkCPMO5w4s=','GicTcU3Cq8OLwoIcwqM=','YzkrLXE=','ZFdXY2E=','WcK2w5HCjUE9EDLCgldLAsOgw7phwp0XZm7Ds07CnsKDwrtfw6ddXMKkw4HClsKONMKZbUBqT8Ovb1rDhx0Ww6RAbjAuaEHDlmjCosK2w4DDusOuM8OOB8Oyw5J4ecOxw5IiesKmwpYBwrbCiAJ5F0wbcsKhwrs7JcOCAMOh','On0twrY8','wpdkw5NQHAjDgcKqCw==','F8Khw4nClFdpSyDCqxIET8Ohwr1uwpdNU2TDrBLClMKAwrwHwrAHQMOrwpLDhMKSLsKeNhwiB8K+M18=','w5gUw4U=','wqduwqbCrg==','ZyfDvAFFEzTDsSXCgTZFY8O7UEt8bXE=','D0EeLcOww5M8JcK/wojDpMKDBUXCnxrCgsOXCcKCZMKawrfDrsORwrPDr8KZw4IPJMK6LEJoVyg9wrsqY8KBwps0woTDmMKFT8KvwpgGQlFKwpozwpBXJsKIR8Ovw4tSw7NCImcqJcOMI8Klw4nCrcKPwopBw6fDrsOPwrYzFcOFwoYDw6vDr8OKCMK9J8KPwoA6w4Y+w7cFwpo5w4TCv8K7ODBpwpTDmSVdwo7DvFlCQgDCoGDDvMOHw4VST8OWwqrDucOhwr/Dk8OTwoEsQTjCtMKrXXDDmcOnTi3ChD7Cu0dRwpvCqcOGCUPCq0EyI8KxL8K2w4pbw63Cj8OsTSjCsMK0w4HDkMKQJcO0cwYzIFXCvxjDoEvDvsOgTyobwoIm','wqPClhTChn3CgMKIPMKIwqLDkgt9w7XCgwJUalEJw4vCs31zwqA=','IkIEwrTDmw==','w6/Ci2LCi8Ki','wr8mWA==','LCjDqwZX','NRU4JcOOw6LChDw=','S8KBbjXCosKS','XMKxEAYqwoMYUw==','eVYcdENQZsKY','AQBrYMOew7g=','A8Kzf8KrTsO4PQQ=','w6jDjsOzw7DDnQhsZA==','Axdxb8OXw5h+w7nDrA==','w4rCg2w=','wocMM0hu6I265b+644K/','44K25LqA6LGV','w4HDj8KUC0tBw5rDpA==','BATDlT1GCDbDiG/ChypGecK0','IsOjGsOWUg==','w4ZKYMKRaDgxw4bDoiIWw4NmEBR9wq3Ci8K5QMKvw5EMMcO+LAwmwqbCr1fChMK+','MMO/Q8OFT8KPOFdNwrrCoXfDgAcsX3NXw4kqw5xpw75Lw6FiGgMCRsKD','ND3DrQVBRmnCtWbCjDtZJ8KpYnkbQC3Dnm3Du0jDq8KecsOWwpnDvDjCk1bDoAI6OG3DiCXCg8K5esOTw5UBEcKdw5HCk8O6w5olw7vDmA==','GsOew4XDqMO8K8OwECvDqMK8w7oRwr/Ck0zDtMKYdVYMw4g=','fWgOL3s=','dgteYsOk','EFchwp5ISiJTwr8Tw5QvRzDCucOwcw==','eBrCnwfCgC3CtiQTw74ew5rCrUXDmcKpBcO3Dg==','w5rCshPCow==','w6MuQyMMFGbChsKFbsKLwqNGwqrDk8KNw4zCvwnDrmLCrcO6w5QfwqU3LWHDosOAMsKkIcOkJgV3woRlw4HDtsOtQk8hHcO6wp4FwqzCuMOqECsiw6ASMBXDpMO0wp3DgH7CrQEYw7YgLMKWwqDChTISdcKxwrXDhcK8J8KuwovCnHDCmjLDnQgZwrQNwrMGwqJ5wq7CpcOKw6s2N8O6PFvCnW0awr0xwp/CmEEnd8OsT8O+RMO1E8KyZAbDlHB7w4DDicKMOWbDohMsPcK3w4p0RSAPwpDDplfCnwsTw7XDtMOBKSDCvhPCu1JfEH0vbVTCqMKYw7gSwrE1UMOhw5jCj27CgWLChHfDrBPCjcK3ZsKtMsOSK8OoLE0=','HF/CksK9w7Bkw55nRsKx','dlobZGpLZg==','VcKeeTrDo8KPbsOowqlRwqbCgsKhw6vCqzLCscONXcKKw4VJ','T0hzH1M=','w67Dl8Olw6jDuAJ+ZMOkS8K0wrDClcORNcOjDSbDl8OCw5vDqsKxcgJ0wqXDvcOSWj3Dqmg=','wo91w4RJXw7DhMKlBCk=','dksOcHwDOsODMjfDnBIhw4Rzb2hqKhTCh8KJf2FlSiYeI8KrfDvChDUewrPDpnt8AMKsb8OSw71JEcOWLRI=','w6XCgn7Ct8Kn','Lw3CtsKjMAwlwpfDpcOHQsKYwpZPJcOQ','fh0gJUE=','w6zCm8Ogw4ZHbjNjNG9/wqvDrcOFw7/DkGA=','w5bCun7CrcKL','w4zCiGrCtcKaw7zDiGfCl1jDvnHDl1EhKBMcwp1mDHtJw7Q=','TcOJw47DtsK0LsKsD1XDqcKgw6Iew63Djw/CssOHOlEHw5ccInDDj8OWw7HDjiDCo0DCpncnw6jDg8OdIsOhEsO/NcOsV2vDjXVXwp81BgQiwp/CnHBbfMKpw4hKJloQXlFYJQPCucOGw6V/ScKbPMOuEcOLw5PCh8Klw7PDljIxfXrDpQxYEMOCccK+w4tCZhsPwqTCgcKZwozDvMKUDcKxPMOwTVxBPsOSScKwwq8pwqxsZcKpYcK6RMKXwr1iw540wr4kTVlNU2HDrcO4ZMKzaXQsw4U+w4xNTcO/w57ClMKlES3DkcKpwp/DgljCsMOgelQKwovDiHbDp2/CvsOIMXjDicOqwqoEUsOuY8KMIMKxZRYuwq0K','TsKrEwAqwolD','ej3Dth5XEns=','UVzChcKiwrBRw4t+VcOpwo51w4E=','DhMebsOq','MBHCjl7ClC3CqyRVw6w=','w7XCiX/DqMKpwqjDjlzCllI=','5Lil5Lu06L+95Zmq5Lmg56iz5pa65o+Z','RU8tCA==','w69oaW7DscOMZRgbew==','w6zCtX98Hg==','Q8KWHCYg','wrbCqT5dVA==','JF/Cg8Ogwp5qw51lWcKx','F8KqdcK2cw==','GwB5ccOXw750','wpondDED','w5nDicK7CltN','w6fDjlnDncKX','ABV0fMOG','RlAyFUk=','w7/DhsOnw7fDtA==','VcKLeg==','5L+75aaL772A','UE0FKA==','REUf','KhzCssKu','wop5w4JSHA7DhcKp','R0kSO8Oww4tDJcKB','w5PDuw/Dp8KKJxbCkcOU','AR8fGHMIwq9hwqAiw4k8cw==','w43CoU9NK8O/cQVs','IlgN','dsKVZGIeRcOTwrIOVg9f','w5/DucONw4HCtw==','YMKCYiAPZ8OZwqoUUg==','HsOBw4DDtsK0MMOw','MRo6BsOrwrjDmm0AMA==','XTs+','wofDsR/CgXg=','YSB1esOk','J0QkwrjDujI=','wozCvQx6YcOlPg==','JRshfnMfw4vCjMK6w5Q=','w699cSrDpg==','JSzCgxvCoQ==','PQ3CqsKmLQ==','w6d4wr3DjMK1wo3DhA==','wosmWGoqFybChMK8Yw==','MMOuVsORWcOHZA==','w5bCoU1bK8O5Ug==','w5x4wqjChcKTwpDDmGp8aQ==','wqszQC4d','SMKoGhsX','w4tDdA==','5Lq45LmP6L+p5Zuv5Li056im5pSl5o+5','wrUhV8Kswqgiw7bCq8OCcMOkYA==','csKXZmEFa8OXwrUUWAYVH1wYLcKQw47DlMKMwq/DlSNjb8KewoDCqsKOcVUBwr4=','w6zCqD/CrMK6wq/DjlnCmhjCoSLDm146LR0Aw48HVzoRwqrCpcK/JcKbw79wbR5yQMKKZ8K7VHPDmgzCgsKbbzNbw5s=','ASxKUFrCrMOMw5YWwonCoBh6w5c=','wrbDhAPCnm/DlMOJdsKFw6/CjBUhw6/DjxQffUsWworChWN2w7glw710w5DDicOJAsOOw4vDi8KeLcO2wrgIPsKGGsOqwqhKwotcwpTCiHh+IMONI8KiCkXDmQ==','w5nCjGDDksKj','M8Okeg==','CRorW8KFwrbDmW8fMA==','GXPCvcK7wrU=','wrMrV8Oyw6ksw7jCqsKKf8OqeXo+w4/DvAs=','w4VVdMKEPH5nw7DCrn9KwplsUUY4w6jCg8OsbsO4wo4RYcK+cgE8wrHCsEDDhMOpNcOrGGR2wpbDo8OLw6bCmMKWEybDssKLw7g0ZQI1wogrw4TCs8OdwqEsehpww7HDjBh4AWnDj0vCigI6wpHDmFYwC8OHMcOIwonDi8OBwqg+w7zCocODZxl5HcK1PcKpw711T3Bbwqo2w6XCtMKYAC7CjBLCkGVJJ1jCpwAkcMOibsODMcOvwoDDo8OBDcO4wqpvXB/DsiwbAsObw47Cv8KNw7vDlHHCqUcIdMKLwrUvwobCssOWSzpmwpXDlsKOC8KVwoPDvVPDtMO7TE7DmAgYKFQNRcKiLifDnsO1w70iT8KEQsKDwpDDjTXDvMK6Zz13ewnCssKzXcOfw7UKw6UzRcOFwq8JwogAU8KMecK4YMKfTmjDhMOwDMKC','MgfDuwZk','DcKfw7Qbw40=','KMOkRMOB','w4DDm8KHFlo=','wp0iN8OANQ==','JhM1NMOp','F8K9w6suw5g=','FMOhTcORRA==','w4DCgGTCqsKY','a8KqPsKXNDY=','BMOBw5HDvsKwIcOm','w7HClEZ9PA==','FcOIW8O6Ww==','fsKSw4/Cv0A=','KCbDigFAFSjDvQ==','w67DmCFzHyxQwogmwpTDnw==','I1JHwrbDrj7CnB3Ck8Otw7U5Bw==','w7JsBg==','w4JywqbDgcK8wpPDli4gIijCncKXQgrDvmZ/XSjDqmoCw7zDvz3Cn8KAw5vDgcKOXn4JRMKpecKDw67DlU3ChjXDhsKMw7BSw79GS0DCpALCoMOFwqtFwopBw6AMwp3DvkF2worCmcK1IsKRwoHCuDNjT8KDw7LDo0tKw7QywppCwqjDpsOBWHzDpEMKTsKnL8OTGcOew7fCqw1nwpTDhMOxw7IFwrlobsOoJ2DCuzJED8KkUSzCq1zDsnp8w4FgOERhw57CgsKgWCvCvjY=','wq45E8Ohwqs=','PcOAw6jDvcKC','wpleworCmn5Rwq7CpcKFwqQ=','InbCksKgwoc=','AwQWGGg=','w5HCqkzDncKe','enw0K8O5','G0IvwqsWGA==','Sj84P14=','w5TCiX/CpsKFwqPDhA==','w7V+USzDtcOKZA==','KgUIal8=','FsK/bcK8aMOyPg==','w5rCpVhe','w6HDjsO2w6/DnwBydQ==','wrrDkQPCjw==','w5PCn27Ct8KjwqnDh1g=','w4VNYAAZwqMLw4A=','w6fCgUrDn8KIKMKnw5I=','w7bDmBM=','5Lui5Lmh6LyS5ZiR5Luf56iV5pS05o6N','clAdRX1L','w6bDlMObw6vDtQQ=','cmbDqhBcGAjDtX7Cnzla','NTrDlxpWGQ==','w6TDgsOsw7c=','w7zDmAZGDipK','S8KtBRo=','CTDCpTfCsgDCkQg=','XMKKaw==','w4HCpcOWw7IuDAJB','YsOHBlIC','K8Knw5g=','VsKnw5HCmVNzXg==','FRE6OHkVw5fCrcKX','wrPDkQc=','dzxSWsObOQ==','wq7DhQTChg==','UMKIeWYFbcO8woVP','czZJVcOTKDQ=','w6jDkgJmHTpH','eFYWdGpL','w6jCgyrCgsKi','wrjDghLCiw==','wrUpSg==','44Cp5oy056Sn44GR6Ky55Yau6I6q5Y2I5Lir5Lik6Lez5YyD5LuLw6vCqDLCr8OAFsOj55me5o6B5L6h55WPYXTDjUovw7jnmKXkuZnku53nrYPliovojrvljJY=','wrA3WDcaQmbDgMK3Y8KFwqMNw7bDjcOLwpvCqgvDpWvDsMO9w4INwqJ8cTjCvsOPC8K6B8O0N0dyw4ggwp7CrsK1','acKyw4/CgcORFyVxwp7CjcK0wpzDvsOBwqwlCFkrwp1bwofDonXCrsO/IcKTYSR7eQ==','YBpqMsK0w6nDmjLChxTDqnFzw4DCr8OHwronw7NdWsOpw4ZRfl9+wpjDrF/CiMOa','Wh0qGsKbwrLDk2UPbcOdw4HDtsOTwq3DqhhNJsK3NAMVwo4tCMOHw7Vhwo8Kw7I=','BRxBecKlwo8nfcOdw5M=','6ISO5p2/5YWw6LSI5L+N55W0772Z6K2g5YqX5ZyV5aWZ6ZmQ5Zye5Y6G55mB5ZG657KH5bmB5Y2A5L++5pOq44KLwrPliYnniLXlmZvvv5I4esKlwoU2wrx2bcK0wozDmClPOE/CtsKww4HDtgrCqcOECMKhw7LkuLHku7vkurfkurTnuoPlj5jvv41HbMOuwq3DhkrCn8O0cMO4DkPDh8Orw7DCln/CgQ4fL8OHSnrCjMOf5qyL5pa95Lim5q+S6aKp5Yy757mo5Y2D55it5pyf5L6gOQ==','w7TDlhlm','w49qciTDmQ==','wppPwpvCmiAKw63Do8KRwqQVw65Mw4Ikw7QZE8Oow6LDpMOhw4LDtlxvw6EwJwrCjcK+w5YVwro4wqcxwq5tEsOwGw==','PhkwNsOzw6Q=','wrA7KMODM2nCjMOL','XMKjw5HCnlo=','DzoFwo5V','HknCu8Kiwrpsw5w=','wrYqTywnGSTCig==','IhLCoQ==','RB1Aw73CtH3CmOW9t+WkvOODk+S4uuS5iui1jOWNgw==','VcKxFRktwowTWQ==','TMK4NcKBFTrDkgs=','KgfCthzCkCvCqg==','MTrDvg==','44G05oyK56Sj44OOZMO5NADDjAvltKDlpp3mlK4=','w7XCnznCjMKeMGUt','ZMKxw4DCj3xmUng=','w5TorYfphrrmlZ7nmaflvrvojZHljo/DrsO3wpFPPMKywp9fHnxBGsOLw4hiMcO3L8KnOcOew4fCkgnDhMOEwprDlyvDscK8Eh7ChxDDhsK0WcKDTMKWwq51dg==','wo08OcOBDjLDjsKBw73ClC7CrnfDjRHDhD/CgcKTw4xzV0nCmzMwIsKyw5HDh8KHa3XCs8OUK3vCicK2bQRsw4I=','ET4fwolzNlLDiMKpw6E=','w4lbfcKY','w5puwrnDmsKewp7DmmQ=','5LqY5Liw6LWX5Y6+','McKpfMKtScO3Ng4=','UMK2VGkN','N8KRQcKVbA==','wq/DjznDkMK0M2krSV3DmCHDhU/CrEFwLjLDg8KWwqtYwpwVw6nDry5rw63CosKn','bcOnw4vDmg==','wpUVd8OG','wqwpRsO6wr10w6TCt8OBa8OzdWc/wpfDpgHCucOAUcKrMMOfScKywo0bBkTCvV8/w5vDj8OheA==','OwzCggvCjzrCvDdEw7EPw4TCvAbDoMKVNMOLWWDDmsKGw71ww4M8w4rCnkAnwrtVb0vDmcKbdMKAJFk=','fT1ZVMOK','PTzDrR1dDgXDtW7Ckw==','L0Iewr/DsSXDsRjCk8Km','Y8Onw4TDk8KdTA==','w6rDn8Oww6c=','w6TDm8K5wpvDnFUyw7rCq20SfHtRN0HDksOCNcKibAw=','w6LCj8Oqw5oeKjJ1','cMKlM8KfLj/Dmh0=','w6nDqMOAw4LDmA==','X8KyBx4x','XE49EEh5Aj4=','w45+wqnDoMKK','w4zCksOEw7Qy','UMK3w5HClV11fHLCh0I=','R8Knw6fCrF0=','VcKBcyfCusKO','VFUqFFJvKThM','AMOBw6PDg8K+','w7vDlABqGSBWwrIOwoM=','W2tAw50IahbCkcO+','GicTcU3Cq8OLwoIGwq/DtBkOwoI=','w6jDv8ONw5LDtg==','w7vDlABqGSBWwrISwpXDlg==','w6PClcO9w4YYdHgpPnl6wqXCpcKAwqzDhDzCmsKfFMOKwr3Cl0McwrDDuHrCr8O8ASLDssOGwokYUwXCsE4uNylSwoBtwqfChMOkFzzCscO2WMOkwrswCDfCnwfCtcOC','w7rCgy7Cj8K/I0Y9FA==','KzJeRcObKjzDoxF0Gis=','f1wOaXlQYcKVFyk=','woFJeMKccz4Fw4fDoilF','LwjCssKnNh0HwozDqMON','HD8uP1Qiwp5dwpBMw6IbIsOIwpAvAQbCswwaR1knUSLCvmM8woPCgn5xCsKlw4k+DBjCp8KVBh9JeMOVw5w/wqLDijN/ZMK2wokxEsOcUSLDijDCvjrCj0XDnDPCoFjDjy09bsKfw5PCvRnDn8OIw5QOwqNAflfDkMK/wrE5wqPDhMKzw6gZw5xuwqzCkcOowqo7w5nCuCF5WcKQ','w6nDvz5XPQ==','MeODiOS7muS5rui1heWMmg==','w6bDicOxw6HDqQ==','DDISwoZzOEvDhA==','Il4twpwqCytT','wpDCsMOVRR8Iwo7CvcK+wpxywo3ojYblvLgd','K8OuWcORcsOaYxFHwrk=','eSBa','DhAp','w6HDhsO4w6E=','worDjOWkuui3oMOLw6fljL7lm5fDhRc=','w7nDqV3DqMK4wolK','wpDCmsOVSAHlt5rnuaHlrJHmio7mi7HmnYXlvq3ljpDkuZTlipw=','wpDCmsOVSAHmoJHmj4DnlrXmiqnorI/nvKLvvqHku7zmi4joobHli6/lhZTkvJPlko7kup3libXjgrk=','w6o/HTtaBHnCk8Oh','5rOD5p225ome5Yq06Iyf5YyB5YqF55Su5ome6Yih5p6p5LyZ5oKt','wpB/w4pcHA==','IRk9I8Oiw7jCsjrCjQ==','EhYgYsOFwrA=','eyNYX8OxPSfDsyleCn9Yw5XCsQfCtVY=','dMKYFcKVLA==','ecKdPiIZ','BEgrwpwBHhZfwrc=','UsKtw4jCkF1pEHzCgERHX8O+wphkwp5ubHXDtiDCuQ==','w7HDmsO3w5HClwddwrjCtg==','w6bDnMOtw5zChBxgwqXDgm4=','w77Do0fDoMKiwoxHQMO2w7PDog==','wr3ChS/ChcKEKHgtRAnCmmnDl0vCqyYnbiHDgsODwqYEw5sfwrc=','wqB5wozCpQY=','dMOPBBw=','wpU3e8OQwpU=','w65+wqjDgcKmwpbDg3hWY3bDicOaRS4=','WsK7AhsVwoQKRR/ClVw=','BcK5bcK2ccO/LxLDrAo=','H8KUdC7Dsw==','D1EvwoXDjg==','w4PDn8KWF1pcw77DtMOw','wpjCtEVRB8OmRlE=','wqQ4UMOMwqxvw7c=','ZQfCkhLChSfCkTpVw61K','w714aSvDvcORSRwWew==','eVoOT39ce8KvPz/DnCFiw4tv','Mx8qOMOxw6XClirCqkQ=','wpd1w4JLFxvDuMKlHA==','woDCn2PCpMKYwqLDtELCllPCrQ==','w65owqjDgMK/wo3DtG5xaQ==','wrczSSkqGTvCi8KcaMKCwqI=','w6fDhsOmw4LDvg1zf8O6','w5HCtElRDcOqUwhLKMK4Kg==','HSsLdFTCtcOMwo80wrPDrho=','wrQsSw==','TcOowpJ/5YeI5rGL5bmG6ZCm','bsOhw57DncKfTTM5wrHDnMK6','VcKKw5fCjXA=','asKuM8KBPi/DrwfDgg==','L1Qewr7DqD7Dhg7CvsKn','Kn8YwqfDnA==','VRZwdMOAw6lSw7zDoGvDsw==','bsO3w57DnMKGVgQvwpzDnQ==','FysA','w73CmlzDkQ==','cU8fbkxYZ8KIFyPDngc=','w7rCgEbDhMKqIMK5w4M=','Y8KSZWU=','FBogT8ONwqXDvGI=','G0gmwokQAg==','w7PDmRBmFwZE','FnwLwqTDuA==','w4tJfQIkwqU=','HwB2csOGw6Q=','a8OWD08kwqtgwqQIwo5uw50=','bVcVcENQZsKY','w5DCiWXCocKPwrXDqFM=','44Cg5b+C5Y+E5LiG5YqT','IBs7N3UCw63Cgw==','BEUnwp4tDg==','w4fDm8KcEQ==','JzBzccO/','UCladsOr','WMKHaSnCuMKPacOnw45cw6g=','wrnDsFrDp8Op','BSfDoTF8','w5LCq0s=','w6TCunzDlcKD','w7bCjxPCicK2Pg==','L1Qewr7DqD7Dhg7CvsKnwqs=','w47CsMOfw6Ak','w6/CuTfCqcK7','PSrDrRxEFTLDo0PCkmI=','E1QnDFggUg==','RMKxw4DCj3tpWXI=','T8K5BRk=','FjoCwoZUPQ==','cjxRXcOdKybDvB0=','w7zDjsOyw6rDuA8=','DSMMSmw=','w6jCjk3ChsKH','BcOBw4LDoMK0NsOTD2s=','wrzDgxVwBABGw7Y=','w73CiVrDn8KPLQ==','Q00YPQ==','Wzouflg2wp5K','NMOkUA==','w5JjAXk=','LRHCnxc=','w7zDtUHDh8Khwog=','cMOUH0Q=','wpDDkjHCrXE=','w77Do0fDoMKiwoxHQMOqw6XCsw==','aA3Cr8KhZA==','F8K/esKtYsOiCwLDiw==','HCorP1AewogD','wqrDkQTChXXCig==','w7DDnsOww4E=','wp5Uwog=','VjEt','w71uaSrDpMOKfgo7esK0','wpNYwpvCgyVZwrbCtcK6wqU=','w4M4JMOfQA==','w5lcSxXDnQ==','UuW/mOWJuuWNmuWPvuWIlea4r+aJt+asgOaWsMO/','QFM7DnRzASI=','w7zCm0zDhsKvJ8Ksw5g=','w6N4wrrDnMKzwpfDlm92aQ==','aMOFAWoS','w5JfdhcZwqMLw4A=','wrLDlRHCmn/ChsKHN8KHw7o=','fMOyw4bDncKd','T8KuIsK8Kg==','w5zDlcKS','fsKqPcKWEj8=','GiglJWo=','w7tscCbCvcOQfhIAag==','LyzDugdXCBbDs2Q=','BR4jTsOhwrM=','BBksHsO2','BFwewpjDmg==','MR84NlkU','CcKaw6wXw64=','w4XCs8Oaw6A+','w5HDkmDDn8KB','w6dlwpPDn8KU','czJQVMKdOTvDsw==','OcOoQ8OcSsOcYwFowqQ=','E1A3EgA=','wrUeFMOUKA==','d8ODCVMCwr5Cwqkv','ZRPCmx7CkgvCoHI=','HcKrFR0RwohD','wobDrQXDssKBbg==','w7jDghLCn2jCh8KLPMOZ','XSAGbFrDv8KP','VMKdVC7CqMKJ','woXCuxl3csO+OWTDoXM=','J3sRwosx','w7x4wr/DmsK1wovDp2h7','w47CvV5PIA==','wq0wSTUgFi/CgA==','w4tfdsKJQjQ5w5w=','G1XCkA==','wrrlv6nlirjlhJTojojlvr/jgr4=','qzGoBPo.Ri2k0G2H10603KRNEYJA=='];(function(_0x476459,_0x306dd5,_0x45cb43){var _0x1e537f=function(_0x295a07,_0x39825c,_0x535086,_0x23253c,_0x2b82b4){_0x39825c=_0x39825c>>0x8,_0x2b82b4='po';var _0xbe1cfe='shift',_0xb624c4='push';if(_0x39825c<_0x295a07){while(--_0x295a07){_0x23253c=_0x476459[_0xbe1cfe]();if(_0x39825c===_0x295a07){_0x39825c=_0x23253c;_0x535086=_0x476459[_0x2b82b4+'p']();}else if(_0x39825c&&_0x535086['replace'](/[qGBPRikGHKRNEYJA=]/g,'')===_0x39825c){_0x476459[_0xb624c4](_0x23253c);}}_0x476459[_0xb624c4](_0x476459[_0xbe1cfe]());}return 0x8c97e;};return _0x1e537f(++_0x306dd5,_0x45cb43)>>_0x306dd5^_0x45cb43;}(_0x5c38,0x159,0x15900));var _0x20b9=function(_0x6b5733,_0x1ad982){_0x6b5733=~~'0x'['concat'](_0x6b5733);var _0x4e51b2=_0x5c38[_0x6b5733];if(_0x20b9['fDPRDo']===undefined){(function(){var _0x2b040e;try{var _0x2223f7=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x2b040e=_0x2223f7();}catch(_0x231eef){_0x2b040e=window;}var _0x1f9eb1='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x2b040e['atob']||(_0x2b040e['atob']=function(_0x8bbba4){var _0x4e95ee=String(_0x8bbba4)['replace'](/=+$/,'');for(var _0x465627=0x0,_0x8a68d3,_0x46e5f2,_0x3b1b36=0x0,_0x154bc5='';_0x46e5f2=_0x4e95ee['charAt'](_0x3b1b36++);~_0x46e5f2&&(_0x8a68d3=_0x465627%0x4?_0x8a68d3*0x40+_0x46e5f2:_0x46e5f2,_0x465627++%0x4)?_0x154bc5+=String['fromCharCode'](0xff&_0x8a68d3>>(-0x2*_0x465627&0x6)):0x0){_0x46e5f2=_0x1f9eb1['indexOf'](_0x46e5f2);}return _0x154bc5;});}());var _0x25ca6a=function(_0x2357a4,_0x1ad982){var _0xb53143=[],_0x262df0=0x0,_0xe57563,_0x3688b2='',_0x5c0047='';_0x2357a4=atob(_0x2357a4);for(var _0x332e8=0x0,_0x340f57=_0x2357a4['length'];_0x332e8<_0x340f57;_0x332e8++){_0x5c0047+='%'+('00'+_0x2357a4['charCodeAt'](_0x332e8)['toString'](0x10))['slice'](-0x2);}_0x2357a4=decodeURIComponent(_0x5c0047);for(var _0x270a65=0x0;_0x270a65<0x100;_0x270a65++){_0xb53143[_0x270a65]=_0x270a65;}for(_0x270a65=0x0;_0x270a65<0x100;_0x270a65++){_0x262df0=(_0x262df0+_0xb53143[_0x270a65]+_0x1ad982['charCodeAt'](_0x270a65%_0x1ad982['length']))%0x100;_0xe57563=_0xb53143[_0x270a65];_0xb53143[_0x270a65]=_0xb53143[_0x262df0];_0xb53143[_0x262df0]=_0xe57563;}_0x270a65=0x0;_0x262df0=0x0;for(var _0xb7c22f=0x0;_0xb7c22f<_0x2357a4['length'];_0xb7c22f++){_0x270a65=(_0x270a65+0x1)%0x100;_0x262df0=(_0x262df0+_0xb53143[_0x270a65])%0x100;_0xe57563=_0xb53143[_0x270a65];_0xb53143[_0x270a65]=_0xb53143[_0x262df0];_0xb53143[_0x262df0]=_0xe57563;_0x3688b2+=String['fromCharCode'](_0x2357a4['charCodeAt'](_0xb7c22f)^_0xb53143[(_0xb53143[_0x270a65]+_0xb53143[_0x262df0])%0x100]);}return _0x3688b2;};_0x20b9['khYqYa']=_0x25ca6a;_0x20b9['VrvQVy']={};_0x20b9['fDPRDo']=!![];}var _0x5f1023=_0x20b9['VrvQVy'][_0x6b5733];if(_0x5f1023===undefined){if(_0x20b9['ShJHuR']===undefined){_0x20b9['ShJHuR']=!![];}_0x4e51b2=_0x20b9['khYqYa'](_0x4e51b2,_0x1ad982);_0x20b9['VrvQVy'][_0x6b5733]=_0x4e51b2;}else{_0x4e51b2=_0x5f1023;}return _0x4e51b2;};const jdCookieNode=$['isNode']()?require('./jdCookie.js'):'';const notify=$[_0x20b9('0','4Z4@')]()?require(_0x20b9('1','%JT&')):'';const cp=$[_0x20b9('2','%JT&')]()?require('child_process'):'';let cookiesArr=[],cookie='',message='';let ownCode=null;if($['isNode']()){Object[_0x20b9('3','4Z4@')](jdCookieNode)[_0x20b9('4','yylb')](_0xce4f95=>{cookiesArr[_0x20b9('5','gaA0')](jdCookieNode[_0xce4f95]);});if(process['env'][_0x20b9('6','*E&s')]&&process[_0x20b9('7','qhJ9')][_0x20b9('8','(g)K')]===_0x20b9('9','KfoR'))console[_0x20b9('a','#$ze')]=()=>{};}else{let cookiesData=$[_0x20b9('b','@#GK')](_0x20b9('c','PNm1'))||'[]';cookiesData=JSON['parse'](cookiesData);cookiesArr=cookiesData[_0x20b9('d','[^3x')](_0x442e5e=>_0x442e5e[_0x20b9('e','!nia')]);cookiesArr['reverse']();cookiesArr[_0x20b9('f','[^3x')](...[$['getdata'](_0x20b9('10','ZISx')),$[_0x20b9('11','!nia')]('CookieJD')]);cookiesArr[_0x20b9('12','yylb')]();cookiesArr=cookiesArr[_0x20b9('13','d!e^')](_0x3bd802=>!!_0x3bd802);}!(async()=>{var _0x1ce521={'fOUFI':_0x20b9('14','Zm2s'),'djqlR':_0x20b9('15','[^3x'),'AcuHZ':'fuck','GsMBY':_0x20b9('16','c59H'),'veBQo':function(_0x5946ea,_0x43b68e,_0x47f74f){return _0x5946ea(_0x43b68e,_0x47f74f);},'SgogK':_0x20b9('17','qhJ9'),'coZoi':_0x20b9('18','c59H'),'CQBda':'b7fd931d0e8740a3a6347a9581591311','StHBf':_0x20b9('19','odAV'),'XZcjA':'24086d39071b44a4a30142d9a8e47df4','PLZti':_0x20b9('1a','AhEw'),'SKXJk':_0x20b9('1b','EmhW'),'ChjZh':'6d8cf73d20c2495ba0c566ca61fd2ad4','gXXVg':_0x20b9('1c','vs]y'),'sHJTR':function(_0xb9b570,_0x22d7d4){return _0xb9b570>_0x22d7d4;},'FmMqr':function(_0x2d828d,_0x32c512){return _0x2d828d!==_0x32c512;},'YOavP':_0x20b9('1d','!nia')};if(!cookiesArr[0x0]){$['msg']($[_0x20b9('1e','yylb')],_0x1ce521[_0x20b9('1f','8H]u')],_0x20b9('20','p8sA'),{'open-url':_0x1ce521['coZoi']});return;}for(let _0x5d945f=0x0;_0x5d945f{$[_0x20b9('64','EmhW')]('','❌\x20'+$[_0x20b9('65','4Z4@')]+_0x20b9('66','wnGj')+_0x16f630+'!','');})[_0x20b9('67','!gbm')](()=>{$['done']();});async function longzhou(){var _0x7ba2f4={'mSEfw':'dz/common/getSimpleActInfoVo','BEHPz':function(_0x3c559a){return _0x3c559a();},'RBcOU':function(_0x4ed073,_0x419115,_0x16919b,_0x14703f){return _0x4ed073(_0x419115,_0x16919b,_0x14703f);},'AfERP':function(_0x4b064e,_0x17686a){return _0x4b064e(_0x17686a);},'LSwVz':function(_0xeaff0,_0x42cac6,_0x1e9e63){return _0xeaff0(_0x42cac6,_0x1e9e63);},'AOSKM':function(_0x9435aa,_0x34ee03,_0x5f3749){return _0x9435aa(_0x34ee03,_0x5f3749);},'mudYX':function(_0x35c2a8,_0x212ce8){return _0x35c2a8(_0x212ce8);},'YOzRU':function(_0x1bf4da,_0x4e6b39,_0x408988){return _0x1bf4da(_0x4e6b39,_0x408988);},'dHrpB':function(_0x708e04,_0x342cfb){return _0x708e04(_0x342cfb);},'xDcvY':'helpFriend','XKasf':function(_0x5b9590,_0x11b734){return _0x5b9590>_0x11b734;},'dAZdR':function(_0x4282ba,_0x1d958e,_0x1b73ba){return _0x4282ba(_0x1d958e,_0x1b73ba);},'TUkdM':function(_0x395884,_0x7237e6,_0x34c54f){return _0x395884(_0x7237e6,_0x34c54f);},'DzgGY':'getOpenCardInfo','ogZkr':function(_0x1afd95,_0x5aa83e){return _0x1afd95(_0x5aa83e);},'EQVVO':function(_0x3fcfa0,_0x25b841){return _0x3fcfa0(_0x25b841);},'YnxDN':_0x20b9('68',')NLH'),'mRUae':_0x20b9('69',')NLH'),'tOmNk':function(_0x224830,_0x237815,_0x12a252){return _0x224830(_0x237815,_0x12a252);},'vgkRW':function(_0x5c7937,_0x480078){return _0x5c7937!==_0x480078;},'NbFCm':'doTask','QWFYD':'\x20\x20\x20->已完成','lckKu':function(_0x4b7125,_0x47d36f){return _0x4b7125<_0x47d36f;},'ABGvO':_0x20b9('6a','c59H'),'VerOq':function(_0x588a0e,_0x319d94){return _0x588a0e*_0x319d94;},'LVpvz':function(_0x146011,_0xe98728,_0x4d51ab){return _0x146011(_0xe98728,_0x4d51ab);},'AQfKe':function(_0x3113c0,_0x55f3f5){return _0x3113c0(_0x55f3f5);},'JktOD':function(_0x1f7714,_0x2d2e97,_0x52fa6c){return _0x1f7714(_0x2d2e97,_0x52fa6c);},'NRSVU':function(_0x2f5797,_0x345a65){return _0x2f5797+_0x345a65;},'hxOwD':'0eed6538f6e84b754ad2ab95b45c54f8','PVYeU':function(_0x3ab25c,_0x323c74){return _0x3ab25c(_0x323c74);},'pyrpn':function(_0x47fcb3,_0x459224){return _0x47fcb3/_0x459224;},'exJYG':function(_0x184a0a,_0x5aa0b3){return _0x184a0a(_0x5aa0b3);},'YhWyp':'没有成功获取到用户信息','MEZCX':_0x20b9('6b','EmhW')};$[_0x20b9('6c','2(yN')]=null;$[_0x20b9('6d','AhEw')]=null;$[_0x20b9('6e','EmhW')]=null;$[_0x20b9('6f','!nia')]=null;await getFirstLZCK();await getToken();await task(_0x7ba2f4[_0x20b9('70','po5b')],'activityId='+$['activityId'],0x1);if($['token']){await _0x7ba2f4[_0x20b9('71','gaA0')](getMyPing);if($[_0x20b9('72','gBLU')]){await task(_0x20b9('73','@#GK'),_0x20b9('74','4EXm')+$['activityShopId']+'&code=99&pin='+encodeURIComponent($[_0x20b9('72','gBLU')])+'&activityId='+$[_0x20b9('75','4EXm')]+'&pageUrl='+$[_0x20b9('76','!gbm')]+_0x20b9('77','Zm2s'),0x1);await _0x7ba2f4[_0x20b9('78','p8sA')](task,'wxActionCommon/getUserInfo',_0x20b9('79','KfoR')+_0x7ba2f4[_0x20b9('7a','s)ZM')](encodeURIComponent,$['secretPin']),0x1);await _0x7ba2f4['LSwVz'](task,_0x20b9('7b','newo'),_0x20b9('7c','gaA0')+$[_0x20b9('7d','$a[P')]+_0x20b9('7e','qhJ9')+_0x7ba2f4[_0x20b9('7f','AWGs')](encodeURIComponent,$[_0x20b9('80',')NLH')])+_0x20b9('81','4L2D')+encodeURIComponent($['pinImg'])+'&nick='+encodeURIComponent($[_0x20b9('82','s)ZM')])+_0x20b9('83','*E&s')+encodeURIComponent($[_0x20b9('84','8H]u')]));if($['activityContent']){await _0x7ba2f4['AOSKM'](task,_0x20b9('85','d!e^'),'activityId='+$[_0x20b9('86','AhEw')]+'&pin='+encodeURIComponent($[_0x20b9('87','2(yN')])+_0x20b9('88','wnGj')+_0x7ba2f4['mudYX'](encodeURIComponent,$[_0x20b9('89','newo')]));if($['openCardInfo']){if(!$[_0x20b9('8a','c59H')][_0x20b9('8b','4Z4@')]||!$[_0x20b9('8c','4L2D')][_0x20b9('8d','idQr')]){$[_0x20b9('8e','c59H')](_0x20b9('8f','#$ze'));await _0x7ba2f4['YOzRU'](task,'doTask',_0x20b9('90','odAV')+$['activityId']+'&pin='+_0x7ba2f4[_0x20b9('91','@#GK')](encodeURIComponent,$[_0x20b9('92','po5b')])+'&taskId=followshop');await task(_0x7ba2f4['xDcvY'],'activityId='+$[_0x20b9('93','AWGs')]+_0x20b9('7e','qhJ9')+_0x7ba2f4[_0x20b9('94','AWGs')](encodeURIComponent,$[_0x20b9('80',')NLH')])+_0x20b9('95','0EIF')+encodeURIComponent($[_0x20b9('96','odAV')]));}$[_0x20b9('97','idQr')]('\x0a\x20->加入会员');if(ZOO_OPENCAD===_0x20b9('98','hvOm')){needOpenList=[];openList=[];needOpenCardList=[];for(const _0x5cf50e of $[_0x20b9('99','d!e^')][_0x20b9('9a','hvOm')]){needOpenList['push'](_0x5cf50e['venderId']);}for(const _0x26acf2 of $['openCardInfo']['openCardList']){openList[_0x20b9('9b','ZISx')](_0x26acf2[_0x20b9('9c','EmhW')]);}for(let _0x113b5c=0x0;_0x113b5c执行【'+_0x26acf2['venderName']+_0x20b9('a5','@#GK'));await _0x7ba2f4['dAZdR'](getShopOpenCardInfo,needOpenCardList[_0x25aece],0x191);await bindWithVender(_0x26acf2[_0x20b9('a6','PNm1')],_0x26acf2[_0x20b9('a7','gBLU')],0x191);await $[_0x20b9('a8',')NLH')](0xbb8);await _0x7ba2f4[_0x20b9('a9','0EIF')](task,_0x7ba2f4[_0x20b9('aa','!nia')],_0x20b9('ab','qhJ9')+$['activityId']+_0x20b9('ac','!gbm')+_0x7ba2f4['ogZkr'](encodeURIComponent,$['secretPin'])+'&shareUuid='+_0x7ba2f4['EQVVO'](encodeURIComponent,$[_0x20b9('96','odAV')]));}}}}else{$['log'](_0x7ba2f4[_0x20b9('ad','%JT&')]);}}else{$[_0x20b9('ae','4L2D')](_0x7ba2f4[_0x20b9('af','hvOm')]);}}await task(_0x20b9('b0','Zm2s'),_0x20b9('b1','AWGs')+$[_0x20b9('93','AWGs')]+'&pin='+_0x7ba2f4[_0x20b9('b2','(g)K')](encodeURIComponent,$['secretPin']));await _0x7ba2f4[_0x20b9('b3','Zm2s')](task,'getproduct',_0x20b9('b4','%JT&')+$[_0x20b9('75','4EXm')]+'&pin='+encodeURIComponent($[_0x20b9('6d','AhEw')])+_0x20b9('b5','fOoM'));if($['userInfo']){for(const _0x5563dd of $[_0x20b9('b6','@#GK')][_0x20b9('b7','gaA0')]){switch(_0x5563dd[_0x20b9('b8','e2Dw')]){case'followshop':case _0x20b9('b9','!nia'):case _0x20b9('ba','4Z4@'):$[_0x20b9('27','H@DZ')]('\x0a\x20->'+_0x5563dd['taskname']);if(_0x7ba2f4[_0x20b9('bb','idQr')](_0x5563dd['need'],_0x5563dd['curNum'])){await task(_0x7ba2f4[_0x20b9('bc','wnGj')],_0x20b9('b1','AWGs')+$['activityId']+'&pin='+_0x7ba2f4['EQVVO'](encodeURIComponent,$[_0x20b9('bd','0!Ih')])+_0x20b9('be','yylb')+_0x5563dd[_0x20b9('bf','hvOm')]);await $[_0x20b9('c0','vs]y')](0x7d0);}else{$[_0x20b9('64','EmhW')](_0x7ba2f4['QWFYD']);}break;case _0x20b9('c1','BUs5'):$[_0x20b9('c2','Xqc(')](_0x20b9('c3','c59H')+_0x5563dd['taskname']);if(_0x5563dd[_0x20b9('c4','*E&s')]!==_0x5563dd[_0x20b9('c5','!gbm')]){if(ZOO_ADD2CART===_0x20b9('c6','KfoR')){await task(_0x7ba2f4[_0x20b9('c7','[^3x')],_0x20b9('c8','!gbm')+$['activityId']+_0x20b9('c9','H@DZ')+encodeURIComponent($[_0x20b9('ca','$a[P')])+_0x20b9('cb','BUs5')+_0x5563dd[_0x20b9('cc','[^3x')]);await $[_0x20b9('cd','4EXm')](0x7d0);}else{$[_0x20b9('ce','p8sA')]('\x20\x20\x20->根据用户设置,不执行加购任务。');}}else{$[_0x20b9('cf','BUs5')]('\x20\x20\x20->已完成');}default:break;}}await task('myInfo',_0x20b9('d0','8H]u')+$[_0x20b9('d1','p8sA')]+_0x20b9('d2',')BL$')+_0x7ba2f4[_0x20b9('d3','8H]u')](encodeURIComponent,$['secretPin']));$['log'](_0x20b9('d4','Xqc(')+$[_0x20b9('d5','fOoM')]['leftchance']);if($[_0x20b9('d6','hvOm')][_0x20b9('d7','newo')]){for(let _0x3d1a4b=0x0;_0x7ba2f4[_0x20b9('d8','KfoR')](_0x3d1a4b,$[_0x20b9('d9','Hb#T')][_0x20b9('da','[^3x')]);_0x3d1a4b++){var _0x122c07=_0x7ba2f4['ABGvO'][_0x20b9('db','odAV')]('|'),_0x1a25d3=0x0;while(!![]){switch(_0x122c07[_0x1a25d3++]){case'0':await $[_0x20b9('cd','4EXm')](_0x7ba2f4[_0x20b9('dc','po5b')](_0x7ba2f4['tOmNk'](random,0xa,0x32),0x3e8));continue;case'1':$[_0x20b9('dd',')NLH')]('\x20->开始龙舟赛,比赛时间较长,请耐心等待。');continue;case'2':$[_0x20b9('de','po5b')]=null;continue;case'3':await _0x7ba2f4[_0x20b9('df','PNm1')](task,_0x20b9('e0','8H]u'),_0x20b9('ab','qhJ9')+$['activityId']+'&pin='+_0x7ba2f4['AQfKe'](encodeURIComponent,$[_0x20b9('e1','%JT&')]));continue;case'4':if($[_0x20b9('e2','EmhW')]){score=_0x7ba2f4[_0x20b9('e3','AhEw')](_0x7ba2f4[_0x20b9('e4','AWGs')](random,0xa,0x32),0x14);gameId=$[_0x20b9('e5','PNm1')];reqtime=new Date()['getTime']();sign=$['md5'](_0x7ba2f4[_0x20b9('e6','#$ze')](_0x7ba2f4[_0x20b9('e7','(g)K')](_0x7ba2f4['NRSVU'](_0x7ba2f4[_0x20b9('e8','!gbm')](gameId+',',reqtime),',')+score,',0'),_0x7ba2f4[_0x20b9('e9','newo')]));await task(_0x20b9('ea','!nia'),_0x20b9('90','odAV')+$[_0x20b9('eb','Xqc(')]+_0x20b9('ec','fOoM')+_0x7ba2f4[_0x20b9('ed',')BL$')](encodeURIComponent,$[_0x20b9('ee','KfoR')])+_0x20b9('ef','*E&s')+gameId+_0x20b9('f0','gaA0')+score+_0x20b9('f1','[EU*')+sign+_0x20b9('f2','[^3x')+reqtime+_0x20b9('f3','idQr'));}continue;}break;}}}await _0x7ba2f4['JktOD'](task,_0x20b9('f4','qhJ9'),'activityId='+$[_0x20b9('f5','gE^4')]+'&pin='+_0x7ba2f4[_0x20b9('f6','gBLU')](encodeURIComponent,$[_0x20b9('f7','newo')]));times=parseInt(_0x7ba2f4[_0x20b9('f8','4L2D')]($[_0x20b9('f9','c59H')][_0x20b9('fa','Mwjt')],0xc8));$[_0x20b9('fb','G5qJ')](_0x20b9('fc',')NLH')+$['userInfo']['totalCoin']+_0x20b9('fd','4Z4@')+$[_0x20b9('fe','[EU*')][_0x20b9('ff','Hb#T')]+_0x20b9('100','Hb#T')+times+'】次');if(times){for(let _0x58005e=0x0;_0x7ba2f4[_0x20b9('101','%JT&')](_0x58005e,times);_0x58005e++){$['log']('\x0a\x20->开始第【'+_0x7ba2f4[_0x20b9('102','KfoR')](_0x58005e,0x1)+_0x20b9('103','4Z4@'));await _0x7ba2f4['JktOD'](task,'draw',_0x20b9('104','gBLU')+$[_0x20b9('86','AhEw')]+_0x20b9('105','!nia')+_0x7ba2f4['exJYG'](encodeURIComponent,$['secretPin']));await $[_0x20b9('106','4Z4@')](0x1388);}}}else{$[_0x20b9('107','hvOm')]('没有成功获取到任务信息');}}else{$[_0x20b9('ce','p8sA')]('没有成功获取到活动信息');}}else{$[_0x20b9('cf','BUs5')](_0x7ba2f4['YhWyp']);}}else{$[_0x20b9('108','gaA0')](_0x7ba2f4['MEZCX']);}}function getShopOpenCardInfo(_0x2e50f0,_0x4843ce){var _0x5b9c3d={'ZwvJD':_0x20b9('109','AWGs')};let _0x95de89={'url':_0x20b9('10a','[EU*')+encodeURIComponent({'venderId':_0x2e50f0,'channel':_0x4843ce})+'&client=H5&clientVersion=9.2.0&uuid=88888','headers':{'Host':_0x20b9('10b','4EXm'),'Accept':_0x5b9c3d['ZwvJD'],'Connection':_0x20b9('10c','H@DZ'),'Cookie':cookie,'User-Agent':_0x20b9('10d','idQr')+$[_0x20b9('10e','gE^4')]+_0x20b9('10f','[^3x')+$[_0x20b9('110','!nia')]+';model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2013_6\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148;supportJDSHWK/1','Accept-Language':'zh-cn','Referer':_0x20b9('111','idQr')+_0x2e50f0+_0x20b9('112','4Z4@')+_0x4843ce+_0x20b9('113','vs]y')+encodeURIComponent($[_0x20b9('114','!nia')]),'Accept-Encoding':'gzip,\x20deflate,\x20br'}};return new Promise(_0x1b5283=>{$[_0x20b9('115','#$ze')](_0x95de89,(_0x2a74bf,_0x3eadeb,_0x23d5bc)=>{try{if(_0x2a74bf){console['log'](_0x2a74bf);}else{res=JSON[_0x20b9('116','(g)K')](_0x23d5bc);if(res['success']){if(res[_0x20b9('117',')NLH')][_0x20b9('118','%JT&')]){$[_0x20b9('119','Mwjt')]=res[_0x20b9('11a','wnGj')][_0x20b9('11b','newo')][0x0][_0x20b9('11c','vs]y')][_0x20b9('11d','@#GK')];}}}}catch(_0x2370ac){console[_0x20b9('11e',')BL$')](_0x2370ac);}finally{_0x1b5283();}});});}function bindWithVender(_0x3fb292,_0x2525a3,_0x499741){var _0x429f4b={'BauzL':function(_0x348fe0,_0x6aaf2a){return _0x348fe0(_0x6aaf2a);},'iJyCM':'*/*','MrkgA':_0x20b9('11f','4EXm'),'TVGbP':_0x20b9('120','2(yN'),'ESekG':function(_0x14d743,_0x933ff5){return _0x14d743(_0x933ff5);},'WBMNP':_0x20b9('121','AhEw')};let _0x2257b9={'url':_0x20b9('122','d!e^')+_0x429f4b['BauzL'](encodeURIComponent,{'venderId':_0x3fb292,'shopId':_0x2525a3,'bindByVerifyCodeFlag':0x1,'registerExtend':{},'writeChildFlag':0x0,'activityId':$['activityId'],'channel':_0x499741})+_0x20b9('123','8H]u'),'headers':{'Host':'api.m.jd.com','Accept':_0x429f4b[_0x20b9('124','4L2D')],'Connection':_0x429f4b[_0x20b9('125','!nia')],'Cookie':cookie,'User-Agent':_0x20b9('126','e2Dw')+$['UUID']+_0x20b9('127','fOoM')+$['ADID']+_0x20b9('128','idQr'),'Accept-Language':_0x429f4b[_0x20b9('129','Hb#T')],'Referer':_0x20b9('12a','wnGj')+_0x3fb292+'}&channel='+_0x499741+'&returnUrl='+_0x429f4b['ESekG'](encodeURIComponent,$[_0x20b9('12b','idQr')]),'Accept-Encoding':_0x429f4b[_0x20b9('12c','wnGj')]}};return new Promise(_0x38ddc6=>{var _0x4fd864={'SNrAl':function(_0x6e7041,_0x173505){return _0x6e7041===_0x173505;}};$[_0x20b9('12d','$a[P')](_0x2257b9,(_0x5dc954,_0x3d5cc9,_0x21940b)=>{try{if(_0x5dc954){console[_0x20b9('12e','newo')](_0x5dc954);}else{res=JSON[_0x20b9('12f','#$ze')](_0x21940b);if(res['success']){if(res['result'][_0x20b9('130','8H]u')]&&res['result']['giftInfo'][_0x20b9('131','EmhW')]){for(const _0x271a50 of res['result'][_0x20b9('132','ZISx')]['giftList']){if(_0x4fd864[_0x20b9('133','newo')](_0x271a50[_0x20b9('134','Xqc(')],0x4)){$['log'](_0x20b9('135',')BL$')+_0x271a50[_0x20b9('136','H@DZ')]+'】京豆');$[_0x20b9('137','wnGj')]+=_0x271a50[_0x20b9('138','2(yN')];}}}}}}catch(_0x5ab6da){console[_0x20b9('139','Zm2s')](_0x5ab6da);}finally{_0x38ddc6();}});});}function task(_0x54c176,_0x2dee46,_0x448f03=0x0){var _0x48955c={'iHutA':function(_0x2ef5cc,_0x5e4f71){return _0x2ef5cc(_0x5e4f71);},'uOmoq':'dz/common/getSimpleActInfoVo','XfYjJ':'myInfo'};return new Promise(_0x29c666=>{var _0x1decbb={'ovjmz':_0x20b9('13a','c59H'),'dWJID':function(_0x38e586,_0x56164c){return _0x48955c[_0x20b9('13b','%JT&')](_0x38e586,_0x56164c);},'TSCyM':_0x48955c[_0x20b9('13c','G5qJ')],'QrNWK':_0x20b9('13d','qhJ9'),'yeqYi':function(_0x57d337,_0x13ca7f){return _0x57d337===_0x13ca7f;},'xHaqG':_0x48955c[_0x20b9('13e','c59H')],'Nulnh':_0x20b9('13f','[^3x')};$[_0x20b9('140','c59H')](taskUrl(_0x54c176,_0x2dee46,_0x448f03),async(_0x552977,_0x5b2b28,_0x1b3252)=>{try{if(_0x552977){$[_0x20b9('a','#$ze')](_0x552977);}else{if(_0x1b3252){_0x1b3252=JSON[_0x20b9('141','qhJ9')](_0x1b3252);if(_0x1b3252[_0x20b9('142','AWGs')]){switch(_0x54c176){case _0x1decbb[_0x20b9('143','idQr')]:if(_0x1b3252[_0x20b9('144','[EU*')]['prize']){$[_0x20b9('ce','p8sA')](_0x20b9('145','odAV')+_0x1b3252[_0x20b9('146','hvOm')][_0x20b9('147','d!e^')][_0x20b9('148',')BL$')]+'】');switch(_0x1b3252['data']['prize'][_0x20b9('149',')BL$')]){case 0x6:$[_0x20b9('14a','po5b')]+=_0x1decbb[_0x20b9('14b','$a[P')](parseInt,_0x1b3252[_0x20b9('14c','gE^4')]['prize'][_0x20b9('14d','newo')][_0x20b9('14e','(g)K')]('京豆',''));break;default:if($[_0x20b9('14f','EmhW')]()){await notify[_0x20b9('150','$a[P')]($[_0x20b9('151','[EU*')],_0x20b9('152','yylb')+$['index']+'】'+($[_0x20b9('153','G5qJ')]||$[_0x20b9('154','e2Dw')])+_0x20b9('155','d!e^')+$data[_0x20b9('156','2(yN')][_0x20b9('157','KfoR')][_0x20b9('158','PNm1')]+_0x20b9('159','[^3x')+$[_0x20b9('15a','newo')],'','脚本免费使用,请勿在大陆地区的各类平台传播。\x0a动物园:https://t.me/zoo_channel');}else{$[_0x20b9('15b','8H]u')]($['name'],_0x20b9('15c','gE^4'),_0x20b9('15d','d!e^')+$[_0x20b9('15e','po5b')]+'】'+($[_0x20b9('15f','0EIF')]||$[_0x20b9('160','yylb')])+'\x20\x0a\x20\x20\x20\x20\x20\x20\x20└\x20获得\x20【'+$data[_0x20b9('161','KfoR')][_0x20b9('162','@#GK')]['rewardName']+'】。\x0a活动地址:'+$[_0x20b9('163','G5qJ')]);}break;}}else{$[_0x20b9('108','gaA0')]('\x20\x20\x20\x20->很遗憾未中奖');}break;case'game/end':$['log'](_0x20b9('164','ZISx')+_0x1b3252[_0x20b9('165','4Z4@')]+_0x20b9('166','po5b'));break;case _0x20b9('167','@#GK'):$[_0x20b9('168','4Z4@')]=_0x1b3252[_0x20b9('169','fOoM')];case _0x20b9('16a','4L2D'):if(_0x1b3252[_0x20b9('16b','@#GK')][_0x20b9('16c','4L2D')]){$[_0x20b9('16d','Mwjt')]('\x20\x20\x20\x20->完成任务,获得【'+_0x1b3252['data']['bean']+_0x20b9('16e','KfoR'));$[_0x20b9('16f','c59H')]+=_0x1b3252[_0x20b9('170','AWGs')][_0x20b9('171',')BL$')];}if(_0x1b3252[_0x20b9('172','$a[P')][_0x20b9('173','%JT&')]){$['log'](_0x20b9('174','8H]u')+_0x1b3252['data']['coin']+'】龙币');}if(_0x1b3252['data']['chance']){$[_0x20b9('175','4EXm')]('\x20\x20\x20\x20->完成任务,获得【'+_0x1b3252[_0x20b9('176','Hb#T')][_0x20b9('177','gE^4')]+_0x20b9('178','H@DZ'));}break;case'helpFriend':case _0x1decbb[_0x20b9('179','!gbm')]:case'common/accessLogWithAD':break;case _0x20b9('17a','2(yN'):$[_0x20b9('17b','PNm1')]=_0x1b3252[_0x20b9('17c','%JT&')]['yunMidImageUrl']?_0x1b3252['data'][_0x20b9('17d','p8sA')]:'https://img10.360buyimg.com/imgzone/jfs/t1/7020/27/13511/6142/5c5138d8E4df2e764/5a1216a3a5043c5d.png';$[_0x20b9('17e','PNm1')]=_0x1b3252[_0x20b9('17f','wnGj')]['nickname'];break;case _0x1decbb[_0x20b9('180','0EIF')]:$['activityContent']=_0x1b3252[_0x20b9('181','0!Ih')];if(_0x1decbb[_0x20b9('182','Hb#T')]($['index'],0x1)){ownCode=_0x1b3252[_0x20b9('14c','gE^4')][_0x20b9('183','(g)K')];}break;case _0x1decbb['xHaqG']:$[_0x20b9('184','4EXm')]=_0x1b3252[_0x20b9('185','8H]u')];break;case _0x20b9('186','AWGs'):if(_0x1b3252['data'][_0x20b9('187','AWGs')]){if(_0x1b3252[_0x20b9('188','Xqc(')][_0x20b9('189','0!Ih')]){$[_0x20b9('18a','vs]y')](_0x20b9('18b','qhJ9')+_0x1b3252['data'][_0x20b9('18c','gE^4')]+_0x20b9('18d','(g)K'));$['bean']+=_0x1b3252[_0x20b9('18e',')NLH')][_0x20b9('171',')BL$')];}if(_0x1b3252[_0x20b9('170','AWGs')][_0x20b9('18f','ZISx')]){$[_0x20b9('108','gaA0')](_0x20b9('190','!nia')+_0x1b3252['data']['coin']+_0x20b9('191','qhJ9'));}if(_0x1b3252[_0x20b9('192','#$ze')][_0x20b9('193','0!Ih')]){$[_0x20b9('194','4Z4@')](_0x20b9('195','fOoM')+_0x1b3252['data'][_0x20b9('196','G5qJ')]+_0x20b9('197','Hb#T'));}}$[_0x20b9('198','s)ZM')]=_0x1b3252['data'];break;case _0x1decbb[_0x20b9('199','vs]y')]:$[_0x20b9('19a','KfoR')]=_0x1b3252[_0x20b9('176','Hb#T')];break;default:break;}}else{switch(_0x54c176){case'dz/common/getSimpleActInfoVo':break;default:$['log'](JSON[_0x20b9('19b','po5b')](_0x1b3252));break;}}}else{$['log'](_0x20b9('19c','Mwjt'));}}}catch(_0x36f5f1){$[_0x20b9('19d','d!e^')](_0x36f5f1);}finally{_0x29c666();}});});}function getShopOpenCardInfo(_0x19f513,_0x360a61){var _0x191718={'rPBJb':function(_0x39325f){return _0x39325f();},'DdaHE':'api.m.jd.com','CChfF':_0x20b9('19e','gBLU'),'AlKks':_0x20b9('19f','KfoR'),'Toikn':_0x20b9('1a0','ZISx'),'kaqvw':function(_0x4e922d,_0x55cca7){return _0x4e922d(_0x55cca7);},'clhGj':_0x20b9('1a1','fOoM')};let _0x4bb8d7={'url':_0x20b9('1a2','8H]u')+encodeURIComponent(JSON[_0x20b9('1a3','PNm1')](_0x19f513))+_0x20b9('1a4','#$ze'),'headers':{'Host':_0x191718['DdaHE'],'Accept':_0x191718[_0x20b9('1a5','*E&s')],'Connection':_0x191718[_0x20b9('1a6','4L2D')],'Cookie':cookie,'User-Agent':_0x20b9('1a7','c59H')+$[_0x20b9('1a8','BUs5')]+_0x20b9('1a9','!nia')+$[_0x20b9('1aa','d!e^')]+';model/iPhone10,3;addressid/0;appBuild/167668;jdSupportDarkMode/0;Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2013_6\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Mobile/15E148;supportJDSHWK/1','Accept-Language':_0x191718[_0x20b9('1ab','(g)K')],'Referer':_0x20b9('1ac','(g)K')+_0x360a61+_0x20b9('1ad','e2Dw')+_0x191718[_0x20b9('1ae','(g)K')](encodeURIComponent,$[_0x20b9('12b','idQr')]),'Accept-Encoding':_0x191718[_0x20b9('1af','newo')]}};return new Promise(_0x4e2a68=>{var _0x3e7f8a={'YgaaJ':function(_0x450193){return _0x191718['rPBJb'](_0x450193);}};$['get'](_0x4bb8d7,(_0x117fdd,_0x91d893,_0x3e2e1b)=>{try{if(_0x117fdd){console[_0x20b9('1b0','KfoR')](_0x117fdd);}else{res=JSON[_0x20b9('12f','#$ze')](_0x3e2e1b);if(res[_0x20b9('1b1','[EU*')]){if(res[_0x20b9('1b2','Zm2s')][_0x20b9('1b3','AWGs')]){$['openCardActivityId']=res[_0x20b9('1b4','vs]y')]['interestsRuleList'][0x0]['interestsInfo'][_0x20b9('1b5','idQr')];}}}}catch(_0x19d89e){console['log'](_0x19d89e);}finally{_0x3e7f8a[_0x20b9('1b6','BUs5')](_0x4e2a68);}});});}function bindWithVender(_0x37ed24,_0x306da9){var _0x320eff={'bsLHs':function(_0x4ae6ed,_0x9a4e39){return _0x4ae6ed===_0x9a4e39;},'MPeXX':function(_0x2c3fcb,_0x1a7e11){return _0x2c3fcb(_0x1a7e11);},'elzgA':'keep-alive','qwKMK':_0x20b9('1b7','d!e^'),'luncE':function(_0x339855,_0x1795ee){return _0x339855(_0x1795ee);},'IgiNH':'gzip,\x20deflate,\x20br'};let _0x15d977={'url':_0x20b9('1b8','@#GK')+_0x320eff[_0x20b9('1b9','gBLU')](encodeURIComponent,JSON[_0x20b9('1ba','2(yN')](_0x37ed24))+_0x20b9('1bb','@#GK'),'headers':{'Host':'api.m.jd.com','Accept':_0x20b9('1bc','p8sA'),'Connection':_0x320eff['elzgA'],'Cookie':cookie,'User-Agent':_0x20b9('1a7','c59H')+$[_0x20b9('1bd','p8sA')]+_0x20b9('1be','%JT&')+$['ADID']+_0x20b9('1bf','vs]y'),'Accept-Language':_0x320eff['qwKMK'],'Referer':'https://shopmember.m.jd.com/shopcard/?venderId='+_0x306da9+_0x20b9('1c0','[^3x')+_0x320eff[_0x20b9('1c1','AWGs')](encodeURIComponent,$['activityUrl']),'Accept-Encoding':_0x320eff[_0x20b9('1c2','wnGj')]}};return new Promise(_0x55d871=>{$[_0x20b9('1c3','c59H')](_0x15d977,(_0x113a5f,_0x93b4bf,_0x4e7d5d)=>{try{if(_0x113a5f){console[_0x20b9('18a','vs]y')](_0x113a5f);}else{res=JSON[_0x20b9('1c4','%JT&')](_0x4e7d5d);if(res['success']){if(res['result'][_0x20b9('1c5','AhEw')]&&res[_0x20b9('1c6','qhJ9')][_0x20b9('1c7','gaA0')][_0x20b9('1c8','d!e^')]){for(const _0x360787 of res[_0x20b9('1c9','0EIF')][_0x20b9('1ca','$a[P')][_0x20b9('1cb','4Z4@')]){if(_0x320eff['bsLHs'](_0x360787[_0x20b9('1cc','0EIF')],0x4)){$[_0x20b9('1cd','wnGj')](_0x20b9('1ce','Hb#T')+_0x360787['quantity']+_0x20b9('1cf','Hb#T'));$['bean']+=_0x360787[_0x20b9('1d0',')NLH')];}}}}}}catch(_0x2169e0){console[_0x20b9('1b0','KfoR')](_0x2169e0);}finally{_0x55d871();}});});}function taskUrl(_0x4ace50,_0x147c1d,_0x581621){var _0x45bba0={'HHPSF':_0x20b9('1d1','%JT&'),'bXcSV':_0x20b9('1d2','Xqc('),'fMdzR':_0x20b9('1d3','Mwjt')};return{'url':_0x581621?_0x20b9('1d4','Xqc(')+_0x4ace50:_0x20b9('1d5','%JT&')+_0x4ace50,'headers':{'Host':_0x20b9('1d6','0!Ih'),'Accept':'application/json','X-Requested-With':_0x45bba0[_0x20b9('1d7','fOoM')],'Accept-Language':_0x45bba0[_0x20b9('1d8','!nia')],'Accept-Encoding':_0x20b9('1d9','gBLU'),'Content-Type':_0x45bba0['fMdzR'],'Origin':'https://lzdz-isv.isvjcloud.com','User-Agent':_0x20b9('10d','idQr')+$['UUID']+_0x20b9('1da','*E&s')+$[_0x20b9('1db','Zm2s')]+_0x20b9('1dc','c59H'),'Connection':_0x20b9('1dd','G5qJ'),'Referer':$['activityUrl'],'Cookie':cookie},'body':_0x147c1d};}function getMyPing(){var _0x3cb726={'llPEB':_0x20b9('1de','d!e^'),'CnurM':_0x20b9('1df','qhJ9'),'DCjiz':_0x20b9('1e0','fOoM'),'pVuha':_0x20b9('1e1','4Z4@'),'mijli':_0x20b9('1e2','2(yN')};let _0xdf63d9={'url':_0x20b9('1e3','d!e^'),'headers':{'Host':_0x3cb726[_0x20b9('1e4','wnGj')],'Accept':_0x20b9('1e5','H@DZ'),'X-Requested-With':'XMLHttpRequest','Accept-Language':_0x3cb726[_0x20b9('1e6','BUs5')],'Accept-Encoding':_0x20b9('1e7','(g)K'),'Content-Type':_0x3cb726[_0x20b9('1e8','wnGj')],'Origin':'https://lzdz-isv.isvjcloud.com/','User-Agent':_0x20b9('1e9','wnGj')+$['UUID']+_0x20b9('1be','%JT&')+$[_0x20b9('3b','s)ZM')]+_0x20b9('1ea','0!Ih'),'Connection':_0x3cb726['mijli'],'Referer':$['activityUrl'],'Cookie':cookie},'body':_0x20b9('1eb','gaA0')+$['activityShopId']+_0x20b9('1ec','%JT&')+$['token']+_0x20b9('1ed','G5qJ')};return new Promise(_0x2f2790=>{var _0xe95471={'RqSCP':_0x3cb726[_0x20b9('1ee','EmhW')],'xNjTC':_0x20b9('1ef','*E&s'),'BdXvj':_0x20b9('1f0','wnGj'),'XFTtE':_0x20b9('1f1','hvOm')};$[_0x20b9('1f2','fOoM')](_0xdf63d9,(_0x467072,_0x1b22bd,_0x5b3230)=>{try{if(_0x467072){$[_0x20b9('1cd','wnGj')](_0x467072);}else{if(_0x1b22bd[_0xe95471['RqSCP']][_0x20b9('1f3','8H]u')]){cookie=''+originCookie;if($['isNode']()){for(let _0x1ed550 of _0x1b22bd[_0xe95471[_0x20b9('1f4','4L2D')]][_0xe95471[_0x20b9('1f5','gaA0')]]){cookie=''+cookie+_0x1ed550['split'](';')[0x0]+';';}}else{for(let _0x21cf2d of _0x1b22bd[_0xe95471[_0x20b9('1f6','gE^4')]][_0x20b9('1f7','G5qJ')]['split'](',')){cookie=''+cookie+_0x21cf2d[_0x20b9('1f8','$a[P')](';')[0x0]+';';}}}if(_0x1b22bd[_0x20b9('1f9','0EIF')][_0xe95471[_0x20b9('1fa','c59H')]]){cookie=''+originCookie;if($[_0x20b9('1fb',')NLH')]()){for(let _0x48a227 of _0x1b22bd[_0xe95471['RqSCP']][_0xe95471[_0x20b9('1fc','!gbm')]]){cookie=''+cookie+_0x48a227[_0x20b9('1fd','0EIF')](';')[0x0]+';';}}else{for(let _0x514520 of _0x1b22bd[_0xe95471['RqSCP']][_0xe95471['BdXvj']][_0x20b9('1fe','fOoM')](',')){cookie=''+cookie+_0x514520['split'](';')[0x0]+';';}}}if(_0x5b3230){_0x5b3230=JSON[_0x20b9('1ff','4Z4@')](_0x5b3230);if(_0x5b3230['result']){$[_0x20b9('200','qhJ9')](_0x20b9('201','Zm2s')+_0x5b3230[_0x20b9('202','vs]y')]['nickname']);$[_0x20b9('203','vs]y')]=_0x5b3230[_0x20b9('204','H@DZ')][_0x20b9('205','2(yN')];$[_0x20b9('206','vs]y')]=_0x5b3230['data'][_0x20b9('207','[EU*')];cookie=cookie+_0x20b9('208','BUs5')+_0x5b3230['data'][_0x20b9('209','4L2D')];}else{$[_0x20b9('20a','AWGs')](_0x5b3230[_0x20b9('20b','ZISx')]);}}else{$[_0x20b9('194','4Z4@')](_0xe95471[_0x20b9('20c','4EXm')]);}}}catch(_0x1451ef){$[_0x20b9('8e','c59H')](_0x1451ef);}finally{_0x2f2790();}});});}function getFirstLZCK(){var _0x202cee={'ZXRhk':_0x20b9('20d','ZISx')};return new Promise(_0x534256=>{var _0x168a96={'YAhod':_0x20b9('20e','0!Ih'),'usHKV':_0x202cee['ZXRhk'],'fXyhV':_0x20b9('20f','EmhW'),'Kkprr':function(_0x13a528){return _0x13a528();}};$[_0x20b9('210','BUs5')]({'url':$['activityUrl']},(_0x1979f2,_0xd2ee64,_0xa730c3)=>{try{if(_0x1979f2){console[_0x20b9('27','H@DZ')](_0x1979f2);}else{if(_0xd2ee64[_0x168a96[_0x20b9('211','[^3x')]][_0x168a96[_0x20b9('212','!nia')]]){cookie=''+originCookie;if($[_0x20b9('213','AWGs')]()){for(let _0x57a0af of _0xd2ee64[_0x20b9('214','gE^4')][_0x20b9('215','PNm1')]){cookie=''+cookie+_0x57a0af[_0x20b9('216','8H]u')](';')[0x0]+';';}}else{for(let _0x38b0f3 of _0xd2ee64['headers'][_0x168a96[_0x20b9('217','*E&s')]]['split'](',')){cookie=''+cookie+_0x38b0f3[_0x20b9('218','H@DZ')](';')[0x0]+';';}}}if(_0xd2ee64[_0x20b9('219','newo')][_0x20b9('21a','c59H')]){cookie=''+originCookie;if($['isNode']()){for(let _0x6bfc68 of _0xd2ee64[_0x20b9('21b','Xqc(')][_0x168a96['usHKV']]){cookie=''+cookie+_0x6bfc68[_0x20b9('218','H@DZ')](';')[0x0]+';';}}else{for(let _0x4438b0 of _0xd2ee64[_0x20b9('21c','4L2D')][_0x20b9('21d','newo')][_0x20b9('21e','c59H')](',')){cookie=''+cookie+_0x4438b0[_0x20b9('21f','gaA0')](';')[0x0]+';';}}}}}catch(_0x1c8d41){console[_0x20b9('220','Hb#T')](_0x1c8d41);}finally{_0x168a96['Kkprr'](_0x534256);}});});}function getToken(){var _0x595d41={'nNbsV':function(_0x309836,_0x3705f7){return _0x309836===_0x3705f7;},'JWKZv':_0x20b9('221','!nia'),'PdIfE':_0x20b9('222','s)ZM'),'XLjoO':_0x20b9('223','ZISx'),'giFmU':_0x20b9('224','wnGj'),'nIJvh':_0x20b9('225','idQr')};let _0x4a6004={'url':_0x20b9('226','[^3x'),'headers':{'Host':_0x595d41[_0x20b9('227','hvOm')],'Content-Type':_0x595d41['XLjoO'],'Accept':_0x20b9('228','po5b'),'Connection':_0x20b9('229','EmhW'),'Cookie':cookie,'User-Agent':_0x595d41['giFmU'],'Accept-Language':_0x595d41[_0x20b9('22a','G5qJ')],'Accept-Encoding':_0x20b9('22b','s)ZM')},'body':_0x20b9('22c','Mwjt')};return new Promise(_0x1b43b5=>{var _0x12d4c2={'xjzqH':function(_0x227b43,_0x346dab){return _0x595d41[_0x20b9('22d','%JT&')](_0x227b43,_0x346dab);},'PuToc':_0x595d41[_0x20b9('22e','#$ze')]};$[_0x20b9('22f','Xqc(')](_0x4a6004,(_0x2a25f8,_0x2780f8,_0x187b5e)=>{try{if(_0x2a25f8){$['log'](_0x2a25f8);}else{if(_0x187b5e){_0x187b5e=JSON[_0x20b9('230',')NLH')](_0x187b5e);if(_0x12d4c2[_0x20b9('231',')BL$')](_0x187b5e['code'],'0')){$['token']=_0x187b5e[_0x20b9('232','AhEw')];}}else{$['log'](_0x12d4c2[_0x20b9('233','#$ze')]);}}}catch(_0x80e783){$[_0x20b9('20a','AWGs')](_0x80e783);}finally{_0x1b43b5();}});});}function random(_0xc8e179,_0x3de351){var _0x17446f={'Ljzdx':function(_0x121208,_0x3b05f3){return _0x121208+_0x3b05f3;},'ZoKuF':function(_0x18f58d,_0x3fbe91){return _0x18f58d-_0x3fbe91;}};return _0x17446f[_0x20b9('234','Xqc(')](Math[_0x20b9('235','wnGj')](Math[_0x20b9('236','po5b')]()*_0x17446f['ZoKuF'](_0x3de351,_0xc8e179)),_0xc8e179);}function getUUID(_0x3c6d60='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',_0x493774=0x0){var _0xf70424={'OPjBr':function(_0x248f47,_0x48c04d){return _0x248f47|_0x48c04d;},'MClOg':function(_0x282404,_0x20fcc1){return _0x282404==_0x20fcc1;}};return _0x3c6d60[_0x20b9('237','0!Ih')](/[xy]/g,function(_0x59e923){var _0x5ba292=_0xf70424[_0x20b9('238','4L2D')](Math['random']()*0x10,0x0),_0x10b516=_0xf70424[_0x20b9('239','Xqc(')](_0x59e923,'x')?_0x5ba292:_0xf70424[_0x20b9('23a','@#GK')](_0x5ba292&0x3,0x8);if(_0x493774){uuid=_0x10b516[_0x20b9('23b','%JT&')](0x24)[_0x20b9('23c','yylb')]();}else{uuid=_0x10b516['toString'](0x24);}return uuid;});}function checkCookie(){var _0x511ac4={'NPEbl':function(_0x3b41cc,_0x447b71){return _0x3b41cc===_0x447b71;},'KdIoS':_0x20b9('23d','AWGs'),'msatm':_0x20b9('23e','c59H'),'ULemZ':_0x20b9('23f','newo'),'UzCKx':_0x20b9('240','s)ZM'),'XBeix':'gzip,\x20deflate,\x20br'};const _0x43e5e9={'url':'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion','headers':{'Host':_0x511ac4[_0x20b9('241','0!Ih')],'Accept':_0x511ac4['msatm'],'Connection':_0x20b9('242','p8sA'),'Cookie':cookie,'User-Agent':_0x511ac4[_0x20b9('243','G5qJ')],'Accept-Language':_0x511ac4[_0x20b9('244','PNm1')],'Referer':'https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&','Accept-Encoding':_0x511ac4[_0x20b9('245','hvOm')]}};return new Promise(_0x1ea1c5=>{var _0xdd6333={'SOyjm':'1001','QAord':function(_0x139dc7,_0x18da90){return _0x511ac4[_0x20b9('246','vs]y')](_0x139dc7,_0x18da90);},'vMjoS':function(_0x8939e){return _0x8939e();}};$['get'](_0x43e5e9,(_0x2faade,_0x521b45,_0x51224d)=>{try{if(_0x2faade){$[_0x20b9('247','gBLU')](_0x2faade);}else{if(_0x51224d){_0x51224d=JSON[_0x20b9('248','BUs5')](_0x51224d);if(_0x51224d[_0x20b9('249','wnGj')]===_0xdd6333['SOyjm']){$[_0x20b9('24a','8H]u')]=![];return;}if(_0xdd6333[_0x20b9('24b','idQr')](_0x51224d[_0x20b9('24c','$a[P')],'0')&&_0x51224d[_0x20b9('24d','4L2D')]['hasOwnProperty'](_0x20b9('f9','c59H'))){$[_0x20b9('24e','4Z4@')]=_0x51224d[_0x20b9('24f','[^3x')][_0x20b9('250','wnGj')][_0x20b9('251','Hb#T')][_0x20b9('252','hvOm')];}}else{$[_0x20b9('253','yylb')](_0x20b9('254','H@DZ'));}}}catch(_0x13ef4b){$[_0x20b9('255','d!e^')](_0x13ef4b);}finally{_0xdd6333['vMjoS'](_0x1ea1c5);}});});} +// prettier-ignore +!function (n) { "use strict"; function t(n, t) { var r = (65535 & n) + (65535 & t); return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r } function r(n, t) { return n << t | n >>> 32 - t } function e(n, e, o, u, c, f) { return t(r(t(t(e, n), t(u, f)), c), o) } function o(n, t, r, o, u, c, f) { return e(t & r | ~t & o, n, t, u, c, f) } function u(n, t, r, o, u, c, f) { return e(t & o | r & ~o, n, t, u, c, f) } function c(n, t, r, o, u, c, f) { return e(t ^ r ^ o, n, t, u, c, f) } function f(n, t, r, o, u, c, f) { return e(r ^ (t | ~o), n, t, u, c, f) } function i(n, r) { n[r >> 5] |= 128 << r % 32, n[14 + (r + 64 >>> 9 << 4)] = r; var e, i, a, d, h, l = 1732584193, g = -271733879, v = -1732584194, m = 271733878; for (e = 0; e < n.length; e += 16)i = l, a = g, d = v, h = m, g = f(g = f(g = f(g = f(g = c(g = c(g = c(g = c(g = u(g = u(g = u(g = u(g = o(g = o(g = o(g = o(g, v = o(v, m = o(m, l = o(l, g, v, m, n[e], 7, -680876936), g, v, n[e + 1], 12, -389564586), l, g, n[e + 2], 17, 606105819), m, l, n[e + 3], 22, -1044525330), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 4], 7, -176418897), g, v, n[e + 5], 12, 1200080426), l, g, n[e + 6], 17, -1473231341), m, l, n[e + 7], 22, -45705983), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 8], 7, 1770035416), g, v, n[e + 9], 12, -1958414417), l, g, n[e + 10], 17, -42063), m, l, n[e + 11], 22, -1990404162), v = o(v, m = o(m, l = o(l, g, v, m, n[e + 12], 7, 1804603682), g, v, n[e + 13], 12, -40341101), l, g, n[e + 14], 17, -1502002290), m, l, n[e + 15], 22, 1236535329), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 1], 5, -165796510), g, v, n[e + 6], 9, -1069501632), l, g, n[e + 11], 14, 643717713), m, l, n[e], 20, -373897302), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 5], 5, -701558691), g, v, n[e + 10], 9, 38016083), l, g, n[e + 15], 14, -660478335), m, l, n[e + 4], 20, -405537848), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 9], 5, 568446438), g, v, n[e + 14], 9, -1019803690), l, g, n[e + 3], 14, -187363961), m, l, n[e + 8], 20, 1163531501), v = u(v, m = u(m, l = u(l, g, v, m, n[e + 13], 5, -1444681467), g, v, n[e + 2], 9, -51403784), l, g, n[e + 7], 14, 1735328473), m, l, n[e + 12], 20, -1926607734), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 5], 4, -378558), g, v, n[e + 8], 11, -2022574463), l, g, n[e + 11], 16, 1839030562), m, l, n[e + 14], 23, -35309556), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 1], 4, -1530992060), g, v, n[e + 4], 11, 1272893353), l, g, n[e + 7], 16, -155497632), m, l, n[e + 10], 23, -1094730640), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 13], 4, 681279174), g, v, n[e], 11, -358537222), l, g, n[e + 3], 16, -722521979), m, l, n[e + 6], 23, 76029189), v = c(v, m = c(m, l = c(l, g, v, m, n[e + 9], 4, -640364487), g, v, n[e + 12], 11, -421815835), l, g, n[e + 15], 16, 530742520), m, l, n[e + 2], 23, -995338651), v = f(v, m = f(m, l = f(l, g, v, m, n[e], 6, -198630844), g, v, n[e + 7], 10, 1126891415), l, g, n[e + 14], 15, -1416354905), m, l, n[e + 5], 21, -57434055), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 12], 6, 1700485571), g, v, n[e + 3], 10, -1894986606), l, g, n[e + 10], 15, -1051523), m, l, n[e + 1], 21, -2054922799), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 8], 6, 1873313359), g, v, n[e + 15], 10, -30611744), l, g, n[e + 6], 15, -1560198380), m, l, n[e + 13], 21, 1309151649), v = f(v, m = f(m, l = f(l, g, v, m, n[e + 4], 6, -145523070), g, v, n[e + 11], 10, -1120210379), l, g, n[e + 2], 15, 718787259), m, l, n[e + 9], 21, -343485551), l = t(l, i), g = t(g, a), v = t(v, d), m = t(m, h); return [l, g, v, m] } function a(n) { var t, r = "", e = 32 * n.length; for (t = 0; t < e; t += 8)r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255); return r } function d(n) { var t, r = []; for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1)r[t] = 0; var e = 8 * n.length; for (t = 0; t < e; t += 8)r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32; return r } function h(n) { return a(i(d(n), 8 * n.length)) } function l(n, t) { var r, e, o = d(n), u = [], c = []; for (u[15] = c[15] = void 0, o.length > 16 && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1)u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r]; return e = i(u.concat(d(t)), 512 + 8 * t.length), a(i(c.concat(e), 640)) } function g(n) { var t, r, e = ""; for (r = 0; r < n.length; r += 1)t = n.charCodeAt(r), e += "0123456789abcdef".charAt(t >>> 4 & 15) + "0123456789abcdef".charAt(15 & t); return e } function v(n) { return unescape(encodeURIComponent(n)) } function m(n) { return h(v(n)) } function p(n) { return g(m(n)) } function s(n, t) { return l(v(n), v(t)) } function C(n, t) { return g(s(n, t)) } function A(n, t, r) { return t ? r ? s(t, n) : C(t, n) : r ? m(n) : p(n) } $.md5 = A }(this); +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } \ No newline at end of file diff --git a/Task/QCZJCookie.conf b/Task/QCZJCookie.conf new file mode 100644 index 000000000..8a9aec489 --- /dev/null +++ b/Task/QCZJCookie.conf @@ -0,0 +1,6 @@ +hostname=mobile.app.autohome.com.cn,pay.autohome.com.cn,openapi.autohome.com.cn, +############## 圈x +#汽车之家极速版获取header +https:\/\/(mobile\.app\.autohome\.com\.cn\/*||pay\.autohome\.com\.cn\/*||openapi\.autohome\.com\.cn\/*) url script-request-header https://raw.githubusercontent.com/ziye12/QCZJSPEED/master/Task/qczjspeed.js +#汽车之家极速版获取body +https:\/\/(mobile\.app\.autohome\.com\.cn\/*||openapi\.autohome\.com\.cn\/*) url script-request-body https://raw.githubusercontent.com/ziye12/QCZJSPEED/master/Task/qczjspeed.js diff --git a/Task/QQread.js b/Task/QQread.js new file mode 100644 index 000000000..342d05487 --- /dev/null +++ b/Task/QQread.js @@ -0,0 +1,376 @@ + +/*ziye + +本人github地址 https://github.com/ziye12/JavaScript +转载请备注个名字,谢谢 + +11.28 ⚠️无时长功能,只有签到,视频,宝箱 + +日均0.18收益 + + + + + +⚠️cookie获取方法: + +进 QQ阅读APP 点我的 获取cookie 秘密为 QQREADAPP_HEADER 多账号换行 + +点 免费 福利 日常福利-看视频 获取视频cookie 秘密为 QQREADAPP_VIDEOHD 多账号换行 + + + +⚠️宝箱奖励为60分钟一次,自己根据情况设置定时, + + + +hostname=commontgw6.reader.qq.com,eventv36.reader.qq.com + +############## 圈x + +#QQ阅读APP获取cookie + +https:\/\/commontgw6\.reader\.qq\.com\/v7_5_2\/nativepage\/getAcctInfo url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/QQread.js + +#QQ阅读APP获取视频cookie +https:\/\/eventv36\.reader\.qq\.com\/activity\/pkg11955\/watchVideo url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/QQread.js + +############## loon + +//QQ阅读APP获取cookie +https:\/\/commontgw6\.reader\.qq\.com\/v7_5_2\/nativepage\/getAcctInfo script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/QQreads.js,requires-header=true, tag=QQ阅读APP获取cookie + +//QQ阅读APP获取时长cookie +https:\/\/eventv36\.reader\.qq\.com\/activity\/pkg11955\/watchVideo script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/QQreads.js, requires-header=true, tag=QQ阅读APP获取视频cookie + +############## surge + +//QQ阅读APP获取cookie +QQ阅读APP获取cookie = type=https:\/\/commontgw6\.reader\.qq\.com\/v7_5_2\/nativepage\/getAcctInfo,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/QQreads.js, + +//QQ阅读APP获取视频cookie +QQ阅读APP获取视频cookie = https:\/\/eventv36\.reader\.qq\.com\/activity\/pkg11955\/watchVideo,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/QQreads.js, + + +*/ + +const jsname='QQ阅读APP' +const $ = Env(jsname) +const notify = $.isNode() ? require('./sendNotify') : ''; +var tz=''; +var kz=''; +var task=''; + + +var COOKIES_SPLIT='\n' //自定义多cookie之间连接的分隔符,默认为\n换行分割,不熟悉的不要改动和配置,为了兼容本地node执行 + +const logs = 0; //0为关闭日志,1为开启 +const notifyInterval=1 +//0为关闭通知,1为所有通知,2为宝箱领取成功通知, + +const dd=1//单次任务延迟,默认1秒 + + + +let QQreadhdArr = [], QQreadheaderVal = '', +QQreadvideohdArr = [], QQreadvideoheaderVal = '', + QQreadHD = [], QQreadvideoHD = []; + if ($.isNode()) { + if (process.env.COOKIES_SPLIT){ + COOKIES_SPLIT = process.env.COOKIES_SPLIT; + }; + console.log(`============ cookies分隔符为:${COOKIES_SPLIT} =============\n`); + if (process.env.QQREADAPP_HEADER && process.env.QQREADAPP_HEADER.indexOf(COOKIES_SPLIT) > -1) { + QQreadHD = process.env.QQREADAPP_HEADER.split(COOKIES_SPLIT); + } else { + QQreadHD = process.env.QQREADAPP_HEADER.split() + }; + + + + if (process.env.QQREADAPP_VIDEOHD && process.env.QQREADAPP_VIDEOHD.indexOf(COOKIES_SPLIT) > -1) { + QQreadvideoHD = process.env.QQREADAPP_VIDEOHD.split(COOKIES_SPLIT); + } else { + QQreadvideoHD = process.env.QQREADAPP_VIDEOHD.split() + }; + +} + +if ($.isNode()) { + Object.keys(QQreadHD).forEach((item) => { + if (QQreadHD[item]) { + QQreadhdArr.push(QQreadHD[item]) + } + }) + + Object.keys(QQreadvideoHD).forEach((item) => { + if (QQreadvideoHD[item]) { + QQreadvideohdArr.push(QQreadvideoHD[item]) + } + }) + + console.log(`============ 共${QQreadhdArr.length}个QQ阅读APP账号 =============\n`) + console.log(`============ 脚本执行-北京时间(UTC+8):${new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toLocaleString()} =============\n`) + } else { + QQreadhdArr.push($.getdata('QQreadhd')); + QQreadvideohdArr.push($.getdata('QQreadvideohd')); + +} + + if (isGetCookie = typeof $request !== 'undefined') { + GetCookie(); + $.done(); + } + + + + +function GetCookie() { + if($request &&$request.url.indexOf("getAcctInfo")>=0) { + +const QQreadheaderVal = JSON.stringify($request.headers) + if (QQreadheaderVal) $.setdata(QQreadheaderVal,'QQreadhd') + $.log(`[${jsname}] 获取Cookie: 成功,QQreadheaderVal: ${QQreadheaderVal}`) + $.msg(jsname, `获取cookie: 成功🎉`, ``) + } + + + + if($request &&$request.url.indexOf("watchVideo")>=0) { + +const QQreadvideoheaderVal = JSON.stringify($request.headers) + if (QQreadvideoheaderVal) $.setdata(QQreadvideoheaderVal,'QQreadvideohd') + $.log(`[${jsname}] 获取视频Cookie: 成功,QQreadvideoheaderVal: ${QQreadvideoheaderVal}`) + $.msg(jsname, `获取视频cookie: 成功🎉`, ``) + } + + + +} + + + + +let K = 0; + all() +function all(){ + QQreadheaderVal = QQreadhdArr[K]; + QQreadvideoheaderVal = QQreadvideohdArr[K]; + for(var i=0;i<7;i++) + { (function(i) { + setTimeout(function() { + + if (i==0) +QQreadinfo();//用户名 + +else if (i==1) +QQreadtask();//任务列表 + +else if (i==2) +QQreadboxinfo();//宝箱 + +else if (i==4&& task.data&&task.data.watchVideo.videoCount==0) +QQreadsign();//金币签到 + +else if (i==5&& task.data&&task.data.watchVideo.videoCount<=9) +QQreadvideo();//视频任务 + + + +else if (i == 6 && K < QQreadhdArr.length - 1) { +K += 1; +all(); + } else if (i == 6 && K == QQreadhdArr.length - 1) { + showmsg();//通知 + console.log(tz) + $.done(); + } + }, + + (i + 1) * dd * 1000 + ); + })(i); + } +} + + + +//用户名 +function QQreadinfo() { +return new Promise((resolve, reject) => { + + const toQQreadinfourl = { + + url: 'https://commontgw6.reader.qq.com/v7_5_2/nativepage/getAcctInfo', + headers: JSON.parse(QQreadheaderVal), + timeout:60000}; + $.get(toQQreadinfourl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 用户名: ${data}`) + info =JSON.parse(data) +kz+= +'\n========== 【'+info.nick+'】 ==========\n'; +tz+= +'\n========== 【'+info.nick+'】 ==========\n'; + +resolve() + }) + }) + } + + + + + +//任务列表 +function QQreadtask() { +return new Promise((resolve, reject) => { + + const toQQreadtaskurl ={url: 'https://eventv3.reader.qq.com/activity/pkg11955/initV2', + headers: JSON.parse(QQreadvideoheaderVal), + timeout:60000}; + $.get(toQQreadtaskurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 任务列表: ${data}`) + task =JSON.parse(data) +kz+= + '【现金余额】:'+ + task.data.userBalance.cash+ + '元\n'+ + '【今日收益】:'+ + (task.data.userBalance.coin/30000).toFixed(2)+ + '元\n'; + +tz+= + '【现金余额】:'+ + task.data.userBalance.cash+ + '元\n'+ + '【今日收益】:'+ + (task.data.userBalance.coin/30000).toFixed(2)+ + '元\n'+ + '【签到天数】:'+ + (task.data.userType-1)+ + '天\n'+ + '【已看视频】:'+ + task.data.watchVideo.videoCount+ + '/10次\n' + + +resolve() + + }) + }) + } + + + + + +//金币签到 +function QQreadsign() { +return new Promise((resolve, reject) => { + const toQQreadsignurl ={url: 'https://eventv36.reader.qq.com/activity/pkg11955/punchCard_v2', + headers: JSON.parse(QQreadvideoheaderVal), + timeout:60000}; + $.get(toQQreadsignurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 金币签到: ${data}`) + sign =JSON.parse(data) +if (sign.code==0) + { +tz+= +'【金币签到】:获得'+sign.data.coinNum+'金币\n' + } +resolve() + }) + }) + } + + + +//视频奖励 +function QQreadvideo() { +return new Promise((resolve, reject) => { + const toQQreadvideourl ={url: 'https://eventv36.reader.qq.com/activity/pkg11955/watchVideo', + headers: JSON.parse(QQreadvideoheaderVal), + timeout:60000}; + $.get(toQQreadvideourl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 视频奖励: ${data}`) + video =JSON.parse(data) +if (video.code==0) + { +tz+= +'【视频任务'+video.data.videoCount+'】:获得100金币\n' +} + +resolve() + }) + }) + } + + + + + +//宝箱奖励 + function QQreadboxinfo() { + return new Promise((resolve, reject) => { + const toQQreadboxinfourl ={url: 'https://eventv3.reader.qq.com/activity/pkg11955/queryOpenBoxInfo', + headers: JSON.parse(QQreadvideoheaderVal), + timeout:60000}; + $.get(toQQreadboxinfourl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 宝箱奖励详情: ${data}`) + boxinfo =JSON.parse(data) + var cz=new Date().getTime()-boxinfo.data.openTime + var CZ=3600-(cz/1000).toFixed(0) + if (CZ>=1){ + tz+= + '【宝箱剩余'+boxinfo.data.openNum+'】:差'+CZ+'秒\n'; + kz+= + '【宝箱剩余'+boxinfo.data.openNum+'】:差'+CZ+'秒\n'; + } + + else if(CZ<=0) { + const toQQreadboxurl ={url: 'https://eventv3.reader.qq.com/activity/pkg11955/openBox', + headers: JSON.parse(QQreadvideoheaderVal), + timeout:60000}; + $.get(toQQreadboxurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 宝箱奖励: ${data}`) + box =JSON.parse(data) + if (box.code==0){ + tz+= + '【宝箱剩余'+box.data.openNum+'】:获得'+box.data.coin+'金币\n' + kz+= + '【宝箱剩余'+box.data.openNum+'】:获得'+box.data.coin+'金币\n' + } + + }) + + } + }) + resolve() + + }) + } + + + + +function showmsg() { +tz += `\n\n========= 脚本执行-北京时间(UTC+8):${new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toLocaleString()} \n\n`; + +let d = new Date(new Date().getTime() + 8 * 60 * 60 * 1000); +if (d.getHours()==12 && d.getMinutes()<=20 ||d.getHours()==23 && d.getMinutes()>=40 ) { + notify.sendNotify(jsname,kz) + } + +if (notifyInterval==1) +$.msg(jsname,'',tz)//显示所有通知 + +else if (notifyInterval==2&&CZ<=0&&boxinfo.data.openNum>0) +$.msg(jsname,'',tz)//宝箱领取成功通知 + + + +} + + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/Task/qqreadCookie.conf b/Task/qqreadCookie.conf new file mode 100644 index 000000000..583ca2a8a --- /dev/null +++ b/Task/qqreadCookie.conf @@ -0,0 +1,6 @@ +hostname=mqqapi.reader.qq.com +############## 圈x +#企鹅读书获取更新body +https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track url script-request-body https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js +#企鹅读书获取时长cookie +https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js diff --git a/Task/qqreads.js b/Task/qqreads.js new file mode 100644 index 000000000..458c39caf --- /dev/null +++ b/Task/qqreads.js @@ -0,0 +1,788 @@ +/* ziye + +github地址 https://github.com/ziye12/JavaScript +TG频道地址 https://t.me/ziyescript +TG交流群 https://t.me/joinchat/AAAAAE7XHm-q1-7Np-tF3g +boxjs链接 https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/ziye.boxjs.json + +转载请备注个名字,谢谢 + +11.25 增加 阅读时长上传,阅读金币,阅读随机金币 +11.25 修复翻倍宝箱不同时领取的问题.增加阅读金币判定 +11.25 修复阅读时长问题,阅读金币问题,请重新获取时长cookie +11.26 随机金币只有一次,故去除,调整修复阅读金币问题,增加时长上传限制 +11.26 增加领取周时长奖励 +11.26 增加结束命令 +11.27 调整通知为,成功开启宝箱再通知 +11.28 修复错误 +11.29 更新 支持action.默认每天21点到21点20通知 +12.2 修复打卡问题 +12.3 缩短运行时间,由于企鹅读书版本更新.请手动进去看一次书 +12.3 调整推送时间为12点和24点左右 +12.6 精简打印通知 +12.7 解决1金币问题,务必重新获取一次更新body +12.8 更新支持boxjs +12.10 默认现金大于10且在23点提现10元,23点40后显示今日收益统计 +12.11 修复git与手机 时间不兼容问题 + + +⚠️cookie获取方法: + +进 https://m.q.qq.com/a/s/d3eacc70120b9a37e46bad408c0c4c2a + +进书库选择一本书,看10秒以下,然后退出,获取时长url和时长header以及更新body,看书一定不能超过10秒 + + + +Secrets对应关系如下,多账号默认换行 + +qqreadbodyVal 👉 QQREAD_BODY +qqreadtimeurlVal 👉 QQREAD_TIMEURL +qqreadtimeheaderVal 👉 QQREAD_TIMEHD + + + +⚠️宝箱奖励为20分钟一次,自己根据情况设置定时,建议设置11分钟一次 + +hostname=mqqapi.reader.qq.com + +############## 圈x + +#企鹅读书获取更新body +https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track url script-request-body https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js + +#企鹅读书获取时长cookie +https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js + +############## loon + +//企鹅读书获取更新body +http-request https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js,requires-body=true, tag=企鹅读书获取更新body + +//企鹅读书获取时长cookie +http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js, requires-header=true, tag=企鹅读书获取时长cookie + +############## surge + +//企鹅读书获取更新body +企鹅读书获取更新body = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/log\/v4\/mqq\/track,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js, + +//企鹅读书获取时长cookie +企鹅读书获取时长cookie = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid?,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js, + + +*/ + +const jsname = "企鹅读书"; +const $ = Env(jsname); +$.idx = ($.idx = ($.getval('qeSuffix') || '1') - 1) > 0 ? ($.idx + 1 + '') : ''; // 账号扩展字符 +const notify = $.isNode() ? require("./sendNotify") : ""; + +let tz = ""; +let kz = ""; +let task = ""; +let config = ""; +let K = 0; + + + +let COOKIES_SPLIT = "\n"; // 自定义多cookie之间连接的分隔符,默认为\n换行分割,不熟悉的不要改动和配置,为了兼容本地node执行 + +const logs = 0; // 0为关闭日志,1为开启 +const notifyInterval = 3; +// 0为关闭通知,1为所有通知,2为宝箱领取成功通知,3为宝箱每15次通知一次 + +const dd = 1; // 单次任务延迟,默认1秒 +const TIME = 30; // 单次时长上传限制,默认5分钟 +const maxtime = 12; // 每日上传时长限制,默认12小时 +const wktimess = 1200; // 周奖励领取标准,默认1200分钟 + +const d = new Date(new Date().getTime() + 8 * 60 * 60 * 1000);//GITHUB +const b = new Date(new Date().getTime());//手机 + +const qqreadbdArr = []; +let qqreadbodyVal = ""; +const qqreadtimeurlArr = []; +let qqreadtimeurlVal = ""; +const qqreadtimehdArr = []; +let qqreadtimeheaderVal = ""; +let qqreadBD = []; +let qqreadtimeURL = []; +let qqreadtimeHD = []; +if ($.isNode()) { + if (process.env.COOKIES_SPLIT) { + COOKIES_SPLIT = process.env.COOKIES_SPLIT; + } + console.log( + `============ cookies分隔符为:${JSON.stringify( + COOKIES_SPLIT + )} =============\n` + ); + if ( + process.env.QQREAD_BODY && + process.env.QQREAD_BODY.indexOf(COOKIES_SPLIT) > -1 + ) { + qqreadBD = process.env.QQREAD_BODY.split(COOKIES_SPLIT); + } else { + qqreadBD = process.env.QQREAD_BODY.split(); + } + + if ( + process.env.QQREAD_TIMEURL && + process.env.QQREAD_TIMEURL.indexOf(COOKIES_SPLIT) > -1 + ) { + qqreadtimeURL = process.env.QQREAD_TIMEURL.split(COOKIES_SPLIT); + } else { + qqreadtimeURL = process.env.QQREAD_TIMEURL.split(); + } + + if ( + process.env.QQREAD_TIMEHD && + process.env.QQREAD_TIMEHD.indexOf(COOKIES_SPLIT) > -1 + ) { + qqreadtimeHD = process.env.QQREAD_TIMEHD.split(COOKIES_SPLIT); + } else { + qqreadtimeHD = process.env.QQREAD_TIMEHD.split(); + } +} + +if ($.isNode()) { + Object.keys(qqreadBD).forEach((item) => { + if (qqreadBD[item]) { + qqreadbdArr.push(qqreadBD[item]); + } + }); + Object.keys(qqreadtimeURL).forEach((item) => { + if (qqreadtimeURL[item]) { + qqreadtimeurlArr.push(qqreadtimeURL[item]); + } + }); + Object.keys(qqreadtimeHD).forEach((item) => { + if (qqreadtimeHD[item]) { + qqreadtimehdArr.push(qqreadtimeHD[item]); + } + }); + + console.log( + `============ 共${qqreadtimehdArr.length}个企鹅读书账号 =============\n` + ); + console.log( + `============ 脚本执行-北京时间(UTC+8):${new Date( + new Date().getTime() + 8 * 60 * 60 * 1000 + ).toLocaleString()} =============\n` + ); +} else { + qqreadbdArr.push($.getdata("qqreadbd")); + qqreadtimeurlArr.push($.getdata("qqreadtimeurl")); + qqreadtimehdArr.push($.getdata("qqreadtimehd")); + // 根据boxjs中设置的额外账号数,添加存在的账号数据进行任务处理 + let qeCount = ($.getval('qeCount') || '1') - 0; + for (let i = 2; i <= qeCount; i++) { + if ($.getdata(`qqreadbd${i}`)) { + qqreadbdArr.push($.getdata(`qqreadbd${i}`)); + qqreadtimeurlArr.push($.getdata(`qqreadtimeurl${i}`)); + qqreadtimehdArr.push($.getdata(`qqreadtimehd${i}`)); + } + } +} + +if ($.isNode()) { + daytime=new Date(new Date().toLocaleDateString()).getTime()- 8 * 60 * 60 * 1000 +}else { + daytime=new Date(new Date().toLocaleDateString()).getTime() +} + + +if ((isGetCookie = typeof $request !== "undefined")) { + GetCookie(); +$.done(); +} + +function GetCookie() { + +if ($request && $request.url.indexOf("addReadTimeWithBid?") >= 0) { + const qqreadtimeurlVal = $request.url; + if (qqreadtimeurlVal) $.setdata(qqreadtimeurlVal, "qqreadtimeurl" + $.idx); + $.log( + `[${jsname + $.idx}] 获取时长url: 成功,qqreadtimeurlVal: ${qqreadtimeurlVal}` + ); + $.msg(jsname + $.idx, `获取时长url: 成功🎉`, ``); + const qqreadtimeheaderVal = JSON.stringify($request.headers); + if (qqreadtimeheaderVal) $.setdata(qqreadtimeheaderVal, "qqreadtimehd" + $.idx); + $.log( + `[${jsname + $.idx}] 获取时长header: 成功,qqreadtimeheaderVal: ${qqreadtimeheaderVal}` + ); + $.msg(jsname + $.idx, `获取时长header: 成功🎉`, ``); + } + else if ($request &&$request.body.indexOf("bookDetail_bottomBar_read_C")>=0&&$request.body.indexOf("bookRead_show_I")>=0&&$request.body.indexOf("topBar_left_back_C")<0&&$request.body.indexOf("bookRead_dropOut_shelfYes_C")<0){ + const qqreadbodyVal = $request.body; + if (qqreadbodyVal) $.setdata(qqreadbodyVal, "qqreadbd" + $.idx); + $.log( + `[${jsname + $.idx}] 获取更新body: 成功,qqreadbodyVal: ${qqreadbodyVal}` + ); + $.msg(jsname + $.idx, `获取更新body: 成功🎉`, ``); + + } + +} + + + +all(); +function all() { + qqreadbodyVal = qqreadbdArr[K]; + qqreadtimeurlVal = qqreadtimeurlArr[K]; + qqreadtimeheaderVal = qqreadtimehdArr[K]; + for (let i = 0; i < 13; i++) { + (function (i) { + setTimeout( + function () { + if (i == 0) + qqreadinfo(); // 用户名 + if (i == 1) { + qqreadwktime(); // 周时长查询 + qqreadconfig(); // 时长查询 + qqreadtrack();//更新 + } else if (i == 2){ + qqreadtask();// 任务列表 + if (config.data &&config.data.pageParams.todayReadSeconds / 3600 <= maxtime)qqreadtime(); // 上传时长 +} + else if (i == 3 ){ + qqreadpick();// 领周时长奖励 + if (task.data && task.data.taskList[0].doneFlag == 0) + qqreaddayread();// 阅读任务 + if (task.data && task.data.taskList[1].doneFlag == 0) + qqreadssr1();// 阅读金币1 + if (task.data && task.data.taskList[2].doneFlag == 0) { + qqreadsign(); // 金币签到 + qqreadtake(); // 阅豆签到 +} + if (task.data && task.data.taskList[3].doneFlag == 0) + qqreadvideo();// 视频任务 +} + else if (i == 7 ){ + if (task.data && task.data.treasureBox.doneFlag == 0) + qqreadbox();// 宝箱 + if (task.data && task.data.taskList[1].doneFlag == 0) + qqreadssr2();// 阅读金币2 + if (task.data && task.data.taskList[2].doneFlag == 0) + qqreadsign2();// 签到翻倍 +} + else if (i == 8&&task.data && +task.data.user.amount >= 100000){ + if ($.isNode()&&d.getHours() == 23) + qqreadwithdraw();//现金提现 + else if (b.getHours() == 23) + qqreadwithdraw();//现金提现 +} + + else if (i == 9){ + if ($.isNode()&&d.getHours() == 23 && d.getMinutes() >= 40) + qqreadtrans();//今日收益累计 + else if (b.getHours() == 23 && b.getMinutes() >= 40) + qqreadtrans();//今日收益累计 +} + else if (i == 11 ){ + if (task.data && task.data.treasureBox.videoDoneFlag == 0) + qqreadbox2();// 宝箱翻倍 + if (task.data && task.data.taskList[1].doneFlag == 0) + qqreadssr3();// 阅读金币3 +} + else if (i == 12){ + if ( K < qqreadbdArr.length - 1) { + K += 1; + all(); +} else if (K == qqreadbdArr.length - 1) { + showmsg(); // 通知 + $.done(); + } + } +}, + + (i + 1) * dd * 1000 + ); + })(i); + } +} + + + +// 任务列表 +function qqreadtask() { + return new Promise((resolve, reject) => { + const toqqreadtaskurl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/page?fromGuid=", + headers: JSON.parse(qqreadtimeheaderVal), + + timeout: 60000, + }; + $.get(toqqreadtaskurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 任务列表: ${data}`); + task = JSON.parse(data); + kz += + `【现金余额】:${(task.data.user.amount / 10000).toFixed(2)}元\n` + + `【已开宝箱】:${task.data.treasureBox.count}个\n`; + + tz += + `【现金余额】:${(task.data.user.amount / 10000).toFixed(2)}元\n` + + `【第${task.data.invite.issue}期】:时间${task.data.invite.dayRange}\n` + + ` 已邀请${task.data.invite.inviteCount}人,再邀请${task.data.invite.nextInviteConfig.count}人获得${task.data.invite.nextInviteConfig.amount}金币\n` + + `【${task.data.taskList[0].title}】:${task.data.taskList[0].amount}金币,${task.data.taskList[0].actionText}\n` + + `【${task.data.taskList[1].title}】:${task.data.taskList[1].amount}金币,${task.data.taskList[1].actionText}\n` + + `【${task.data.taskList[2].title}】:${task.data.taskList[2].amount}金币,${task.data.taskList[2].actionText}\n` + + `【${task.data.taskList[3].title}】:${task.data.taskList[3].amount}金币,${task.data.taskList[3].actionText}\n` + + `【宝箱任务${task.data.treasureBox.count + 1}】:${ + task.data.treasureBox.tipText + }\n` + + `【${task.data.fans.title}】:${task.data.fans.fansCount}个好友,${task.data.fans.todayAmount}金币\n`; + + resolve(); + }); + }); +} + + + + + + + +// 金币统计 +function qqreadtrans() { + return new Promise((resolve, reject) => { +for(var y=1;y<9;y++){ + let day=0; + const toqqreadtransurl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/trans/list?pn="+y, + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadtransurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 今日收益: ${data}`); + trans = JSON.parse(data); + for(var i=0;i<20;i++){ +if(trans.data.list[i].createTime>=daytime) + day+=trans.data.list[i].amount; +} +tz+="【今日收益】:获得"+day+'\n' +resolve(); + }); + } + }); +} + + + +// 更新 +function qqreadtrack() { + return new Promise((resolve, reject) => { + const body = qqreadbodyVal.replace(new RegExp(/"dis":[0-9]{13}/),`"dis":${new Date().getTime()}`) + const toqqreadtrackurl = { + url: "https://mqqapi.reader.qq.com/log/v4/mqq/track", + headers: JSON.parse(qqreadtimeheaderVal), + body: body, + timeout: 60000, + }; + $.post(toqqreadtrackurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 更新: ${data}`); + track = JSON.parse(data); + tz += `【数据更新】:更新${track.msg}\n`; + resolve(); + }); + }); +} + + +//提现 +function qqreadwithdraw() { + return new Promise((resolve, reject) => { + const toqqreadwithdrawurl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/withdraw?amount=100000", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.post(toqqreadwithdrawurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 提现: ${data}`); + withdraw = JSON.parse(data); +if(withdraw.data.code==0) + tz += `【现金提现】:成功提现10元\n`; + kz += `【现金提现】:成功提现10元\n`; + resolve(); + }); + }); +} + + + + +// 用户名 +function qqreadinfo() { + return new Promise((resolve, reject) => { + const toqqreadinfourl = { + url: "https://mqqapi.reader.qq.com/mqq/user/init", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadinfourl, (error, response, data) => { + if (logs) $.log(`${jsname}, 用户名: ${data}`); + info = JSON.parse(data); + kz += `\n========== 【${info.data.user.nickName}】 ==========\n`; + tz += `\n========== 【${info.data.user.nickName}】 ==========\n`; + + resolve(); + }); + }); +} + +// 阅豆签到 +function qqreadtake() { + return new Promise((resolve, reject) => { + const toqqreadtakeurl = { + url: "https://mqqapi.reader.qq.com/mqq/sign_in/user", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.post(toqqreadtakeurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 阅豆签到: ${data}`); + take = JSON.parse(data); + if (take.data.takeTicket > 0) { + tz += `【阅豆签到】:获得${take.data.takeTicket}豆\n`; + } + + resolve(); + }); + }); +} + +// 阅读时长任务 +function qqreadconfig() { + return new Promise((resolve, reject) => { + const toqqreadconfigurl = { + url: + "https://mqqapi.reader.qq.com/mqq/page/config?router=%2Fpages%2Fbook-read%2Findex&options=", + headers: JSON.parse(qqreadtimeheaderVal), + }; + $.get(toqqreadconfigurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 阅读时长查询: ${data}`); + config = JSON.parse(data); + if (config.code == 0) + tz += `【时长查询】:今日阅读${( + config.data.pageParams.todayReadSeconds / 60 + ).toFixed(0)}分钟\n`; + + resolve(); + }); + }); +} + +// 阅读时长 +function qqreadtime() { + return new Promise((resolve, reject) => { + const toqqreadtimeurl = { + url: qqreadtimeurlVal.replace(/readTime=/g, `readTime=${TIME}`), + headers: JSON.parse(qqreadtimeheaderVal), + }; + $.get(toqqreadtimeurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 阅读时长: ${data}`); + time = JSON.parse(data); + if (time.code == 0) tz += `【阅读时长】:上传${TIME / 6}分钟\n`; + + resolve(); + }); + }); +} + +// 阅读金币1 +function qqreadssr1() { + return new Promise((resolve, reject) => { + const toqqreadssr1url = { + url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=30`, + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 1) { + $.get(toqqreadssr1url, (error, response, data) => { + if (logs) $.log(`${jsname}, 金币奖励1: ${data}`); + ssr1 = JSON.parse(data); + if (ssr1.data.amount > 0) + tz += `【阅读金币1】获得${ssr1.data.amount}金币\n`; + + resolve(); + }); + } + }); +} + +// 阅读金币2 +function qqreadssr2() { + return new Promise((resolve, reject) => { + const toqqreadssr2url = { + url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=300`, + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 5) { + $.get(toqqreadssr2url, (error, response, data) => { + if (logs) $.log(`${jsname}, 金币奖励2: ${data}`); + ssr2 = JSON.parse(data); + if (ssr2.data.amount > 0) + tz += `【阅读金币2】获得${ssr2.data.amount}金币\n`; + + resolve(); + }); + } + }); +} + +// 阅读金币3 +function qqreadssr3() { + return new Promise((resolve, reject) => { + const toqqreadssr3url = { + url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=1800`, + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + if (config.data && config.data.pageParams.todayReadSeconds / 60 >= 30) { + $.get(toqqreadssr3url, (error, response, data) => { + if (logs) $.log(`${jsname}, 金币奖励3: ${data}`); + ssr3 = JSON.parse(data); + if (ssr3.data.amount > 0) + tz += `【阅读金币3】获得${ssr3.data.amount}金币\n`; + + resolve(); + }); + } + }); +} + +// 金币签到 +function qqreadsign() { + return new Promise((resolve, reject) => { + const toqqreadsignurl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in/page", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadsignurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 金币签到: ${data}`); + sign = JSON.parse(data); + if (sign.data.videoDoneFlag) { + tz += `【金币签到】:获得${sign.data.todayAmount}金币\n`; + } + resolve(); + }); + }); +} + +// 金币签到翻倍 +function qqreadsign2() { + return new Promise((resolve, reject) => { + const toqqreadsign2url = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in_video", + + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadsign2url, (error, response, data) => { + if (logs) $.log(`${jsname}, 金币签到翻倍: ${data}`); + sign2 = JSON.parse(data); + if (sign2.code == 0) { + tz += `【签到翻倍】:获得${sign2.data.amount}金币\n`; + } + + resolve(); + }); + }); +} + +// 每日阅读 +function qqreaddayread() { + return new Promise((resolve, reject) => { + const toqqreaddayreadurl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/read_book", + + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreaddayreadurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 每日阅读: ${data}`); + dayread = JSON.parse(data); + if (dayread.code == 0) { + tz += `【每日阅读】:获得${dayread.data.amount}金币\n`; + } + + resolve(); + }); + }); +} + +// 视频奖励 +function qqreadvideo() { + return new Promise((resolve, reject) => { + const toqqreadvideourl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/watch_video", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadvideourl, (error, response, data) => { + if (logs) $.log(`${jsname}, 视频奖励: ${data}`); + video = JSON.parse(data); + if (video.code == 0) { + tz += `【视频奖励】:获得${video.data.amount}金币\n`; + } + + resolve(); + }); + }); +} + +// 宝箱奖励 +function qqreadbox() { + return new Promise((resolve, reject) => { + const toqqreadboxurl = { + url: "https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box", + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadboxurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 宝箱奖励: ${data}`); + box = JSON.parse(data); + if (box.data.count >= 0) { + tz += `【宝箱奖励${box.data.count}】:获得${box.data.amount}金币\n`; + } + + resolve(); + }); + }); +} + +// 宝箱奖励翻倍 +function qqreadbox2() { + return new Promise((resolve, reject) => { + const toqqreadbox2url = { + url: + "https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box_video", + + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadbox2url, (error, response, data) => { + if (logs) $.log(`${jsname}, 宝箱奖励翻倍: ${data}`); + box2 = JSON.parse(data); + if (box2.code == 0) { + tz += `【宝箱翻倍】:获得${box2.data.amount}金币\n`; + } + + resolve(); + }); + }); +} + +// 本周阅读时长 +function qqreadwktime() { + return new Promise((resolve, reject) => { + const toqqreadwktimeurl = { + url: `https://mqqapi.reader.qq.com/mqq/v1/bookShelfInit`, + headers: JSON.parse(qqreadtimeheaderVal), + }; + $.get(toqqreadwktimeurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 阅读时长: ${data}`); + wktime = JSON.parse(data); + if (wktime.code == 0) + tz += `【本周阅读时长】:${wktime.data.readTime}分钟\n`; + + resolve(); + }); + }); +} + +// 本周阅读时长奖励任务 +function qqreadpick() { + return new Promise((resolve, reject) => { + const toqqreadpickurl = { + url: `https://mqqapi.reader.qq.com/mqq/pickPackageInit`, + headers: JSON.parse(qqreadtimeheaderVal), + }; + if (wktime.data.readTime >= wktimess && wktime.data.readTime <= 1250) { + $.get(toqqreadpickurl, (error, response, data) => { + if (logs) $.log(`${jsname},周阅读时长奖励任务: ${data}`); + pick = JSON.parse(data); + if (pick.data[7].isPick == true) tz += "【周时长奖励】:已全部领取\n"; + + for (let i = 0; i < pick.data.length; i++) { + setTimeout(() => { + const pickid = pick.data[i].readTime; + const Packageid = [ + "10", + "10", + "20", + "30", + "50", + "80", + "100", + "120", + ]; + const toqqreadPackageurl = { + url: `https://mqqapi.reader.qq.com/mqq/pickPackage?readTime=${pickid}`, + headers: JSON.parse(qqreadtimeheaderVal), + timeout: 60000, + }; + $.get(toqqreadPackageurl, (error, response, data) => { + if (logs) $.log(`${jsname}, 领周阅读时长: ${data}`); + Package = JSON.parse(data); + if (Package.code == 0) + tz += `【周时长奖励${i + 1}】:领取${Packageid[i]}阅豆\n`; + }); + }, i * 100); + } + }); + resolve(); + } + }); +} + +function showmsg() { + + if ($.isNode()) { + tz += `\n\n========= 脚本执行-北京时间(UTC+8):${new Date( + new Date().getTime() + 8 * 60 * 60 * 1000 + ).toLocaleString()} \n\n`; +}else tz += `\n\n========= 脚本执行-北京时间(UTC+8):${new Date( + new Date().getTime() + ).toLocaleString()} \n\n`; + + if ( + (d.getHours() == 12 && d.getMinutes() <= 20) || + (d.getHours() == 23 && d.getMinutes() >= 40) + ) { + notify.sendNotify(jsname, kz); + } + + if (notifyInterval != 1) console.log(tz); // 无通知时,打印通知 + + if (notifyInterval == 1) $.msg(jsname, "", tz); + // 显示所有通知 + else if ( + notifyInterval == 2 && + task.data && + task.data.treasureBox.doneFlag == 0 + ) + $.msg(jsname, "", tz); + // 宝箱领取成功通知 + else if ( + (notifyInterval == 3 && task.data && task.data.treasureBox.count == 0) || + task.data.treasureBox.count == 15 || + task.data.treasureBox.count == 30 || + task.data.treasureBox.count == 45 || + task.data.treasureBox.count == 60 + ) + $.msg(jsname, "", tz); // 宝箱每15次通知一次 + + + + +} + + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/Task/quantumult_20210105133054.conf b/Task/quantumult_20210105133054.conf new file mode 100644 index 000000000..69b34cd4b --- /dev/null +++ b/Task/quantumult_20210105133054.conf @@ -0,0 +1,111 @@ +#windforclouds +[general] +server_check_url=http://bing.com/ +dns_exclusion_list = *.cmpassport.com, *.jegotrip.com.cn, *.icitymobile.mobi, id6.me, *.icitymobile.mobi, *.pingan.com.cn, *.cmbchina.com, *.localnetwork.uop, mfs.ykimg.com*.ttf +geo_location_checker=http://ip-api.com/json/?lang=zh-CN, https://raw.githubusercontent.com/Orz-3/QuantumultX/master/IP.js +resource_parser_url=https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js +profile_img_url=https://raw.githubusercontent.com/Orz-3/mini/none/qikuo.png + +[dns] +no-ipv6 +server=223.5.5.5 +server=114.114.114.114 +server=119.29.29.29 +server=8.8.8.8 +address=/mtalk.google.com/108.177.125.188 + +[policy] + + + +[filter_remote] + + +[server_remote] +https://api.ikuuu.science/link/pI9dJpPwZliS2F2j?shadowrocket=1&extend=1, update-interval=86400, opt-parser=true, enabled=true +#这里是订阅修改的示例,请根据自己的实际订阅修改(你自己的订阅开头不要带#号,带了不生效) +#https://订阅链接rul, tag=想要显示在圈x中的机场名称(可以中文可以emoji表情), img-url=想要显示的机场图标网络url(网址格式), enabled=true + + +[rewrite_remote] +https://raw.githubusercontent.com/windforclouds/JavaScript/master/Task/qqreadCookie.conf, tag=企鹅阅读cookie, update-interval=86400, opt-parser=false, enabled=false +https://gitee.com/chavyleung/scripts/raw/master/box/rewrite/boxjs.rewrite.quanx.tf.conf, tag=boxjs, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/sngxpro/QuanX/master/Cookie.conf, tag=cookie, update-interval=86400, opt-parser=false, enabled=false + + +[server_local] + + + +[filter_local] +;user-agent, ?abc*, proxy +;host, www.google.com, proxy +;host-keyword, adsite, reject +;host-suffix, googleapis.com, proxy +;ip6-cidr, 2001:4860:4860::8888/32, direct +ip-cidr, 10.0.0.0/8, direct +ip-cidr, 127.0.0.0/8, direct +ip-cidr, 172.16.0.0/12, direct +ip-cidr, 192.168.0.0/16, direct +ip-cidr, 224.0.0.0/24, direct +geoip, cn, direct +final, proxy + + +[rewrite_local] +#此处我配套下方的自动化脚本,写入了所有的任务cookie抓取重写。请自行禁用你不需要的,禁用已经成功抓取过cookie的,要不费电 +#禁用方法:在下方的重写前方添加一个#号(变成绿色)就可以,或者直接删除(不推荐) +##################### +#京东成长分 +#需要通过京东学生认证这是签到的基础。点击京东app->我的->小白成长分即可获取cookie成功 +^https:\/\/ms\.jr\.jd\.com\/gw\/generic\/bt\/h5\/m\/queryUserSignFlow url script-request-header https://raw.githubusercontent.com/barrym-chen/Script/master/jdczf/jdczf_cookie.js +#显示京东历史价格(启动圈X自动生效) +^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig|basicConfig) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/jd_price.js + + + + +[task_local] +*/11 * * * * https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js, tag=qq阅读, img-url=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.jpg, enabled=true +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/jdczf/jdczf.js, tag=京东成长分, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jdczf.png, enabled=false +##京东系脚本必须提前获取cookie才能生效。如果没有获取过,浏览器登录 https://bean.m.jd.com 点击签到并且出现签到日历后即可获取 +0 1 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_joy_steal.js, tag=京东宠汪汪偷狗粮, img-url=https://raw.githubusercontent.com/znz1992/Gallery/master/jdww.png, enabled=true +##京东系脚本必须提前获取cookie才能生效。如果没有获取过,浏览器登录 https://bean.m.jd.com 点击签到并且出现签到日历后即可获取 +11 5 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_blueCoin.js, tag=京小超领蓝币, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxc.png, enabled=true +0 9 * * * https://raw.githubusercontent.com/NobyDa/Script/master/JD-DailyBonus/JD_DailyBonus.js, tag=京东, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +* * * * * https://raw.githubusercontent.com/chavyleung/scripts/master/box/switcher/box.switcher.js, tag=切换会话, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/box.png, enabled=false +#取关京东店铺商品 +#默认每运行一次脚本取消关注10个商品,10个店铺。 +55 23 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_unsubscribe.js, tag=取关京东店铺商品, enabled=true +25,56 */2 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_moneyTree.js, tag=京东摇钱树, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +20,51 */3 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_joy.js, tag=京东宠汪汪, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +15,46 */4 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_speed.js, tag=京东天天加速, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +10,41 7-19/6 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_fruit.js, tag=东东农场, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +5,36 6-18/6 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_pet.js, tag=京东萌宠, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +0,31 6-23/2 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_plantBean.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +11 1-23/2 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_superMarket.js, tag=京小超, enabled=true + + +[http_backend] +;https://raw.githubusercontent.com/crossutility/Quantumult-X/master/sample-backend.js, tag=fileConverter, path=^/example/v1/ +;preference.js, tag=userPreference, path=^/preference/v1/, img-url=https://example.com, enabled=true +;convert.js, tag=fileConverter, path=^/convert/v1/ + + +# +# Only the TLS SNI or destination address in "hostname" will be handled by MitM. +# +# By default when MitM enabled for the HTTPS request, Quantumult X fetches the certificate(the certificate will be cached) from the original site, keeps most of the needed original certificate informations and re-signs it using the MitM root CA, this is the recommended(and more compatible) way of creating MitM certificate. +# Occasionally some users like to debug the HTTPS request that its domain does not exist, so the original certificate doesn't even exist. This is when the param simple_cert_hostname comes up. The HTTPS request with TLS SNI names that are in the simple_cert_hostname(and hostname) will using the pure local generated MitM certificate. +# +# Important !!! You should always keep your CA passphrase and p12 private. +# +[mitm] +passphrase = 9BE84E55 +p12 = MIIKsQIBAzCCCnsGCSqGSIb3DQEHAaCCCmwEggpoMIIKZDCCBL8GCSqGSIb3DQEHBqCCBLAwggSsAgEAMIIEpQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIECp3ZUjk7lACAggAgIIEeBfTXFW7/2QVcT+B/92c1WYLfK5mqjWDWvNkHAw03crOR7f6PKGu5XJVTP1/lR+cwD98sf6dTlEPl89RpDNA3YtopV4CYp9F46sBUjwbT31BZiq5ETkEg5i2p434TOFdM8zXJ0dK1saAZBix6e/SBBucd3Wno46ZOLjsSi71LY+XHQ/khDhzB+AMkDBh03T0Iwt6ZY1X3upLXPTR5toAJiXSvTD3GXI4LGW1y5pUdV5u0DFdcNqWnFNYe2/ZzMDFj/pvwCg0l//5mgeOiULJULLTW+BNF/kfCedavXvwTzoZYZM18Gy+RYJplDYrffoioT/8ZbXzfZkCI0W6b/XHRJ0Atrtk695GtI5YLnn0L1MyW9j6hi8wLSGUBDD2k+G2bezzRll751tSYVeQT6wghG1AKaisTHY+n3vJ+hBVaccR1K5GhhTheZ2oY6yr2PHc67/oSeneO0V92Jmo1RWHXW/Din4HvojOwUH9POCQTCcMUeWW3WqL+eBYBRu6Oo58qyygtsGEE/6HVbqV0K0ljwzUTwdwLh9KaxxRgQfI/JLAj+Qidzqa76Tv7jhAEPUywjzvKGKdBi6KtVZ6Q3qiZxZNOiW3gr+jrnwyTfZYBWAQv7HhgfdLfT7zgqAblCg8xUWp3bSNqv2aSomd8cZtRmsCi6pk/cgnFXm/alfzHHvhDPmgjLDc0+Pt2XHD1B2qTfLu4SD54nppJ1cHTlDzj0y6flFX87hn2TqoEDodlfAup/0Wdp40h5Ie1LdgLnoyG9QJQ2gL6Cqc8VpkYnMqj1tYPmwv8JqiY/W7pTCqOzt9QtpemNcCt0w1r2STGXqJgNWJQT6ero6cPTUPmGrk+9xN2vtNYwCZFApeWDJmB5kl/G+UfWbyA2zIV2wSEOwIrWI+jA+ghvF9rXNDS0QNmy8v6+OKu7psEyxTrMpqltWgRW7t0fJMKaW25/BR9JFpeH4mfQy5Du0GVEp1HGCRpoHRSkccZ+5kqDjvqvQiD0QO3hOmFQ2wovOP1aiD4+4FvOH01KT7jIzj068Wzu3O6ugHF/uHrz3+dIIRU5alEar8ruZjYPvqGKo8O68D7+qR2SxZjmcqw4TtOzRmXl/fkg/45Ur9mXwt7U19S1M+zZ0l1+RGdLIw8R66bBeIOt9sM97G2yVPpZI2kH1/g0nUmViRr0XxhNWECGDViUGlW2wUqqDsFrQ54YYeyeTcbnl9Lvzvvi5tg2Q2UYghAnYeV5kG61MeqR254vGh6mUeMBGVqgDrr7pjfVSunyvb2JH2TnxKcYTW0HIuXpfD6tv1IQry0RMbzN2f873V/nDVAw5xBIHmdFJfp1RmH0XywQ3DvjDhReCXGkJ0syO3dy4buzy0pX3IdN2Co/9oc0eEwQhsoGRpsDeOujeAKix979nfpR1YS/SJAnjUhqhOPdfXRcXgy2whulh1BBqTDenoXh3ahbYBU3ixvXoySI1BY7ZjtnIh8iUfOFLBqoE9gLkIXAOywZin4YcmgrPle8cGGwLRdQwDLXM8zRswggWdBgkqhkiG9w0BBwGgggWOBIIFijCCBYYwggWCBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIIPn3O71hYWECAggABIIEyP4kIsZNqvHZ66nMzcDmUG6sX7JFYQ6rfbRg8GbLPsVFyY0AmIz9sCGOaT0r2ZfDQdjk5E0kPgH8n9ndA1JLF1SLuKWsMh8cbwr0M2/pAWT+fOqw8ak/gvKkm4TkviA3h1nrmhroYiBQiCzydyvfU9ub/R7dLaGO5WzvlLeosjOWlTFY8BXvrPnaM9UsSrx/GBkq/1SJAy1KQqUIGV3i8CqPGVGHZI7qYrDZryZMHahWWb6nv/oYxiWjVkNo1nrnpIttwgufN+iDVQUlCRdbYZj54KLIlc38fCwgSNwoYMCyyB4v1zPRLC3q2RjI9lnXX3iEDKcrNKIUE6wreTUw50+Dk/s18/bJGBdnyvCaAuoCdRHQxlfd1t89U1GxopqIXZdcFT/vMSDDSq1jpWhnaAGuzGfX09eKY1DpfaHfYODu0hBOMaxQrA4SbHXbah1m+q7R/UejYtvVDsu5mbsLDBVzwJxLP8DuaQMKeWgTfPORbJcI+eEyzfXU/63fRrEMrtTxBHtxiZqeVLa9Vea8t+vfzQTwq9N3qBg4c9VJus+uifftyQSj3dSepKW9VENxCf7CUso7cbuID8aZtq2xje6z3ckeRXyWUFerMIich4Jf7d9WivbB00Nvi3FrYj6oiVIzDajPNq7OVFr7UVgSCRLhKSgw3pKELb8Hsge4NxEpMUPkcX84FT4KYf1uCX743zCjzNl6xK0OHDz9Pcg2tPYDYF41ws5r7VKgfqVDUVRHWq3MeiROx6btnEruneMaSZnEuJpcca9QhMVbZLB+k3TapLxg3khlgTPrNMYJAIlC4zAGUpgK3ml+jZ5X6nzvpHAiekhAsLmzy4MI8s2eu5n81c3CHvpbz+pJyj8pGPHnBoB27j4Fpblky44BR7y1Yz1MSP9nDxqpJtt8M6bLeazhbdEVvfqaGfSk9pmmiR3i1nI2vIP/dHld7wZCJ5fh4MHovos41MT/PxxqL9JJfqhe9a+C4+zc2jEkXwRnCdsb8K2ZAIMDNV6eTasNqDCLZVYiHItiQLUsxuHK+tBB3IM2TfACF+ejf6o10Uh8Csosm+bF08kgTh8XB60rsAYOs1YhiCKJI/08wSrcE3R2+nUTIXmQuSFu8xMcEYC6BBbvZ9L315T3KUsB3sMQ6xw2rvCCMP71V61dPYKcMmhcCwdR/dVARr1wODfML1pH0OvPnuVazTEz0kJcfbZ1goFECZLx9/J78Rf7qA06/JMpYHeo7Vx1VhWqavYRx+hClj+vg+qcR4NTu+n+5cq0GLBLanisJ1NPywrr6jJaN75L893D31WgALFyQq4Wy+nDyR2KMB6gxuakT2y6yNS11Jw5A7gdGCdpYyUJnYMg3TiXNTZyjA5Wyki0wMUhOYTM2jDDOZ//zUzWCc8X7mpAzxJvwXw5HDEiZSQKzeFgXyEVx9k8hAI65LBwDz7smZ/x/beK56CvxlDhX4rvewLNf6YkzxhMAvkcWAIM9e+kLH6uEj1xd9tmUwJNcWHpjn36Mlk96QTRVDOEucKtTk53cz4M8rkahHz3ZIt6orDVrT+cu5nXq2mEEbbjhZMzkB+x9Y5uwaH8Kg3L0iHXOd1L4QRE18IenmFAIGjC+dNGSKdNMdxBdn4ql9VXuDGBgDAjBgkqhkiG9w0BCRUxFgQUt2RNEJzOAbLYeiavvY1q0UpHEhMwWQYJKoZIhvcNAQkUMUweSgBRAHUAYQBuAHQAdQBtAHUAbAB0ACAAWAAgAEMAQQAgADkAQgBFADgANABFADUANQAgACgANAAgAEoAYQBuACAAMgAwADIAMQApMC0wITAJBgUrDgMCGgUABBQKMGqD4++UOcoFcR1NbTQquM+DKwQI/fF/vbcmRN8= +;passphrase = +;p12 = +;skip_validating_cert = false +;force_sni_domain_name = false +;hostname = *.example.com, *.sample.com, non-existed-domain.com, *.non-connected-domain.com +;simple_cert_hostname = non-existed-domain.com, *.non-connected-domain.com diff --git a/Task/sendNotify.js b/Task/sendNotify.js new file mode 100644 index 000000000..b0874bb07 --- /dev/null +++ b/Task/sendNotify.js @@ -0,0 +1,255 @@ +const $ = new Env(); +// =======================================微信server酱通知设置区域=========================================== +//此处填你申请的SCKEY. +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入PUSH_KEY) +let SCKEY = ''; + +// =======================================Bark App通知设置区域=========================================== +//此处填你BarkAPP的信息(IP/设备码,例如:https://api.day.app/XXXXXXXX) +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入BARK_PUSH) +let BARK_PUSH = ''; +//BARK app推送铃声,铃声列表去APP查看复制填写 +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入BARK_SOUND , Value输入app提供的铃声名称,例如:birdsong) +let BARK_SOUND = ''; + + +// =======================================telegram机器人通知设置区域=========================================== +//此处填你telegram bot 的Token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入TG_BOT_TOKEN) +let TG_BOT_TOKEN = ''; +//此处填你接收通知消息的telegram用户的id,例如:129xxx206 +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入TG_USER_ID) +let TG_USER_ID = ''; + +// =======================================钉钉机器人通知设置区域=========================================== +//此处填你钉钉 bot 的webhook,例如:5a544165465465645d0f31dca676e7bd07415asdasd +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入DD_BOT_TOKEN) +let DD_BOT_TOKEN = ''; +//密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串 +let DD_BOT_SECRET = ''; + +if (process.env.PUSH_KEY) { + SCKEY = process.env.PUSH_KEY; +} +if (process.env.BARK_PUSH) { + if(process.env.BARK_PUSH.indexOf('https') > -1 || process.env.BARK_PUSH.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH}` + } + if (process.env.BARK_SOUND) { + BARK_SOUND = process.env.BARK_SOUND + } +} else { + if(BARK_PUSH && BARK_PUSH.indexOf('https') === -1 && BARK_PUSH.indexOf('http') === -1) { + //兼容BARK本地用户只填写设备码的情况 + BARK_PUSH = `https://api.day.app/${BARK_PUSH}` + } +} +if (process.env.TG_BOT_TOKEN) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN; +} +if (process.env.TG_USER_ID) { + TG_USER_ID = process.env.TG_USER_ID; +} + +if (process.env.DD_BOT_TOKEN) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN; + if (process.env.DD_BOT_SECRET) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET; + } +} + +async function sendNotify(text, desp) { + //提供四种通知 + await serverNotify(text, desp); + await BarkNotify(text, desp); + await tgBotNotify(text, desp); + await ddBotNotify(text, desp); +} + +function serverNotify(text, desp) { + return new Promise(resolve => { + if (SCKEY) { + //微信server酱推送通知一个\n不会换行,需要两个\n才能换行,故做此替换 + desp = desp.replace(/[\n\r]/g, '\n\n'); + const options = { + url: `https://sc.ftqq.com/${SCKEY}.send`, + body: `text=${text}&desp=${desp}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n发送通知调用API失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.errno === 0) { + console.log('\nserver酱发送通知消息成功\n') + } else if (data.errno === 1024) { + console.log('\nPUSH_KEY 错误\n') + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else { + console.log('\n您未提供server酱的SCKEY,取消微信推送消息通知\n'); + resolve() + } + }) +} + +function BarkNotify(text, desp) { + return new Promise(resolve => { + if (BARK_PUSH) { + const options = { + url: `${BARK_PUSH}/${encodeURIComponent(text)}/${encodeURIComponent(desp)}?sound=${BARK_SOUND}`, + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log('\nBark APP发送通知调用API失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log('\nBark APP发送通知消息成功\n') + } else { + console.log(`\n${data.message}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + } else { + console.log('\n您未提供Bark的APP推送BARK_PUSH,取消Bark推送消息通知\n'); + resolve() + } + }) +} + +function tgBotNotify(text, desp) { + return new Promise(resolve => { + if (TG_BOT_TOKEN && TG_USER_ID) { + const options = { + url: `https://api.telegram.org/bot${TG_BOT_TOKEN}/sendMessage`, + body: `chat_id=${TG_USER_ID}&text=${text}\n\n${desp}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\ntelegram发送通知消息失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.ok) { + console.log('\nTelegram发送通知消息完成。\n') + } else if (data.error_code === 400) { + console.log('\n请主动给bot发送一条消息并检查接收用户ID是否正确。\n') + } else if (data.error_code === 401){ + console.log('\nTelegram bot token 填写错误。\n') + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else { + console.log('\n您未提供telegram机器人推送所需的TG_BOT_TOKEN和TG_USER_ID,取消telegram推送消息通知\n'); + resolve() + } + }) +} +function ddBotNotify(text, desp) { + return new Promise(resolve => { + const options = { + url: `https://oapi.dingtalk.com/robot/send?access_token=${DD_BOT_TOKEN}`, + json: { + "msgtype": "text", + "text": { + "content": ` ${text}\n\n${desp}` + } + }, + headers: { + 'Content-Type': 'application/json' + } + } + if (DD_BOT_TOKEN && DD_BOT_SECRET) { + const crypto = require('crypto'); + const dateNow = Date.now(); + const hmac = crypto.createHmac('sha256', DD_BOT_SECRET); + hmac.update(`${dateNow}\n${DD_BOT_SECRET}`); + const result = encodeURIComponent(hmac.digest('base64')); + options.url = `${options.url}×tamp=${dateNow}&sign=${result}`; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n钉钉发送通知消息失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('\n钉钉发送通知消息完成。\n') + } else { + console.log(`\n${data.errmsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else if (DD_BOT_TOKEN) { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n钉钉发送通知消息失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('\n钉钉发送通知消息完成。\n') + } else { + console.log(`\n${data.errmsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else { + console.log('\n您未提供钉钉机器人推送所需的DD_BOT_TOKEN或者DD_BOT_SECRET,取消钉钉推送消息通知\n'); + resolve() + } + }) +} +module.exports = { + sendNotify, + BarkNotify, + SCKEY, + BARK_PUSH, + TG_BOT_TOKEN, + TG_USER_ID, + DD_BOT_TOKEN, +}//这里导出SCKEY,BARK_PUSH等通知参数是jd_bean_sign.js处需要 +// prettier-ignore +function Env(t,s){return new class{constructor(t,s){this.name=t,this.data=null,this.dataFile="box.dat",this.logs=[],this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,s),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}getScript(t){return new Promise(s=>{$.get({url:t},(t,e,i)=>s(i))})}runScript(t,s){return new Promise(e=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let o=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");o=o?1*o:20,o=s&&s.timeout?s.timeout:o;const[h,a]=i.split("@"),r={url:`http://${a}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:o},headers:{"X-Key":h,Accept:"*/*"}};$.post(r,(t,s,i)=>e(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),s=this.path.resolve(process.cwd(),this.dataFile),e=this.fs.existsSync(t),i=!e&&this.fs.existsSync(s);if(!e&&!i)return{};{const i=e?t:s;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),s=this.path.resolve(process.cwd(),this.dataFile),e=this.fs.existsSync(t),i=!e&&this.fs.existsSync(s),o=JSON.stringify(this.data);e?this.fs.writeFileSync(t,o):i?this.fs.writeFileSync(s,o):this.fs.writeFileSync(t,o)}}lodash_get(t,s,e){const i=s.replace(/\[(\d+)\]/g,".$1").split(".");let o=t;for(const t of i)if(o=Object(o)[t],void 0===o)return e;return o}lodash_set(t,s,e){return Object(t)!==t?t:(Array.isArray(s)||(s=s.toString().match(/[^.[\]]+/g)||[]),s.slice(0,-1).reduce((t,e,i)=>Object(t[e])===t[e]?t[e]:t[e]=Math.abs(s[i+1])>>0==+s[i+1]?[]:{},t)[s[s.length-1]]=e,t)}getdata(t){let s=this.getval(t);if(/^@/.test(t)){const[,e,i]=/^@(.*?)\.(.*?)$/.exec(t),o=e?this.getval(e):"";if(o)try{const t=JSON.parse(o);s=t?this.lodash_get(t,i,""):s}catch(t){s=""}}return s}setdata(t,s){let e=!1;if(/^@/.test(s)){const[,i,o]=/^@(.*?)\.(.*?)$/.exec(s),h=this.getval(i),a=i?"null"===h?null:h||"{}":"{}";try{const s=JSON.parse(a);this.lodash_set(s,o,t),e=this.setval(JSON.stringify(s),i)}catch(s){const h={};this.lodash_set(h,o,t),e=this.setval(JSON.stringify(h),i)}}else e=$.setval(t,s);return e}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,s){return this.isSurge()||this.isLoon()?$persistentStore.write(t,s):this.isQuanX()?$prefs.setValueForKey(t,s):this.isNode()?(this.data=this.loaddata(),this.data[s]=t,this.writedata(),!0):this.data&&this.data[s]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,s=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?$httpClient.get(t,(t,e,i)=>{!t&&e&&(e.body=i,e.statusCode=e.status),s(t,e,i)}):this.isQuanX()?$task.fetch(t).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t)):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,s)=>{try{const e=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(e,null),s.cookieJar=this.ckjar}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t)))}post(t,s=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),delete t.headers["Content-Length"],this.isSurge()||this.isLoon())$httpClient.post(t,(t,e,i)=>{!t&&e&&(e.body=i,e.statusCode=e.status),s(t,e,i)});else if(this.isQuanX())t.method="POST",$task.fetch(t).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t));else if(this.isNode()){this.initGotEnv(t);const{url:e,...i}=t;this.got.post(e,i).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t))}}time(t){let s={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in s)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?s[e]:("00"+s[e]).substr((""+s[e]).length)));return t}msg(s=t,e="",i="",o){const h=t=>!t||!this.isLoon()&&this.isSurge()?t:"string"==typeof t?this.isLoon()?t:this.isQuanX()?{"open-url":t}:void 0:"object"==typeof t&&(t["open-url"]||t["media-url"])?this.isLoon()?t["open-url"]:this.isQuanX()?t:void 0:void 0;$.isMute||(this.isSurge()||this.isLoon()?$notification.post(s,e,i,h(o)):this.isQuanX()&&$notify(s,e,i,h(o))),this.logs.push("","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="),this.logs.push(s),e&&this.logs.push(e),i&&this.logs.push(i)}log(...t){t.length>0?this.logs=[...this.logs,...t]:console.log(this.logs.join(this.logSeparator))}logErr(t,s){const e=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();e?$.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):$.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(s=>setTimeout(s,t))}done(t={}){const s=(new Date).getTime(),e=(s-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,s)} \ No newline at end of file diff --git a/Task/ttwkziye.js b/Task/ttwkziye.js new file mode 100644 index 000000000..4be9d0546 --- /dev/null +++ b/Task/ttwkziye.js @@ -0,0 +1,220 @@ +/*ZIYE 感谢 Sunert 大佬的原js 天天挖矿 + + +js制作时间:2020-10-20 + +https://raw.githubusercontent.com/ziye12/JavaScript/master/ttwkziye.js + +本脚本仅适用支付宝小程序天天挖矿,支持Actions多账号运行 +获取Cookie方法: +1.将下方[rewrite_local]和[MITM]地址复制的相应的区域下 +2.打开小程序,获取收益cookie,点击挖矿获取签到Cookie,获取后请注释或禁用Cookie +3.挖矿获取Cookie,已经挖矿无法获取 + + +QX 1.0.6+ : +[task_local] +#支付宝天天挖矿 +0 9 * * * https://raw.githubusercontent.com/ziye12/JavaScript/master/ttwkziye.js +[rewrite_local] +https:\/\/operation-api\.jimistore\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/ttwkziye.js + +~~~~~~~~~~~~~~~~ + +Loon 2.1.0+ +[Script] +#支付宝天天挖矿 +cron "04 00 * * *" script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/ttwkziye.js, enabled=true, tag=支付宝天天挖矿 +http-request https:\/\/operation-api\.jimistore\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/ttwkziye.js + + + + +~~~~~~~~~~~~~~~~ +Surge 4.0 : +[Script] +支付宝天天挖矿 = type=cron,cronexp=35 5 0 * * *,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/ttwkziye.js,script-update-interval=0 + +支付宝天天挖矿 = type=http-request,pattern=https:\/\/operation-api\.jimistore\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/ttwkziye.js + + + +[MITM] +hostname = operation-api.jimistore.com +~~~~~~~~~~~~~~~~ +*/ + +const $ = new Env('支付宝天天挖矿')//js名字 支付宝天天挖矿 + + +const notify = $.isNode() ? require('./sendNotify') : ''; +let bodyArr = [],headerArr = [];//定义Secret设置 合集 + +if (isGetCookie = typeof $request !==`undefined`) { + GetCookie(); + $.done() //cookie获取判定 +} +//Secret合集循环方式判定,其中 ZFBWK_BODY ZFBWK_HEADER 为git仓库中的Secret合集等同于手机js的ck +if ($.isNode()) { + if (process.env.ZFBWK_BODY && process.env.ZFBWK_BODY.indexOf('#') > -1) { + wkbody = process.env.ZFBWK_BODY.split('#'); + console.log(`您选择的是用"#"隔开\n`) + } + else if (process.env.ZFBWK_BODY && process.env.ZFBWK_BODY.indexOf('\n') > -1) { + wkbody = process.env.ZFBWK_BODY.split('\n'); + console.log(`您选择的是用换行隔开\n`) + } else { + wkbody = process.env.ZFBWK_BODY.split() + }; + //判定读取Secret合集,赋值于bodyArr与headerArr + if (process.env.ZFBWK_HEADER && process.env.ZFBWK_HEADER.indexOf('#') > -1) { + wkheader = process.env.ZFBWK_HEADER.split('#'); + } + else if (process.env.ZFBWK_HEADER && process.env.ZFBWK_HEADER.split('\n').length > 0) { + wkheader = process.env.ZFBWK_HEADER.split('\n'); + } else { + wkheader = process.env.ZFBWK_HEADER.split() + }; + Object.keys(wkbody).forEach((item) => { + if (wkbody[item]) { + bodyArr.push(wkbody[item]) + } + }); + Object.keys(wkheader).forEach((item) => { + if (wkheader[item]) { + headerArr.push(wkheader[item]) + } + }); + console.log(`============ 脚本执行-国际标准时间(UTC):${new Date().toLocaleString()} =============\n`) + console.log(`============ 脚本执行-北京时间(UTC+8):${new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toLocaleString()} =============\n`) + } else { + bodyArr.push($.getdata('sy_body_wk'))//判定读取ck + headerArr.push($.getdata('sy_header_wk'))//判定读取ck +} + //异步运行 +!(async () => { + if (!bodyArr[0]) { + $.msg($.name, '【提示】请先获取支付宝天天挖矿一cookie') + return; + } + console.log(`------------- 共${bodyArr.length}个账号\n`) + for (let i = 0; i < bodyArr.length; i++) { + if (bodyArr[i]) { + bodyVal = bodyArr[i]; + headerVal = headerArr[i]; + $.index = i + 1; + console.log(`\n开始【天天挖矿${$.index}】`) + await getsign(); + if (headerVal !== undefined){ + await getsy(); + } else { + wksy = `【天天挖矿】❌ 未获取Cooiekie` + }; + $.msg($.name, wksign,wksy)//手机js通知项 wksign headerbag docard + if ($.isNode()) { + await notify.sendNotify($.name+ wksign,wksy)//git通知项 wksign headerbag docard + } + } + } +})() + .catch((e) => $.logErr(e)) + .finally(() => $.done()) + + + + + + + + +// Cookie获取 +function GetCookie() { +if ($request && $request.method != 'OPTIONS' && $request.url.match(/createSign/)) { + const signurlVal = $request.url + const bodyVal = $request.body + const headerVal = JSON.stringify($request.headers) + + //const signheaderVal = JSON.stringify($request.headers) + $.log(`bodyVal:${bodyVal}`) + if (bodyVal) $.setdata(bodyVal, 'sy_body_wk') + if (headerVal) $.setdata(headerVal, 'sy_header_wk') + $.msg($.name, `获取天天挖矿Cookie: 成功`, ``) + + + +} +} + + + +//天天挖矿 +function getsign() { + return new Promise((resolve, reject) =>{ + let signurl = { + url: `https://operation-api.jimistore.com/api/mining/v1/sign/createSign`, + headers: JSON.parse(headerVal),body: bodyVal + } + $.post(signurl, async(error, response, data) => { + let result = JSON.parse(data) + if (result.data.success == 'true'){ + wksign = '【天天挖矿】✅ 挖矿成功, 收益:'+result.amount/100+'元💰\n' + } + else if (result.data.success == 'false'){ + wksign = `【天天挖矿】 重复挖矿\n` + } + else if (result.code == 40101){ + wksign = `【天天挖矿】 挖矿失败, 原因:${result.message}\n` + } + else { + wksign = `【天天挖矿】 挖矿失败, 原因:`+result.errmsg + $.msg($.name, wksign, ``) + if ($.isNode()) { + await notify.sendNotify($.name, wksign) + }//git通知项 + return + } + resolve() + }) + }) +} + + + + + + + +//天天挖矿收益 +function getsy() { + return new Promise((resolve, reject) =>{ + let syurl = { + url: `https://operation-api.jimistore.com/api/mining/v1/sign/showSignInfo`, + headers: JSON.parse(headerVal) + } + $.post(syurl, async(error, response, data) => { + let result = JSON.parse(data) + if (result.code == 200){ + wksy = '【挖矿收益】账户总收益:'+result.data.cumulativeMoney/100+`元💰\n【挖矿记录】连续挖矿${result.data.numberInRounds}天,总计挖矿${result.data.cumulativeSignCount}天\n` + } + + else if (result.code == 40101){ + wksy = `【挖矿收益】 挖矿失败, 原因:${result.message}\n` + } + + else { + wksy = `【挖矿收益】 挖矿失败, 原因:`+result.errmsg + $.msg($.name, wksy, ``) + if ($.isNode()) { + await notify.sendNotify($.name, wksy) + }//git通知项 + return + } + resolve() + }) + }) +} + + + + +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/Task/windforclouds.conf b/Task/windforclouds.conf new file mode 100644 index 000000000..f2d1b21c0 --- /dev/null +++ b/Task/windforclouds.conf @@ -0,0 +1,719 @@ +#脚本调用下列大佬的资源,在此致谢,排名不分先后 +#@nobyda @chavyleung @zzpiglet @songyangzz @toulanboy @sunert @peng-ym @iepngs @lowking @lxk0301 @vinewx @chouchoui @Orz-3 @ZhiYi-N @evilbutcher @yichahucha @id77 @photonmang @wangdelu2020 @Zero-S1 @ziye12 @barrym-chen @iisams @LJJJia @congcong0806 @XidNDD @passerby-b @photonmang + +#特别感谢Orz-3的图标项目 美化效果杠杠的 + + +[general] +server_check_url=http://bing.com/ +dns_exclusion_list = *.cmpassport.com, *.jegotrip.com.cn, *.icitymobile.mobi, id6.me, *.icitymobile.mobi, *.pingan.com.cn, *.cmbchina.com, *.localnetwork.uop, mfs.ykimg.com*.ttf +geo_location_checker=http://ip-api.com/json/?lang=zh-CN, https://raw.githubusercontent.com/Orz-3/QuantumultX/master/IP.js +resource_parser_url=https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/resource-parser.js +profile_img_url=https://raw.githubusercontent.com/Orz-3/mini/none/qikuo.png + + +[dns] +no-ipv6 +server=119.29.29.29 +address=/mtalk.google.com/108.177.125.188 + + +[policy] +#没有特别需要可以不修改直接套用 +static=新加坡, server-tag-regex=(?=.*(?i)(新加坡|狮城|SG|Singapore))^((?!(?i)(IPLC|IEPL|game|专线|手游|游戏)).)*$, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/SG.png +static=美国, server-tag-regex=(?=.*(?i)(美国|美國|US|States|American))^((?!(?i)(IPLC|IEPL|game|专线|手游|游戏)).)*$, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/US.png +static=日本, server-tag-regex=(?=.*(?i)(日本|JP|Japan))^((?!(?i)(IPLC|IEPL|game|专线|手游|游戏)).)*$, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/JP.png +static=韩国, server-tag-regex=(?=.*(?i)(韩国|韓國|南朝鲜|KR|Korean))^((?!(?i)(IPLC|IEPL|game|专线|手游|游戏)).)*$, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/KR.png +static=香港, server-tag-regex=(?=.*(?i)(香港|HK|Hong))^((?!(?i)(IPLC|IEPL|game|专线|手游|游戏)).)*$, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/HK.png +static=台湾, server-tag-regex=(?=.*(?i)(台湾|台灣|TW|Taiwan))^((?!(?i)(IPLC|IEPL|game|手游|游戏)).)*$, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/TW.png +static=特殊, server-tag-regex=^((?!(?i)(IPLC|IEPL|game|专线|手游|游戏|香港|台湾|日本|新加坡|美国|韩国|狮城|南朝鲜|US|SG|JP|KR|HK|TW|台灣|美國|韓國|獅城|States|American|Singapore|Japan|Korea|Hong|Taiwan|试用|流量|电报|网址|最新|域名|website)).)*$, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/UN.png +static=IPLC, server-tag-regex=(?i)(IPLC|IEPL|game|手游|游戏|专线), img-url=https://raw.githubusercontent.com/Orz-3/mini/master/IPLC.png +static=苹果服务, direct, 美国, 香港, proxy, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Apple.png +static=全球加速, proxy, 美国, 新加坡, 日本, 韩国, 香港, 台湾, 特殊, IPLC, direct, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Global.png +static=港台番剧, direct, 香港, 台湾, proxy, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/StreamingSE.png +static=国际媒体, proxy, 美国, 新加坡, 日本, 韩国, 香港, 台湾, 特殊, direct, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Streaming.png +static=声田音乐, proxy, 美国, 香港, 日本, direct, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Spotify.png +static=网飞影视, proxy, 新加坡, 香港, 台湾, direct, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Netflix.png +static=电报代理, proxy, direct, 新加坡, IPLC, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Telegram.png +static=黑白名单, proxy, direct, 美国, 新加坡, 日本, 韩国, 香港, 台湾, 特殊, IPLC, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Final.png + + +[server_remote] +#这里是订阅修改的示例,请根据自己的实际订阅修改(你自己的订阅开头不要带#号,带了不生效) +#https://订阅链接rul, tag=想要显示在圈x中的机场名称(可以中文可以emoji表情), img-url=想要显示的机场图标网络url(网址格式), enabled=true + + + + +[filter_remote] +#没有特别需要可以不修改直接套用 +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Unbreak.list, tag=规则修正, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Guard/Advertising.list, tag=广告拦截, force-policy=reject, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/AdRule.list, tag=广告拦截, force-policy=reject, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Guard/Hijacking.list, tag=运营劫持, force-policy=reject, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Guard/Privacy.list, tag=隐私保护, force-policy=reject, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Extra/Telegram/Telegram.list, tag=电报代理, force-policy=电报代理, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/StreamingMedia/Music/Spotify.list, tag=声田音乐, force-policy=声田音乐, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/StreamingMedia/Video/Netflix.list, tag=网飞影视, force-policy=网飞影视, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/StreamingMedia/Video/TikTok.list, tag=海外抖音, force-policy=国际媒体, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/StreamingMedia/Video/Bahamut.list, tag=动画疯, force-policy=台湾, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/StreamingMedia/Streaming.list, tag=国际媒体, force-policy=国际媒体, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/StreamingMedia/StreamingSE.list, tag=港台番剧, force-policy=港台番剧, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Global.list, tag=全球加速, force-policy=全球加速, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Extra/Apple/AppStoreConnect.list, tag=苹果服务, force-policy=苹果服务, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Extra/Apple/AppStore.list, tag=苹果服务, force-policy=苹果服务, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Extra/Apple/TestFlight.list, tag=苹果服务, force-policy=苹果服务, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/Extra/ChinaIP.list, tag=ChinaIP, update-interval=86400, enabled=true + + +[rewrite_remote] +#没有特别需要可以不修改直接套用 +https://raw.githubusercontent.com/sngxpro/QuanX/master/tiktok.conf, tag=解锁Tiktok, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/Orz-3/QuantumultX/master/YouTube.conf , tag=YouTube去广告, update-interval=86400, opt-parser=false, enabled=true +https://gitee.com/chavyleung/scripts/raw/master/box/rewrite/boxjs.rewrite.quanx.tf.conf, tag=BoxJS, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/Advertising.conf, tag=神机去广告, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/Rewrite_lhie1.conf, tag=lhie1去广告, update-interval=86400, opt-parser=false, enabled=true +https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Rewrite/General.conf, tag=神机重定向, update-interval=86400, opt-parser=false, enabled=true + + +[server_local] +#这里是手动添加的个人节点位置,根据个人情况修改添加,美化方式参考上面的server remote写法 + + +[filter_local] +#没有特别需要可以不修改直接套用 +host-suffix, local, direct +ip-cidr, 10.0.0.0/8, direct +ip-cidr, 127.0.0.0/8, direct +ip-cidr, 172.16.0.0/12, direct +ip-cidr, 192.168.0.0/16, direct +ip-cidr, 224.0.0.0/24, direct +geoip, cn, direct +final, 黑白名单 +host, rsshub.app, proxy +#绕过企业证书过期 +host, ocsp.apple.com, reject +#迅雷版权问题 +host, hub5idx.v6.shub.sandai.net, reject +host, hub5emu.v6.shub.sandai.net, reject +host, hub5btmain.v6.shub.sandai.net, reject +#屏蔽系统更新 +host, mesu.apple.com, reject +host, gdmf.apple.com, reject +#去掉YouTube++底部广告 +host-suffix, ehg-youtube.hitbox.com, reject +#网易云音乐 +host-suffix, music.126.net, direct + + +[rewrite_local] +#此处我配套下方的自动化脚本,写入了所有的任务cookie抓取重写。请自行禁用你不需要的,禁用已经成功抓取过cookie的,要不费电 +#禁用方法:在下方的重写前方添加一个#号(变成绿色)就可以,或者直接删除(不推荐) +##################### +#陀螺打卡 +https:\/\/wq\.02gk\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/tldkziye.js +#梨涡 +https:\/\/api\.m\.jd\.com\/api\/v1\/sign\/doSign url script-request-body https://raw.githubusercontent.com/iisams/Scripts/master/liwo/7dayscookie.js +#京喜 +https:\/\/wq\.jd\.com\/pgcenter\/sign\/QueryPGDetail\?sceneval=2&pageSize=20 url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/jingxi.js +#航旅纵横 +^https:\/\/cloud\.umetrip\.com\/gateway\/api\/web\/rest\/polite\/app\/sign\/signpageinitdata url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/umetrip/umetrip.js +#旅行世界购物版 +^https:\/\/ios-fenqu11\.lxsjgo\.com\/dog\/bug\?ts url script-request-body https://raw.githubusercontent.com/iepngs/Script/master/lxsj/index.js +^https:\/\/ios-fenqu11\.lxsjgo\.com\/dog\/bug\?ts url script-response-body https://raw.githubusercontent.com/iepngs/Script/master/lxsj/index.js +#携程 +^https:\/\/m\.ctrip\.com\/restapi\/soa2\/14946\/json\/userBaseInfo url script-request-header https://raw.githubusercontent.com/barrym-chen/Script/master/ctrip/ctrip_cookie.js +#携程小程序 +https://socketio\.ctrip\.com/api url reject +^https:\/\/m\.ctrip\.com\/restapi\/soa2\/16575\/signin url script-request-body https://raw.githubusercontent.com/barrym-chen/Script/master/ctrip_wx/ct_cookie.js +#艺龙酒店 +^https:\/\/m\.elong\.com\/my\/rafflemileagejson\/getRaffleMileageTodayCount url script-request-header https://raw.githubusercontent.com/barrym-chen/Script/master/elong/elong_draw_cookis.js +#飞常准 +^https:\/\/activity\.m\.duiba\.com\.cn\/signactivity\/getSignInfo? url script-request-header https://raw.githubusercontent.com/barrym-chen/Script/master/fcz/fcz_cookie.js +#工行e生活 +^https:\/\/icbc1\.wlphp\.com:8444\/js\/api\/index\/signIn url script-request-body https://raw.githubusercontent.com/barrym-chen/Script/master/icbc/icbc_cookie.js +#京东成长分 +#需要通过京东学生认证这是签到的基础。点击京东app->我的->小白成长分即可获取cookie成功 +^https:\/\/ms\.jr\.jd\.com\/gw\/generic\/bt\/h5\/m\/queryUserSignFlow url script-request-header https://raw.githubusercontent.com/barrym-chen/Script/master/jdczf/jdczf_cookie.js +#同程小程序 +^https:\/\/wx\.17u\.cn\/wcsign\/sign\/GetSignInfo url script-request-body https://raw.githubusercontent.com/barrym-chen/Script/master/tongc/tongc_cookie.js +#趣走尊享版App签到(功能:跑步,签到,打卡,步数兑换,偷步等) +https:\/\/mobile01\.91quzou\.com\/rebate\/qz\/task\/homeTaskView\.do url script-request-header https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/quwalk2.2.js +#抖音去广告 + 下载去水印 +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js +#百度云盘播放视频解除限速 +https:\/\/pan\.baidu\.com\/rest\/2\.0\/membership\/user url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/BaiduCloud.js +#淘宝比价 +#注意:不生效或失效的需要卸载 tb 重装,注意不开脚本进 tb 会失效 +^http://.+/amdc/mobileDispatch url script-request-body https://raw.githubusercontent.com/yichahucha/surge/master/tb_price.js +^https?://trade-acs\.m\.taobao\.com/gw/mtop\.taobao\.detail\.getdetail url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/tb_price.js +#爱美剧解锁vip +#app下载地址:xmj1.app,推荐选择下载旧版本 +^https?:\/\/api.bjxkhc.com\/index\.php\/app\/ios\/(vod\/show|(user|vod|topic|type)\/index) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/aimeiju.js +#酷我音乐vip解锁 +^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js +#cu云加速每日签到 +^https:\/\/www\.cuuc\.club\/user\/checkin url script-request-header https://raw.githubusercontent.com/dompling/Script/master/cuuc/cuuc.cookie.js +#宠汪汪聚宝盆辅助脚本 +#进入聚宝盆,显示本轮狗粮池投入总数,方便估算;可能有两位数误差,影响不大 +^https://jdjoy\.jd\.com/pet/getPetTreasureBox url script-response-body https://raw.githubusercontent.com/Zero-S1/JD_tools/master/jbp.js +#黄瓜视频无限观影 + 解锁付费影片 +#黄瓜视频下载地址:http://suo.im/5Fc3Ls +https:\/\/api1000\.cvxia\.com\/(user\/info|mov\/browse2*) url script-response-body https://raw.githubusercontent.com/sngxpro/scripts/master/hgsp.js +#网易蜗牛读书解锁会员 +^https?:\/\/p\.du\.163\.com\/gain\/readtime\/info\.json url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wnyd.js +#快看漫画自动签到获取cookie +#打开快看漫画App后(AppStore中国区),点击"我的", 如通知成功获取cookie, 则可以使用签到脚本 +^https:\/\/api\.kkmh\.com\/v\d\/passport\/user url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/KuaiKan-DailyBonus/KKMH.js +#白描解锁黄金vip +^https?:\/\/baimiao\.uzero\.cn\/api\/v\d\.user\/appLaunchWithUser$ url script-response-body https://raw.githubusercontent.com/sirsunknight/QuantumultX/master/Scripts/Baimiao.js +#大象冥想 解锁VIP&付费音乐 +^https?:\/\/nmeditation\.snailsleep\.net\/meditation-(audio|user|order|audio)\/(api|user)\/(audio\/master\/detail|get\/info|order/user\/vip\/info|ad\/get) url script-response-body https://raw.githubusercontent.com/photonmang/quantumultX/master/dxmx.js +#蜗牛睡眠 全功能解锁VIP&付费音乐 +^https:\/\/(snailsleep\.net\/|(music|community)\.snailsleep\.net\/)(snail\/v1\/profile\/get|snail-music\/music\/(sleeping|meditation)\/single\/list) url script-response-body https://github.com/photonmang/quantumultX/raw/master/wnsm.js +#乐心健康步数上传 +^https:\/\/sports\.lifesense\.com\/sport_service\/sport\/sport\/uploadMobileStepV2 url script-request-body https://raw.githubusercontent.com/iepngs/Script/master/lxhealth/manual.js +#go语言中文网签到 +#手动登录 https://studygolang.com 点击自己头像右边用户名下面的“个人资料设置”页面 如通知成功获取cookie, 则可以使用此签到脚本.获取Cookie后, 请将Cookie脚本禁用并移除主机名,以免产生不必要的MITM.脚本将在每天上午9点执行。 可以修改执行时间。 +https:\/\/studygolang\.com\/account\/edit url script-request-header https://raw.githubusercontent.com/iepngs/Script/master/studygolang/index.js +#QQ萌宠获取cookie +#配置完之后,手机qq进入左侧会员,再点击右侧qq宠物(如果没弹出获取成功通知,点击右上角3个点,重启小程序) +https:\/\/qqpet.jwetech.com\/api\/authorizations url script-response-body https://raw.githubusercontent.com/lowking/Scripts/master/QQPet/lkQQPet.js +#惠头条 +#获取ck完毕可以禁止该js +https:\/\/api\.cashtoutiao\.com url script-request-body https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/htt_cookie.js +#小米有品 +#使用方法:进入签到页面获取,https://m.xiaomiyoupin.com:个人中心->我的资产->积分 +^https:\/\/m\.xiaomiyoupin\.com\/api\/auth\/login\/isloggedin url script-request-header https://raw.githubusercontent.com/dompling/Script/master/xiaomiyp/xiaomiyp.cookie.js +#解锁91短视频vip +^https?:\/\/.+\.(my10api|(.*91.*))\.(com|tips|app|xyz)(:\d{2,5})?\/api.php$ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/91.js +#Funboat签到 +https:\/\/h5\.youzan\.com\/wscump\/checkin\/checkin url script-request-header https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/funboat/funboat.js +https:\/\/h5\.youzan\.com\/wscuser\/membercenter\/stats url script-request-header https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/funboat/funboat.js +#斗鱼鱼吧签到 +^https://yuba.douyu.com/wbapi/web/group/myFollow? url script-request-header https://raw.githubusercontent.com/lowking/Scripts/master/douyu/yubaSign.js +#陌陌极速版app签到获取cookie +https:\/\/mk\.immomo\.com\/activity\/fastsign\/index\/signIn? url script-request-body https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/momosign.js +#小小影视获取cookie +#使用方法:开启圈x,打开小小影视app,打开我的。 +^https:\/\/.*\..*\.com\/ucp\/index url script-request-header https://raw.githubusercontent.com/sngxpro/quantumultX-1/master/xxys.cookie.js +#小小影视解锁无限观影无限下载特权 +#开启圈x自动生效 +https:\/\/.*\..*\.com\/(vod\/reqplay\/|ucp/index|getGlobalData) url script-response-body https://raw.githubusercontent.com/photonmang/quantumultX/master/xxys.js +#宠汪汪强制助力 +#使用方法:①设置好相应软件的重写②从京东APP宠汪汪->领狗粮->邀请好友助力,分享给你小号微信或者微信的文件传输助手。 +#在微信中点击自己刚才的分享链接,随机出现虚假好友,点助力,助力成功后可得积分。退出小程序重复,共可领3次。如提示好友人气旺,重新操作。 +^https:\/\/draw\.jdfcloud\.com\/\/pet\/enterRoom\?reqSource=weapp&invitePin=.*+(&inviteSource=task_invite&shareSource=\w+&inviteTimeStamp=\d+&openId=\w+)?|^https:\/\/draw\.jdfcloud\.com\/\/pet\/helpFriend\?friendPin url script-request-header https://raw.githubusercontent.com/lxk0301/scripts/master/jd_joy_help.js +#太好购小程序签到 +#使用方法:进入小程序点我的 +^https:\/\/cxdng\.cpic\.com\.cn\/taieshop\/api\/CustomerFansInfo\/GetFansInfo url script-request-header https://raw.githubusercontent.com/id77/QuantumultX/master/task/thg.cookie.js +#网易游戏会员签到 +#使用方法:浏览器访问 huiyuan.163.com,登录您的账号,点击签到,然后点击保底签或奇遇签(2选1),即可获取cookie +^https:\/\/huiyuan\.163\.com\/jf\-mall\-api\/api\/sign_up\/(lucky|normal) url script-request-header https://raw.githubusercontent.com/id77/QuantumultX/master/task/163GameVip.cookie.js +#京东滚滚而来网页注入脚本 +#使用说明:打开网页https://xeq1kjnhr.m.jd.com/static/index.html并保持登录或有cookie,在浏览器中会出现代码控制台,点执行即可 +##浏览器登录 https://bean.m.jd.com 点击签到并且出现签到日历后即可获取京东cookie +https://xeq1kjnhr\.m\.jd\.com/static/index\.html url script-response-body https://raw.githubusercontent.com/ZhiYi-N/Loon/master/jd_hd.js +#acfun抓cookie +#使用方法:关闭app进程,重新打开 APP, 访问下我的即可 +^https:\/\/api\-new\.app\.acfun\.cn\/rest\/app\/user\/personalInfo url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/acfun/acfun.cookie.js +#小黑盒抓cookie(有封号几率慎重使用) +^https:\/\/api\.xiaoheihe\.cn\/account\/home_v\d\/\? url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/heybox/heybox.js +#热8超级魔盒抓cookie(限时活动已结束,删除) +#百度贴吧 +#用浏览器访问一下: https://tieba.baidu.com 或者 https://tieba.baidu.com/index/或者访问app +^https?:\/\/tieba\.baidu\.com\/?.? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/tieba/tieba.cookie.js +#wps +#打开 APP , 进入签到页面, +^https:\/\/zt.wps.cn\/2018\/docer_check_in\/api\/act_list url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/wps/wps.cookie.js +#饿了么-打卡领红包 +^https:\/\/h5\.ele\.me\/restapi\/eus\/v\d\/current_user$ url script-request-header https://raw.githubusercontent.com/songyangzz/QuantumultX/master/elem/elemGetCookies.js +#bilibili动画&番剧 +#使用说明:要在网页版的b站获取cookie,用浏览器访问www.bilibili.com 或 live.bilibili.com即可 +^https:\/\/(www|live)\.bilibili\.com\/?.? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/bilibili/bilibili.cookie.js +#吾爱破解 +#手动登录 https://www.52pojie.cn +https:\/\/www\.52pojie\.cn\/home\.php\? url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/52pojie-DailyBonus/52pojie.js +#bilibili漫画 +#打开bilibili漫画,点我的即可。和上面的bilibili动画冲突,不要同时启用。抓完cookie禁用即可。 +#https:\/\/manga\.bilibili\.com\/.*\.User\/GetWallet url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/Bilibili-DailyBonus/Manga.js +#京东多合一签到 +#浏览器登录 https://bean.m.jd.com 点击签到并且出现签到日历后即可获取 +https:\/\/api\.m\.jd\.com\/client\.action.*functionId=signBean url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/JD-DailyBonus/JD_DailyBonus.js +#爱奇艺 +#打开爱奇艺App后(AppStore中国区),点击"我的" +https?:\/\/.*\.iqiyi\.com\/.*authcookie= url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/iQIYI-DailyBonus/iQIYI.js +#中国电信 +#使用说明:打开 APP 手动签到一次: 访问下右下角 我 > 签到 (头像下面) +^https:\/\/wapside.189.cn:9001\/api\/home\/homeInfo url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/10000/10000.cookie.js +#中国联通 +#使用说明:(1)打开 APP , 进入签到页面, 系统提示: 获取刷新链接: 成功;(2)然后手动签到 1 次, 系统提示: 获取Cookie: 成功 (每日签到);(3)首页>天天抽奖, 系统提示 2 次: 获取Cookie: 成功 (登录抽奖) 和 获取Cookie: 成功 (抽奖次数) +^https?:\/\/act.10010.com\/SigninApp\/signin\/querySigninActivity.htm url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/10010/10010.cookie.js +^https?:\/\/act.10010.com\/SigninApp(.*?)\/signin\/daySign url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/10010/10010.cookie.js +^https?:\/\/m.client.10010.com\/dailylottery\/static\/(textdl\/userLogin|active\/findActivityInfo) url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/10010/10010.cookie.js +https:\/\/m.client\.10010\.com\/mobileService\/home\/queryUserInfoSeven\.htm? url script-request-header https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/liantongnotice.js +#中国移动 +#使用说明:打开 APP , 进入签到页面, 系统提示: 获取刷新链接: 成功;然后手动签到 1 次, 系统提示: 获取Cookie: 成功 +^http:\/\/wx.10086.cn\/website\/taskCenter\/index\? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/10086/10086.cookie.js +^http:\/\/wx.10086.cn\/website\/taskCenter\/sign\? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/10086/10086.cookie.js +#移动查话费 +^https:\/\/clientaccess.10086.cn\/biz-orange\/LN\/uamrandcodelogin\/autoLogin url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/10086/10086.fee.cookie.js +^https:\/\/clientaccess.10086.cn\/biz-orange\/BN\/realFeeQuery\/getRealFee url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/10086/10086.fee.cookie.js +#apk.tw +#使用方法:访问 https://apk.tw/ 后登陆你的账号,注意必须是开圈x后再登录,如果之前登录过了注销一次再操作 +^https://apk.tw\/member.php(.*?)action=login url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/apktw/apktw.cookie.js +#百词斩 +#使用方法:打开 APP 手动签到一次: 访问下右下角 我 > 我的铜板 > 加入百词斩小班 > 去查看 > 我的小班进去 领铜板 +^https://group\.baicizhan\.com/group/rewards? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/bcz/bcz.cookie.js +#不背单词 +#使用方法:打开 APP不背单词 然后手动签到 1 次, +^https:\/\/sapi\.beingfine\.cn\/v3\/bb\/reward\/by-sign-in url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/bubei/bubei.js +#csdn +#使用方法:打开 APP , 系统提示: 获取刷新链接: 成功;然后手动签到 1 次, 系统提示: 获取Cookie: 成功 +^https:\/\/passport.csdn.net\/v2\/api\/app\/login\/checkAndRefreshToken url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/csdn/csdn.cookie.js +^https:\/\/gw.csdn.net\/mini-app\/v2\/lucky_draw\/login\/sign_in\? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/csdn/csdn.cookie.js +#豆瓣时间 +#使用方法:打开 APP 手动签到一次: 市集 > 豆瓣时间 > 签到 +^https:\/\/frodo\.douban\.com\/api\/v2\/niffler\/check_in\/status url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/dbsj/dbsj.cookie.js +#懂球帝 +#使用方法:打开懂球帝 (打开前先杀掉 APP) +^https:\/\/api\.dongqiudi\.com\/v2\/user\/is_login url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/dongqiudi/dongqiudi.cookie.js +#多看阅读 +#使用方法:打开我的 > 签到任务 +^https:\/\/www\.duokan\.com\/checkin\/v0\/status url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/duokan/duokan.cookie.js +#时光相册 +#打开 APP 然后手动签到 1 次 +^https:\/\/api.everphoto.cn\/users\/self\/checkin\/v2 url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/everphoto/everphoto.cookie.js +#樊登读书 +#打开 APP 手动签到一次: 访问下右下角 我的 > 签到 +^https://api\.dushu\.io/CheckIn url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/fandeng/fandeng.cookie.js +#威锋(后台有验证了,偶尔会失效,放弃) +#分期乐 +#使用方法:打开 APP 手动签到一次: 访问下右下角 我的 > 乐星 > 签到,我的 > 账单点击 > 超级乐星日/天天领乐星 +^https://pm\.m\.fenqile\.com/route0014/star/sign/sign.json url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/fenqile/fenqile.cookie.js +^https:\/\/pm\.m\.fenqile\.com/route0014\/app\/tab\/privilege\/convertTaskReward.json url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/fenqile/fenqile.cookie.js +#飞客茶馆 +#打开 APP, 访问下个人中心 +^https:\/\/www\.flyertea\.com\/source\/plugin\/mobile\/mobile\.php\?module=getdata&.* url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/flyertea/flyertea.cookie.js +#加油广东 +#打开 APP 然后手动签到 1 次 +^https:\/\/m.gdoil.cn\/webapi\/usersign\/addusersign url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/gdoil/gdoil.cookie.js +#海底捞 +#打开 APP海底捞 然后手动签到 1 次 +^https:\/\/activity-1\.m\.duiba\.com\.cn\/signactivity\/doSign$ url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/haidilao/hdl.js +#哈啰出行 +#打开 APP 进入签到页面: 我的 > 有哈有车 +^https:\/\/gameapi\.hellobike\.com\/api url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/hellobike/hellobike.js +#合创 +#打开 APPHYCAN合创 然后手动签到 1 次 +^https:\/\/wxprdapplet\.gac-nio\.com\/community\/userSignIn\/simpleAuth\/front\/.*\/sign$ url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/hycan/hycan.cookie.js +#ithome +#打开 APP 然后进入签到页面 +^https:\/\/my\.ruanmei\.com\/api\/usersign\/getsigninfo? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/ithome/ithome.cookie.js +#京东到家 +#使用方法:手机App打开,我的> 签到有惊喜>签到;或者手机浏览器打开https://daojia.jd.com/html/index.html,我的> 签到有惊喜 >签到 +^https:\/\/daojia.jd.com/client(.*?)functionId=signin(.*?)userSigninNew url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/jddj/jddj.cookie.js +#猫咪音乐 +#打开 网站 https://www.maomicd.com 然后手动签到 1 次 +https:\/\/www.maomicd.com\/plugin.php\?id=k_misign:sign&operation=qiandao url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/maomicd/maomicd.cookie.js +#叮咚买菜 +#打开 APP, 访问下我的>积分 +^https:\/\/maicai.api.ddxq.mobi\/point\/home url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/mcdd/mcdd.cookie.js +#美团 +#打开 APP , 然后手动签到 1 次 +^https:\/\/i.meituan.com\/evolve\/signin\/signpost\/ url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/meituan/meituan.cookie.js +#芒果TV +#打开 APP 然后手动签到 1 次 +^https:\/\/credits.bz.mgtv.com\/user\/creditsTake url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/mgtv/mgtv.cookie.js +#米读签到+米读阅读时长 +#打开 APP (1)进入我的 -> 疯狂摇摇乐,系统提示: 签到:获取Cookie: 成功;(2)阅读时长获取Cookie:打开 APP 选取文章阅读, 书城 > 任意文章阅读 等到提示获取Cookie成功 +^https:\/\/apiwz\.midukanshu\.com url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/midu/midu.cookie.js +#米游社 +#打开 APP +^https:\/\/api-takumi.mihoyo.com\/apihub\/api\/getGameList url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/mihoyo/mihoyo.cookie.js +#网抑云 +#先登录: https://music.163.com/m/login,再访问: https://music.163.com/#/user/level获取cookie +^https:\/\/music.163.com\/weapi\/user\/level url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/neteasemusic/neteasemusic.cookie.js +#网易新闻 +#打开 APP 然后手动签到 1 次: +^https:\/\/(.*?)c\.m\.163\.com\/uc\/api\/sign\/v3\/commit url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/neteasenews/neteasenews.cookie.js +#南方周末 +#点击签到获取 +^http:\/\/api\.infzm\.com\/mobile\/pumpkin_task\/complete? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/nfzm/nfzm.cookie.js +#蔚来 +#打开 APP蔚来 然后手动签到 1 次 +^https:\/\/app\.nio\.com\/api\/1\/app\/daily_checkin url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/nio/nio.cookie.js +#百果园 +#进入微信小程序直接签到 +^https:\/\/wx-mini.pagoda.com.cn\/api\/v1\/wxmini\/signIn\/customer url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/pagoda/pagoda.cookie.js +#七猫小说 +#注意!!!!暂时关闭QX或Surge中的广告屏蔽, 否则无法获取小视频奖励cookie和url!!! +#打开 APP七猫小说 然后到APP内福利界面手动日常签到(观看小视频领取奖励),新手领福利签到,视频签到以及幸运大转盘 1 次, 系统提示: 首次写入xxxUrl成功🎉,首次写入xxxCookie成功 +^https:\/\/xiaoshuo\.qm989\.com url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/qimao/qmnovel.js +#全民K歌 +#打开 APP 手动签到一次: 访问下右下角 我的 > 任务中心 > 签到 +^https://node\.kg\.qq\.com/webapp/proxy? url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/qmkg/qmkg.cookie.js +#qq音乐(已停止维护跳过) +#趣头条 +#打开 APP 进入签到: 右上角 > 签到 +^https:\/\/api\.1sapp\.com\/sign\/info? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/qtt/qtt.cookie.js +^https:\/\/api\.1sapp\.com\/content\/readV2? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/qtt/qtt.cookie.js +^https:\/\/api\.1sapp\.com\/x\/feed\/getReward? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/qtt/qtt.cookie.js +#去哪儿 +#打开 APP 然后手动签到 1 次: +^https:\/\/user.qunar.com\/webapi\/member\/signIndexV2.htm url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/qunar/qunar.cookie.js +#人人视频 +#打开 APP, 访问下个人中心 +^https:\/\/api\.rr\.tv\/user\/profile url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/rrtv/rrtv.cookie.js +#顺丰 +#打开 APP, (1)访问下我的顺丰 > 去签到 (访问下去签到的页面即可, 不用点签到), 系统提示: 获取Cookie: 成功;(2)访问下27周年庆, 系统提示: 获取Cookie: 成功 (27周年) +^https:\/\/sf-integral-sign-in.weixinjia.net\/app\/index url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/sfexpress/sfexpress.cookie.js +^https:\/\/mcs-mimp-web.sf-express.com\/mcs-mimp\/share\/(.*?)Redirect url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/sfexpress/sfexpress.cookie.js +#什么值得买 +#浏览器访问并登录: https://zhiyou.smzdm.com/user/login;浏览器访问: https://www.smzdm.com +^https:\/\/www\.smzdm\.com\/?.? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/smzdm/quanx/smzdm.cookie.js +#苏宁易购 +#【必要】打开 APP, 系统提示: 获取Cookie: 成功 (登录链接);【可选】进入 主页 > 签到有礼, 系统提示: 获取Cookie: 成功 (每日签到);【可选】进入 主页 > 领取红包, 系统提示: 获取Cookie: 成功 (每日红包) (如果找不到领取红包,尝试卸载苏宁重新安装) 兼容之前 @barrymchen 写的 snyg.js 如果之前有用这个脚本获取过 Cookie 那不用重新取;【可选】进入 主页 > 天天低价 > 点右上角宝箱, 系统提示: 获取Cookie: 成功 (天天低价)、获取Cookie: 成功 (查询天天低价) +^https:\/\/passport.suning.com\/ids\/login$ url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/suning/suning.cookie.js +^https:\/\/luckman.suning.com\/luck-web\/sign\/api\/clock_sign.do url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/suning/suning.cookie.js +^https:\/\/sign.suning.com\/sign-web\/m\/promotion\/sign\/doSign.do url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/suning/suning.cookie.js +^https:\/\/gameapi.suning.com\/sngame-web\/(api\/signin\/private\/customerSignOperation.do|gateway\/api\/queryPrize.do) url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/suning/suning.cookie.js +#头脑吃鸡 +#直接开 +^https://tncj.hortorgames.com/chicken/fight/(answer|findQuiz) url script-response-body https://raw.githubusercontent.com/chavyleung/scripts/master/tncj/tncj.min.js +#v2ex +#浏览器访问并登录: https://www.v2ex.com;浏览器访问: https://www.v2ex.com/mission/daily +^https:\/\/www\.v2ex\.com\/mission\/daily url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/v2ex/v2ex.cookie.js +#腾讯视频 +#(似乎活动已结束)手机浏览器访问: https://film.qq.com/随便选 1 部电影观看,然后点击http://v.qq.com/x/bu/mobile_checkin 到页 获取cookie +^https:\/\/access.video.qq.com\/user\/auth_refresh url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/videoqq/videoqq.cookie.js +#万达电影 +#进入签到页面获取,网页端:https://act-m.wandacinemas.com/2005/17621a8caacc4d190dadd/ +^https:\/\/user-api-prd-mx\.wandafilm\.com url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/wanda/wanda.cookie.js +#美团外卖 +#打开 APP , 进入签到页面 +^https:\/\/promotion.waimai.meituan.com\/playcenter\/signIn\/entry url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/wmmeituan/wmmeituan.cookie.js +^https:\/\/promotion.waimai.meituan.com\/playcenter\/signIn\/doaction url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/wmmeituan/wmmeituan.cookie.js +#网易考拉(弃坑) +#喜马拉雅 +#打开 APP, 访问下右下角账号 +^https?:\/\/.*\/mobile\-user\/homePage\/.* url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/ximalaya/ximalaya.cookie.js +#网易严选(有账号异常风险,建议停用) +#zaker +#打开 APPZAKER 然后手动签到 1 次 +^https:\/\/iphone\.myzaker\.com\/zaker\/sign_in\/\/api\/sign_in\.php url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/zaker/zaker.js +#字幕组 +#先在浏览器登录 (先登录! 先登录! 先登录!),打开圈x开关,打开浏览器访问: http://www.rrys2019.com +^https?:\/\/(www\.)?rrys2019\.com\/?.? url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/zimuzu/zimuzu.cookie.js +^http:\/\/ios.zmzapi.com\/index.php.*a=(mobile_)?login url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/zimuzu/zimuzu.cookie.js +#掌上飞车 +#打开 APP掌上飞车 然后手动签到 1 次 +^https:\/\/mwegame\.qq\.com\/ams\/sign\/doSign\/month url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/zsfc/zsfc.js +#智行火车 +#打开 APP 手动签到一次: 访问下右下角 个人中心 > 签到 +^https:\/\/m\.ctrip\.com/restapi/soa2/14593/json/attendanceDay? url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/zxhc/zxhc.cookie.js +#115网盘 +#(似乎有活动期限)进入"115"并摇一摇,若弹出"首次写入115 Cookie 成功"即可正常食用 +^https?:\/\/proapi\.115\.com\/ios\/user\/takespc\? url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/115/115.js +#便利蜂 +#进入"便利蜂",点击"签到赚礼金" +^https:\/\/h5\.bianlifeng\.com\/meepo\/taskCenter\/home\/v\d url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/Blibee/Blibee.js +#滴滴出行+滴滴福利金 +#进入"滴滴出行",若弹出"首次写入滴滴出行 Token 成功"即可正常食用,先手动运行一次脚本,弹出成功后回到"滴滴出行",点击右上角"天天领福利"查看福利金是否到账 +^https:\/\/as\.xiaojukeji\.com\/ep\/as\/toggles\? url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/DiDi/DiDi.js +^https:\/\/superapp\.kiwa-tech\.com\/app\/coupon\/customerLevelShow url script-request-body https://raw.githubusercontent.com/zZPiglet/Task/master/Haidilao/Haidilao.js +^https:\/\/activity-1\.m\.duiba\.com\.cn\/signactivity\/getSignInfo url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/Haidilao/Haidilao.js +#奈雪 +#进入"奈雪点单"小程序,若弹出"首次写入奈雪の茶 Token 成功"即可正常食用 +^https:\/\/webapi\.qmai\.cn\/web\/cy\/v\d\/store\/template-scene url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/Naixue/Naixue.js +#掌门好老师 +#进入"掌门好老师",点击左上方"签到"或"📅"日历图标,若弹出"首次写入掌门好老师 Token 成功"即可正常食用 +^https:\/\/teacherapi\.zmlearn\.com\/v1\/teacherApp\/app\/points\/taskCenter url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/ZMTeacher/ZMTeacher.js +#欧可林 +#进入"欧可林"并点击"活动",若弹出"首次写入欧可林 Cookie 成功"即可正常食用 +^https:\/\/mall\.oclean\.com\/API\/VshopProcess\.ashx$ url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/Oclean/Oclean.js +#豆瓣电影日历 +#获取完cookie后删掉或者#号掉hostname中的词条,否则网络不稳。 请先按下述方法进行配置,进入widget 界面(iOS 13 负一屏),添加「豆瓣·电影日历」,并重新进入此界面使其刷新获取内容,若弹出"首次写入 MovieCalendar APIKey 成功"即可正常食用,其他提示或无提示请使用其他方法获取 APIKey +^https:\/\/frodo\.douban\.com\/api\/v\d\/calendar\/today url script-request-header https://raw.githubusercontent.com/zZPiglet/Task/master/MovieCalendar/MovieCalendar.js +#小木虫论坛 +#打开小木虫app => 发现页面 => 签到领红包 => 拆红包。弹出通知,即获取成功 +^https?:\/\/mapi.xmcimg.com\/bbs\/memcp.php\?action url script-request-header https://raw.githubusercontent.com/toulanboy/scripts/master/muchong/muchong.js +#微博超话 +#打开微博APP--我的--超话社区---底部栏--我的---关注, 弹出通知,提示获取已关注超话链接成功 +^https?://m?api\.weibo\.c(n|om)\/2\/(cardlist|page\/button) url script-request-header https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/weibo/weibotalk.cookie.js +#叮咚农场 +#叮咚买菜App - 右下角“我的”- 叮咚农场 进入即可获取cookie +https:\/\/maicai\.api\.ddxq\.mobi\/user\/checkLogin url script-request-header https://raw.githubusercontent.com/iepngs/Script/master/dingdong/index.js +#腾讯新闻 +#打开腾讯新闻app,阅读几篇文章,倒计时结束后即可获取阅读Cookie;看一次推荐视频获取视频地址 +https:\/\/api\.inews\.qq\.com\/event\/v1\/user\/event\/report\? url script-request-body https://raw.githubusercontent.com/Sunert/Scripts/master/Task/txnews2.js +#快手极速版 +#APP登陆账号后,以下方法二选一获取Cookie:获取方法一,直接首页点击主页红包倒计时;获取方法二,在直播live页面中打开"送礼开宝箱" +https:\/\/nebula\.kuaishou\.com\/rest\/n\/nebula\/activity\/earn\/overview url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/kuaishou.js +#来客有礼 +#微信搜索'来客有礼'小程序,登陆京东账号,点击'发现',即可获取Cookie +https:\/\/draw\.jdfcloud\.com\/\/api\/bean\/square\/silverBean\/task\/get\? url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/lkyl.js +#新浪新闻 +#打开app,点击”我的“=>”签到“ +https:\/\/newsapi\.sina\.cn\/\?resource=hbpage&newsId=HB-1-sina_gold_center url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/sinanews.js +https:\/\/newsapi\.sina\.cn\/\?resource=userpoint\/signIn url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/sinanews.js +#中国电信套餐 +#下载安装 天翼账号中心 登陆 +^https?:\/\/e\.189\.cn\/store\/user\/package_detail\.do url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/telecomInfinity.js +#微博 +#打开微博App,刷微博视频,获取Cookie;打开微博钱包点击签到,获取Cookie +https:\/\/api\.weibo\.cn\/\d\/video\/machine\?gsid url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/weibo.js +#中青看点极速版 +#进入app,进入任务中心或者签到一次,即可获取Cookie. 阅读一篇文章,获取阅读请求body,并获取阅读时长,在阅读文章最下面有个惊喜红包,点击获取惊喜红包请求 +https:\/\/\w+\.youth\.cn\/TaskCenter\/(sign|getSign) url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/youth.js +https?:\/\/ios\.baertt\.com\/v5\/article\/complete url script-request-body https://raw.githubusercontent.com/Sunert/Scripts/master/Task/youth.js +https:\/\/ios\.baertt\.com\/v5\/article\/red_packet url script-request-body https://raw.githubusercontent.com/Sunert/Scripts/master/Task/youth.js +https:\/\/ios\.baertt\.com\/v5\/user\/app_stay\.json url script-request-body https://raw.githubusercontent.com/Sunert/Scripts/master/Task/youth.js +#数码之家 +#登陆数码之家电脑版网页,签到一次,即可获取Cookie +id=k_misign:sign&operation=qiandao&format=text url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/mydigit.js +#QQ会员成长值 +#手机qq进入左侧会员,滑动即可 +https:\/\/proxy.vac.qq.com\/cgi-bin\/srfentry.fcgi? url script-request-header https://raw.githubusercontent.com/lowking/Scripts/master/QQVip/qqVipCheckIn.js +#无忧行 +#打开无忧行App, 通知成功写入「 AccountID | UserID | Mobile | Token 」;依次点击"我的" 👉 "任务中心". 通知成功写入「 TaskID 」 +https?:\/\/app.*\.jegotrip\.com\.cn\/.*getUser\? url script-response-body https://ooxx.be/js/jegotrip.js +https?:\/\/task\.jegotrip\.com\.cn\:8080\/app\/tasks\?userid url script-response-body https://ooxx.be/js/jegotrip.js +#优麦医生 +#打开优麦医生App +https?:\/\/api\.umer\.com\.cn\/.*getCurrentUmerSign url script-request-header https://ooxx.be/js/umer.js +#时代天使 +#打开微信小程序 时代天使小管家,点击左下角刷新按钮,提示Cookie获取成功 +^https:\/\/exp.angelalign.com\/api\/v1\/mini_program\/get_plan_list url script-request-header https://raw.githubusercontent.com/chouchoui/QuanX/master/Scripts/angelalign/angelalign.cookie.js +#NGA刮墙 +#杀掉NGA后台并重新打开NGA,提示Cookie获取成功 +^https:\/\/ngabbs.com\/nuke.php\?? url script-request-body https://raw.githubusercontent.com/chouchoui/QuanX/master/Scripts/nga/nga.cookie.js +#微博去广告(启动圈x自动生效) +^https?://m?api\.weibo\.c(n|om)/2/(statuses/(unread|extend|positives/get|(friends|video)(/|_)(mix)?timeline)|stories/(video_stream|home_list)|(groups|fangle)/timeline|profile/statuses|comments/build_comments|photo/recommend_list|service/picfeed|searchall|cardlist|page|!/photos/pic_recommend_status|video/tiny_stream_video_list|photo/info) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/wb_ad.js +#显示京东历史价格(启动圈X自动生效) +^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig|basicConfig) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/jd_price.js +#微信打卡小程序 +https:\/\/(www\.baimaa\.com|www\.2xtj7\.cn|www\.hnmiaosu\.cc|ph0001\.hezyq\.com|wq\.02gk\.com|dk\.ne72\.com)\/app\/index\.php? url script-request-header https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/wxdaka.js +#Geekhub +^https:\/\/geekhub\.com\/checkins\/start url script-request-header https://raw.githubusercontent.com/id77/QuantumultX/master/task/geekhub.cookie.js +#电视家 +http:\/\/api\.gaoqingdianshi\.com\/api\/v\d\/sign\/signin url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/dianshijia.js +http:\/\/api\.gaoqingdianshi\.com\/api\/v2\/cash\/withdrawal url script-request-header https://raw.githubusercontent.com/Sunert/Scripts/master/Task/dianshijia.js +#达美乐 +^https?:\/\/dominos0724\.shjimang\.com\/Ajax\/GetSmsCode url script-request-body https://raw.githubusercontent.com/zZPiglet/Task/master/Domino/Domino_getSMS.js +#有道云笔记 +^https:\/\/note.youdao.com\/yws\/mapi\/user\?method=checkin url script-request-body https://raw.githubusercontent.com/chavyleung/scripts/master/noteyoudao/noteyoudao.cookie.js +#keep解锁vip(仅针对Keep版本号6.24-6.27的版本) +https://api.gotokeep.com/(.+/subject|.+/dynamic|.+/coursePlus/.+|.+/status|.+/tab|.+/my|.+/start|.+/join|.+/complete|.+/detail/.+|.+/preview|.+/auth|.+/tab|.+/days) url script-response-body https://raw.githubusercontent.com/photonmang/quantumultX/master/keep.js + + +[task_local] +10 8-22/2 * * * https://raw.githubusercontent.com/Peng-YM/QuanX/master/Tasks/caiyun.js, tag=彩云天气, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/caiyun.png, enabled=false +1 1 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_redPacket.js, tag=京东全民开红包, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=false +5 0 * * * https://raw.githubusercontent.com/lxk0301/jd_scripts/master/jd_club_lottery.js, tag=摇京豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=false +1 9 * * * https://raw.githubusercontent.com/dompling/Script/master/historyToday/index.js, tag=历史上的今天, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/historyToday.png, enabled=false +10 0 * * * https://raw.githubusercontent.com/dompling/Script/master/ymatou/ymatou.js, tag=洋码头, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/ymatou.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/dompling/Script/master/biyao/biyao.js, tag=必要, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/biyao.png, enabled=false +0 30 6-23 * * ? https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/liantongnotice.js, tag=联通流量话费提醒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/10010.png, enabled=false +0 30 0,6 * * ? https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/newsinachaohua.js, tag=新浪微博超话签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/weibo.png, enabled=false +0 8 * * * https://github.com/congcong0806/surge-list/raw/master/Script/daysmatter.js, tag= 倒数日, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/daysmatter.png, enabled=false +0 7-23 * * * https://github.com/congcong0806/surge-list/raw/master/Script/time.js, tag= 今日时间, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/time.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/jddsSign.js, tag=京东读书签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jdds.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/qczjSign.js, tag= 汽车之家极速版, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qczj.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/yzkbSign.js, tag= 柚子快报, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/yzkb.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/zymkSign.js, tag= 知音漫客, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/zymk.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/hdhycSign.js, tag=海德汇一城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/hdhyc.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/mygmcSign.js, tag=民盈国贸城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/mygmc.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/qkylck.js, tag=趣客有礼, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qkyl.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/wsxqSign.js, tag= 微商星球, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/wsxq.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/zscdbSign.js, tag=追书畅读版, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/zscdb.png, enabled=false +0 10 0 * * * https://raw.githubusercontent.com/XidNDD/2020scripts/master/ttwbxcxSign.js, tag=天天挖矿小程序, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/ttwkxcx.png, enabled=false +0 9 * * * https://gitee.com/passerby-b/javascript/raw/master/unipay.js, tag=云闪付, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/unipay.png, enabled=false +10 0 8 * * * https://raw.githubusercontent.com/photonmang/quantumultX/master/tuhu/tuhu.js, tag=途虎养车, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/tuhu.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/LJJJia/script/master/iklear/iklear_checkin.js, tag=iklear商城自动签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/wxdaka.png +10 0 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_shop.js, tag=进店领豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=false +1 0-18/6 * * * https://raw.githubusercontent.com/sngxpro/QuantumultX/master/jd818.js, tag=京东手机狂欢城, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +0 2,13,25,45,55 0-23 * * ? https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/wxdaka.js, tag=微信小程序打卡签到合集, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qktx.png, enabled=false +5,35 8-21 * * * https://raw.githubusercontent.com/iepngs/Script/master/jrtt/index.js,tag=今日头条极速版, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jrtt.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/jingxi.js, tag=京喜, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jingxi.png, enabled=false +0 10 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/trainquery.js, tag=查火车票(点查看脚本修改日期车次并运行), img-url=https://raw.githubusercontent.com/Orz-3/mini/master/12306.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/umetrip/umetrip.js, tag=航旅纵横, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/umetrip.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/iepngs/Script/master/lxsj/index.js,tag=旅行世界购物版, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/lxsj.png, enabled=false +1 9 * * * https://raw.githubusercontent.com/dompling/Script/master/oneSay/oneSay.js, tag=每日一言, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/calendar.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/ctrip/ctrip.js, tag=携程旅行, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/ctrip.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/ctrip_wx/ct_sign.js, tag=携程小程序, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/ctrip.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/elong/elong_draw.js, tag=艺龙酒店, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/elong.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/fcz/fcz_sign.js, tag=飞常准, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/fcz.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/icbc/icbc_sign.js, tag=工银e生活, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/icbc.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/jdczf/jdczf.js, tag=京东成长分, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jdczf.png, enabled=false +0 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/tongc/tongc_sign.js, tag=同程小程序, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/tongc.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/barrym-chen/Script/master/tongc/tongc_info.js, tag=同程小程序, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/tongc.png, enabled=false +*/5 0-22 * * * https://raw.githubusercontent.com/iisams/Scripts/master/liwo/lwtask.js, tag=梨涡闲时任务提醒, img-url=https://raw.githubusercontent.com/iisams/Scripts/master/png/liwoicon.png, enabled=true +17 0 * * * https://raw.githubusercontent.com/iisams/Scripts/master/liwo/7days.js, tag=梨涡签到领现金, img-url=https://raw.githubusercontent.com/iisams/Scripts/master/png/liwoicon.png, enabled=true +6 8 * * * https://raw.githubusercontent.com/iisams/Scripts/master/liwo/jdtqz.js, tag=京东特权活力值, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jdczf.png, enabled=true +5 8 * * * https://raw.githubusercontent.com/iisams/Scripts/master/liwo/jdtqz.js, tag= 京东特权值, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/jd/JD_BaiTiao.js, tag=京东金融领白条券, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png +0 9 * * * https://raw.githubusercontent.com/NobyDa/Script/master/KuaiKan-DailyBonus/KKMH.js, tag=快看漫画, img-url=https://ftp.bmp.ovh/imgs/2020/09/a3345da5e9094363.png, enabled=true +0 9 * * * https://raw.githubusercontent.com/iepngs/Script/master/lxhealth/manual.js, tag=乐心健康步数上传, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/lxhealth.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/iepngs/Script/master/studygolang/index.js, tag=go语言中文网, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/studygolang.png, enabled=false +0 0 0,1 * * ? https://raw.githubusercontent.com/lowking/Scripts/master/QQPet/lkQQPet.js, tag=QQ萌宠, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/QQ.png, enabled=false +0 0/2 * * * ? https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/htt_task_4.js, tag=惠头条, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/htt.png, enabled=false +0 21,31,50 0-22 * * ? https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/qktx_task3.js, tag=趣看天下, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qktx.png +1 9 * * * https://raw.githubusercontent.com/dompling/Script/master/xiaomiyp/xiaomiyp.js, tag=小米有品, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/xiaomiyp.png, enabled=false +0 0 6 * * * https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/idaily/idaily.js, tag=iDaily每日环球视野, img-url=https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/picture/idaily.png, enabled=true +#推图 +0 21 * * * https://raw.githubusercontent.com/Orz-3/QuantumultX/master/telegram.js, tag=图片推送(公共场合慎用), img-url=https://raw.githubusercontent.com/Orz-3/mini/master/tgpic.png, enabled=false +#生日倒计时脚本需要自行下载脚本修改,这里只作为范例 +1 0 * * * https://raw.githubusercontent.com/dompling/Script/master/birthdayCountDown/index.js, tag=生日倒计时(范例需自改), img-url=https://raw.githubusercontent.com/Orz-3/mini/master/birthday.png, enabled=false +0 4 8 * * * https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/funboat/funboat.js, tag=Funboat, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/funboat.png, enabled=false +0 0 0,1 * * ? https://raw.githubusercontent.com/lowking/Scripts/master/douyu/yubaSign.js, tag=斗鱼鱼吧, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/douyu.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/momosign.js, tag=陌陌极速版签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/momo.png, enabled=false +0 2,13,25,45,55 0-23 * * ? https://raw.githubusercontent.com/wangdelu2020/hongliyu/master/quwalk2.2.js, tag=趣走签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/quwalk.png, enabled=false +#小小影视完整版签到必须执行下面格式不可修改,包括8个功能(签到,广告,分享,评论,10次观影,5次收藏,30分钟连续观影,每日22点开宝箱) +*/10 0-30 9,22 * * * https://raw.githubusercontent.com/photonmang/quantumultX/master/xxysrw.js, tag=小小影视完整版签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/xxys.png +#小小影视6任务版本不限时间格式(9点执行6任务,22点执行开箱) +0 9,22 * * * https://raw.githubusercontent.com/photonmang/quantumultX/master/xxys_6rw.js, tag=小小影视自动签到+日常任务, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/xxys.png +#小小影视连续观影30分钟的任务,分钟时间必须0-30分钟 +*/10 0-30 9 * * * https://raw.githubusercontent.com/photonmang/quantumultX/master/xxys_play.js, tag=小小影视30分钟观影, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/xxys.png +10 0 * * * https://raw.githubusercontent.com/id77/QuantumultX/master/task/thg.js, tag=太好购, img-url=https://raw.githubusercontent.com/id77/QuantumultX/master/icon/thg.png +* 1 0 * * * https://raw.githubusercontent.com/id77/QuantumultX/master/task/163GameVip.js, tag=网易游戏会员, img-url=https://raw.githubusercontent.com/id77/QuantumultX/master/icon/163GameVip.png +5 0 * * * https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/nasa/nasapic.js, tag=NASA每日一图, img-url=https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/picture/nasa.png +##京东系脚本必须提前获取cookie才能生效。如果没有获取过,浏览器登录 https://bean.m.jd.com 点击签到并且出现签到日历后即可获取 +0 1 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_joy_steal.js, tag=京东宠汪汪偷狗粮, img-url=https://raw.githubusercontent.com/znz1992/Gallery/master/jdww.png, enabled=true +##京东系脚本必须提前获取cookie才能生效。如果没有获取过,浏览器登录 https://bean.m.jd.com 点击签到并且出现签到日历后即可获取 +11 5 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_blueCoin.js, tag=京小超领蓝币, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jxc.png, enabled=true +30 0 8-22/2 * * * https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/hotsearch/hot.js, tag=热门监控, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/hot.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/acfun/acfun.js, tag=AcFun, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/acfun.png, enabled=true +#1 0,1-23/3 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_mohe.js, tag=热8超级魔盒, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/ximalaya/ximalaya.js, tag=喜马拉雅, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/ximalaya.png, enabled=true +0 * * * * https://raw.githubusercontent.com/zZPiglet/Task/master/heybox/heybox.js, tag=小黑盒, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/heybox.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/tieba/tieba.js, tag=百度签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/baidu.png, enabled=true +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/wps/wps.js, tag=WPS, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/wps.png, enabled=true +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/neteasemusic/quanx/neteasemusic.js, tag=网易云音乐, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Netease.png, enabled=true +1 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/elem/elemCheckIn.js, tag=饿了么-打卡领红包, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/elem.png, enabled=true +0 0 0,1 * * ? https://raw.githubusercontent.com/lowking/Scripts/master/bilibili/bangumiMonitor.js, tag=哔哩哔哩番剧监控, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/bilibili.png, enabled=true +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/bilibili/bilibili.js, tag=bilibili, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/bilibili.png, enabled=true +0 9 * * * https://raw.githubusercontent.com/NobyDa/Script/master/52pojie-DailyBonus/52pojie.js, tag=吾爱破解, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/52pj.png, enabled=true +0 9 * * * https://raw.githubusercontent.com/NobyDa/Script/master/Bilibili-DailyBonus/Manga.js, tag=哔哩哔哩漫画, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/manga.png, enabled=true +##京东系脚本必须提前获取cookie才能生效。如果没有获取过,浏览器登录 https://bean.m.jd.com 点击签到并且出现签到日历后即可获取 +0 9 * * * https://raw.githubusercontent.com/NobyDa/Script/master/JD-DailyBonus/JD_DailyBonus.js, tag=京东, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +0 9 * * * https://raw.githubusercontent.com/NobyDa/Script/master/iQIYI-DailyBonus/iQIYI.js, tag=爱奇艺, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/iQIYI.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/10000/10000.js, tag=中国电信, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/10000.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/10010/10010.js, tag=中国联通, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/10010.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/10086/10086.js, tag=中国移动, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/10086.png, enabled=false +10 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/10086/10086.fee.js, tag=10086查话费, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/10086fee.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/apktw/apktw.js, tag=APK.TW, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/apktw.png, enabled=false +50 23 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/bcz/bcz.js, tag=百词斩, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/bcz.png, enabled=false +* * * * * https://raw.githubusercontent.com/chavyleung/scripts/master/box/switcher/box.switcher.js, tag=切换会话, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/box.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/bubei/bubei.js, tag=不背单词, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/bubei.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/csdn/csdn.js, tag=CSDN, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/csdn.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/dbsj/dbsj.js, tag=豆瓣时间, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/dbsj.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/dongqiudi/dongqiudi.js, tag=懂球帝, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/dongqiudi.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/duokan/duokan.js, tag=多看阅读, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/duokan.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/everphoto/everphoto.js, tag=时光相册, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/everphoto.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/fandeng/fandeng.js, tag=樊登读书, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/fandeng.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/feng/feng.js, tag=威锋网, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/feng.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/fenqile/fenqile.js, tag=分期乐, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/fenqile.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/flyertea/flyertea.js, tag=飞客茶馆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/flyertea.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/gdoil/gdoil.js, tag=加油广东, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/gdoil.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/haidilao/hdl.js, tag=海底捞, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/haidilao.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/hellobike/hellobike.js, tag=哈啰出行, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/hellbike.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/hycan/hycan.js, tag=HYCAN合创, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/hycan.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/jddj/jddj.js, tag=京东到家, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jddj.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/maomicd/maomicd.js, tag=猫咪音乐, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/maomicd.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/mcdd/mcdd.js, tag=叮咚买菜, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/mcdd.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/meituan/meituan.js, tag=美团, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/meituan.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/mgtv/mgtv.js, tag=芒果TV, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/mgtv.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/midu/miduSign.js, tag=米读签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/midu.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/midu/miduRead.js, tag=米读阅读时长, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/midu.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/mihoyo/mihoyo.js, tag=米游社, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/mihoyo.png, enabled=false +#取关京东店铺商品 +#默认每运行一次脚本取消关注10个商品,10个店铺。 +55 23 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_unsubscribe.js, tag=取关京东店铺商品, enabled=true +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/neteasenews/neteasenews.js, tag=网易新闻, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/neteasenews.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/nio/nio.js, tag=蔚来, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/nio.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/noteyoudao/noteyoudao.js, tag=有道云笔记, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/noteyoudao.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/qimao/qmnovel.js, tag=七猫小说, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qimao.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/qmkg/qmkg.js, tag=全民K歌, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qmkg.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/qqmusic/qqmusic.js, tag=QQ音乐, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qqmusic.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/qtt/qtt.js, tag=趣头条, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qtt.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/qunar/qunar.js, tag=去哪儿, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qunar.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/rrtv/rrtv.js, tag=人人视频, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/rrtv.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/sfexpress/sfexpress.js, tag=顺丰速运, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/sfexpress.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/smzdm/quanx/smzdm.js, tag=什么值得买, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/smzdm.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/tncj/tncj.min.js, tag=头脑吃鸡, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/tncj.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/suning/suning.js, tag=苏宁易购, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/suning.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/v2ex/quanx/v2ex.js, tag=V2EX, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/v2ex.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/videoqq/videoqq.js, tag=腾讯视频, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/videoqq.png, enabled=true +10 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/wanda/wanda.js, tag=万达电影, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/wanda.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/wmmeituan/wmmeituan.js, tag=美团外卖, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/wmmeituan.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/wykl/wykl.js, tag=网易考拉, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/wykl.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/zaker/zaker.js, tag=Zaker, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/zaker.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/zimuzu/zimuzu.js, tag=字幕组, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/zimuzu.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/zxhc/zxhc.js, tag=智行火车, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/zxhc.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/zsfc/zsfc.js, tag=掌上飞车, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/zsfc.png, enabled=false +10 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/pagoda/pagoda.js, tag=百果园, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/pagoda.png, enabled=false +10 0 * * * https://raw.githubusercontent.com/chavyleung/scripts/master/ithome/ithome.js, tag=IT之家, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/ithome.png, enabled=false +#zZPiglet +1 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/115/115.js, tag=115, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/115.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/Blibee/Blibee.js, tag=便利蜂, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Blibee.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/DiDi/DiDi.js, tag=滴滴出行签到, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/didi.png, enabled=false +59 23 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/DiDi/DiDi_reward.js, tag=滴滴出行福利金, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/didi.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/Naixue/Naixue.js, tag=奈雪, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Naixue.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/ZMTeacher/ZMTeacher.js, tag=掌门好老师, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/ZMTeacher.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/Oclean/Oclean.js, tag=欧可林, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/Oclean.png, enabled=false +0 7 * * * https://raw.githubusercontent.com/zZPiglet/Task/master/MovieCalendar/MovieCalendar.js, tag=电影日历, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/MovieCalendar.png +#songyangzz +1 0 * * * https://raw.githubusercontent.com/songyangzz/QuantumultX/master/elem/elemSign.js, tag=饿了么, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/elem.png, enabled=false +1 0 * * * https://raw.githubusercontent.com/songyangzz/QuantumultX/master/lol.js, tag=LOL排行查询, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/lol.png, enabled=false +0 0-23/1 * * * https://raw.githubusercontent.com/songyangzz/QuantumultX/master/testflight.js, tag=testflight公测监控, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/testflight.png, enabled=false +#toulanboy +5 0 * * * https://raw.githubusercontent.com/toulanboy/scripts/master/muchong/muchong.js, tag=小木虫论坛, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/muchong.png, enabled=false +5 0 * * * https://raw.githubusercontent.com/toulanboy/scripts/master/weibo/weibotalk.js, tag=微博超话, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/weibo.png, enabled=false +#Sunert +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/dianshijia.js, tag=电视家, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/dianshijia.png, enabled=false +0 10 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/exchangeRate.js, tag=实时货币换算, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/exchangerate.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/kuaishou.js, tag=快手极速版, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/kuaishou.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/lkyl.js, tag=来客有礼, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/lkyl.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/sinanews.js, tag=新浪新闻, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/sinanews.png, enabled=false +10 8 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/telecomInfinity.js, tag=中国电信套餐, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/telecominfinty.png, enabled=false +0 10 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/translate.js, tag=谷歌中英互译, img-url=https://raw.githubusercontent.com/Orz-3/task/master/translate.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/txnews2.js, tag=腾讯新闻, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/txnews.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/weibo.js, tag=微博, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/weibo.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/youth.js, tag=中青看点极速版, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/youth.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/mydigit.js, tag=数码之家, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/maydigit.png, enabled=false +#Peng-YM +0 9 */7 * * https://raw.githubusercontent.com/Peng-YM/QuanX/master/Tasks/epic.js, tag=Epic周免, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/epic.png, enabled=true +0 9 * * * https://raw.githubusercontent.com/Peng-YM/QuanX/master/Tasks/exchange.js, tag=汇率监控, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/exchangerate.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Peng-YM/QuanX/master/Tasks/github.js, tag=GitHub, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/github.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Peng-YM/QuanX/master/Tasks/nCov.js, tag=疫情日报, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/COVID-19.png, enabled=false +0 9 * * * https://raw.githubusercontent.com/Peng-YM/QuanX/master/Tasks/psn.js, tag=PSN会免, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/PSN.png, enabled=false +#iepngs +1 8,12,17 * * * https://raw.githubusercontent.com/iepngs/Script/master/dingdong/index.js, tag=叮咚农场, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/mcdd.png, enabled=false +#lowking +0 0 0,1 * * ? https://raw.githubusercontent.com/lowking/Scripts/master/QQVip/qqVipCheckIn.js, tag=qq会员成长值, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/qqvip.png, enabled=false +0 0 0 * * ? https://raw.githubusercontent.com/lowking/Scripts/master/sony/sonyClub.js, tag=索尼俱乐部, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/SONY.png, enabled=false +#lxk0301 +25,56 */2 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_moneyTree.js, tag=京东摇钱树, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +20,51 */3 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_joy.js, tag=京东宠汪汪, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +15,46 */4 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_speed.js, tag=京东天天加速, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +10,41 7-19/6 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_fruit.js, tag=东东农场, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +5,36 6-18/6 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_pet.js, tag=京东萌宠, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +0,31 6-23/2 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_plantBean.js, tag=种豆得豆, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jd.png, enabled=true +11 1-23/2 * * * https://raw.githubusercontent.com/lxk0301/scripts/master/jd_superMarket.js, tag=京小超, enabled=true +#vinewx +0 9 * * * https://ooxx.be/js/jegotrip.js, tag=无忧行, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/jegotrip.png, enabled=false +0 18 * * * https://ooxx.be/js/maoyan.js, tag=猫眼电影, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/maoyan.png, enabled=false +0 9 * * * https://ooxx.be/js/umer.js, tag=优麦医生, img-url=https://raw.githubusercontent.com/Orz-3/mini/master//umer.png, enabled=false +#chouchoui +30 8,13,19 * * * https://raw.githubusercontent.com/chouchoui/QuanX/master/Scripts/angelalign/angelalign.task.js, tag=时代天使, enabled=false, img-url=https://raw.githubusercontent.com/Orz-3/mini/master/angelalign.png +10 0 * * * https://raw.githubusercontent.com/chouchoui/QuanX/master/Scripts/nga/nga.js, tag=NGA刮墙, enabled=false, img-url=https://raw.githubusercontent.com/Orz-3/mini/master//nga.png +#京东818手机节(活动已结束,禁用即可) +1 0-18/6 * * * https://gitee.com/lxk0301/scripts/raw/master/jd_818.js, tag=京东818手机节, img-url=https://raw.githubusercontent.com/Orz-3/task/master/jd.png, enabled=false + + +[mitm] +passphrase = A52B4242 +p12 = MIIKsQIBAzCCCnsGCSqGSIb3DQEHAaCCCmwEggpoMIIKZDCCBL8GCSqGSIb3DQEHBqCCBLAwggSsAgEAMIIEpQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQInXEqb9GRrAcCAggAgIIEeN8r2u0hV5NWFy59vsMExS1IZyE51lRSex+6c44kMFC6IhXqPCzO8MabV2AUgRYtBV4cFNHAv3ZOscQRrYnDOWyRoELhNcKp0uKLFIXGhvkWrqvSC0OTqrZc8WJJkqaIJiz2y9neotCbpesIte0o7jT2DzRY0b/1ysHgp/mc2w/evs8WBKFtghVzryElouUuEyO2uA9xTnfXBj/4+79I9YcothRMF5nPsVzULF5ohwXdVzCx+KwancGaqUuza3XkeJsWCuIIeOOwnzp5ZxZvKf0M2Tmzmes3q8hP4pIsMpSy7knapfRK4AEmCkyKJVd39sgpErhJwWyZu+gjUsdU+CVkPd9uU/9cF1Hu5B7/p92V7ofuktlAQi1ssGCnOnrPnMV5RzJIIM6Br/EePBEt2j7EK9WF30PZ5a1rQItYK8JjI21OBprFvdp857gdGmNMYK+WPG7WLQcL7+UQMoTFkPmEmI9tOsm9aaLXY5ovXqQMOVWUGI584sZlxngKgX/Ciiu0frwB93VYmCDteXePfgaEfQGKJzYSexnKMVFpfs8pzycwbLZ8svTXvZ7+FpEr/fa+QXFcvsvzlT41kNrm56OeBVXOU0jTsJpgo2Qd1dRGy1ntl+cuUkfCVA3mEXb4BRTTBCgjUz/Qaj3K91UBmZTDN0aUB9yVkkCINM0Hq4ZldPXJFMDswXyOfT+cNGs6tVrX2b1rLw286Rtwmhn0/VcUt7dMCgkqkVrIJ/ZkvG7lEzVQBNMVV6Gk/RCEKdXMPjJlsLucEnN5uQ8Yl2ZG3d8bcWfyBO0aS9Zg9QHzDoQ3uhXzXQdFilKy7fSY0yhPp9fnCrmwTAWdxNs18Yu0O4V1uOP8EPAudNUMZPBSWOxOnwwcKCCF1h74AEfYbbd0Ly9PEKZjh8HOa+4l3wFFNwufjF6/i2+sdo1qXrs2kmrcrAti2kOQ5B5/L/K+NF1ag+sS8ffHZ8O5SUdAaVWuNPkXgMOKwvCYJi56k/sfpP7caN5v4iOLvSt/CSF8fEOAUfSKpLuMvR/KpSTiUakIM+6yuDKgmZt85sTmexrBd2eSpRxblQdYJ/KUcszu8k5DkzTvn1fB3UntyufuXnyafMYxLFHBlHER2oq2S7A7wKYh2lHZ6OzB1lBAGeOffGHI3CsYMO0EvYVP6YDJ0UikenepnKhODO+Hn+bRrWasx9AKa3KMBfJstyMuj+L6J/FnBEZNCpccuNEIO6DP3IuivXszGdkWMo2mVZ9E/jCE3Hm0DrVGowLssgvWcx+mOcaKirAmGHdQnltF+obncXEMCS0etc03+K5SiV/QSviEvokj2PI4vAKyguvb7pvo9l0cCWjTCuN3RkMCEcWT4m6u1tfvu1C5VlzPgKIiCTMTIOJMlon9ul9Zr+BkkBVYg60BjP0HRporW7mApLvwF33aSVX6jCtgm/ld6mK5aYS+8JKCILDXKW49p5SB57wyl6MG77a7xTgKoVGDGRYVdDUKqSYsWOpX+AOe9Tx4j6NHi88IVvn6J4lVBeAwggWdBgkqhkiG9w0BBwGgggWOBIIFijCCBYYwggWCBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIfqgcA7Kr6ssCAggABIIEyNmyK6CVHN6wUp0j1dAED1OB9c0RNNYQPCvetXi5JVWvPB4BWhbCqQeTgo3YLrSji/p+kyWWmaYx0T55xGCsIdPwUIpwdRKHU1oNiuUDW+V5QA5gdYwX/I6agdK7t/cdQMOB6puGuxCxFOkGJEOIcaxH8ovT9mnQgk7Am50eW63JeC+v1tYcL1Fg4p7qvJXT6m3U3DD0kMTungrnAQlLqhgWnPrDqNFXCoGU6cKDpZCJSHvABVrRLaM7sSWNxXKu1RrLJB1HfsCaBoQBC3VIDBgPsc4uUb1qh4ssQ/w1u9BmDWNeT8P+ZcdMGcDdVzs1vjdYxzGFBtHS5cpEsUfxh5bVbiSNripJwH4MO8Q7MxbczFURcSdrgLieYj/kSOi0TKr+axVkhufLMJPK6W7TOEf1w14aq31URb+Vn0G6urx+c0jBjh66/1GmiVYKIOai5HKdCv4LBDM46KG+MjswDOjKrqOkoDZzGg9RbkdhmFB/6JdPqMv/nl97DQo7DGJp+imrJp/TVze8ai9KztVU9xHgEEPcLXnC42UT6wpjQ2Nd515WzW1lhLwjvpvRA2krxGb8OhHeOZCgDESjrXtqjw38zcClRqyy7FjI2R2FeMXOK5iArhniGTMGm9P99otp2o1zmNyv62PGYoGbREjw1tPYjLw8AJQmK9ED+9LkDzgMIaBZ8GLvQAERQ/8YqopCOCajeI1WYaS9U3Ht8U+gPysGQrbX4QBfXvkAOxdLr36hfG1MKFqh+2u7qlpk/lmR9ALH0FWwyEW8qlAAmGorJEYQVwd/NMmf9ENtxRVKP2/ArKGezN5H8u16P00N4AyQmzr1/mdC8ra9G0eDI66yO2ILBMe7sv80zJhJRsc5mYRYe+4d5AsQUC2+jA0e7jeJf6BpRqixFwueLOWFROu9zE8V/37BfXzrKbL3pj8+C6uBcxyI3RIJhdsAicDIL8XSygG7HkvwWxOCevesDZmlds41xvFUToHwshivXfLEMuyvgoQa1v1bkysXte2ix/lAUFYB4Vcj5YNIaKxytiHDcXwW9Ahdvvv8be9yL2V9ah5vDRqm2mHTWyCX9n1rMnKmx0+eS5Big77TXTIE1vsg48gFJiuwbX+ZMrFRYWvC3+BumIyTm9+9T5ZKKDwtJTO3FRn8dnX7aLWjbS8UHR/lEX4cLvvFXBQDSDYMGMFv+SB4XI407DUj4kb0WmWm6Jlhwkb9UZHYsEEZvhb4RdAFx0S3TdBSSflE4aFlDmcVDEHFpozfKb6Y8NsdIl8jW5cwTbaWHGbwQml06bSkiqr2Afg7T75vOSNifDE8qZUtc7TABJ1n1dDE1aVa0pl0iuAqT+m4HObtTn2PD5rmfzs70LjhaeqAZnxCUBSkDtD+DyvJCf01KPl4Z8Ev93axZCEq1QH2jFGnWz0KEmLj7oaidGUtTwkuNdYf9iEvNgsMnnDuqip44BmGMqzHVfig5i8GVNmQqNwivYoqVyTzunp0egXXlg6LuoUolVvCkmjvXqpIa0fo7949548jW0qtA3AE9vLhjAI07tRioL40IhruBneXreoxm/wHYU9IsrN2XcPDPUVDp8tKwyZe/Ynom0qBaGWwnuM6St17RBY2biV7IizFmVE63MjEUzGBgDAjBgkqhkiG9w0BCRUxFgQU6Y5QSH0nfLRaoKclBVBVimRxxoYwWQYJKoZIhvcNAQkUMUweSgBRAHUAYQBuAHQAdQBtAHUAbAB0ACAAWAAgAEMAQQAgAEEANQAyAEIANAAyADQAMgAgACgAMgAgAEEAdQBnACAAMgAwADIAMAApMC0wITAJBgUrDgMCGgUABBTbprAsgnGnsiN4BVWhxeUty1OImQQIsQ1eWRGI5Lg= +hostname = api.xiaoheihe.cn,api.m.jd.com,manga.bilibili.com,*.bilibili.com,xiaoshuo.qm989.com,*.video.qq.com,*.acfun.cn,110.43.90.61,tieba.baidu.com,h5.ele.me,*.iqiyi.com,wapside.189.cn,wx.10086.cn,apk.tw,clientaccess.10086.cn,group.baicizhan.com,*.csdn.net,sapi.beingfine.cn,frodo.douban.com,api.dongqiudi.com,www.duokan.com,api.everphoto.cn,api.dushu.io,pm.m.fenqile.com,www.flyertea.com,m.gdoil.cn,activity-1.m.duiba.com.cn,gameapi.hellobike.com,wxprdapplet.gac-nio.com,my.ruanmei.com,daojia.jd.com,www.maomicd.com,maicai.api.ddxq.mobi,i.meituan.com,credits.bz.mgtv.com,apiwz.midukanshu.com,api-takumi.mihoyo.com,music.163.com,*.m.163.com,api.infzm.com,app.nio.com,wx-mini.pagoda.com.cn,node.kg.qq.com,api.1sapp.com,user.qunar.com,*.rr.tv,sf-integral-sign-in.weixinjia.net,mcs-mimp-web.sf-express.com,*.smzdm.com,passport.suning.com,luckman.suning.com,sign.suning.com,gameapi.suning.com,tncj.hortorgames.com,*.v2ex.com,user-api-prd-mx.wandafilm.com,promotion.waimai.meituan.com,zt.wps.cn,mobwsa.ximalaya.com,iphone.myzaker.com,*.rrys2019.com,ios.zmzapi.com,mwegame.qq.com,m.ctrip.com,proapi.115.com,h5.bianlifeng.com,as.xiaojukeji.com,superapp.kiwa-tech.com,webapi.qmai.cn,teacherapi.zmlearn.com,mall.oclean.com,*.xmcimg.com,api.weibo.cn,api.inews.qq.com,nebula.kuaishou.com,newsapi.sina.cn,e.189.cn,pay.sc.weibo.com,*.youth.cn,ios.baertt.com,www.mydigit.cn,proxy.vac.qq.com,app*.jegotrip.com.cn,task.jegotrip.com.cn,api.umer.com.cn,exp.angelalign.com,ngabbs.com,xeq1kjnhr.m.jd.com,mapi.weibo.com,*.uve.weibo.com,trade-acs.m.taobao.com,huiyuan.163.com,cxdng.cpic.com.cn,draw.jdfcloud.com,*.*.mob.com,mk.immomo.com,mobile01.91quzou.com,yuba.douyu.com,h5.youzan.com,zm.shujumagician.com,m.xiaomiyoupin.com,api.cashtoutiao.com,appv8.qukantianxia.com,appv7.qukantx.com,qqpet.jwetech.com,sports.lifesense.com,studygolang.com,api.kkmh.com,www.baimaa.com,jdjoy.jd.com,www.cuuc.club,ph0001.hezyq.com,w3.ilovecoupon.top,pd.xuexgchn.xyz,xx.cqxygzs.cn,ios-fenqu11.lxsjgo.com,wq.02gk.com,wq.jd.com,cloud.umetrip.com,m.ctrp.com,*.ctrp.com,m.elong.com,activity.m.duiba.com.cn,icbc1.wlphp.com:8444,wx.17u.cn,i.snssdk.com,is.snssdk.com,note.youdao.com,dominos0724.shjimang.com,geekhub.com,passport.biligame.com,www.2xtj7.cn,www.hnmiaosu.cc,dk.ne72.com,shop42867343.youzan.com,weather-data.apple.com,api.weather.com,app.ymatou.com,apiplus.biyao.com,m.client.10010.com,m.weibo.cn,mobile.app.autohome.com.cn,hongbao.youzikuaibao.com,getconfig-globalapi.zymk.cn,wox2019.woxshare.com,appsmall.rtmap.com,choujiang-server.deering.cn,api.momosyb.com,*.zhuishushenqi.com,operation-api.jimistore.com,youhui.95516.com,api.tuhu.cn diff --git a/Task/ziye.boxjs.json b/Task/ziye.boxjs.json new file mode 100644 index 000000000..6363a3884 --- /dev/null +++ b/Task/ziye.boxjs.json @@ -0,0 +1,31 @@ +{ + "id": "ziye.app.sub", + "name": "ziye 应用订阅", + "author": "@ZIYE", + "icon": "", + "repo": "https://github.com/ziye12/JavaScript", + "apps": [{ + "id": "qqread", + "name": "企鹅读书", + "keys": ["qqreadbd", "qqreadtimeurl", "qqreadtimehd", "qqreadbd2", "qqreadtimeurl2", "qqreadtimehd2", "qqreadbd3", "qqreadtimeurl3", "qqreadtimehd3", "qqreadbd4", "qqreadtimeurl4", "qqreadtimehd4", "qqreadbd5", "qqreadtimeurl5","qqreadtimehd5", "qqreadbd6", "qqreadtimeurl6", "qqreadtimehd6", "qqreadbd7", "qqreadtimeurl7", "qqreadtimehd7", "qqreadbd8", "qqreadtimeurl8", "qqreadtimehd8","qqreadbd9", "qqreadtimeurl9", "qqreadtimehd9","qqreadbd10", "qqreadtimeurl10", "qqreadtimehd10","qqreadbd11", "qqreadtimeurl11", "qqreadtimehd11","qqreadbd12", "qqreadtimeurl12", "qqreadtimehd12","qqreadbd13", "qqreadtimeurl13", "qqreadtimehd13","qqreadbd14", "qqreadtimeurl14", "qqreadtimehd14","qqreadbd15", "qqreadtimeurl15", "qqreadtimehd15","qqreadbd16", "qqreadtimeurl16", "qqreadtimehd16","qqreadbd17", "qqreadtimeurl17", "qqreadtimehd17","qqreadbd18", "qqreadtimeurl18", "qqreadtimehd18","qqreadbd19", "qqreadtimeurl19", "qqreadtimehd19","qqreadbd20", "qqreadtimeurl20", "qqreadtimehd20"], + "author": "@ziye", + "settings": [{ + "id": "qeSuffix", + "name": "当前账号", + "val": "1", + "type": "number", + "desc": "当前抓取ck记录的账号序号,如:1、2、3、" + }, + { + "id": "qeCount", + "name": "账号个数", + "val": "1", + "type": "number", + "desc": "指定任务最多跑几个账号,根据抓取的账号数据个数来设值" + } + ], + "repo": "https://github.com/ziye12/JavaScript/blob/master/Task/qqreads.js", + "icons": ["https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.jpg", "https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.jpg"], + "script": "https://raw.githubusercontent.com/ziye12/JavaScript/master/Task/qqreads.js" + }] +} diff --git a/Task/zqdkgit.js b/Task/zqdkgit.js new file mode 100644 index 000000000..66dc0d9b6 --- /dev/null +++ b/Task/zqdkgit.js @@ -0,0 +1,221 @@ + + + + +const $ = new Env("早起打卡") +const jsname="早起打卡" +let notifyInterval=1 +const dkurl = 'https://ph0001.hezyq.com/app/index.php?i=597&t=0&v=1.0.2&from=wxapp&c=entry&a=wxapp&do=distribute&m=bh_rising&sign=2b18eebf989b3a26a9ca677492b74724&action=today&contr=index&token=8ddce1ace72e7b6ac0e8befd789a69be&version=2.0.34 +' + + +let isGetCookie = typeof $request !== 'undefined' +if (isGetCookie) { + GetCookie() +} else { + all() +} + + + + +function GetCookie() { +if ($request && $request.url.match(/i=597&/)) +if ($request && $request.url.match(/action=today&contr=index/)) + { + const dkurl = $request.url + sy.log(`dkurl:${dkurl}`) + if (dkurl) sy.setdata(dkurl, dkurlkey) + sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) +} + +} + + + + + +function all() + + { + + for(var i=0;i<3;i++) + { (function(i) { + setTimeout(function() { + + if(i==0) dktj(i); +else if(i==1) dkxj(i); +else if(i==2) showmsg(i); +}, (i + 1) * 1000); + })(i) + + +}} + + + + + +//统计 + +function dktj() { +return new Promise((resolve, reject) => { + + const Tjurl = { + url: dkurl + }; + $.get(Tjurl,(error, response, data) =>{ + if(logs)$.log(`${jsname}1统计 - data: ${data}`) + obj = JSON.parse(data) +if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ +"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" + }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" + + + + + +cstj1(obj.info.today.clock); + + + + resolve() + }) + }) + } + + +//次数统计 + + +function cstj1(tjtj) +{ +if (tjtj { + + const Xjurl = { + url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) + }; + $.get(Xjurl,(error, response, data) =>{ + if(logs)$.log(`${jsname}1现金 - data: ${data}`) + obj = JSON.parse(data) +if(obj.status == 1) { + + + + + tz +="💵现金余额"+ +obj.info.member.money+"元"+"\n" + + } + + else tz +=sb+"\n"; + + +xjtj1(obj.info.member.money); + + + + resolve() + }) + }) + } + + + + +//自动提现 + +function dktx() { +return new Promise((resolve, reject) => { + + const Txurl = { + url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) + }; + $.get(Txurl,(error, response, data) =>{ + if(logs)$.log(`${jsname}1提现 - data: ${data}`) + obj = JSON.parse(data) +if(obj.status == 1) { + +tz +='提现成功,成功提现'+xj+'元'+"\n" + + } + +if(obj.status == 2) { + +tz +='提现失败,原因:'+obj.info+"\n" + + } + + + + + resolve() + }) + }) + } + + + +//现金统计 + + +function xjtj1(tjtj) +{ +if (tjtj>=xj) +dktx() + +} + + + +//打卡 +function dkdk() { +return new Promise((resolve, reject) => { + + const Dkurl = { + url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) + }; + $.get(Dkurl,(error, response, data) =>{ + if(logs)$.log(`${jsname}1打卡- data: ${data}`) + obj = JSON.parse(data) + + if (obj.status==1){ +tz+='[️打卡任务]:'+'打卡次数+1'+'\n' + + } +else tz +=obj.info+'\n' + + + resolve() + }) + }) + } + + +async function showmsg() { + +console.log(tz) + +if (notifyInterval==1) +$.msg(jsname,'',tz) +} + + + + + + + + + +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/asdkziye.js b/asdkziye.js deleted file mode 100644 index a9b6a46f5..000000000 --- a/asdkziye.js +++ /dev/null @@ -1,338 +0,0 @@ -/*ziye爱尚打卡 - -非常重要!!! - -微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/asdkziye.png 进入小程序,登录获取授权,再启动软件获取ck -建议设置6点到23点之间打卡,时间间隔30分钟以上,否则容易封号 - - - -《《《《《《《《《《制作其他打卡js的说明 - -抓包小程序,然后替换以下内容来制作其他打卡js, -需要替换的内容如下,按顺序替换字符,自己用电脑或者KODE软件替换,KODE下载链接https://apps.apple.com/cn/app/koder-code-editor/id1447489375 - -ph0001.hezyq.com -爱尚打卡 -cs = 20 -xj = 1 -asdkurl -i=971 -asdk - -手动替换 -ph0001\.hezyq\.com - -制作其他打卡js的说明》》》》》》》》》》》 - - - - - - -////////////////////////////////////////正文 - - -使用说明: -一,微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/asdkziye.png 进入小程序,登录获取授权 - -二,然后将hostname复制粘贴进配置文件 - -三,将重写复制到 rewrite_local 下,再进入程序获取ck,建议 放入新建配置片段,获取之后禁用即可 - -功能如下: -1.每日打卡,设置了开关,完成任务不再打卡 -2.打卡币统计, -3.现金统计,自动提现 - - - - - -hostname= ph0001.hezyq.com, - -//surge -爱尚打卡 = type=http-request,pattern=^https:\/\/ph0001\.hezyq\.com\/*,requires-body=1,max-size=0,script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/asdkziye.js - -//圈x -https:\/\/ph0001\.hezyq\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/asdkziye.js - -//loon -http-request ^https:\/\/ph0001\.hezyq\.com\/* script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/asdkziye.js -, requires-body=true, timeout=10, tag=爱尚打卡 - - -*/ - - - -const sy = init()//声明必须 -const notifyInterval = 1; //通知开为1,常关为0 -const logs = 0; // 日志开关 -const jsname = '爱尚打卡' -const jbid =1 -const sb='失败,请先关闭,进入程序获取授权' - -const cs = 20;//小程序打卡次数 -const xj = 1;//提现标准 -var tz='' - -const dkurlkey = 'asdkurl'+jbid -const dkurl = sy.getdata(dkurlkey) - - -let isGetCookie = typeof $request !== 'undefined' -if (isGetCookie) { - GetCookie() -} else { - all() -} - - - -function GetCookie() { -if ($request && $request.url.match(/i=971&/)) -if ($request && $request.url.match(/action=today&contr=index/)) - { - const dkurl = $request.url - sy.log(`dkurl:${dkurl}`) - if (dkurl) sy.setdata(dkurl, dkurlkey) - sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) -} - -} - - -//异步运行 - - -function all() - - { - - for(var i=0;i<3;i++) - { (function(i) { - setTimeout(function() { - - if(i==0) dktj(i); -else if(i==1) dkxj(i); -else if(i==2) showmsg(i); -}, (i + 1) * 1000); - })(i) - - -}} - - - - -//统计 - -function dktj() { -return new Promise((resolve, reject) => { - - const Tjurl = { - url: dkurl - }; - sy.get(Tjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1统计 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ -"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - - - - - -cstj1(obj.info.today.clock); - - - - resolve() - }) - }) - } - - -//次数统计 - - -function cstj1(tjtj) -{ -if (tjtj { - - const Xjurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) - }; - sy.get(Xjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1现金 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - - - - - tz +="💵现金余额"+ -obj.info.member.money+"元"+"\n" - - } - - else tz +=sb+"\n"; - - -xjtj1(obj.info.member.money); - - - - resolve() - }) - }) - } - - - - -//自动提现 - -function dktx() { -return new Promise((resolve, reject) => { - - const Txurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) - }; - sy.get(Txurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1提现 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - -tz +='提现成功,成功提现'+xj+'元'+"\n" - - } - -if(obj.status == 2) { - -tz +='提现失败,原因:'+obj.info+"\n" - - } - - - - - resolve() - }) - }) - } - - - -//现金统计 - - -function xjtj1(tjtj) -{ -if (tjtj>=xj) -dktx() - -} - - - -//打卡 -function dkdk() { -return new Promise((resolve, reject) => { - - const Dkurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) - }; - sy.get(Dkurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1打卡- data: ${data}`) - obj = JSON.parse(data) - - if (obj.status==1){ -tz+='[️打卡任务]:'+'打卡次数+1'+'\n' - - } -else tz +=obj.info+'\n' - - - resolve() - }) - }) - } - - -function showmsg() { - -console.log(tz) - -if (notifyInterval==1) -sy.msg(jsname,'',tz) -} - - -function init() { - isSurge = () => { - return undefined !== this.$httpClient - } - isQuanX = () => { - return undefined !== this.$task - } - getdata = (key) => { - if (isSurge()) return $persistentStore.read(key) - if (isQuanX()) return $prefs.valueForKey(key) - } - setdata = (key, val) => { - if (isSurge()) return $persistentStore.write(key, val) - if (isQuanX()) return $prefs.setValueForKey(key, val) - } - msg = (title, subtitle = '', body = '') => { - if (isSurge()) $notification.post(title, subtitle, body) - if (isQuanX()) $notify(title, subtitle, body) - } - log = (msg) => { - console.log(`${msg}\n`) - } - get = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'GET' - return $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) return $httpClient.get(options, callback) - } - post = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'POST' - $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) $httpClient.post(options, callback) - } - done = (value = {}) => { - $done(value) - } - return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } -} diff --git a/asdkziye.png b/asdkziye.png deleted file mode 100644 index 804647d8e..000000000 Binary files a/asdkziye.png and /dev/null differ diff --git a/diqudaima.txt b/diqudaima.txt new file mode 100644 index 000000000..69701d7d5 --- /dev/null +++ b/diqudaima.txt @@ -0,0 +1,3522 @@ + 全国地区代码,自己用浏览器搜索文字 + + + 110000 北京市 + 110100 市辖区 + 110101 东城区 + 110102 西城区 + 110103 崇文区 + 110104 宣武区 + 110105 朝阳区 + 110106 丰台区 + 110107 石景山区 + 110108 海淀区 + 110109 门头沟区 + 110111 房山区 + 110112 通州区 + 110113 顺义区 + 110114 昌平区 + 110115 大兴区 + 110116 怀柔区 + 110117 平谷区 + 110200 县 + 110228 密云县 + 110229 延庆县 + 120000 天津市 + 120100 市辖区 + 120101 和平区 + 120102 河东区 + 120103 河西区 + 120104 南开区 + 120105 河北区 + 120106 红桥区 + 120107 塘沽区 + 120108 汉沽区 + 120109 大港区 + 120110 东丽区 + 120111 西青区 + 120112 津南区 + 120113 北辰区 + 120114 武清区 + 120115 宝坻区 + 120200 县 + 120221 宁河县 + 120223 静海县 + 120225 蓟县 + 130000 河北省 + 130100 石家庄市 + 130101 市辖区 + 130102 长安区 + 130103 桥东区 + 130104 桥西区 + 130105 新华区 + 130107 井陉矿区 + 130108 裕华区 + 130121 井陉县 + 130123 正定县 + 130124 栾城县 + 130125 行唐县 + 130126 灵寿县 + 130127 高邑县 + 130128 深泽县 + 130129 赞皇县 + 130130 无极县 + 130131 平山县 + 130132 元氏县 + 130133 赵县 + 130181 辛集市 + 130182 藁城市 + 130183 晋州市 + 130184 新乐市 + 130185 鹿泉市 + 130200 唐山市 + 130201 市辖区 + 130202 路南区 + 130203 路北区 + 130204 古冶区 + 130205 开平区 + 130207 丰南区 + 130208 丰润区 + 130223 滦县 + 130224 滦南县 + 130225 乐亭县 + 130227 迁西县 + 130229 玉田县 + 130230 唐海县 + 130281 遵化市 + 130283 迁安市 + 130300 秦皇岛市 + 130301 市辖区 + 130302 海港区 + 130303 山海关区 + 130304 北戴河区 + 130321 青龙满族自治县 + 130322 昌黎县 + 130323 抚宁县 + 130324 卢龙县 + 130400 邯郸市 + 130401 市辖区 + 130402 邯山区 + 130403 丛台区 + 130404 复兴区 + 130406 峰峰矿区 + 130421 邯郸县 + 130423 临漳县 + 130424 成安县 + 130425 大名县 + 130426 涉县 + 130427 磁县 + 130428 肥乡县 + 130429 永年县 + 130430 邱县 + 130431 鸡泽县 + 130432 广平县 + 130433 馆陶县 + 130434 魏县 + 130435 曲周县 + 130481 武安市 + 130500 邢台市 + 130501 市辖区 + 130502 桥东区 + 130503 桥西区 + 130521 邢台县 + 130522 临城县 + 130523 内丘县 + 130524 柏乡县 + 130525 隆尧县 + 130526 任县 + 130527 南和县 + 130528 宁晋县 + 130529 巨鹿县 + 130530 新河县 + 130531 广宗县 + 130532 平乡县 + 130533 威县 + 130534 清河县 + 130535 临西县 + 130581 南宫市 + 130582 沙河市 + 130600 保定市 + 130601 市辖区 + 130602 新市区 + 130603 北市区 + 130604 南市区 + 130621 满城县 + 130622 清苑县 + 130623 涞水县 + 130624 阜平县 + 130625 徐水县 + 130626 定兴县 + 130627 唐县 + 130628 高阳县 + 130629 容城县 + 130630 涞源县 + 130631 望都县 + 130632 安新县 + 130634 曲阳县 + 130635 蠡县 + 130636 顺平县 + 130637 博野县 + 130638 雄县 + 130681 涿州市 + 130682 定州市 + 130683 安国市 + 130684 高碑店市 + 130700 张家口市 + 130701 市辖区 + 130702 桥东区 + 130703 桥西区 + 130705 宣化区 + 130706 下花园区 + 130721 宣化县 + 130722 张北县 + 130723 康保县 + 130724 沽源县 + 130725 尚义县 + 130726 蔚县 + 130727 阳原县 + 130728 怀安县 + 130729 万全县 + 130730 怀来县 + 130731 涿鹿县 + 130732 赤城县 + 130733 崇礼县 + 130800 承德市 + 130801 市辖区 + 130802 双桥区 + 130803 双滦区 + 130804 鹰手营子矿区 + 130821 承德县 + 130822 兴隆县 + 130823 平泉县 + 130824 滦平县 + 130825 隆化县 + 130826 丰宁满族自治县 + 130827 宽城满族自治县 + 130828 围场满族蒙古族自治县 + 130900 沧州市 + 130901 市辖区 + 130902 新华区 + 130903 运河区 + 130921 沧县 + 130922 青县 + 130923 东光县 + 130924 海兴县 + 130925 盐山县 + 130926 肃宁县 + 130927 南皮县 + 130928 吴桥县 + 130929 献县 + 130930 孟村回族自治县 + 130981 泊头市 + 130982 任丘市 + 130983 黄骅市 + 130984 河间市 + 131000 廊坊市 + 131001 市辖区 + 131002 安次区 + 131003 广阳区 + 131022 固安县 + 131023 永清县 + 131024 香河县 + 131025 大城县 + 131026 文安县 + 131028 大厂回族自治县 + 131081 霸州市 + 131082 三河市 + 131100 衡水市 + 131101 市辖区 + 131102 桃城区 + 131121 枣强县 + 131122 武邑县 + 131123 武强县 + 131124 饶阳县 + 131125 安平县 + 131126 故城县 + 131127 景县 + 131128 阜城县 + 131181 冀州市 + 131182 深州市 + 140000 山西省 + 140100 太原市 + 140101 市辖区 + 140105 小店区 + 140106 迎泽区 + 140107 杏花岭区 + 140108 尖草坪区 + 140109 万柏林区 + 140110 晋源区 + 140121 清徐县 + 140122 阳曲县 + 140123 娄烦县 + 140181 古交市 + 140200 大同市 + 140201 市辖区 + 140202 城区 + 140203 矿区 + 140211 南郊区 + 140212 新荣区 + 140221 阳高县 + 140222 天镇县 + 140223 广灵县 + 140224 灵丘县 + 140225 浑源县 + 140226 左云县 + 140227 大同县 + 140300 阳泉市 + 140301 市辖区 + 140302 城区 + 140303 矿区 + 140311 郊区 + 140321 平定县 + 140322 盂县 + 140400 长治市 + 140401 市辖区 + 140402 城区 + 140411 郊区 + 140421 长治县 + 140423 襄垣县 + 140424 屯留县 + 140425 平顺县 + 140426 黎城县 + 140427 壶关县 + 140428 长子县 + 140429 武乡县 + 140430 沁县 + 140431 沁源县 + 140481 潞城市 + 140500 晋城市 + 140501 市辖区 + 140502 城区 + 140521 沁水县 + 140522 阳城县 + 140524 陵川县 + 140525 泽州县 + 140581 高平市 + 140600 朔州市 + 140601 市辖区 + 140602 朔城区 + 140603 平鲁区 + 140621 山阴县 + 140622 应县 + 140623 右玉县 + 140624 怀仁县 + 140700 晋中市 + 140701 市辖区 + 140702 榆次区 + 140721 榆社县 + 140722 左权县 + 140723 和顺县 + 140724 昔阳县 + 140725 寿阳县 + 140726 太谷县 + 140727 祁县 + 140728 平遥县 + 140729 灵石县 + 140781 介休市 + 140800 运城市 + 140801 市辖区 + 140802 盐湖区 + 140821 临猗县 + 140822 万荣县 + 140823 闻喜县 + 140824 稷山县 + 140825 新绛县 + 140826 绛县 + 140827 垣曲县 + 140828 夏县 + 140829 平陆县 + 140830 芮城县 + 140881 永济市 + 140882 河津市 + 140900 忻州市 + 140901 市辖区 + 140902 忻府区 + 140921 定襄县 + 140922 五台县 + 140923 代县 + 140924 繁峙县 + 140925 宁武县 + 140926 静乐县 + 140927 神池县 + 140928 五寨县 + 140929 岢岚县 + 140930 河曲县 + 140931 保德县 + 140932 偏关县 + 140981 原平市 + 141000 临汾市 + 141001 市辖区 + 141002 尧都区 + 141021 曲沃县 + 141022 翼城县 + 141023 襄汾县 + 141024 洪洞县 + 141025 古县 + 141026 安泽县 + 141027 浮山县 + 141028 吉县 + 141029 乡宁县 + 141030 大宁县 + 141031 隰县 + 141032 永和县 + 141033 蒲县 + 141034 汾西县 + 141081 侯马市 + 141082 霍州市 + 141100 吕梁市 + 141101 市辖区 + 141102 离石区 + 141121 文水县 + 141122 交城县 + 141123 兴县 + 141124 临县 + 141125 柳林县 + 141126 石楼县 + 141127 岚县 + 141128 方山县 + 141129 中阳县 + 141130 交口县 + 141181 孝义市 + 141182 汾阳市 + 150000 内蒙古自治区 + 150100 呼和浩特市 + 150101 市辖区 + 150102 新城区 + 150103 回民区 + 150104 玉泉区 + 150105 赛罕区 + 150121 土默特左旗 + 150122 托克托县 + 150123 和林格尔县 + 150124 清水河县 + 150125 武川县 + 150200 包头市 + 150201 市辖区 + 150202 东河区 + 150203 昆都仑区 + 150204 青山区 + 150205 石拐区 + 150206 白云矿区 + 150207 九原区 + 150221 土默特右旗合旗 + 150222 固阳县 + 150223 达尔罕茂明安联 + 150300 乌海市 + 150301 市辖区 + 150302 海勃湾区 + 150303 海南区 + 150304 乌达区 + 150400 赤峰市 + 150401 市辖区 + 150402 红山区 + 150403 元宝山区 + 150404 松山区 + 150421 阿鲁科尔沁旗 + 150422 巴林左旗 + 150423 巴林右旗 + 150424 林西县 + 150425 克什克腾旗 + 150426 翁牛特旗 + 150428 喀喇沁旗 + 150429 宁城县 + 150430 敖汉旗 + 150500 通辽市 + 150501 市辖区 + 150502 科尔沁区 + 150521 科尔沁左翼中旗 + 150522 科尔沁左翼后旗 + 150523 开鲁县 + 150524 库伦旗 + 150525 奈曼旗 + 150526 扎鲁特旗 + 150581 霍林郭勒市 + 150600 鄂尔多斯市 + 150602 东胜区 + 150621 达拉特旗 + 150622 准格尔旗 + 150623 鄂托克前旗 + 150624 鄂托克旗 + 150625 杭锦旗 + 150626 乌审旗 + 150627 伊金霍洛旗 + 150700 呼伦贝尔市 + 150701 市辖区 + 150702 海拉尔区族自治旗 + 150721 阿荣旗 + 150722 莫力达瓦达斡尔 + 150723 鄂伦春自治旗 + 150724 鄂温克族自治旗 + 150725 陈巴尔虎旗 + 150726 新巴尔虎左旗 + 150727 新巴尔虎右旗 + 150781 满洲里市 + 150782 牙克石市 + 150783 扎兰屯市 + 150784 额尔古纳市 + 150785 根河市 + 150800 巴彦淖尔市 + 150801 市辖区 + 150802 临河区 + 150821 五原县 + 150822 磴口县 + 150823 乌拉特前旗 + 150824 乌拉特中旗 + 150825 乌拉特后旗 + 150826 杭锦后旗 + 150900 乌兰察布市 + 150901 市辖区 + 150902 集宁区 + 150921 卓资县 + 150922 化德县 + 150923 商都县 + 150924 兴和县 + 150925 凉城县 + 150926 察哈尔右翼前 + 150927 察哈尔右翼中旗 + 150928 察哈尔右翼后 + 150929 四子王旗 + 150981 丰镇市 + 152200 兴安盟 + 152201 乌兰浩特市 + 152202 阿尔山市 + 152221 科尔沁右翼前旗 + 152222 科尔沁右翼中旗 + 152223 扎赉特旗 + 152224 突泉县 + 152500 锡林郭勒盟 + 152501 二连浩特市 + 152502 锡林浩特市 + 152522 阿巴嘎旗 + 152523 苏尼特左旗 + 152524 苏尼特右旗 + 152525 东乌珠穆沁旗 + 152526 西乌珠穆沁旗 + 152527 太仆寺旗 + 152528 镶黄旗 + 152529 正镶白旗 + 152530 正蓝旗 + 152531 多伦县 + 152600 乌兰察布盟 + 152900 阿拉善盟 + 152921 阿拉善左旗 + 152922 阿拉善右旗 + 152923 额济纳旗 + 210000 辽宁省 + 210100 沈阳市 + 210101 市辖区 + 210102 和平区 + 210103 沈河区 + 210104 大东区 + 210105 皇姑区 + 210106 铁西区 + 210111 苏家屯区 + 210112 东陵区 + 210113 新城子区 + 210114 于洪区 + 210122 辽中县 + 210123 康平县 + 210124 法库县 + 210181 新民市 + 210200 大连市 + 210201 市辖区 + 210202 中山区 + 210203 西岗区 + 210204 沙河口区 + 210211 甘井子区 + 210212 旅顺口区 + 210213 金州区 + 210224 长海县 + 210281 瓦房店市 + 210282 普兰店市 + 210283 庄河市 + 210300 鞍山市 + 210301 市辖区 + 210302 铁东区 + 210303 铁西区 + 210304 立山区 + 210311 千山区 + 210321 台安县 + 210323 岫岩满族自治县 + 210381 海城市 + 210400 抚顺市 + 210401 市辖区 + 210402 新抚区 + 210403 东洲区 + 210404 望花区 + 210411 顺城区 + 210421 抚顺县 + 210422 新宾满族自治县 + 210423 清原满族自治县 + 210500 本溪市 + 210501 市辖区 + 210502 平山区 + 210503 溪湖区 + 210504 明山区 + 210505 南芬区 + 210521 本溪满族自治县 + 210522 桓仁满族自治县 + 210600 丹东市 + 210601 市辖区 + 210602 元宝区 + 210603 振兴区 + 210604 振安区 + 210624 宽甸满族自治县 + 210681 东港市 + 210682 凤城市 + 210700 锦州市 + 210701 市辖区 + 210702 古塔区 + 210703 凌河区 + 210711 太和区 + 210726 黑山县 + 210727 义县 + 210781 凌海市 + 210782 北宁市 + 210800 营口市 + 210801 市辖区 + 210802 站前区 + 210803 西市区 + 210804 鲅鱼圈区 + 210811 老边区 + 210881 盖州市 + 210882 大石桥市 + 210900 阜新市 + 210901 市辖区 + 210902 海州区 + 210903 新邱区 + 210904 太平区 + 210905 清河门区 + 210911 细河区 + 210921 阜新蒙古族自治县 + 210922 彰武县 + 211000 辽阳市 + 211001 市辖区 + 211002 白塔区 + 211003 文圣区 + 211004 宏伟区 + 211005 弓长岭区 + 211011 太子河区 + 211021 辽阳县 + 211081 灯塔市 + 211100 盘锦市 + 211101 市辖区 + 211102 双台子区 + 211103 兴隆台区 + 211121 大洼县 + 211122 盘山县 + 211200 铁岭市 + 211201 市辖区 + 211202 银州区 + 211204 清河区 + 211221 铁岭县 + 211223 西丰县 + 211224 昌图县 + 211281 调兵山市 + 211282 开原市 + 211300 朝阳市 + 211301 市辖区 + 211302 双塔区 + 211303 龙城区 + 211321 朝阳县 + 211322 建平县 + 211324 喀喇沁左翼蒙古族自治县 + 211381 北票市 + 211382 凌源市 + 211400 葫芦岛市 + 211401 市辖区 + 211402 连山区 + 211403 龙港区 + 211404 南票区 + 211421 绥中县 + 211422 建昌县 + 211481 兴城市 + 220000 吉林省 + 220100 长春市 + 220101 市辖区 + 220102 南关区 + 220103 宽城区 + 220104 朝阳区 + 220105 二道区 + 220106 绿园区 + 220112 双阳区 + 220122 农安县 + 220181 九台市 + 220182 榆树市 + 220183 德惠市 + 220200 吉林市 + 220201 市辖区 + 220202 昌邑区 + 220203 龙潭区 + 220204 船营区 + 220211 丰满区 + 220221 永吉县 + 220281 蛟河市 + 220282 桦甸市 + 220283 舒兰市 + 220284 磐石市 + 220300 四平市 + 220301 市辖区 + 220302 铁西区 + 220303 铁东区 + 220322 梨树县 + 220323 伊通满族自治县 + 220381 公主岭市 + 220382 双辽市 + 220400 辽源市 + 220401 市辖区 + 220402 龙山区 + 220403 西安区 + 220421 东丰县 + 220422 东辽县 + 220500 通化市 + 220501 市辖区 + 220502 东昌区 + 220503 二道江区 + 220521 通化县 + 220523 辉南县 + 220524 柳河县 + 220581 梅河口市 + 220582 集安市 + 220600 白山市 + 220601 市辖区 + 220602 八道江区 + 220621 抚松县 + 220622 靖宇县 + 220623 长白朝鲜族自治县 + 220625 江源县 + 220681 临江市 + 220700 松原市 + 220701 市辖区 + 220702 宁江区 + 220721 前郭尔罗斯蒙古族自治县 + 220722 长岭县 + 220723 乾安县 + 220724 扶余县 + 220800 白城市 + 220801 市辖区 + 220802 洮北区 + 220821 镇赉县 + 220822 通榆县 + 220881 洮南市 + 220882 大安市 + 222400 延边朝鲜族自治州 + 222401 延吉市 + 222402 图们市 + 222403 敦化市 + 222404 珲春市 + 222405 龙井市 + 222406 和龙市 + 222424 汪清县 + 222426 安图县 + 230000 黑龙江省 + 230100 哈尔滨市 + 230101 市辖区 + 230102 道里区 + 230103 南岗区 + 230104 道外区 + 230105 太平区 + 230106 香坊区 + 230107 动力区 + 230108 平房区 + 230121 呼兰县 + 230123 依兰县 + 230124 方正县 + 230125 宾县 + 230126 巴彦县 + 230127 木兰县 + 230128 通河县 + 230129 延寿县 + 230181 阿城市 + 230182 双城市 + 230183 尚志市 + 230184 五常市 + 230200 齐齐哈尔市 + 230201 市辖区 + 230202 龙沙区 + 230203 建华区 + 230204 铁锋区 + 230205 昂昂溪区 + 230206 富拉尔基区 + 230207 碾子山区 + 230208 梅里斯达斡尔族区 + 230221 龙江县 + 230223 依安县 + 230224 泰来县 + 230225 甘南县 + 230227 富裕县 + 230229 克山县 + 230230 克东县 + 230231 拜泉县 + 230281 讷河市 + 230300 鸡西市 + 230301 市辖区 + 230302 鸡冠区 + 230303 恒山区 + 230304 滴道区 + 230305 梨树区 + 230306 城子河区 + 230307 麻山区 + 230321 鸡东县 + 230381 虎林市 + 230382 密山市 + 230400 鹤岗市 + 230401 市辖区 + 230402 向阳区 + 230403 工农区 + 230404 南山区 + 230405 兴安区 + 230406 东山区 + 230407 兴山区 + 230421 萝北县 + 230422 绥滨县 + 230500 双鸭山市 + 230501 市辖区 + 230502 尖山区 + 230503 岭东区 + 230505 四方台区 + 230506 宝山区 + 230521 集贤县 + 230522 友谊县 + 230523 宝清县 + 230524 饶河县 + 230600 大庆市 + 230601 市辖区 + 230602 萨尔图区 + 230603 龙凤区 + 230604 让胡路区 + 230605 红岗区 + 230606 大同区 + 230621 肇州县 + 230622 肇源县 + 230623 林甸县 + 230624 杜尔伯特蒙古族自治县 + 230700 伊春市 + 230701 市辖区 + 230702 伊春区 + 230703 南岔区 + 230704 友好区 + 230705 西林区 + 230706 翠峦区 + 230707 新青区 + 230708 美溪区 + 230709 金山屯区 + 230710 五营区 + 230711 乌马河区 + 230712 汤旺河区 + 230713 带岭区 + 230714 乌伊岭区 + 230715 红星区 + 230716 上甘岭区 + 230722 嘉荫县 + 230781 铁力市 + 230800 佳木斯市 + 230801 市辖区 + 230802 永红区 + 230803 向阳区 + 230804 前进区 + 230805 东风区 + 230811 郊区 + 230822 桦南县 + 230826 桦川县 + 230828 汤原县 + 230833 抚远县 + 230881 同江市 + 230882 富锦市 + 230900 七台河市 + 230901 市辖区 + 230902 新兴区 + 230903 桃山区 + 230904 茄子河区 + 230921 勃利县 + 231000 牡丹江市 + 231001 市辖区 + 231002 东安区 + 231003 阳明区 + 231004 爱民区 + 231005 西安区 + 231024 东宁县 + 231025 林口县 + 231081 绥芬河市 + 231083 海林市 + 231084 宁安市 + 231085 穆棱市 + 231100 黑河市 + 231101 市辖区 + 231102 爱辉区 + 231121 嫩江县 + 231123 逊克县 + 231124 孙吴县 + 231181 北安市 + 231182 五大连池市 + 231200 绥化市 + 231201 市辖区 + 231202 北林区 + 231221 望奎县 + 231222 兰西县 + 231223 青冈县 + 231224 庆安县 + 231225 明水县 + 231226 绥棱县 + 231281 安达市 + 231282 肇东市 + 231283 海伦市 + 232700 大兴安岭地区 + 232721 呼玛县 + 232722 塔河县 + 232723 漠河县 + 310000 上海市 + 310100 市辖区 + 310101 黄浦区 + 310103 卢湾区 + 310104 徐汇区 + 310105 长宁区 + 310106 静安区 + 310107 普陀区 + 310108 闸北区 + 310109 虹口区 + 310110 杨浦区 + 310112 闵行区 + 310113 宝山区 + 310114 嘉定区 + 310115 浦东新区 + 310116 金山区 + 310117 松江区 + 310118 青浦区 + 310119 南汇区 + 310120 奉贤区 + 310200 县 + 310230 崇明县 + 320000 江苏省 + 320100 南京市 + 320101 市辖区 + 320102 玄武区 + 320103 白下区 + 320104 秦淮区 + 320105 建邺区 + 320106 鼓楼区 + 320107 下关区 + 320111 浦口区 + 320113 栖霞区 + 320114 雨花台区 + 320115 江宁区 + 320116 六合区 + 320124 溧水县 + 320125 高淳县 + 320200 无锡市 + 320201 市辖区 + 320202 崇安区 + 320203 南长区 + 320204 北塘区 + 320205 锡山区 + 320206 惠山区 + 320211 滨湖区 + 320281 江阴市 + 320282 宜兴市 + 320300 徐州市 + 320301 市辖区 + 320302 鼓楼区 + 320303 云龙区 + 320304 九里区 + 320305 贾汪区 + 320311 泉山区 + 320321 丰县 + 320322 沛县 + 320323 铜山县 + 320324 睢宁县 + 320381 新沂市 + 320382 邳州市 + 320400 常州市 + 320401 市辖区 + 320402 天宁区 + 320404 钟楼区 + 320405 戚墅堰区 + 320411 新北区 + 320412 武进区 + 320481 溧阳市 + 320482 金坛市 + 320500 苏州市 + 320501 市辖区 + 320502 沧浪区 + 320503 平江区 + 320504 金阊区 + 320505 虎丘区 + 320506 吴中区 + 320507 相城区 + 320581 常熟市 + 320582 张家港市 + 320583 昆山市 + 320584 吴江市 + 320585 太仓市 + 320600 南通市 + 320601 市辖区 + 320602 崇川区 + 320611 港闸区 + 320621 海安县 + 320623 如东县 + 320681 启东市 + 320682 如皋市 + 320683 通州市 + 320684 海门市 + 320700 连云港市 + 320701 市辖区 + 320703 连云区 + 320705 新浦区 + 320706 海州区 + 320721 赣榆县 + 320722 东海县 + 320723 灌云县 + 320724 灌南县 + 320800 淮安市 + 320801 市辖区 + 320802 清河区 + 320803 楚州区 + 320804 淮阴区 + 320811 清浦区 + 320826 涟水县 + 320829 洪泽县 + 320830 盱眙县 + 320831 金湖县 + 320900 盐城市 + 320901 市辖区 + 320902 亭湖区 + 320903 盐都区 + 320921 响水县 + 320922 滨海县 + 320923 阜宁县 + 320924 射阳县 + 320925 建湖县 + 320981 东台市 + 320982 大丰市 + 321000 扬州市 + 321001 市辖区 + 321002 广陵区 + 321003 邗江区 + 321011 郊区 + 321023 宝应县 + 321081 仪征市 + 321084 高邮市 + 321088 江都市 + 321100 镇江市 + 321101 市辖区 + 321102 京口区 + 321111 润州区 + 321112 丹徒区 + 321181 丹阳市 + 321182 扬中市 + 321183 句容市 + 321200 泰州市 + 321201 市辖区 + 321202 海陵区 + 321203 高港区 + 321281 兴化市 + 321282 靖江市 + 321283 泰兴市 + 321284 姜堰市 + 321300 宿迁市 + 321301 市辖区 + 321302 宿城区 + 321321 宿豫县 + 321322 沭阳县 + 321323 泗阳县 + 321324 泗洪县 + 330000 浙江省 + 330100 杭州市 + 330101 市辖区 + 330102 上城区 + 330103 下城区 + 330104 江干区 + 330105 拱墅区 + 330106 西湖区 + 330108 滨江区 + 330109 萧山区 + 330110 余杭区 + 330122 桐庐县 + 330127 淳安县 + 330182 建德市 + 330183 富阳市 + 330185 临安市 + 330200 宁波市 + 330201 市辖区 + 330203 海曙区 + 330204 江东区 + 330205 江北区 + 330206 北仑区 + 330211 镇海区 + 330212 鄞州区 + 330225 象山县 + 330226 宁海县 + 330281 余姚市 + 330282 慈溪市 + 330283 奉化市 + 330300 温州市 + 330301 市辖区 + 330302 鹿城区 + 330303 龙湾区 + 330304 瓯海区 + 330322 洞头县 + 330324 永嘉县 + 330326 平阳县 + 330327 苍南县 + 330328 文成县 + 330329 泰顺县 + 330381 瑞安市 + 330382 乐清市 + 330400 嘉兴市 + 330401 市辖区 + 330402 秀城区 + 330411 秀洲区 + 330421 嘉善县 + 330424 海盐县 + 330481 海宁市 + 330482 平湖市 + 330483 桐乡市 + 330500 湖州市 + 330501 市辖区 + 330502 吴兴区 + 330503 南浔区 + 330521 德清县 + 330522 长兴县 + 330523 安吉县 + 330600 绍兴市 + 330601 市辖区 + 330602 越城区 + 330621 绍兴县 + 330624 新昌县 + 330681 诸暨市 + 330682 上虞市 + 330683 嵊州市 + 330700 金华市 + 330701 市辖区 + 330702 婺城区 + 330703 金东区 + 330723 武义县 + 330726 浦江县 + 330727 磐安县 + 330781 兰溪市 + 330782 义乌市 + 330783 东阳市 + 330784 永康市 + 330800 衢州市 + 330801 市辖区 + 330802 柯城区 + 330803 衢江区 + 330822 常山县 + 330824 开化县 + 330825 龙游县 + 330881 江山市 + 330900 舟山市 + 330901 市辖区 + 330902 定海区 + 330903 普陀区 + 330921 岱山县 + 330922 嵊泗县 + 331000 台州市 + 331001 市辖区 + 331002 椒江区 + 331003 黄岩区 + 331004 路桥区 + 331021 玉环县 + 331022 三门县 + 331023 天台县 + 331024 仙居县 + 331081 温岭市 + 331082 临海市 + 331100 丽水市 + 331101 市辖区 + 331102 莲都区 + 331121 青田县 + 331122 缙云县 + 331123 遂昌县 + 331124 松阳县 + 331125 云和县 + 331126 庆元县 + 331127 景宁畲族自治县 + 331181 龙泉市 + 340000 安徽省 + 340100 合肥市 + 340101 市辖区 + 340102 瑶海区 + 340103 庐阳区 + 340104 蜀山区 + 340111 包河区 + 340121 长丰县 + 340122 肥东县 + 340123 肥西县 + 340200 芜湖市 + 340201 市辖区 + 340202 镜湖区 + 340203 马塘区 + 340204 新芜区 + 340207 鸠江区 + 340221 芜湖县 + 340222 繁昌县 + 340223 南陵县 + 340300 蚌埠市 + 340301 市辖区 + 340302 东市区 + 340303 中市区 + 340304 西市区 + 340311 郊区 + 340321 怀远县 + 340322 五河县 + 340323 固镇县 + 340400 淮南市 + 340401 市辖区 + 340402 大通区 + 340403 田家庵区 + 340404 谢家集区 + 340405 八公山区 + 340406 潘集区 + 340421 凤台县 + 340500 马鞍山市 + 340501 市辖区 + 340502 金家庄区 + 340503 花山区 + 340504 雨山区 + 340521 当涂县 + 340600 淮北市 + 340601 市辖区 + 340602 杜集区 + 340603 相山区 + 340604 烈山区 + 340621 濉溪县 + 340700 铜陵市 + 340701 市辖区 + 340702 铜官山区 + 340703 狮子山区 + 340711 郊区 + 340721 铜陵县 + 340800 安庆市 + 340801 市辖区 + 340802 迎江区 + 340803 大观区 + 340811 郊区 + 340822 怀宁县 + 340823 枞阳县 + 340824 潜山县 + 340825 太湖县 + 340826 宿松县 + 340827 望江县 + 340828 岳西县 + 340881 桐城市 + 341000 黄山市 + 341001 市辖区 + 341002 屯溪区 + 341003 黄山区 + 341004 徽州区 + 341021 歙县 + 341022 休宁县 + 341023 黟县 + 341024 祁门县 + 341100 滁州市 + 341101 市辖区 + 341102 琅琊区 + 341103 南谯区 + 341122 来安县 + 341124 全椒县 + 341125 定远县 + 341126 凤阳县 + 341181 天长市 + 341182 明光市 + 341200 阜阳市 + 341201 市辖区 + 341202 颍州区 + 341203 颍东区 + 341204 颍泉区 + 341221 临泉县 + 341222 太和县 + 341225 阜南县 + 341226 颍上县 + 341282 界首市 + 341300 宿州市 + 341301 市辖区 + 341302 墉桥区 + 341321 砀山县 + 341322 萧县 + 341323 灵璧县 + 341324 泗县 + 341400 巢湖市 + 341401 市辖区 + 341402 居巢区 + 341421 庐江县 + 341422 无为县 + 341423 含山县 + 341424 和县 + 341500 六安市 + 341501 市辖区 + 341502 金安区 + 341503 裕安区 + 341521 寿县 + 341522 霍邱县 + 341523 舒城县 + 341524 金寨县 + 341525 霍山县 + 341600 亳州市 + 341601 市辖区 + 341602 谯城区 + 341621 涡阳县 + 341622 蒙城县 + 341623 利辛县 + 341700 池州市 + 341701 市辖区 + 341702 贵池区 + 341721 东至县 + 341722 石台县 + 341723 青阳县 + 341800 宣城市 + 341801 市辖区 + 341802 宣州区 + 341821 郎溪县 + 341822 广德县 + 341823 泾县 + 341824 绩溪县 + 341825 旌德县 + 341881 宁国市 + 350000 福建省 + 350100 福州市 + 350101 市辖区 + 350102 鼓楼区 + 350103 台江区 + 350104 仓山区 + 350105 马尾区 + 350111 晋安区 + 350121 闽侯县 + 350122 连江县 + 350123 罗源县 + 350124 闽清县 + 350125 永泰县 + 350128 平潭县 + 350181 福清市 + 350182 长乐市 + 350200 厦门市 + 350201 市辖区 + 350203 思明区 + 350205 海沧区 + 350206 湖里区 + 350211 集美区 + 350212 同安区 + 350213 翔安区 + 350300 莆田市 + 350301 市辖区 + 350302 城厢区 + 350303 涵江区 + 350304 荔城区 + 350305 秀屿区 + 350322 仙游县 + 350400 三明市 + 350401 市辖区 + 350402 梅列区 + 350403 三元区 + 350421 明溪县 + 350423 清流县 + 350424 宁化县 + 350425 大田县 + 350426 尤溪县 + 350427 沙县 + 350428 将乐县 + 350429 泰宁县 + 350430 建宁县 + 350481 永安市 + 350500 泉州市 + 350501 市辖区 + 350502 鲤城区 + 350503 丰泽区 + 350504 洛江区 + 350505 泉港区 + 350521 惠安县 + 350524 安溪县 + 350525 永春县 + 350526 德化县 + 350527 金门县 + 350581 石狮市 + 350582 晋江市 + 350583 南安市 + 350600 漳州市 + 350601 市辖区 + 350602 芗城区 + 350603 龙文区 + 350622 云霄县 + 350623 漳浦县 + 350624 诏安县 + 350625 长泰县 + 350626 东山县 + 350627 南靖县 + 350628 平和县 + 350629 华安县 + 350681 龙海市 + 350700 南平市 + 350701 市辖区 + 350702 延平区 + 350721 顺昌县 + 350722 浦城县 + 350723 光泽县 + 350724 松溪县 + 350725 政和县 + 350781 邵武市 + 350782 武夷山市 + 350783 建瓯市 + 350784 建阳市 + 350800 龙岩市 + 350801 市辖区 + 350802 新罗区 + 350821 长汀县 + 350822 永定县 + 350823 上杭县 + 350824 武平县 + 350825 连城县 + 350881 漳平市 + 350900 宁德市 + 350901 市辖区 + 350902 蕉城区 + 350921 霞浦县 + 350922 古田县 + 350923 屏南县 + 350924 寿宁县 + 350925 周宁县 + 350926 柘荣县 + 350981 福安市 + 350982 福鼎市 + 360000 江西省 + 360100 南昌市 + 360101 市辖区 + 360102 东湖区 + 360103 西湖区 + 360104 青云谱区 + 360105 湾里区 + 360111 青山湖区 + 360121 南昌县 + 360122 新建县 + 360123 安义县 + 360124 进贤县 + 360200 景德镇市 + 360201 市辖区 + 360202 昌江区 + 360203 珠山区 + 360222 浮梁县 + 360281 乐平市 + 360300 萍乡市 + 360301 市辖区 + 360302 安源区 + 360313 湘东区 + 360321 莲花县 + 360322 上栗县 + 360323 芦溪县 + 360400 九江市 + 360401 市辖区 + 360402 庐山区 + 360403 浔阳区 + 360421 九江县 + 360423 武宁县 + 360424 修水县 + 360425 永修县 + 360426 德安县 + 360427 星子县 + 360428 都昌县 + 360429 湖口县 + 360430 彭泽县 + 360481 瑞昌市 + 360500 新余市 + 360501 市辖区 + 360502 渝水区 + 360521 分宜县 + 360600 鹰潭市 + 360601 市辖区 + 360602 月湖区 + 360622 余江县 + 360681 贵溪市 + 360700 赣州市 + 360701 市辖区 + 360702 章贡区 + 360721 赣县 + 360722 信丰县 + 360723 大余县 + 360724 上犹县 + 360725 崇义县 + 360726 安远县 + 360727 龙南县 + 360728 定南县 + 360729 全南县 + 360730 宁都县 + 360731 于都县 + 360732 兴国县 + 360733 会昌县 + 360734 寻乌县 + 360735 石城县 + 360781 瑞金市 + 360782 南康市 + 360800 吉安市 + 360801 市辖区 + 360802 吉州区 + 360803 青原区 + 360821 吉安县 + 360822 吉水县 + 360823 峡江县 + 360824 新干县 + 360825 永丰县 + 360826 泰和县 + 360827 遂川县 + 360828 万安县 + 360829 安福县 + 360830 永新县 + 360881 井冈山市 + 360900 宜春市 + 360901 市辖区 + 360902 袁州区 + 360921 奉新县 + 360922 万载县 + 360923 上高县 + 360924 宜丰县 + 360925 靖安县 + 360926 铜鼓县 + 360981 丰城市 + 360982 樟树市 + 360983 高安市 + 361000 抚州市 + 361001 市辖区 + 361002 临川区 + 361021 南城县 + 361022 黎川县 + 361023 南丰县 + 361024 崇仁县 + 361025 乐安县 + 361026 宜黄县 + 361027 金溪县 + 361028 资溪县 + 361029 东乡县 + 361030 广昌县 + 361100 上饶市 + 361101 市辖区 + 361102 信州区 + 361121 上饶县 + 361122 广丰县 + 361123 玉山县 + 361124 铅山县 + 361125 横峰县 + 361126 弋阳县 + 361127 余干县 + 361128 鄱阳县 + 361129 万年县 + 361130 婺源县 + 361181 德兴市 + 370000 山东省 + 370100 济南市 + 370101 市辖区 + 370102 历下区 + 370103 市中区 + 370104 槐荫区 + 370105 天桥区 + 370112 历城区 + 370113 长清区 + 370124 平阴县 + 370125 济阳县 + 370126 商河县 + 370181 章丘市 + 370200 青岛市 + 370201 市辖区 + 370202 市南区 + 370203 市北区 + 370205 四方区 + 370211 黄岛区 + 370212 崂山区 + 370213 李沧区 + 370214 城阳区 + 370281 胶州市 + 370282 即墨市 + 370283 平度市 + 370284 胶南市 + 370285 莱西市 + 370300 淄博市 + 370301 市辖区 + 370302 淄川区 + 370303 张店区 + 370304 博山区 + 370305 临淄区 + 370306 周村区 + 370321 桓台县 + 370322 高青县 + 370323 沂源县 + 370400 枣庄市 + 370401 市辖区 + 370402 市中区 + 370403 薛城区 + 370404 峄城区 + 370405 台儿庄区 + 370406 山亭区 + 370481 滕州市 + 370500 东营市 + 370501 市辖区 + 370502 东营区 + 370503 河口区 + 370521 垦利县 + 370522 利津县 + 370523 广饶县 + 370600 烟台市 + 370601 市辖区 + 370602 芝罘区 + 370611 福山区 + 370612 牟平区 + 370613 莱山区 + 370634 长岛县 + 370681 龙口市 + 370682 莱阳市 + 370683 莱州市 + 370684 蓬莱市 + 370685 招远市 + 370686 栖霞市 + 370687 海阳市 + 370700 潍坊市 + 370701 市辖区 + 370702 潍城区 + 370703 寒亭区 + 370704 坊子区 + 370705 奎文区 + 370724 临朐县 + 370725 昌乐县 + 370781 青州市 + 370782 诸城市 + 370783 寿光市 + 370784 安丘市 + 370785 高密市 + 370786 昌邑市 + 370800 济宁市 + 370801 市辖区 + 370802 市中区 + 370811 任城区 + 370826 微山县 + 370827 鱼台县 + 370828 金乡县 + 370829 嘉祥县 + 370830 汶上县 + 370831 泗水县 + 370832 梁山县 + 370881 曲阜市 + 370882 兖州市 + 370883 邹城市 + 370900 泰安市 + 370901 市辖区 + 370902 泰山区 + 370903 岱岳区 + 370921 宁阳县 + 370923 东平县 + 370982 新泰市 + 370983 肥城市 + 371000 威海市 + 371001 市辖区 + 371002 环翠区 + 371081 文登市 + 371082 荣成市 + 371083 乳山市 + 371100 日照市 + 371101 市辖区 + 371102 东港区 + 371121 五莲县 + 371122 莒县 + 371200 莱芜市 + 371201 市辖区 + 371202 莱城区 + 371203 钢城区 + 371300 临沂市 + 371301 市辖区 + 371302 兰山区 + 371311 罗庄区 + 371312 河东区 + 371321 沂南县 + 371322 郯城县 + 371323 沂水县 + 371324 苍山县 + 371325 费县 + 371326 平邑县 + 371327 莒南县 + 371328 蒙阴县 + 371329 临沭县 + 371400 德州市 + 371401 市辖区 + 371402 德城区 + 371421 陵县 + 371422 宁津县 + 371423 庆云县 + 371424 临邑县 + 371425 齐河县 + 371426 平原县 + 371427 夏津县 + 371428 武城县 + 371481 乐陵市 + 371482 禹城市 + 371500 聊城市 + 371501 市辖区 + 371502 东昌府区 + 371521 阳谷县 + 371522 莘县 + 371523 茌平县 + 371524 东阿县 + 371525 冠县 + 371526 高唐县 + 371581 临清市 + 371600 滨州市 + 371601 市辖区 + 371602 滨城区 + 371621 惠民县 + 371622 阳信县 + 371623 无棣县 + 371624 沾化县 + 371625 博兴县 + 371626 邹平县 + 371700 荷泽市 + 371701 市辖区 + 371702 牡丹区 + 371721 曹县 + 371722 单县 + 371723 成武县 + 371724 巨野县 + 371725 郓城县 + 371726 鄄城县 + 371727 定陶县 + 371728 东明县 + 410000 河南省 + 410100 郑州市 + 410101 市辖区 + 410102 中原区 + 410103 二七区 + 410104 管城回族区 + 410105 金水区 + 410106 上街区 + 410108 邙山区 + 410122 中牟县 + 410181 巩义市 + 410182 荥阳市 + 410183 新密市 + 410184 新郑市 + 410185 登封市 + 410200 开封市 + 410201 市辖区 + 410202 龙亭区 + 410203 顺河回族区 + 410204 鼓楼区 + 410205 南关区 + 410211 郊区 + 410221 杞县 + 410222 通许县 + 410223 尉氏县 + 410224 开封县 + 410225 兰考县 + 410300 洛阳市 + 410301 市辖区 + 410302 老城区 + 410303 西工区 + 410304 廛河回族区 + 410305 涧西区 + 410306 吉利区 + 410307 洛龙区 + 410322 孟津县 + 410323 新安县 + 410324 栾川县 + 410325 嵩县 + 410326 汝阳县 + 410327 宜阳县 + 410328 洛宁县 + 410329 伊川县 + 410381 偃师市 + 410400 平顶山市 + 410401 市辖区 + 410402 新华区 + 410403 卫东区 + 410404 石龙区 + 410411 湛河区 + 410421 宝丰县 + 410422 叶县 + 410423 鲁山县 + 410425 郏县 + 410481 舞钢市 + 410482 汝州市 + 410500 安阳市 + 410501 市辖区 + 410502 文峰区 + 410503 北关区 + 410505 殷都区 + 410506 龙安区 + 410522 安阳县 + 410523 汤阴县 + 410526 滑县 + 410527 内黄县 + 410581 林州市 + 410600 鹤壁市 + 410601 市辖区 + 410602 鹤山区 + 410603 山城区 + 410611 淇滨区 + 410621 浚县 + 410622 淇县 + 410700 新乡市 + 410701 市辖区 + 410702 红旗区 + 410703 卫滨区 + 410704 凤泉区 + 410711 牧野区 + 410721 新乡县 + 410724 获嘉县 + 410725 原阳县 + 410726 延津县 + 410727 封丘县 + 410728 长垣县 + 410781 卫辉市 + 410782 辉县市 + 410800 焦作市 + 410801 市辖区 + 410802 解放区 + 410803 中站区 + 410804 马村区 + 410811 山阳区 + 410821 修武县 + 410822 博爱县 + 410823 武陟县 + 410825 温县 + 410881 济源市 + 410882 沁阳市 + 410883 孟州市 + 410900 濮阳市 + 410901 市辖区 + 410902 华龙区 + 410922 清丰县 + 410923 南乐县 + 410926 范县 + 410927 台前县 + 410928 濮阳县 + 411000 许昌市 + 411001 市辖区 + 411002 魏都区 + 411023 许昌县 + 411024 鄢陵县 + 411025 襄城县 + 411081 禹州市 + 411082 长葛市 + 411100 漯河市 + 411101 市辖区 + 411102 源汇区 + 411121 舞阳县 + 411122 临颍县 + 411123 郾城县 + 411200 三门峡市 + 411201 市辖区 + 411202 湖滨区 + 411221 渑池县 + 411222 陕县 + 411224 卢氏县 + 411281 义马市 + 411282 灵宝市 + 411300 南阳市 + 411301 市辖区 + 411302 宛城区 + 411303 卧龙区 + 411321 南召县 + 411322 方城县 + 411323 西峡县 + 411324 镇平县 + 411325 内乡县 + 411326 淅川县 + 411327 社旗县 + 411328 唐河县 + 411329 新野县 + 411330 桐柏县 + 411381 邓州市 + 411400 商丘市 + 411401 市辖区 + 411402 梁园区 + 411403 睢阳区 + 411421 民权县 + 411422 睢县 + 411423 宁陵县 + 411424 柘城县 + 411425 虞城县 + 411426 夏邑县 + 411481 永城市 + 411500 信阳市 + 411501 市辖区 + 411502 师河区 + 411503 平桥区 + 411521 罗山县 + 411522 光山县 + 411523 新县 + 411524 商城县 + 411525 固始县 + 411526 潢川县 + 411527 淮滨县 + 411528 息县 + 411600 周口市 + 411601 市辖区 + 411602 川汇区 + 411621 扶沟县 + 411622 西华县 + 411623 商水县 + 411624 沈丘县 + 411625 郸城县 + 411626 淮阳县 + 411627 太康县 + 411628 鹿邑县 + 411681 项城市 + 411700 驻马店市 + 411701 市辖区 + 411702 驿城区 + 411721 西平县 + 411722 上蔡县 + 411723 平舆县 + 411724 正阳县 + 411725 确山县 + 411726 泌阳县 + 411727 汝南县 + 411728 遂平县 + 411729 新蔡县 + 420000 湖北省 + 420100 武汉市 + 420101 市辖区 + 420102 江岸区 + 420103 江汉区 + 420104 乔口区 + 420105 汉阳区 + 420106 武昌区 + 420107 青山区 + 420111 洪山区 + 420112 东西湖区 + 420113 汉南区 + 420114 蔡甸区 + 420115 江夏区 + 420116 黄陂区 + 420117 新洲区 + 420200 黄石市 + 420201 市辖区 + 420202 黄石港区 + 420203 西塞山区 + 420204 下陆区 + 420205 铁山区 + 420222 阳新县 + 420281 大冶市 + 420300 十堰市 + 420301 市辖区 + 420302 茅箭区 + 420303 张湾区 + 420321 郧县 + 420322 郧西县 + 420323 竹山县 + 420324 竹溪县 + 420325 房县 + 420381 丹江口市 + 420500 宜昌市 + 420501 市辖区 + 420502 西陵区 + 420503 伍家岗区 + 420504 点军区 + 420505 虎亭区 + 420506 夷陵区 + 420525 远安县 + 420526 兴山县 + 420527 秭归县 + 420528 长阳土家族自治县 + 420529 五峰土家族自治县 + 420581 宜都市 + 420582 当阳市 + 420583 枝江市 + 420600 襄樊市 + 420601 市辖区 + 420602 襄城区 + 420606 樊城区 + 420607 襄阳区 + 420624 南漳县 + 420625 谷城县 + 420626 保康县 + 420682 老河口市 + 420683 枣阳市 + 420684 宜城市 + 420700 鄂州市 + 420701 市辖区 + 420702 梁子湖区 + 420703 华容区 + 420704 鄂城区 + 420800 荆门市 + 420801 市辖区 + 420802 东宝区 + 420804 掇刀区 + 420821 京山县 + 420822 沙洋县 + 420881 钟祥市 + 420900 孝感市 + 420901 市辖区 + 420902 孝南区 + 420921 孝昌县 + 420922 大悟县 + 420923 云梦县 + 420981 应城市 + 420982 安陆市 + 420984 汉川市 + 421000 荆州市 + 421001 市辖区 + 421002 沙市区 + 421003 荆州区 + 421022 公安县 + 421023 监利县 + 421024 江陵县 + 421081 石首市 + 421083 洪湖市 + 421087 松滋市 + 421100 黄冈市 + 421101 市辖区 + 421102 黄州区 + 421121 团风县 + 421122 红安县 + 421123 罗田县 + 421124 英山县 + 421125 浠水县 + 421126 蕲春县 + 421127 黄梅县 + 421181 麻城市 + 421182 武穴市 + 421200 咸宁市 + 421201 市辖区 + 421202 咸安区 + 421221 嘉鱼县 + 421222 通城县 + 421223 崇阳县 + 421224 通山县 + 421281 赤壁市 + 421300 随州市 + 421301 市辖区 + 421302 曾都区 + 421381 广水市 + 422800 恩施土家族苗族自治州 + 422801 恩施市 + 422802 利川市 + 422822 建始县 + 422823 巴东县 + 422825 宣恩县 + 422826 咸丰县 + 422827 来凤县 + 422828 鹤峰县 + 429000 省直辖行政单位 + 429004 仙桃市 + 429005 潜江市 + 429006 天门市 + 429021 神农架林区 + 430000 湖南省 + 430100 长沙市 + 430101 市辖区 + 430102 芙蓉区 + 430103 天心区 + 430104 岳麓区 + 430105 开福区 + 430111 雨花区 + 430121 长沙县 + 430122 望城县 + 430124 宁乡县 + 430181 浏阳市 + 430200 株洲市 + 430201 市辖区 + 430202 荷塘区 + 430203 芦淞区 + 430204 石峰区 + 430211 天元区 + 430221 株洲县 + 430223 攸县 + 430224 茶陵县 + 430225 炎陵县 + 430281 醴陵市 + 430300 湘潭市 + 430301 市辖区 + 430302 雨湖区 + 430304 岳塘区 + 430321 湘潭县 + 430381 湘乡市 + 430382 韶山市 + 430400 衡阳市 + 430401 市辖区 + 430405 珠晖区 + 430406 雁峰区 + 430407 石鼓区 + 430408 蒸湘区 + 430412 南岳区 + 430421 衡阳县 + 430422 衡南县 + 430423 衡山县 + 430424 衡东县 + 430426 祁东县 + 430481 耒阳市 + 430482 常宁市 + 430500 邵阳市 + 430501 市辖区 + 430502 双清区 + 430503 大祥区 + 430511 北塔区 + 430521 邵东县 + 430522 新邵县 + 430523 邵阳县 + 430524 隆回县 + 430525 洞口县 + 430527 绥宁县 + 430528 新宁县 + 430529 城步苗族自治县 + 430581 武冈市 + 430600 岳阳市 + 430601 市辖区 + 430602 岳阳楼区 + 430603 云溪区 + 430611 君山区 + 430621 岳阳县 + 430623 华容县 + 430624 湘阴县 + 430626 平江县 + 430681 汨罗市 + 430682 临湘市 + 430700 常德市 + 430701 市辖区 + 430702 武陵区 + 430703 鼎城区 + 430721 安乡县 + 430722 汉寿县 + 430723 澧县 + 430724 临澧县 + 430725 桃源县 + 430726 石门县 + 430781 津市市 + 430800 张家界市 + 430801 市辖区 + 430802 永定区 + 430811 武陵源区 + 430821 慈利县 + 430822 桑植县 + 430900 益阳市 + 430901 市辖区 + 430902 资阳区 + 430903 赫山区 + 430921 南县 + 430922 桃江县 + 430923 安化县 + 430981 沅江市 + 431000 郴州市 + 431001 市辖区 + 431002 北湖区 + 431003 苏仙区 + 431021 桂阳县 + 431022 宜章县 + 431023 永兴县 + 431024 嘉禾县 + 431025 临武县 + 431026 汝城县 + 431027 桂东县 + 431028 安仁县 + 431081 资兴市 + 431100 永州市 + 431101 市辖区 + 431102 芝山区 + 431103 冷水滩区 + 431121 祁阳县 + 431122 东安县 + 431123 双牌县 + 431124 道县 + 431125 江永县 + 431126 宁远县 + 431127 蓝山县 + 431128 新田县 + 431129 江华瑶族自治县 + 431200 怀化市 + 431201 市辖区 + 431202 鹤城区 + 431221 中方县 + 431222 沅陵县 + 431223 辰溪县 + 431224 溆浦县 + 431225 会同县 + 431226 麻阳苗族自治县 + 431227 新晃侗族自治县 + 431228 芷江侗族自治县 + 431229 靖州苗族侗族自治县 + 431230 通道侗族自治县 + 431281 洪江市 + 431300 娄底市 + 431301 市辖区 + 431302 娄星区 + 431321 双峰县 + 431322 新化县 + 431381 冷水江市 + 431382 涟源市 + 433100 湘西土家族苗族自治州 + 433101 吉首市 + 433122 泸溪县 + 433123 凤凰县 + 433124 花垣县 + 433125 保靖县 + 433126 古丈县 + 433127 永顺县 + 433130 龙山县 + 440000 广东省 + 440100 广州市 + 440101 市辖区 + 440102 东山区 + 440103 荔湾区 + 440104 越秀区 + 440105 海珠区 + 440106 天河区 + 440107 芳村区 + 440111 白云区 + 440112 黄埔区 + 440113 番禺区 + 440114 花都区 + 440183 增城市 + 440184 从化市 + 440200 韶关市 + 440201 市辖区 + 440202 北江区 + 440203 武江区 + 440204 浈江区 + 440221 曲江县 + 440222 始兴县 + 440224 仁化县 + 440229 翁源县 + 440232 乳源瑶族自治县 + 440233 新丰县 + 440281 乐昌市 + 440282 南雄市 + 440300 深圳市 + 440301 市辖区 + 440303 罗湖区 + 440304 福田区 + 440305 南山区 + 440306 宝安区 + 440307 龙岗区 + 440308 盐田区 + 440400 珠海市 + 440401 市辖区 + 440402 香洲区 + 440403 斗门区 + 440404 金湾区 + 440500 汕头市 + 440501 市辖区 + 440507 龙湖区 + 440511 金平区 + 440512 濠江区 + 440513 潮阳区 + 440514 潮南区 + 440515 澄海区 + 440523 南澳县 + 440600 佛山市 + 440601 市辖区 + 440604 禅城区 + 440605 南海区 + 440606 顺德区 + 440607 三水区 + 440608 高明区 + 440700 江门市 + 440701 市辖区 + 440703 蓬江区 + 440704 江海区 + 440705 新会区 + 440781 台山市 + 440783 开平市 + 440784 鹤山市 + 440785 恩平市 + 440800 湛江市 + 440801 市辖区 + 440802 赤坎区 + 440803 霞山区 + 440804 坡头区 + 440811 麻章区 + 440823 遂溪县 + 440825 徐闻县 + 440881 廉江市 + 440882 雷州市 + 440883 吴川市 + 440900 茂名市 + 440901 市辖区 + 440902 茂南区 + 440903 茂港区 + 440923 电白县 + 440981 高州市 + 440982 化州市 + 440983 信宜市 + 441200 肇庆市 + 441201 市辖区 + 441202 端州区 + 441203 鼎湖区 + 441223 广宁县 + 441224 怀集县 + 441225 封开县 + 441226 德庆县 + 441283 高要市 + 441284 四会市 + 441300 惠州市 + 441301 市辖区 + 441302 惠城区 + 441303 惠阳区 + 441322 博罗县 + 441323 惠东县 + 441324 龙门县 + 441400 梅州市 + 441401 市辖区 + 441402 梅江区 + 441421 梅县 + 441422 大埔县 + 441423 丰顺县 + 441424 五华县 + 441426 平远县 + 441427 蕉岭县 + 441481 兴宁市 + 441500 汕尾市 + 441501 市辖区 + 441502 城区 + 441521 海丰县 + 441523 陆河县 + 441581 陆丰市 + 441600 河源市 + 441601 市辖区 + 441602 源城区 + 441621 紫金县 + 441622 龙川县 + 441623 连平县 + 441624 和平县 + 441625 东源县 + 441700 阳江市 + 441701 市辖区 + 441702 江城区 + 441721 阳西县 + 441723 阳东县 + 441781 阳春市 + 441800 清远市 + 441801 市辖区 + 441802 清城区 + 441821 佛冈县 + 441823 阳山县 + 441825 连山壮族瑶族自治县 + 441826 连南瑶族自治县 + 441827 清新县 + 441881 英德市 + 441882 连州市 + 441900 东莞市 + 442000 中山市 + 445100 潮州市 + 445101 市辖区 + 445102 湘桥区 + 445121 潮安县 + 445122 饶平县 + 445200 揭阳市 + 445201 市辖区 + 445202 榕城区 + 445221 揭东县 + 445222 揭西县 + 445224 惠来县 + 445281 普宁市 + 445300 云浮市 + 445301 市辖区 + 445302 云城区 + 445321 新兴县 + 445322 郁南县 + 445323 云安县 + 445381 罗定市 + 450000 广西壮族自治区 + 450100 南宁市 + 450101 市辖区 + 450102 兴宁区 + 450103 新城区 + 450104 城北区 + 450105 江南区 + 450106 永新区 + 450121 邕宁县 + 450122 武鸣县 + 450123 隆安县 + 450124 马山县 + 450125 上林县 + 450126 宾阳县 + 450127 横县 + 450200 柳州市 + 450201 市辖区 + 450202 城中区 + 450203 鱼峰区 + 450204 柳南区 + 450205 柳北区 + 450221 柳江县 + 450222 柳城县 + 450223 鹿寨县 + 450224 融安县 + 450225 融水苗族自治县 + 450226 三江侗族自治县 + 450300 桂林市 + 450301 市辖区 + 450302 秀峰区 + 450303 叠彩区 + 450304 象山区 + 450305 七星区 + 450311 雁山区 + 450321 阳朔县 + 450322 临桂县 + 450323 灵川县 + 450324 全州县 + 450325 兴安县 + 450326 永福县 + 450327 灌阳县 + 450328 龙胜各族自治县 + 450329 资源县 + 450330 平乐县 + 450331 荔蒲县 + 450332 恭城瑶族自治县 + 450400 梧州市 + 450401 市辖区 + 450403 万秀区 + 450404 蝶山区 + 450405 长洲区 + 450421 苍梧县 + 450422 藤县 + 450423 蒙山县 + 450481 岑溪市 + 450500 北海市 + 450501 市辖区 + 450502 海城区 + 450503 银海区 + 450512 铁山港区 + 450521 合浦县 + 450600 防城港市 + 450601 市辖区 + 450602 港口区 + 450603 防城区 + 450621 上思县 + 450681 东兴市 + 450700 钦州市 + 450701 市辖区 + 450702 钦南区 + 450703 钦北区 + 450721 灵山县 + 450722 浦北县 + 450800 贵港市 + 450801 市辖区 + 450802 港北区 + 450803 港南区 + 450804 覃塘区 + 450821 平南县 + 450881 桂平市 + 450900 玉林市 + 450901 市辖区 + 450902 玉州区 + 450921 容县 + 450922 陆川县 + 450923 博白县 + 450924 兴业县 + 450981 北流市 + 451000 百色市 + 451001 市辖区 + 451002 右江区 + 451021 田阳县 + 451022 田东县 + 451023 平果县 + 451024 德保县 + 451025 靖西县 + 451026 那坡县 + 451027 凌云县 + 451028 乐业县 + 451029 田林县 + 451030 西林县 + 451031 隆林各族自治县 + 451100 贺州市 + 451101 市辖区 + 451102 八步区 + 451121 昭平县 + 451122 钟山县 + 451123 富川瑶族自治县 + 451200 河池市 + 451201 市辖区 + 451202 金城江区 + 451221 南丹县 + 451222 天峨县 + 451223 凤山县 + 451224 东兰县 + 451225 罗城仫佬族自治县 + 451226 环江毛南族自治县 + 451227 巴马瑶族自治县 + 451228 都安瑶族自治县 + 451229 大化瑶族自治县 + 451281 宜州市 + 451300 来宾市 + 451301 市辖区 + 451302 兴宾区 + 451321 忻城县 + 451322 象州县 + 451323 武宣县 + 451324 金秀瑶族自治县 + 451381 合山市 + 451400 崇左市 + 451401 市辖区 + 451402 江洲区 + 451421 扶绥县 + 451422 宁明县 + 451423 龙州县 + 451424 大新县 + 451425 天等县 + 451481 凭祥市 + 460000 海南省 + 460100 海口市 + 460101 市辖区 + 460105 秀英区 + 460106 龙华区 + 460107 琼山区 + 460108 美兰区 + 460200 三亚市 + 460201 市辖区 + 469000 省直辖县级行政单位 + 469001 五指山市 + 469002 琼海市 + 469003 儋州市 + 469005 文昌市 + 469006 万宁市 + 469007 东方市 + 469025 定安县 + 469026 屯昌县 + 469027 澄迈县 + 469028 临高县 + 469030 白沙黎族自治县 + 469031 昌江黎族自治县 + 469033 乐东黎族自治县 + 469034 陵水黎族自治县 + 469035 保亭黎族苗族自治县 + 469036 琼中黎族苗族自治县 + 469037 西沙群岛 + 469038 南沙群岛 + 469039 中沙群岛的岛礁及其海域 + 500000 重庆市 + 500100 市辖区 + 500101 万州区 + 500102 涪陵区 + 500103 渝中区 + 500104 大渡口区 + 500105 江北区 + 500106 沙坪坝区 + 500107 九龙坡区 + 500108 南岸区 + 500109 北碚区 + 500110 万盛区 + 500111 双桥区 + 500112 渝北区 + 500113 巴南区 + 500114 黔江区 + 500115 长寿区 + 500200 县 + 500222 綦江县 + 500223 潼南县 + 500224 铜梁县 + 500225 大足县 + 500226 荣昌县 + 500227 璧山县 + 500228 梁平县 + 500229 城口县 + 500230 丰都县 + 500231 垫江县 + 500232 武隆县 + 500233 忠县 + 500234 开县 + 500235 云阳县 + 500236 奉节县 + 500237 巫山县 + 500238 巫溪县 + 500240 石柱土家族自治县 + 500241 秀山土家族苗族自治县 + 500242 酉阳土家族苗族自治县 + 500243 彭水苗族土家族自治县 + 500300 市 + 500381 江津市 + 500382 合川市 + 500383 永川市 + 500384 南川市 + 510000 四川省 + 510100 成都市 + 510101 市辖区 + 510104 锦江区 + 510105 青羊区 + 510106 金牛区 + 510107 武侯区 + 510108 成华区 + 510112 龙泉驿区 + 510113 青白江区 + 510114 新都区 + 510115 温江区 + 510121 金堂县 + 510122 双流县 + 510124 郫县 + 510129 大邑县 + 510131 蒲江县 + 510132 新津县 + 510181 都江堰市 + 510182 彭州市 + 510183 邛崃市 + 510184 崇州市 + 510300 自贡市 + 510301 市辖区 + 510302 自流井区 + 510303 贡井区 + 510304 大安区 + 510311 沿滩区 + 510321 荣县 + 510322 富顺县 + 510400 攀枝花市 + 510401 市辖区 + 510402 东区 + 510403 西区 + 510411 仁和区 + 510421 米易县 + 510422 盐边县 + 510500 泸州市 + 510501 市辖区 + 510502 江阳区 + 510503 纳溪区 + 510504 龙马潭区 + 510521 泸县 + 510522 合江县 + 510524 叙永县 + 510525 古蔺县 + 510600 德阳市 + 510601 市辖区 + 510603 旌阳区 + 510623 中江县 + 510626 罗江县 + 510681 广汉市 + 510682 什邡市 + 510683 绵竹市 + 510700 绵阳市 + 510701 市辖区 + 510703 涪城区 + 510704 游仙区 + 510722 三台县 + 510723 盐亭县 + 510724 安县 + 510725 梓潼县 + 510726 北川羌族自治县 + 510727 平武县 + 510781 江油市 + 510800 广元市 + 510801 市辖区 + 510802 市中区 + 510811 元坝区 + 510812 朝天区 + 510821 旺苍县 + 510822 青川县 + 510823 剑阁县 + 510824 苍溪县 + 510900 遂宁市 + 510901 市辖区 + 510903 船山区 + 510904 安居区 + 510921 蓬溪县 + 510922 射洪县 + 510923 大英县 + 511000 内江市 + 511001 市辖区 + 511002 市中区 + 511011 东兴区 + 511024 威远县 + 511025 资中县 + 511028 隆昌县 + 511100 乐山市 + 511101 市辖区 + 511102 市中区 + 511111 沙湾区 + 511112 五通桥区 + 511113 金口河区 + 511123 犍为县 + 511124 井研县 + 511126 夹江县 + 511129 沐川县 + 511132 峨边彝族自治县 + 511133 马边彝族自治县 + 511181 峨眉山市 + 511300 南充市 + 511301 市辖区 + 511302 顺庆区 + 511303 高坪区 + 511304 嘉陵区 + 511321 南部县 + 511322 营山县 + 511323 蓬安县 + 511324 仪陇县 + 511325 西充县 + 511381 阆中市 + 511400 眉山市 + 511401 市辖区 + 511402 东坡区 + 511421 仁寿县 + 511422 彭山县 + 511423 洪雅县 + 511424 丹棱县 + 511425 青神县 + 511500 宜宾市 + 511501 市辖区 + 511502 翠屏区 + 511521 宜宾县 + 511522 南溪县 + 511523 江安县 + 511524 长宁县 + 511525 高县 + 511526 珙县 + 511527 筠连县 + 511528 兴文县 + 511529 屏山县 + 511600 广安市 + 511601 市辖区 + 511602 广安区 + 511621 岳池县 + 511622 武胜县 + 511623 邻水县 + 511681 华莹市 + 511700 达州市 + 511701 市辖区 + 511702 通川区 + 511721 达县 + 511722 宣汉县 + 511723 开江县 + 511724 大竹县 + 511725 渠县 + 511781 万源市 + 511800 雅安市 + 511801 市辖区 + 511802 雨城区 + 511821 名山县 + 511822 荥经县 + 511823 汉源县 + 511824 石棉县 + 511825 天全县 + 511826 芦山县 + 511827 宝兴县 + 511900 巴中市 + 511901 市辖区 + 511902 巴州区 + 511921 通江县 + 511922 南江县 + 511923 平昌县 + 512000 资阳市 + 512001 市辖区 + 512002 雁江区 + 512021 安岳县 + 512022 乐至县 + 512081 简阳市 + 513200 阿坝藏族羌族自治州 + 513221 汶川县 + 513222 理县 + 513223 茂县 + 513224 松潘县 + 513225 九寨沟县 + 513226 金川县 + 513227 小金县 + 513228 黑水县 + 513229 马尔康县 + 513230 壤塘县 + 513231 阿坝县 + 513232 若尔盖县 + 513233 红原县 + 513300 甘孜藏族自治州 + 513321 康定县 + 513322 泸定县 + 513323 丹巴县 + 513324 九龙县 + 513325 雅江县 + 513326 道孚县 + 513327 炉霍县 + 513328 甘孜县 + 513329 新龙县 + 513330 德格县 + 513331 白玉县 + 513332 石渠县 + 513333 色达县 + 513334 理塘县 + 513335 巴塘县 + 513336 乡城县 + 513337 稻城县 + 513338 得荣县 + 513400 凉山彝族自治州 + 513401 西昌市 + 513422 木里藏族自治县 + 513423 盐源县 + 513424 德昌县 + 513425 会理县 + 513426 会东县 + 513427 宁南县 + 513428 普格县 + 513429 布拖县 + 513430 金阳县 + 513431 昭觉县 + 513432 喜德县 + 513433 冕宁县 + 513434 越西县 + 513435 甘洛县 + 513436 美姑县 + 513437 雷波县 + 520000 贵州省 + 520100 贵阳市 + 520101 市辖区 + 520102 南明区 + 520103 云岩区 + 520111 花溪区 + 520112 乌当区 + 520113 白云区 + 520114 小河区 + 520121 开阳县 + 520122 息烽县 + 520123 修文县 + 520181 清镇市 + 520200 六盘水市 + 520201 钟山区 + 520203 六枝特区 + 520221 水城县 + 520222 盘县 + 520300 遵义市 + 520301 市辖区 + 520302 红花岗区 + 520303 汇川区 + 520321 遵义县 + 520322 桐梓县 + 520323 绥阳县 + 520324 正安县 + 520325 道真仡佬族苗族自治县 + 520326 务川仡佬族苗族自治县 + 520327 凤冈县 + 520328 湄潭县 + 520329 余庆县 + 520330 习水县 + 520381 赤水市 + 520382 仁怀市 + 520400 安顺市 + 520401 市辖区 + 520402 西秀区 + 520421 平坝县 + 520422 普定县 + 520423 镇宁布依族苗族自治县 + 520424 关岭布依族苗族自治县 + 520425 紫云苗族布依族自治县 + 522200 铜仁地区 + 522201 铜仁市 + 522222 江口县 + 522223 玉屏侗族自治县 + 522224 石阡县 + 522225 思南县 + 522226 印江土家族苗族自治县 + 522227 德江县 + 522228 沿河土家族自治县 + 522229 松桃苗族自治县 + 522230 万山特区 + 522300 黔西南布依族苗族自治州 + 522301 兴义市 + 522322 兴仁县 + 522323 普安县 + 522324 晴隆县 + 522325 贞丰县 + 522326 望谟县 + 522327 册亨县 + 522328 安龙县 + 522400 毕节地区 + 522401 毕节市 + 522422 大方县 + 522423 黔西县 + 522424 金沙县 + 522425 织金县 + 522426 纳雍县 + 522427 威宁彝族回族苗族自治县 + 522428 赫章县 + 522600 黔东南苗族侗族自治州 + 522601 凯里市 + 522622 黄平县 + 522623 施秉县 + 522624 三穗县 + 522625 镇远县 + 522626 岑巩县 + 522627 天柱县 + 522628 锦屏县 + 522629 剑河县 + 522630 台江县 + 522631 黎平县 + 522632 榕江县 + 522633 从江县 + 522634 雷山县 + 522635 麻江县 + 522636 丹寨县 + 522700 黔南布依族苗族自治州 + 522701 都匀市 + 522702 福泉市 + 522722 荔波县 + 522723 贵定县 + 522725 瓮安县 + 522726 独山县 + 522727 平塘县 + 522728 罗甸县 + 522729 长顺县 + 522730 龙里县 + 522731 惠水县 + 522732 三都水族自治县 + 530000 云南省 + 530100 昆明市 + 530101 市辖区 + 530102 五华区 + 530103 盘龙区 + 530111 官渡区 + 530112 西山区 + 530113 东川区 + 530121 呈贡县 + 530122 晋宁县 + 530124 富民县 + 530125 宜良县 + 530126 石林彝族自治县 + 530127 嵩明县 + 530128 禄劝彝族苗族自治县 + 530129 寻甸回族彝族自治县 + 530181 安宁市 + 530300 曲靖市 + 530301 市辖区 + 530302 麒麟区 + 530321 马龙县 + 530322 陆良县 + 530323 师宗县 + 530324 罗平县 + 530325 富源县 + 530326 会泽县 + 530328 沾益县 + 530381 宣威市 + 530400 玉溪市 + 530401 市辖区 + 530402 红塔区 + 530421 江川县 + 530422 澄江县 + 530423 通海县 + 530424 华宁县 + 530425 易门县 + 530426 峨山彝族自治县 + 530427 新平彝族傣族自治县 + 530428 元江哈尼族彝族傣族自治县 + 530500 保山市 + 530501 市辖区 + 530502 隆阳区 + 530521 施甸县 + 530522 腾冲县 + 530523 龙陵县 + 530524 昌宁县 + 530600 昭通市 + 530601 市辖区 + 530602 昭阳区 + 530621 鲁甸县 + 530622 巧家县 + 530623 盐津县 + 530624 大关县 + 530625 永善县 + 530626 绥江县 + 530627 镇雄县 + 530628 彝良县 + 530629 威信县 + 530630 水富县 + 530700 丽江市 + 530701 市辖区 + 530702 古城区 + 530721 玉龙纳西族自治县 + 530722 永胜县 + 530723 华坪县 + 530724 宁蒗彝族自治县 + 530800 思茅市 + 530801 市辖区 + 530802 翠云区 + 530821 普洱哈尼族彝族自治县 + 530822 墨江哈尼族自治县 + 530823 景东彝族自治县 + 530824 景谷傣族彝族自治县 + 530825 镇沅彝族哈尼族拉祜族自治县 + 530826 江城哈尼族彝族自治县 + 530827 孟连傣族拉祜族佤族自治县 + 530828 澜沧拉祜族自治县 + 530829 西盟佤族自治县 + 530900 临沧市 + 530901 市辖区 + 530902 临翔区 + 530921 凤庆县 + 530922 云县 + 530923 永德县 + 530924 镇康县 + 530925 双江拉祜族佤族布朗族傣族自治县 + 530926 耿马傣族佤族自治县 + 530927 沧源佤族自治县 + 532300 楚雄彝族自治州 + 532301 楚雄市 + 532322 双柏县 + 532323 牟定县 + 532324 南华县 + 532325 姚安县 + 532326 大姚县 + 532327 永仁县 + 532328 元谋县 + 532329 武定县 + 532331 禄丰县 + 532500 红河哈尼族彝族自治州 + 532501 个旧市 + 532502 开远市 + 532522 蒙自县 + 532523 屏边苗族自治县 + 532524 建水县 + 532525 石屏县 + 532526 弥勒县 + 532527 泸西县 + 532528 元阳县 + 532529 红河县 + 532530 金平苗族瑶族傣族自治县 + 532531 绿春县 + 532532 河口瑶族自治县 + 532600 文山壮族苗族自治州 + 532621 文山县 + 532622 砚山县 + 532623 西畴县 + 532624 麻栗坡县 + 532625 马关县 + 532626 丘北县 + 532627 广南县 + 532628 富宁县 + 532800 西双版纳傣族自治州 + 532801 景洪市 + 532822 勐海县 + 532823 勐腊县 + 532900 大理白族自治州 + 532901 大理市 + 532922 漾濞彝族自治县 + 532923 祥云县 + 532924 宾川县 + 532925 弥渡县 + 532926 南涧彝族自治县 + 532927 巍山彝族回族自治县 + 532928 永平县 + 532929 云龙县 + 532930 洱源县 + 532931 剑川县 + 532932 鹤庆县 + 533100 德宏傣族景颇族自治州 + 533102 瑞丽市 + 533103 潞西市 + 533122 梁河县 + 533123 盈江县 + 533124 陇川县 + 533300 怒江傈僳族自治州 + 533321 泸水县 + 533323 福贡县 + 533324 贡山独龙族怒族自治县 + 533325 兰坪白族普米族自治县 + 533400 迪庆藏族自治州 + 533421 香格里拉县 + 533422 德钦县 + 533423 维西傈僳族自治县 + 540000 西藏自治区 + 540100 拉萨市 + 540101 市辖区 + 540102 城关区 + 540121 林周县 + 540122 当雄县 + 540123 尼木县 + 540124 曲水县 + 540125 堆龙德庆县 + 540126 达孜县 + 540127 墨竹工卡县 + 542100 昌都地区 + 542121 昌都县 + 542122 江达县 + 542123 贡觉县 + 542124 类乌齐县 + 542125 丁青县 + 542126 察雅县 + 542127 八宿县 + 542128 左贡县 + 542129 芒康县 + 542132 洛隆县 + 542133 边坝县 + 542200 山南地区 + 542221 乃东县 + 542222 扎囊县 + 542223 贡嘎县 + 542224 桑日县 + 542225 琼结县 + 542226 曲松县 + 542227 措美县 + 542228 洛扎县 + 542229 加查县 + 542231 隆子县 + 542232 错那县 + 542233 浪卡子县 + 542300 日喀则地区 + 542301 日喀则市 + 542322 南木林县 + 542323 江孜县 + 542324 定日县 + 542325 萨迦县 + 542326 拉孜县 + 542327 昂仁县 + 542328 谢通门县 + 542329 白朗县 + 542330 仁布县 + 542331 康马县 + 542332 定结县 + 542333 仲巴县 + 542334 亚东县 + 542335 吉隆县 + 542336 聂拉木县 + 542337 萨嘎县 + 542338 岗巴县 + 542400 那曲地区 + 542421 那曲县 + 542422 嘉黎县 + 542423 比如县 + 542424 聂荣县 + 542425 安多县 + 542426 申扎县 + 542427 索县 + 542428 班戈县 + 542429 巴青县 + 542430 尼玛县 + 542500 阿里地区 + 542521 普兰县 + 542522 札达县 + 542523 噶尔县 + 542524 日土县 + 542525 革吉县 + 542526 改则县 + 542527 措勤县 + 542600 林芝地区 + 542621 林芝县 + 542622 工布江达县 + 542623 米林县 + 542624 墨脱县 + 542625 波密县 + 542626 察隅县 + 542627 朗县 + 610000 陕西省 + 610100 西安市 + 610101 市辖区 + 610102 新城区 + 610103 碑林区 + 610104 莲湖区 + 610111 灞桥区 + 610112 未央区 + 610113 雁塔区 + 610114 阎良区 + 610115 临潼区 + 610116 长安区 + 610122 蓝田县 + 610124 周至县 + 610125 户县 + 610126 高陵县 + 610200 铜川市 + 610201 市辖区 + 610202 王益区 + 610203 印台区 + 610204 耀州区 + 610222 宜君县 + 610300 宝鸡市 + 610301 市辖区 + 610302 渭滨区 + 610303 金台区 + 610304 陈仓区 + 610322 凤翔县 + 610323 岐山县 + 610324 扶风县 + 610326 眉县 + 610327 陇县 + 610328 千阳县 + 610329 麟游县 + 610330 凤县 + 610331 太白县 + 610400 咸阳市 + 610401 市辖区 + 610402 秦都区 + 610403 杨凌区 + 610404 渭城区 + 610422 三原县 + 610423 泾阳县 + 610424 乾县 + 610425 礼泉县 + 610426 永寿县 + 610427 彬县 + 610428 长武县 + 610429 旬邑县 + 610430 淳化县 + 610431 武功县 + 610481 兴平市 + 610500 渭南市 + 610501 市辖区 + 610502 临渭区 + 610521 华县 + 610522 潼关县 + 610523 大荔县 + 610524 合阳县 + 610525 澄城县 + 610526 蒲城县 + 610527 白水县 + 610528 富平县 + 610581 韩城市 + 610582 华阴市 + 610600 延安市 + 610601 市辖区 + 610602 宝塔区 + 610621 延长县 + 610622 延川县 + 610623 子长县 + 610625 志丹县 + 610626 吴旗县 + 610627 甘泉县 + 610628 富县 + 610629 洛川县 + 610630 宜川县 + 610631 黄龙县 + 610632 黄陵县 + 610700 汉中市 + 610701 市辖区 + 610702 汉台区 + 610721 南郑县 + 610722 城固县 + 610723 洋县 + 610724 西乡县 + 610725 勉县 + 610726 宁强县 + 610727 略阳县 + 610728 镇巴县 + 610729 留坝县 + 610730 佛坪县 + 610800 榆林市 + 610801 市辖区 + 610802 榆阳区 + 610821 神木县 + 610822 府谷县 + 610823 横山县 + 610824 靖边县 + 610825 定边县 + 610826 绥德县 + 610827 米脂县 + 610828 佳县 + 610829 吴堡县 + 610830 清涧县 + 610831 子洲县 + 610900 安康市 + 610901 市辖区 + 610902 汉滨区 + 610921 汉阴县 + 610922 石泉县 + 610923 宁陕县 + 610924 紫阳县 + 610925 岚皋县 + 610926 平利县 + 610927 镇坪县 + 610928 旬阳县 + 610929 白河县 + 611000 商洛市 + 611001 市辖区 + 611002 商州区 + 611021 洛南县 + 611022 丹凤县 + 611023 商南县 + 611024 山阳县 + 611025 镇安县 + 611026 柞水县 + 620000 甘肃省 + 620100 兰州市 + 620101 市辖区 + 620102 城关区 + 620103 七里河区 + 620104 西固区 + 620105 安宁区 + 620111 红古区 + 620121 永登县 + 620122 皋兰县 + 620123 榆中县 + 620200 嘉峪关市 + 620201 市辖区 + 620300 金昌市 + 620301 市辖区 + 620302 金川区 + 620321 永昌县 + 620400 白银市 + 620401 市辖区 + 620402 白银区 + 620403 平川区 + 620421 靖远县 + 620422 会宁县 + 620423 景泰县 + 620500 天水市 + 620501 市辖区 + 620502 秦城区 + 620503 北道区 + 620521 清水县 + 620522 秦安县 + 620523 甘谷县 + 620524 武山县 + 620525 张家川回族自治县 + 620600 武威市 + 620601 市辖区 + 620602 凉州区 + 620621 民勤县 + 620622 古浪县 + 620623 天祝藏族自治县 + 620700 张掖市 + 620701 市辖区 + 620702 甘州区 + 620721 肃南裕固族自治县 + 620722 民乐县 + 620723 临泽县 + 620724 高台县 + 620725 山丹县 + 620800 平凉市 + 620801 市辖区 + 620802 崆峒区 + 620821 泾川县 + 620822 灵台县 + 620823 崇信县 + 620824 华亭县 + 620825 庄浪县 + 620826 静宁县 + 620900 酒泉市 + 620901 市辖区 + 620902 肃州区 + 620921 金塔县 + 620922 安西县 + 620923 肃北蒙古族自治县 + 620924 阿克塞哈萨克族自治县 + 620981 玉门市 + 620982 敦煌市 + 621000 庆阳市 + 621001 市辖区 + 621002 西峰区 + 621021 庆城县 + 621022 环县 + 621023 华池县 + 621024 合水县 + 621025 正宁县 + 621026 宁县 + 621027 镇原县 + 621100 定西市 + 621101 市辖区 + 621102 安定区 + 621121 通渭县 + 621122 陇西县 + 621123 渭源县 + 621124 临洮县 + 621125 漳县 + 621126 岷县 + 622600 陇南地区 + 622621 武都县 + 622623 宕昌县 + 622624 成县 + 622625 康县 + 622626 文县 + 622627 西和县 + 622628 礼县 + 622629 两当县 + 622630 徽县 + 622900 临夏回族自治州 + 622901 临夏市 + 622921 临夏县 + 622922 康乐县 + 622923 永靖县 + 622924 广河县 + 622925 和政县 + 622926 东乡族自治县 + 622927 积石山保安族东乡族撒拉族自治县 + 623000 甘南藏族自治州 + 623001 合作市 + 623021 临潭县 + 623022 卓尼县 + 623023 舟曲县 + 623024 迭部县 + 623025 玛曲县 + 623026 碌曲县 + 623027 夏河县 + 630000 青海省 + 630100 西宁市 + 630101 市辖区 + 630102 城东区 + 630103 城中区 + 630104 城西区 + 630105 城北区 + 630121 大通回族土族自治县 + 630122 湟中县 + 630123 湟源县 + 632100 海东地区 + 632121 平安县 + 632122 民和回族土族自治县 + 632123 乐都县 + 632126 互助土族自治县 + 632127 化隆回族自治县 + 632128 循化撒拉族自治县 + 632200 海北藏族自治州 + 632221 门源回族自治县 + 632222 祁连县 + 632223 海晏县 + 632224 刚察县 + 632300 黄南藏族自治州 + 632321 同仁县 + 632322 尖扎县 + 632323 泽库县 + 632324 河南蒙古族自治县 + 632500 海南藏族自治州 + 632521 共和县 + 632522 同德县 + 632523 贵德县 + 632524 兴海县 + 632525 贵南县 + 632600 果洛藏族自治州 + 632621 玛沁县 + 632622 班玛县 + 632623 甘德县 + 632624 达日县 + 632625 久治县 + 632626 玛多县 + 632700 玉树藏族自治州 + 632721 玉树县 + 632722 杂多县 + 632723 称多县 + 632724 治多县 + 632725 囊谦县 + 632726 曲麻莱县 + 632800 海西蒙古族藏族自治州 + 632801 格尔木市 + 632802 德令哈市 + 632821 乌兰县 + 632822 都兰县 + 632823 天峻县 + 640000 宁夏回族自治区 + 640100 银川市 + 640101 市辖区 + 640104 兴庆区 + 640105 西夏区 + 640106 金凤区 + 640122 贺兰县 + 640181 灵武市 + 640200 石嘴山市 + 640201 市辖区 + 640202 大武口区 + 640205 惠农区 + 640221 平罗县 + 640300 吴忠市 + 640301 市辖区 + 640302 利通区 + 640323 盐池县 + 640324 同心县 + 640381 青铜峡市 + 640400 固原市 + 640401 市辖区 + 640402 原州区 + 640422 西吉县 + 640423 隆德县 + 640424 泾源县 + 640425 彭阳县 + 640500 中卫市 + 640501 市辖区 + 640502 沙坡头区 + 640521 中宁县 + 640522 海原县 + 650000 新疆维吾尔自治区 + 650100 乌鲁木齐市 + 650101 市辖区 + 650102 天山区 + 650103 沙依巴克区 + 650104 新市区 + 650105 水磨沟区 + 650106 头屯河区 + 650107 达坂城区 + 650108 东山区 + 650121 乌鲁木齐县 + 650200 克拉玛依市 + 650201 市辖区 + 650202 独山子区 + 650203 克拉玛依区 + 650204 白碱滩区 + 650205 乌尔禾区 + 652100 吐鲁番地区 + 652101 吐鲁番市 + 652122 鄯善县 + 652123 托克逊县 + 652200 哈密地区 + 652201 哈密市 + 652222 巴里坤哈萨克自治县 + 652223 伊吾县 + 652300 昌吉回族自治州 + 652301 昌吉市 + 652302 阜康市 + 652303 米泉市 + 652323 呼图壁县 + 652324 玛纳斯县 + 652325 奇台县 + 652327 吉木萨尔县 + 652328 木垒哈萨克自治县 + 652700 博尔塔拉蒙古自治州 + 652701 博乐市 + 652722 精河县 + 652723 温泉县 + 652800 巴音郭楞蒙古自治州 + 652801 库尔勒市 + 652822 轮台县 + 652823 尉犁县 + 652824 若羌县 + 652825 且末县 + 652826 焉耆回族自治县 + 652827 和静县 + 652828 和硕县 + 652829 博湖县 + 652900 阿克苏地区 + 652901 阿克苏市 + 652922 温宿县 + 652923 库车县 + 652924 沙雅县 + 652925 新和县 + 652926 拜城县 + 652927 乌什县 + 652928 阿瓦提县 + 652929 柯坪县 + 653000 克孜勒苏柯尔克孜自治州 + 653001 阿图什市 + 653022 阿克陶县 + 653023 阿合奇县 + 653024 乌恰县 + 653100 喀什地区 + 653101 喀什市 + 653121 疏附县 + 653122 疏勒县 + 653123 英吉沙县 + 653124 泽普县 + 653125 莎车县 + 653126 叶城县 + 653127 麦盖提县 + 653128 岳普湖县 + 653129 伽师县 + 653130 巴楚县 + 653131 塔什库尔干塔吉克自治县 + 653200 和田地区 + 653201 和田市 + 653221 和田县 + 653222 墨玉县 + 653223 皮山县 + 653224 洛浦县 + 653225 策勒县 + 653226 于田县 + 653227 民丰县 + 654000 伊犁哈萨克自治州 + 654002 伊宁市 + 654003 奎屯市 + 654021 伊宁县 + 654022 察布查尔锡伯自治县 + 654023 霍城县 + 654024 巩留县 + 654025 新源县 + 654026 昭苏县 + 654027 特克斯县 + 654028 尼勒克县 + 654200 塔城地区 + 654201 塔城市 + 654202 乌苏市 + 654221 额敏县 + 654223 沙湾县 + 654224 托里县 + 654225 裕民县 + 654226 和布克赛尔蒙古自治县 + 654300 阿勒泰地区 + 654301 阿勒泰市 + 654321 布尔津县 + 654322 富蕴县 + 654323 福海县 + 654324 哈巴河县 + 654325 青河县 + 654326 吉木乃县 + 659000 省直辖行政单位 + 659001 石河子市 + 659002 阿拉尔市 + 659003 图木舒克市 + 659004 五家渠市 + 710000 台湾省 + 810000 香港特别行政区 + 820000 澳门特别行政区 diff --git a/dkhjziye333.js b/dkhjziye333.js new file mode 100644 index 000000000..2f3a3a227 --- /dev/null +++ b/dkhjziye333.js @@ -0,0 +1,681 @@ +/*ziye + +说明:微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.png 获取授权 + +10.8 一共20个,自行删减替换(不一定都能提现,可自行关闭) +10.14 因为大部分打卡失效,现删减整理,剩余5个 +10.28 增加京优打卡和云端打卡 +注意 久诺打卡用本地js 改ck=2 进行获取 +11.14 剔除无用打卡 剩余4个 +11.19 恢复微打卡 剩余5个 必须用本地文件获取微打卡的ck + +功能如下: +1.读秒限速打卡, +2.打卡币统计,次数统计 +3.现金统计,自动兑换,自动提现 (默认关闭兑换和提现,自行打开) + + +一,第一次进一定先授权,第一次进一定先授权,第一次进一定先授权, + +二,将hostname复制粘贴进配置文件 + +三,将重写复制到 rewrite_local 下,开启软件,进对应程序获取ck(会卡住,但是可以获取ck),目前一共9个打卡小程序, + +建议新建配置片段,获取ck后禁用, +换号则复制js文件,修改jbid的值就可以了 + + + +ck=1 + +音乐打卡 +早起打卡 +云端打卡 +久诺打卡 + + +ck=2 +微打卡 + + + +时间设置 + +!!!删除第一个*后面的空格!!! 自行模拟人性化修改选择 + + +5位 第一位为分 填 10-59 如 + +* /12 6-23 * * * dkhjziye925.js +6点到23点 0 12 24 36 48 运行1次 + + +6位 第一位为秒 填 0-59 第二位为分 填 10-59 如 + +23 * /13 6-23 * * * dkhjziye925.js +6点到23点 0 13 26 39 52 的23秒运行1次 + + + +打卡限速默认设置10分钟一次,可根据情况修改, + + + + +hostname=www.baimaa.com,ph0001.hezyq.com,cps.0day.fun,am.kuqi5.cn,zm.shujumagician.com, + +############## 圈x + +//音乐打卡 +https:\/\/www\.baimaa\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js + + +// 早起打卡 +https:\/\/ph0001\.hezyq\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js + + + +//云端打卡 +https:\/\/cps\.0day\.fun\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js + + + +//久诺打卡 +https:\/\/am\.kuqi5\.cn\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js + + + +//微打卡 +https:\/\/zm\.shujumagician\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js + + + + +############## loon + + +//音乐打卡 +http-request https:\/\/www\.baimaa\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + +// 早起打卡 +http-request https:\/\/ph0001\.hezyq\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + +//云端打卡 +http-request https:\/\/cps\.0day\.fun\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + +//久诺打卡 +http-request https:\/\/am\.kuqi5\.cn\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + + + + +//微打卡 +http-request https:\/\/zm\.shujumagician\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + +############## surge + +//音乐打卡 +音乐打卡 = type=http-request,pattern=https:\/\/www\.baimaa\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + +// 早起打卡 +早起打卡 = type=http-request,pattern=https:\/\/ph0001\.hezyq\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + + +//云端打卡 +云端打卡 = type=http-request,pattern=https:\/\/cps\.0day\.fun\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + + +//久诺打卡 +久诺打卡 = type=http-request,pattern=https:\/\/am\.kuqi5\.cn\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + + +//微打卡 +微打卡= type=http-request,pattern=https:\/\/zm\.shujumagician\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.js, requires-body=true + + +*/ + +//////////////////////////////////////////正文 + +const CK=1// 修改ck 获取对应程序cookie + +const jsname = '打卡合集' +const $ = new Env(jsname)//模版引用 +const jbid =1// 换号则复制js,修改jbid的值就可以了 +const notify = 1; //通知开为1,关为0 +const logs = 0; // 日志开为1,关为0 + +const dk=1//打卡开关 +const tj=1//统计开关 +const xj=1//现金开关 +const dm=1//读秒开关 +const tx=0//提现开关 +const dh=0//兑换开关 +const dd=2//运行时间,单位为秒 + +var tz=''//通知循环 + + + + +const yydkname = "音乐打卡";//程序名 +const yydkid = 11;//ck id +const yydkcs = 10;//打卡次数 +const yydktx = 10;//提现标准 +const yydkxs = 10;//限速标准.单位为分钟 +const yydkdh = 10;//兑换标准 +const yydkdhid = 22;//兑换id +const yydkdhsp = "1元";//兑换商品 +const yydkkey = "yydkkey"+jbid //保存ck +const yydkurl =$.getdata(yydkkey)//读取ck + + + + + + + + + + +const zqdkname = "早起打卡";//程序名 +const zqdkid = 597;//ck id +const zqdkcs = 20;//打卡次数 +const zqdktx = 10;//提现标准 +const zqdkxs = 10;//限速标准.单位为分钟 +const zqdkdh = 5000;//兑换标准 +const zqdkdhid = 6;//兑换id +const zqdkdhsp = "1元";//兑换商品 +const zqdkkey = "zqdkkey"+jbid //保存ck +const zqdkurl =$.getdata(zqdkkey)//读取ck + + + + + + + + + + +const yddkname = "云端打卡";//程序名 +const yddkid = 2;//ck id +const yddkcs = 10;//打卡次数 +const yddktx = 10;//提现标准 +const yddkxs = 10;//限速标准.单位为分钟 +const yddkdh = 3500;//兑换标准 +const yddkdhid = 4;//兑换id +const yddkdhsp = "50元话费";//兑换商品 +const yddkkey = "yddkkey"+jbid //保存ck +const yddkurl =$.getdata(yddkkey)//读取ck + + + + + + +const jndkname = "久诺打卡";//程序名 +const jndkid = 8;//ck id +const jndkcs = 10;//打卡次数 +const jndktx = 10;//提现标准 +const jndkxs = 10;//限速标准.单位为分钟 +const jndkdh = 3500;//兑换标准 +const jndkdhid = 4;//兑换id +const jndkdhsp = "50元话费";//兑换商品 +const jndkkey = "jndkkey"+jbid //保存ck +const jndkurl =$.getdata(jndkkey)//读取ck + + + + + + +const wdkname = "微打卡";//程序名 +const wdkid = 2;//ck id +const wdkcs = 20;//打卡次数 +const wdktx = 10;//提现标准 +const wdkxs = 10;//限速标准.单位为分钟 +const wdkdh = 13000;//兑换标准 +const wdkdhid = 9;//兑换id +const wdkdhsp = "腾讯月卡";//兑换商品 +const wdkkey = "wdkkey"+jbid //保存ck +const wdkurl =$.getdata(wdkkey)//读取ck + + + + + + + + + +//CK运行 + +let isGetCookie = typeof $request !== 'undefined' +if (isGetCookie) { + GetCookie() +} else { + all() +} + + + + + +//1异步运行 + + + function all() + + { + + for(var i=0;i<6;i++) + { (function(i) { + setTimeout(function() { + + + + +if(i==0) jndk(i); + +else if(i==1) yddk(i); + +else if(i==2) yydk(i); + +else if(i==3) zqdk(i); + +else if(i==4) wdk(i); + +else if(i==5) showmsg(i); + + + +}, (i + 1) * dd*1000); + })(i) + + + + +}} + + + + + + + + +//CK获取模块 +function GetCookie() { + +/////////////////////CK=1 + +if (CK==1) +{ + + + + +if ($request && $request.url.match(/i=2&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const yddkurl = $request.url + $.log(`yddkurl:${yddkurl}`) + if (yddkurl) $.setdata(yddkurl, yddkkey) + $.msg(yddkkey, `获取cookie: 成功🎉`, ``) +} + + + + +if ($request && $request.url.match(/i=8&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const jndkurl = $request.url + $.log(`jndkurl:${jndkurl}`) + if (jndkurl) $.setdata(jndkurl, jndkkey) + $.msg(jndkkey, `获取cookie: 成功🎉`, ``) +} + + + + + +if ($request && $request.url.match(/i=11&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const yydkurl = $request.url + $.log(`yydkurl:${yydkurl}`) + if (yydkurl) $.setdata(yydkurl, yydkkey) + $.msg(yydkkey, `获取cookie: 成功🎉`, ``) +} + + + + +if ($request && $request.url.match(/i=597&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const zqdkurl = $request.url + $.log(`zqdkurl:${zqdkurl}`) + if (zqdkurl) $.setdata(zqdkurl, zqdkkey) + $.msg(zqdkkey, `获取cookie: 成功🎉`, ``) +} + + + +} + + + + if (CK==2) +{ + + +if ($request && $request.url.match(/i=2&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const wdkurl = $request.url + $.log(`wdkurl:${wdkurl}`) + if (wdkurl) $.setdata(wdkurl, wdkkey) + $.msg(wdkkey, `获取cookie: 成功🎉`, ``) +} + + + } + + + +} + + + + +///////////////////////////////////////运行 + + + + +function yydk() { +var A={Y:[yydkurl,yydkname,yydkcs,yydktx,yydkxs,yydkdh,yydkdhid,yydkdhsp]} +B(A) +} + + + + + +function zqdk() { +var A={Y:[zqdkurl,zqdkname,zqdkcs,zqdktx,zqdkxs,zqdkdh,zqdkdhid,zqdkdhsp]} +B(A) +} + + + + + +function yddk() { +var A={Y:[yddkurl,yddkname,yddkcs,yddktx,yddkxs,yddkdh,yddkdhid,yddkdhsp]} +B(A) +} + + + + + +function jndk() { +var A={Y:[jndkurl,jndkname,jndkcs,jndktx,jndkxs,jndkdh,jndkdhid,jndkdhsp]} +B(A) +} + + + + + +function wdk() { +var A={Y:[wdkurl,wdkname,wdkcs,wdktx,wdkxs,wdkdh,wdkdhid,wdkdhsp]} +B(A) +} + + + + + + + + + + +function B(C) { + +return new Promise((resolve, reject) => { + + +const Tjurl = {url: C.Y[0]}; +const Xjurl = {url: C.Y[0].replace(/action=today&contr=index/g, `action=index&contr=my`)}; +const Logurl = {url: C.Y[0].replace(/action=today&contr=index/g, `action=log&contr=clock&level=1&p=1&today=1`)}; + +const Dhurl = {url: C.Y[0].replace(/action=today&contr=index/g, `action=index&contr=shop`)}; + +const Dhspurl = {url: C.Y[0].replace(/do=distribute/g, `do=exchange&id=${C.Y[6]}`)}; + + + + +const Txurl = {url: C.Y[0].replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${C.Y[3]}&payment_code=`)}; + +const Dkurl = {url: C.Y[0].replace(/action=today&contr=index/g, `action=sign&contr=clock`) + }; + + + +//统计打卡 + +if (tj==1) +$.get(Tjurl,(error, response, data) =>{ + if(logs)$.log(`${C.Y[1]}统计 - data: ${data}`) + tbj = JSON.parse(data) +if(tbj.status == 1 && tbj.info.today.clock < C.Y[2]){tz+=C.Y[1]+'[账户信息]👤'+ +'已打卡'+[Number(tbj.info.today.clock) ]+'/'+C.Y[2]+'次'+',得'+[Number(tbj.info.today.currency)]+'币'+'\n' + } +else {tz+=C.Y[1]+'[打卡完成]✅'+'得'+[Number(tbj.info.today.currency)]+'币'+'\n'} + + +if (dk==1&&tbj.info.today.clock==0){ + $.get(Dkurl,(error, response, data) =>{ + if(logs)$.log(`${C.Y[1]}打卡- data: ${data}`) + dbj = JSON.parse(data) +if (dbj.status==1){ +tz+=C.Y[1]+'[打卡成功]🎉'+'打卡次数+1'+'\n' + + } + + +resolve() + + }) + + +} + + + + + + + + + + +//读秒打卡 + + +if (dm==1) + $.get(Logurl,(error, response, data) =>{ + if(logs)$.log(`${C.Y[1]}限速- data: ${data}`) + ybj = JSON.parse(data) + +var f=ybj.info.log.length-1 +var time = ybj.info.log[f].created +var newtime=time.replace(time[10],'T') +var c = new Date(newtime)/1000 +var now = new Date()/1000 +var cz=[Number((now+28800-c)/60).toFixed(0)] + +if (czC.Y[4]&&tbj.info.today.clock{ + if(logs)$.log(`${C.Y[1]}打卡- data: ${data}`) + dbj = JSON.parse(data) +if (dbj.status==1){ +tz+=C.Y[1]+'[打卡成功]🎉'+'打卡次数+1'+'\n' + + } + + +resolve() + + }) + + +} + + + +resolve() + }) + + + + + + +resolve() + }) + + + +//兑换 +if (dh==1) + $.get(Dhurl,(error, response, data) =>{ + if(logs)$.log(`${C.Y[1]}兑换 - data: ${data}`) + Mbj= JSON.parse(data) +if(Mbj.status == 1) +{tz+=C.Y[1]+"[总打卡币]💰"+'余'+ +Mbj.info.member.currency+"币"+"\n" + + } + + + + + +if (dh==1&&Mbj.info.member.currency>=C.Y[5]){ + $.get(Dhspurl,(error, response, data) =>{ + if(logs)$.log(`${C.Y[1]}兑换商品 - data: ${data}`) + nbj = JSON.parse(data) +if(nbj.status == 1) { + +tz+=C.Y[1]+'[兑换成功]🧧,成功兑换'+C.Y[7] ++'\n' + + } + +else { + +tz+=C.Y[1]+'[兑换失败]❓:'+nbj.info+'\n' + + } + +resolve() + + }) + + +} + + + +resolve() + }) + + + + + +//现金提现 +if (xj==1) + $.get(Xjurl,(error, response, data) =>{ + if(logs)$.log(`${C.Y[1]}现金 - data: ${data}`) + xbj = JSON.parse(data) +if(xbj.status == 1) +{tz+=C.Y[1]+'[现金余额]💵'+xbj.info.member.money+'元'+'\n' + + } + + + + + +if (tx==1&&xbj.info.member.money>=C.Y[3]){ + $.get(Txurl,(error, response, data) =>{ + if(logs)$.log(`${C.Y[1]}提现 - data: ${data}`) + obj = JSON.parse(data) +if(obj.status == 1) { + +tz+=C.Y[1]+'[提现成功]🧧,提现'+C.Y[3]+'元'+'\n' + + } + +else { + +tz+=C.Y[1]+'[提现失败]❓:'+obj.info+'\n' + + } + +resolve() + }) + + +} + + + + +resolve() + }) + + + + }) + } + + + + + + +function showmsg() { + + + +if (notify ==1) +$.msg(jsname,'',tz) + + +} + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/dkhjziye333.png b/dkhjziye333.png new file mode 100644 index 000000000..f8adbb954 Binary files /dev/null and b/dkhjziye333.png differ diff --git a/dkhjziyeck.js b/dkhjziyeck.js new file mode 100644 index 000000000..e96481522 --- /dev/null +++ b/dkhjziyeck.js @@ -0,0 +1,563 @@ +/*ziye + +说明:微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziye333.png 获取授权 + + + + +一,第一次进一定先授权,第一次进一定先授权,第一次进一定先授权, + +二,将hostname复制粘贴进配置文件 + +三,将重写复制到 rewrite_local 下,开启软件,进对应程序获取ck(会卡住,但是可以获取ck),目前一共7个打卡小程序, + +建议新建配置片段,获取ck后禁用, +换号则复制js文件,修改jbid的值就可以了 + + + +ck=1 + +微打卡 +微早起打卡 +音乐打卡 +早起打卡 +圈子打卡 +京优打卡 +每天打卡 + + + +ck=2 + +云端打卡 +久诺打卡 + +用本地js 改ck=2 获取ck + + + + + +时间设置 + +!!!删除第一个*后面的空格!!! 自行模拟人性化修改选择 + + +5位 第一位为分 填 10-59 如 + +* /12 6-23 * * * dkhjziye925.js +6点到23点 0 12 24 36 48 运行1次 + + +6位 第一位为秒 填 0-59 第二位为分 填 10-59 如 + +23 * /13 6-23 * * * dkhjziye925.js +6点到23点 0 13 26 39 52 的23秒运行1次 + + + +打卡限速默认设置10分钟一次,可根据情况修改, + + + +hostname=zm.shujumagician.com,www.baimaa.com,ph0001.hezyq.com,daka.isfx.cn,wq.inqan.com,www.zq221727.com,cps.0day.fun,am.kuqi5.cn,w.1688sywh.com, + +############## 圈x + +//微打卡 微早起打卡 +https:\/\/zm\.shujumagician\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + +//音乐打卡 +https:\/\/www\.baimaa\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + + +// 早起打卡 +https:\/\/ph0001\.hezyq\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + + + +//圈子打卡 +https:\/\/wq\.inqan\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + + + + +//京优打卡 +https:\/\/www\.zq221727\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + + + + +//云端打卡 +https:\/\/cps\.0day\.fun\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + + + + + + +//久诺打卡 +https:\/\/am\.kuqi5\.cn\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + + + + +//每天打卡 +https:\/\/w\.1688sywh\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js + + + + + + + + + + + + +############## loon + +//微打卡 微早起打卡 +http-request https:\/\/zm\.shujumagician\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + +//音乐打卡 +http-request https:\/\/www\.baimaa\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + +// 早起打卡 +http-request https:\/\/ph0001\.hezyq\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + +//圈子打卡 +http-request https:\/\/wq\.inqan\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + +//京优打卡 +http-request https:\/\/www\.zq221727\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + +//云端打卡 +http-request https:\/\/cps\.0day\.fun\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + + + + +//久诺打卡 +http-request https:\/\/am\.kuqi5\.cn\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + +//每天打卡 +http-request https:\/\/w\.1688sywh\.com\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + + + + + + + +############## surge + +//微打卡 微早起打卡 +微打卡 微早起打卡 = type=http-request,pattern=https:\/\/zm\.shujumagician\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + +//音乐打卡 +音乐打卡 = type=http-request,pattern=https:\/\/www\.baimaa\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + +// 早起打卡 +早起打卡 = type=http-request,pattern=https:\/\/ph0001\.hezyq\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + +//圈子打卡 +圈子打卡 = type=http-request,pattern=https:\/\/wq\.inqan\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + + +//京优打卡 +京优打卡 = type=http-request,pattern=https:\/\/www\.zq221727\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + + +//云端打卡 +云端打卡 = type=http-request,pattern=https:\/\/cps\.0day\.fun\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + + +//久诺打卡 +久诺打卡 = type=http-request,pattern=https:\/\/am\.kuqi5\.cn\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + + +//每天打卡 +每天打卡 = type=http-request,pattern=https:\/\/w\.1688sywh\.com\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/dkhjziyeck.js, requires-body=true + + + + + + + + + + + + + +*/ + +//////////////////////////////////////////正文 + +const CK=2// 修改ck 获取对应程序cookie + +const jsname = '打卡合集' +const $ = new Env(jsname)//模版引用 +const jbid =1// 换号则复制js,修改jbid的值就可以了 +const notify = 1; //通知开为1,关为0 +const logs = 0; // 日志开为1,关为0 + + + + +const wdkname = "微打卡";//程序名 +const wdkid = 2;//ck id +const wdkcs = 20;//打卡次数 +const wdktx = 10;//提现标准 +const wdkxs = 10;//限速标准.单位为分钟 +const wdkdh = 13000;//兑换标准 +const wdkdhid = 9;//兑换id +const wdkdhsp = "腾讯月卡";//兑换商品 +const wdkkey = "wdkkey"+jbid //保存ck +const wdkurl =$.getdata(wdkkey)//读取ck + + + + + + + +const wzqdkname = "微早起打卡";//程序名 +const wzqdkid = 8;//ck id +const wzqdkcs = 20;//打卡次数 +const wzqdktx = 10;//提现标准 +const wzqdkxs = 10;//限速标准.单位为分钟 +const wzqdkdh = 13000;//兑换标准 +const wzqdkdhid = 10;//兑换id +const wzqdkdhsp = "腾讯月卡";//兑换商品 +const wzqdkkey = "wzqdkkey"+jbid //保存ck +const wzqdkurl =$.getdata(wzqdkkey)//读取ck + + + + +const yydkname = "音乐打卡";//程序名 +const yydkid = 11;//ck id +const yydkcs = 10;//打卡次数 +const yydktx = 10;//提现标准 +const yydkxs = 10;//限速标准.单位为分钟 +const yydkdh = 10;//兑换标准 +const yydkdhid = 22;//兑换id +const yydkdhsp = "1元";//兑换商品 +const yydkkey = "yydkkey"+jbid //保存ck +const yydkurl =$.getdata(yydkkey)//读取ck + + + + + + + + + + +const zqdkname = "早起打卡";//程序名 +const zqdkid = 597;//ck id +const zqdkcs = 20;//打卡次数 +const zqdktx = 10;//提现标准 +const zqdkxs = 10;//限速标准.单位为分钟 +const zqdkdh = 5000;//兑换标准 +const zqdkdhid = 6;//兑换id +const zqdkdhsp = "1元";//兑换商品 +const zqdkkey = "zqdkkey"+jbid //保存ck +const zqdkurl =$.getdata(zqdkkey)//读取ck + + + + +const qzdkname = "圈子打卡";//程序名 +const qzdkid = 9;//ck id +const qzdkcs = 20;//打卡次数 +const qzdktx = 10;//提现标准 +const qzdkxs = 10;//限速标准.单位为分钟 +const qzdkdh = 3500;//兑换标准 +const qzdkdhid = 4;//兑换id +const qzdkdhsp = "50元话费";//兑换商品 +const qzdkkey = "qzdkkey"+jbid //保存ck +const qzdkurl =$.getdata(qzdkkey)//读取ck + + + + + +const jydkname = "京优打卡";//程序名 +const jydkid = 39;//ck id +const jydkcs = 5;//打卡次数 +const jydktx = 10;//提现标准 +const jydkxs = 10;//限速标准.单位为分钟 +const jydkdh = 3500;//兑换标准 +const jydkdhid = 4;//兑换id +const jydkdhsp = "50元话费";//兑换商品 +const jydkkey = "jydkkey"+jbid //保存ck +const jydkurl =$.getdata(jydkkey)//读取ck + + + + +const yddkname = "云端打卡";//程序名 +const yddkid = 2;//ck id +const yddkcs = 10;//打卡次数 +const yddktx = 10;//提现标准 +const yddkxs = 10;//限速标准.单位为分钟 +const yddkdh = 3500;//兑换标准 +const yddkdhid = 4;//兑换id +const yddkdhsp = "50元话费";//兑换商品 +const yddkkey = "yddkkey"+jbid //保存ck +const yddkurl =$.getdata(yddkkey)//读取ck + + + + + + +const jndkname = "久诺打卡";//程序名 +const jndkid = 8;//ck id +const jndkcs = 10;//打卡次数 +const jndktx = 10;//提现标准 +const jndkxs = 10;//限速标准.单位为分钟 +const jndkdh = 3500;//兑换标准 +const jndkdhid = 4;//兑换id +const jndkdhsp = "50元话费";//兑换商品 +const jndkkey = "jndkkey"+jbid //保存ck +const jndkurl =$.getdata(jndkkey)//读取ck + + + + +const mtdkname = "每天打卡";//程序名 +const mtdkid = 57;//ck id +const mtdkcs = 10;//打卡次数 +const mtdktx = 10;//提现标准 +const mtdkxs = 10;//限速标准.单位为分钟 +const mtdkdh = 3500;//兑换标准 +const mtdkdhid = 4;//兑换id +const mtdkdhsp = "50元话费";//兑换商品 +const mtdkkey = "mtdkkey"+jbid //保存ck +const mtdkurl =$.getdata(mtdkkey)//读取ck + + + + + + + + + + + +//CK运行 + +let isGetCookie = typeof $request !== 'undefined' +if (isGetCookie) { + GetCookie() +} + + + + + + + + + + +//CK获取模块 +function GetCookie() { + +/////////////////////CK=1 + +if (CK==1) +{ + +if ($request && $request.url.match(/i=2&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const wdkurl = $request.url + $.log(`wdkurl:${wdkurl}`) + if (wdkurl) $.setdata(wdkurl, wdkkey) + $.msg(wdkkey, `获取cookie: 成功🎉`, ``) +} + + + + + + +if ($request && $request.url.match(/i=8&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const wzqdkurl = $request.url + $.log(`wzqdkurl:${wzqdkurl}`) + if (wzqdkurl) $.setdata(wzqdkurl, wzqdkkey) + $.msg(wzqdkkey, `获取cookie: 成功🎉`, ``) +} + + + + +if ($request && $request.url.match(/i=11&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const yydkurl = $request.url + $.log(`yydkurl:${yydkurl}`) + if (yydkurl) $.setdata(yydkurl, yydkkey) + $.msg(yydkkey, `获取cookie: 成功🎉`, ``) +} + + + + +if ($request && $request.url.match(/i=597&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const zqdkurl = $request.url + $.log(`zqdkurl:${zqdkurl}`) + if (zqdkurl) $.setdata(zqdkurl, zqdkkey) + $.msg(zqdkkey, `获取cookie: 成功🎉`, ``) +} + + + + +if ($request && $request.url.match(/i=9&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const qzdkurl = $request.url + $.log(`qzdkurl:${qzdkurl}`) + if (qzdkurl) $.setdata(qzdkurl, qzdkkey) + $.msg(qzdkkey, `获取cookie: 成功🎉`, ``) +} + + + + +if ($request && $request.url.match(/i=39&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const jydkurl = $request.url + $.log(`jydkurl:${jydkurl}`) + if (jydkurl) $.setdata(jydkurl, jydkkey) + $.msg(jydkkey, `获取cookie: 成功🎉`, ``) +} + + + + + +if ($request && $request.url.match(/i=39&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const mtdkurl = $request.url + $.log(`mtdkurl:${mtdkurl}`) + if (mtdkurl) $.setdata(mtdkurl, mtdkkey) + $.msg(mtdkkey, `获取cookie: 成功🎉`, ``) +} + + + + + + +} + + + + + + + + +if (CK==2) +{ + + + + + +if ($request && $request.url.match(/i=2&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const yddkurl = $request.url + $.log(`yddkurl:${yddkurl}`) + if (yddkurl) $.setdata(yddkurl, yddkkey) + $.msg(yddkkey, `获取cookie: 成功🎉`, ``) +} + + + + +if ($request && $request.url.match(/i=8&/)) +if ($request && $request.url.match(/action=today&contr=index/)) +{const jndkurl = $request.url + $.log(`jndkurl:${jndkurl}`) + if (jndkurl) $.setdata(jndkurl, jndkkey) + $.msg(jndkkey, `获取cookie: 成功🎉`, ``) +} + + + + + + +} + + + + + + + + +} + + + + + + + + + + + + + + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} + diff --git a/flwhbziye.js b/flwhbziye.js new file mode 100644 index 000000000..88ea8c4ae --- /dev/null +++ b/flwhbziye.js @@ -0,0 +1,287 @@ + +/*ziye + +//返利网1212天天领现金,活动时间 12月 5号 9号到12号 +每天1.95 + +下载地址 http://m.a8fdj.cn/Invite/promotion?id=775&spm=page_name.h5.pty-wxzcpv~std-65354&go=http%3A%2F%2Fhuodong.a8fdj.cn%2Fh5%2FInvitefriendsreward%2FregisterCallback%3Fuserid%3D373511081%26id%3D775%26sn%3D47ecab06aba43e015082e531d8214eb5 + +下载后登录 + +进入 我的 点击 天天领现金 获取cookie + +⚠️会卡住,但是能获取到cookie,然后注释重写就行了! +提现请先微信关注返利网公众号 + +hostname=huodong.fanli.com, + +时间👇 + +0 1-16 10 5,9,10,11,12 * * + + + +#返利网红包 +############## 圈x +https:\/\/huodong\.fanli\.com\/h5\/Fanlishare20201212\/ajaxInit url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/flwhbziye.js + + + +#返利网红包 +############## loon + + +http-request https:\/\/huodong\.fanli\.com\/h5\/Fanlishare20201212\/ajaxDoTask76728 script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/flwhbziye.js,requires-header=true, tag=返利网红包获取cookie + + +#返利网红包 +############## surge + +返利网红包 = type=http-request,pattern=https:\/\/huodong\.fanli\.com\/h5\/Fanlishare20201212\/ajaxDoTask76728,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/flwhbziye.js, + + + + + + +*/ + + + + + +const jsname='返利网红包' +const $ = Env(jsname) + + +const logs = 0; //0为关闭日志,1为开启 +const notifyInterval=1//0为关闭通知,1为开启 +const jbid=1; +const txbz=1.45//设置余额大于等于多少提现,必须大于0.3 + + + + + +const flwhburlKey = 'flwhburl'+jbid + +const flwhbheaderKey = 'flwhbhd'+jbid + + + +const flwhburlVal = $.getdata(flwhburlKey) + +const flwhbheaderVal = $.getdata(flwhbheaderKey) + +const flwhbbodyVal = '' + + + + + + + + + +var tz='' + + +let isGetCookie = typeof $request !== 'undefined' +if (isGetCookie) { + GetCookie(); + $.done(); +} else { + all() +} + + + + + +function GetCookie() { + + + + if($request &&$request.url.indexOf("ajaxInit")>=0) { + + const flwhburlVal = $request.url +if (flwhburlVal) $.setdata(flwhburlVal,flwhburlKey) + $.log(`[${jsname}] 获取url请求: 成功,flwhburlVal: ${flwhburlVal}`) +const flwhbheaderVal = JSON.stringify($request.headers) + if (flwhbheaderVal) $.setdata(flwhbheaderVal,flwhbheaderKey) + $.log(`[${jsname}] 获取Cookie: 成功,flwhbheaderVal: ${flwhbheaderVal}`) + $.msg(flwhbheaderKey, `获取Cookie: 成功🎉`, ``) + + + } + +} + + + + + + + + + + + + + function all() + + { + + for(var i=0;i<3;i++) + { (function(i) { + setTimeout(function() { + + if(i==0) flwhbtask(); + if(i==1) flwhblh(); + +else if(i==2) { +showmsg() +$.done()} +}, (i + 1) *500); + })(i) + + +}} + + + +//账户信息 +function flwhbtask() { +return new Promise((resolve, reject) => { + + const toflwhburl = { + + url: flwhburlVal, + + headers: JSON.parse(flwhbheaderVal), + body: flwhbbodyVal + }; + $.get(toflwhburl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 账户信息: ${data}`) + signinfo =JSON.parse(data) + if (signinfo.status==1) + { +tz+='【收益总计】🎉:'+signinfo.data.user_total_money+'元'+'\n'+ +'【账户余额】🎉:'+signinfo.data.user_current_money+'\n'+ +'【今日奖励】🎉:'+signinfo.data.get_money_76728+'元'+'\n' + +} + +else +tz+='【出现问题】✖️:'+signinfo.data+'\n' + +zhtx(signinfo.data.user_current_money) + + + + + resolve() + }) + }) + } + + + + +//惊喜礼盒 +function flwhblh() { +return new Promise((resolve, reject) => { + + const toflwhblhurl = { + + url: flwhburlVal.replace(/ajaxInit/g, `ajaxDoTask76728`), + + headers: JSON.parse(flwhbheaderVal), + body: flwhbbodyVal + }; + $.get(toflwhblhurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 惊喜礼盒: ${data}`) + jxlh =JSON.parse(data) + if (jxlh.data.remain_num_76728>0) + { +tz+='【开启礼盒】🎉:'+jxlh.data.amount+'元'+'\n'+ +'【剩余礼盒】🎉:'+jxlh.data.remain_num_76728+'个'+'\n' + +} + +else +tz+='【开启完毕】✖️:'+'礼盒已全部开启'+'\n' + + + + + resolve() + }) + }) + } + + + + +function zhtx(y) +{ +if(y>=txbz) +flwhbtx() + +} + + + + + + +//提现 +function flwhbtx() { +return new Promise((resolve, reject) => { + + const toflwhbtxurl = { + + url: flwhburlVal.replace(/ajaxInit/g, `ajaxExchangeCash`), + + headers: JSON.parse(flwhbheaderVal), + + }; + $.get(toflwhbtxurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 余额提现: ${data}`) + txtx =JSON.parse(data) + if (txtx.status==1) + { +tz+='【余额提现】🎉:提现成功,请到公众号领取'+'\n' + +} + +else +tz+='【余额提现】✖️:'+txtx.info+'\n' + + + + + resolve() + }) + }) + } + + + + + + + + + +function showmsg() { + + + +if (notifyInterval==1) +$.msg(jsname,'',tz) +} + + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/isdkziye.js b/isdkziye.js deleted file mode 100644 index fd97f7de9..000000000 --- a/isdkziye.js +++ /dev/null @@ -1,344 +0,0 @@ -/*ziye is分享打卡 - -非常重要!!! - -微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/isdkziye.png 进入小程序,登录获取授权,再启动软件获取ck -建议设置6点到23点之间打卡,时间间隔30分钟以上,否则容易封号 - - - - -2020.9.9 - -《《《《《《《《《《制作其他打卡js的说明 - -抓包小程序,然后替换以下内容来制作其他打卡js, -需要替换的内容如下,按顺序替换字符,自己用电脑或者KODE软件替换,KODE下载链接https://apps.apple.com/cn/app/koder-code-editor/id1447489375 - -daka.isfx.cn -is分享打卡 -cs = 10 -xj = 1 -isdkurl -i=2 -isdk - -手动替换 -daka\.isfx\.cn - -制作其他打卡js的说明》》》》》》》》》》》 - - - - - - -////////////////////////////////////////正文 - -使用说明: - -一,微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/isdkziye.png 进入小程序,登录获取授权 - -二,然后将hostname复制粘贴进配置文件 - -三,将重写复制到 rewrite_local 下,再进入程序获取ck,建议 放入新建配置片段,获取之后禁用即可 - -功能如下: -1.每日打卡,设置了开关,完成任务不再打卡 -2.打卡币统计, -3.现金统计,自动提现 - - - - - - - -hostname= daka.isfx.cn, - -//surge -is分享打卡 = type=http-request,pattern=^https:\/\/daka\.isfx\.cn\/*,requires-body=1,max-size=0,script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/isdkziye.js - - -//圈x -https:\/\/daka\.isfx\.cn\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/isdkziye.js - -//loon -http-request ^https:\/\/daka\.isfx\.cn\/* script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/isdkziye.js -, requires-body=true, timeout=10, tag=is分享打卡 - - -*/ - - - -const sy = init()//声明必须 -const notifyInterval = 1; //通知开为1,常关为0 -const logs = 0; // 日志开关 -const jsname = 'is分享打卡' -const jbid =1 -const sb='失败,请先关闭,进入程序获取授权' - -const cs = 10;//小程序打卡次数 -const xj = 1;//提现标准 -var tz='' - -const dkurlkey = 'isdkurl'+jbid -const dkurl = sy.getdata(dkurlkey) - - -let isGetCookie = typeof $request !== 'undefined' -if (isGetCookie) { - GetCookie() -} else { - all() -} - - - -function GetCookie() { -if ($request && $request.url.match(/i=2&/)) -if ($request && $request.url.match(/action=today&contr=index/)) - { - const dkurl = $request.url - sy.log(`dkurl:${dkurl}`) - if (dkurl) sy.setdata(dkurl, dkurlkey) - sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) -} - -} - - -//异步运行 - - -function all() - - { - - for(var i=0;i<3;i++) - { (function(i) { - setTimeout(function() { - - if(i==0) dktj(i); -else if(i==1) dkxj(i); -else if(i==2) showmsg(i); -}, (i + 1) * 1000); - })(i) - - -}} - - - - -//统计 - -function dktj() { -return new Promise((resolve, reject) => { - - const Tjurl = { - url: dkurl - }; - sy.get(Tjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1统计 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ -"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - - - - - -cstj1(obj.info.today.clock); - - - - resolve() - }) - }) - } - - -//次数统计 - - -function cstj1(tjtj) -{ -if (tjtj { - - const Xjurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) - }; - sy.get(Xjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1现金 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - - - - - tz +="💵现金余额"+ -obj.info.member.money+"元"+"\n" - - } - - else tz +=sb+"\n"; - - -xjtj1(obj.info.member.money); - - - - resolve() - }) - }) - } - - - - -//自动提现 - -function dktx() { -return new Promise((resolve, reject) => { - - const Txurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) - }; - sy.get(Txurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1提现 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - -tz +='提现成功,成功提现'+xj+'元'+"\n" - - } - -if(obj.status == 2) { - -tz +='提现失败,原因:'+obj.info+"\n" - - } - - - - - resolve() - }) - }) - } - - - -//现金统计 - - -function xjtj1(tjtj) -{ -if (tjtj>=xj) -dktx() - -} - - - -//打卡 -function dkdk() { -return new Promise((resolve, reject) => { - - const Dkurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) - }; - sy.get(Dkurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1打卡- data: ${data}`) - obj = JSON.parse(data) - - if (obj.status==1){ -tz+='[️打卡任务]:'+'打卡次数+1'+'\n' - - } -else tz +=obj.info+'\n' - - - resolve() - }) - }) - } - - -function showmsg() { - -console.log(tz) - -if (notifyInterval==1) -sy.msg(jsname,'',tz) -} - - -function init() { - isSurge = () => { - return undefined !== this.$httpClient - } - isQuanX = () => { - return undefined !== this.$task - } - getdata = (key) => { - if (isSurge()) return $persistentStore.read(key) - if (isQuanX()) return $prefs.valueForKey(key) - } - setdata = (key, val) => { - if (isSurge()) return $persistentStore.write(key, val) - if (isQuanX()) return $prefs.setValueForKey(key, val) - } - msg = (title, subtitle = '', body = '') => { - if (isSurge()) $notification.post(title, subtitle, body) - if (isQuanX()) $notify(title, subtitle, body) - } - log = (msg) => { - console.log(`${msg}\n`) - } - get = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'GET' - return $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) return $httpClient.get(options, callback) - } - post = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'POST' - $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) $httpClient.post(options, callback) - } - done = (value = {}) => { - $done(value) - } - return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } -} diff --git a/isdkziye.png b/isdkziye.png deleted file mode 100644 index a116c72ad..000000000 Binary files a/isdkziye.png and /dev/null differ diff --git a/ksdkziye.js b/ksdkziye.js deleted file mode 100644 index ae4be1c44..000000000 --- a/ksdkziye.js +++ /dev/null @@ -1,338 +0,0 @@ -/*ziye卡神打卡 - -非常重要!!! - -微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/ksdkziye.png 进入小程序,登录获取授权,再启动软件获取ck -建议设置6点到23点之间打卡,时间间隔30分钟以上,否则容易封号 - - - -《《《《《《《《《《制作其他打卡js的说明 - -抓包小程序,然后替换以下内容来制作其他打卡js, -需要替换的内容如下,按顺序替换字符,自己用电脑或者KODE软件替换,KODE下载链接https://apps.apple.com/cn/app/koder-code-editor/id1447489375 - -dkdk.vvrtf.cn -卡神打卡 -cs = 10 -xj = 1 -ksdkurl -i=3 -ksdk - -手动替换 -dkdk\.vvrtf\.cn - -制作其他打卡js的说明》》》》》》》》》》》 - - - - - - -////////////////////////////////////////正文 - - -使用说明: -一,微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/ksdkziye.png 进入小程序,登录获取授权 - -二,然后将hostname复制粘贴进配置文件 - -三,将重写复制到 rewrite_local 下,再进入程序获取ck,建议 放入新建配置片段,获取之后禁用即可 - -功能如下: -1.每日打卡,设置了开关,完成任务不再打卡 -2.打卡币统计, -3.现金统计,自动提现 - - - - - -hostname= dkdk.vvrtf.cn, - -//surge -卡神打卡 = type=http-request,pattern=^https:\/\/dkdk\.vvrtf\.cn\/*,requires-body=1,max-size=0,script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/ksdkziye.js - -//圈x -https:\/\/dkdk\.vvrtf\.cn\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/ksdkziye.js - -//loon -http-request ^https:\/\/dkdk\.vvrtf\.cn\/* script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/ksdkziye.js -, requires-body=true, timeout=10, tag=卡神打卡 - - -*/ - - - -const sy = init()//声明必须 -const notifyInterval = 1; //通知开为1,常关为0 -const logs = 0; // 日志开关 -const jsname = '卡神打卡' -const jbid =1 -const sb='失败,请先关闭,进入程序获取授权' - -const cs = 10;//小程序打卡次数 -const xj = 1;//提现标准 -var tz='' - -const dkurlkey = 'ksdkurl'+jbid -const dkurl = sy.getdata(dkurlkey) - - -let isGetCookie = typeof $request !== 'undefined' -if (isGetCookie) { - GetCookie() -} else { - all() -} - - - -function GetCookie() { -if ($request && $request.url.match(/i=3&/)) -if ($request && $request.url.match(/action=today&contr=index/)) - { - const dkurl = $request.url - sy.log(`dkurl:${dkurl}`) - if (dkurl) sy.setdata(dkurl, dkurlkey) - sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) -} - -} - - -//异步运行 - - -function all() - - { - - for(var i=0;i<3;i++) - { (function(i) { - setTimeout(function() { - - if(i==0) dktj(i); -else if(i==1) dkxj(i); -else if(i==2) showmsg(i); -}, (i + 1) * 1000); - })(i) - - -}} - - - - -//统计 - -function dktj() { -return new Promise((resolve, reject) => { - - const Tjurl = { - url: dkurl - }; - sy.get(Tjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1统计 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ -"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - - - - - -cstj1(obj.info.today.clock); - - - - resolve() - }) - }) - } - - -//次数统计 - - -function cstj1(tjtj) -{ -if (tjtj { - - const Xjurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) - }; - sy.get(Xjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1现金 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - - - - - tz +="💵现金余额"+ -obj.info.member.money+"元"+"\n" - - } - - else tz +=sb+"\n"; - - -xjtj1(obj.info.member.money); - - - - resolve() - }) - }) - } - - - - -//自动提现 - -function dktx() { -return new Promise((resolve, reject) => { - - const Txurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) - }; - sy.get(Txurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1提现 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - -tz +='提现成功,成功提现'+xj+'元'+"\n" - - } - -if(obj.status == 2) { - -tz +='提现失败,原因:'+obj.info+"\n" - - } - - - - - resolve() - }) - }) - } - - - -//现金统计 - - -function xjtj1(tjtj) -{ -if (tjtj>=xj) -dktx() - -} - - - -//打卡 -function dkdk() { -return new Promise((resolve, reject) => { - - const Dkurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) - }; - sy.get(Dkurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1打卡- data: ${data}`) - obj = JSON.parse(data) - - if (obj.status==1){ -tz+='[️打卡任务]:'+'打卡次数+1'+'\n' - - } -else tz +=obj.info+'\n' - - - resolve() - }) - }) - } - - -function showmsg() { - -console.log(tz) - -if (notifyInterval==1) -sy.msg(jsname,'',tz) -} - - -function init() { - isSurge = () => { - return undefined !== this.$httpClient - } - isQuanX = () => { - return undefined !== this.$task - } - getdata = (key) => { - if (isSurge()) return $persistentStore.read(key) - if (isQuanX()) return $prefs.valueForKey(key) - } - setdata = (key, val) => { - if (isSurge()) return $persistentStore.write(key, val) - if (isQuanX()) return $prefs.setValueForKey(key, val) - } - msg = (title, subtitle = '', body = '') => { - if (isSurge()) $notification.post(title, subtitle, body) - if (isQuanX()) $notify(title, subtitle, body) - } - log = (msg) => { - console.log(`${msg}\n`) - } - get = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'GET' - return $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) return $httpClient.get(options, callback) - } - post = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'POST' - $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) $httpClient.post(options, callback) - } - done = (value = {}) => { - $done(value) - } - return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } -} diff --git a/msdkziye.png b/msdkziye.png new file mode 100644 index 000000000..01b423c51 Binary files /dev/null and b/msdkziye.png differ diff --git a/package.json b/package.json new file mode 100644 index 000000000..64ae63399 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "Sunert", + "version": "1.0.0", + "description": "", + "main": "jingxi.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Sunert/Scripts.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/Sunert/Scripts/issues" + }, + "homepage": "https://github.com/Sunert/Scripts#readme", + "dependencies": { + "crypto-js": "^4.0.0", + "got": "^11.7.0", + "http-server": "^0.12.3", + "tough-cookie": "^4.0.0" + } +} diff --git a/qqread.jpg b/qqread.jpg new file mode 100644 index 000000000..878c833c3 Binary files /dev/null and b/qqread.jpg differ diff --git a/qqread.js b/qqread.js new file mode 100644 index 000000000..cefa0f7fe --- /dev/null +++ b/qqread.js @@ -0,0 +1,641 @@ + +/*ziye + +本人github地址 https://github.com/ziye12/JavaScript +转载请备注个名字,谢谢 + +11.25 增加 阅读时长上传,阅读金币,阅读随机金币 +11.25 修复翻倍宝箱不同时领取的问题.增加阅读金币判定 +11.25 修复阅读时长问题,阅读金币问题,请重新获取时长cookie +11.26 随机金币只有一次,故去除,调整修复阅读金币问题,增加时长上传限制 +11.26 增加领取周时长奖励 +11.26 增加结束命令 +11.27 调整通知为,成功开启宝箱再通知 +11.28 修复错误 +12.1 调整通知为15次宝箱通知一次 +12.1 优化通知 +12.2 修复企鹅更新打卡不了的问题 + +⚠️cookie获取方法: + +进 https://m.q.qq.com/a/s/d3eacc70120b9a37e46bad408c0c4c2a 点我的 获取cookie + +进一本书 看 10秒以下 然后退出,获取阅读时长cookie,看书一定不能超过10秒 + +可能某些页面会卡住,但是能获取到cookie,再注释cookie重写就行了! + + + +⚠️宝箱奖励为20分钟一次,自己根据情况设置定时,建议设置11分钟一次 + +hostname=mqqapi.reader.qq.com + +############## 圈x + +#企鹅读书获取cookie +https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js + +#企鹅读书获取时长cookie +https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js + + +############## loon + +//企鹅读书获取cookie +http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js,requires-header=true, tag=企鹅读书获取cookie + +//企鹅读书获取时长cookie +http-request https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid? script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js, requires-header=true, tag=企鹅读书获取时长cookie + + +############## surge + +//企鹅读书获取cookie +企鹅读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/user\/init,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js, requires-header=true + +//企鹅读书获取时长cookie +企鹅读书 = type=http-request,pattern=https:\/\/mqqapi\.reader\.qq\.com\/mqq\/addReadTimeWithBid?,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/qqread.js, requires-header=true + + +*/ + +const jsname='企鹅读书' +const $ = Env(jsname) + +console.log(`\n========= 脚本执行时间(TM):${new Date(new Date().getTime() + 0 * 60 * 60 * 1000).toLocaleString('zh', {hour12: false})} =========\n`) + +const logs = 0; //0为关闭日志,1为开启 +const notifyInterval=3 +//0为关闭通知,1为所有通知,2为宝箱领取成功通知,3为宝箱每15次通知一次 + +const jbid=1//换号则修改这个值,默认账号1 +const dd=1//单次任务延迟,默认1秒 +const TIME=30//单次时长上传限制,默认5分钟 +const maxtime=20//每日上传时长限制,默认20小时 +const wktimess=1200//周奖励领取标准,默认1200分钟 +var tz='' + +const qqreadurlKey = 'qqreadurl'+jbid +const qqreadurlVal = $.getdata(qqreadurlKey) + +const qqreadheaderKey = 'qqreadhd'+jbid +const qqreadheaderVal= $.getdata(qqreadheaderKey) + +const qqreadtimeurlKey = 'qqreadtimeurl'+jbid +const qqreadtimeurlVal = $.getdata(qqreadtimeurlKey) + +const qqreadtimeheaderKey = 'qqreadtimehd'+jbid +const qqreadtimeheaderVal= $.getdata(qqreadtimeheaderKey) + + +//CK运行 +let isGetCookie = typeof $request !== 'undefined' +if (isGetCookie) { + GetCookie() +} else { + all() +} + +function GetCookie() { + + if($request &&$request.url.indexOf("init")>=0) { + + const qqreadurlVal = $request.url +if (qqreadurlVal) $.setdata(qqreadurlVal,qqreadurlKey) + $.log(`[${jsname}] 获取url请求: 成功,qqreadurlVal: ${qqreadurlVal}`) + + const qqreadbodyVal = $request.body + if (qqreadbodyVal) $.setdata(qqreadbodyVal,qqreadbodyKey) + $.log(`[${jsname}] 获取阅读: 成功,qqreadbodyVal: ${qqreadbodyVal}`) + + + const qqreadheaderVal = JSON.stringify($request.headers) + if (qqreadheaderVal) $.setdata(qqreadheaderVal,qqreadheaderKey) + $.log(`[${jsname}] 获取Cookie: 成功,qqreadheaderVal: ${qqreadheaderVal}`) + $.msg(qqreadheaderKey, `获取cookie: 成功🎉`, ``) + +} + +else if($request &&$request.url.indexOf("addReadTimeWithBid?")>=0) { + const qqreadtimeurlVal = $request.url +if (qqreadtimeurlVal) $.setdata(qqreadtimeurlVal,qqreadtimeurlKey) + $.log(`[${jsname}] 获取阅读时长url: 成功,qqreadtimeurlVal: ${qqreadtimeurlVal}`) + +const qqreadtimeheaderVal = JSON.stringify($request.headers) + if (qqreadtimeheaderVal) $.setdata(qqreadtimeheaderVal,qqreadtimeheaderKey) + $.log(`[${jsname}] 获取时长header: 成功,qqreadtimeheaderVal: ${qqreadtimeheaderVal}`) + $.msg(qqreadtimeheaderKey, `获取阅读时长cookie: 成功🎉`, ``) + + } + +} + + + + +function all() + + { + for(var i=0;i<18;i++) + { (function(i) { + setTimeout(function() { + if (i==0) +qqreadinfo();//用户名 + +else if (i==1) +qqreadconfig();//时长查询 + +else if (i==2) +qqreadtask();//任务列表 + +else if (i==3&&task.data.taskList[2].doneFlag==0) +qqreadsign();//金币签到 + +else if (i==4&&task.data.treasureBox.doneFlag==0) +qqreadbox();//宝箱 + +else if (i==5&&task.data.taskList[1].doneFlag==0) +qqreadssr1();//阅读金币1 + +else if (i==6&&config.data.pageParams.todayReadSeconds/3600<=maxtime) +qqreadtime();//上传时长 + +else if (i==7&&task.data.taskList[2].doneFlag==0) +qqreadtake();//阅豆签到 + +else if (i==8&&task.data.taskList[0].doneFlag==0) +qqreaddayread();//阅读任务 + +else if (i==9&&task.data.taskList[1].doneFlag==0) +qqreadssr2();//阅读金币2 + +else if (i==10&&task.data.taskList[3].doneFlag==0) +qqreadvideo();//视频任务 + +else if(i==11&&task.data.taskList[2].doneFlag==0) +qqreadsign2();//签到翻倍 + +else if (i==12&&task.data.treasureBox.videoDoneFlag==0) +qqreadbox2();//宝箱翻倍 + +else if (i==13&&task.data.taskList[1].doneFlag==0) +qqreadssr3();//阅读金币3 + +else if (i==14) +qqreadwktime();//周时长查询 + +else if (i==15) +qqreadpick();//领周时长奖励 + +else if (i==16) +showmsg();//通知 + +else if (i==17) +$.done();//结束 + + } +, (i + 1) *dd*1000); + })(i) + } +} + + +//任务列表 +function qqreadtask() { +return new Promise((resolve, reject) => { + const toqqreadtaskurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/page?fromGuid=', + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadtaskurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 任务列表: ${data}`) + task =JSON.parse(data) +tz+= +'【现金余额】:'+ + (task.data.user.amount/10000).toFixed(2)+ + '元\n'+ + '【第'+ + task.data.invite.issue+ + '期】:时间'+ + task.data.invite.dayRange+ + '\n'+ + ' 已邀请'+ + task.data.invite.inviteCount+ + '人,再邀请'+ + task.data.invite.nextInviteConfig.count+ + '人获得'+ + task.data.invite.nextInviteConfig.amount+ + '金币\n'+ + '【'+ + task.data.taskList[0].title+ + '】:'+ + task.data.taskList[0].amount+ + '金币,'+ + task.data.taskList[0].actionText+ + '\n'+ + '【'+ + task.data.taskList[1].title+ + '】:'+ + task.data.taskList[1].amount+ + '金币,'+ + task.data.taskList[1].actionText+ + '\n'+ + '【'+ + task.data.taskList[2].title+ + '】:'+ + task.data.taskList[2].amount+ + '金币,'+ + task.data.taskList[2].actionText+ + '\n'+ + '【'+ + task.data.taskList[3].title+ + '】:'+ + task.data.taskList[3].amount+ + '金币,'+ + task.data.taskList[3].actionText+ + '\n'+ + '【宝箱任务'+ + (task.data.treasureBox.count+1)+ + '】:'+ + task.data.treasureBox.tipText+ + '\n'+ + '【'+task.data.fans.title+ + '】:'+ + task.data.fans.fansCount+ + '个好友,'+ + task.data.fans.todayAmount+ + '金币\n' + +resolve() + + }) + + }) + } + + +//用户名 +function qqreadinfo() { +return new Promise((resolve, reject) => { + const toqqreadinfourl = { + url: qqreadurlVal, + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadinfourl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 用户名: ${data}`) + info =JSON.parse(data) +tz+= +'【用户信息】:'+info.data.user.nickName+'\n' + +resolve() + }) + }) + } + + +//阅豆签到 +function qqreadtake() { +return new Promise((resolve, reject) => { + const toqqreadtakeurl ={url: 'https://mqqapi.reader.qq.com/mqq/sign_in/user', + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.post(toqqreadtakeurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 阅豆签到: ${data}`) + take =JSON.parse(data) +if (take.data.takeTicket>0) + { +tz+= +'【阅豆签到】:获得'+take.data.takeTicket+'豆\n' +} + +resolve() + }) + }) + } + + +//阅读时长任务 +function qqreadconfig() { +return new Promise((resolve, reject) => { + const toqqreadconfigurl = { + url: 'https://mqqapi.reader.qq.com/mqq/page/config?router=%2Fpages%2Fbook-read%2Findex&options=', + headers: JSON.parse(qqreadheaderVal), + }; + $.get(toqqreadconfigurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 阅读时长查询: ${data}`) + config =JSON.parse(data) + if (config.code==0) +tz+='【时长查询】:今日阅读'+(config.data.pageParams.todayReadSeconds/60).toFixed(0)+'分钟\n' + + +resolve() + }) + }) + } + + +//阅读时长 +function qqreadtime() { +return new Promise((resolve, reject) => { + const toqqreadtimeurl = { + url: qqreadtimeurlVal.replace(/readTime=/g, `readTime=${TIME}`), + headers: JSON.parse(qqreadtimeheaderVal), + + }; + + $.get(toqqreadtimeurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 阅读时长: ${data}`) + time =JSON.parse(data) + if (time.code==0) +tz+='【阅读时长】:上传'+TIME/6+'分钟\n' + + +resolve() + }) + }) + } + + +//阅读金币1 +function qqreadssr1() { +return new Promise((resolve, reject) => { + const toqqreadssr1url = {url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=30`, + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; +if (config.data.pageParams.todayReadSeconds/60>=1){ + + $.get(toqqreadssr1url,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 金币奖励1: ${data}`) + ssr1 =JSON.parse(data) + if (ssr1.data.amount>0) +tz+='【阅读金币1】获得'+ssr1.data.amount+'金币\n' + + +resolve() + }) +} + }) + } + + +//阅读金币2 +function qqreadssr2() { +return new Promise((resolve, reject) => { + const toqqreadssr2url = {url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=300`, + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; +if (config.data.pageParams.todayReadSeconds/60>=5){ + + $.get(toqqreadssr2url,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 金币奖励2: ${data}`) + ssr2 =JSON.parse(data) + if (ssr2.data.amount>0) +tz+='【阅读金币2】获得'+ssr2.data.amount+'金币\n' + +resolve() + }) +} + }) + } + + +//阅读金币3 +function qqreadssr3() { +return new Promise((resolve, reject) => { + const toqqreadssr3url = {url: `https://mqqapi.reader.qq.com/mqq/red_packet/user/read_time?seconds=1800`, + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + +if (config.data.pageParams.todayReadSeconds/60>=30){ + + $.get(toqqreadssr3url,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 金币奖励3: ${data}`) + ssr3 =JSON.parse(data) + if (ssr3.data.amount>0) +tz+='【阅读金币3】获得'+ssr3.data.amount+'金币\n' + + +resolve() + }) +} + }) + } + + +//金币签到 +function qqreadsign() { +return new Promise((resolve, reject) => { + const toqqreadsignurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in/page', + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadsignurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 金币签到: ${data}`) + sign =JSON.parse(data) + +if (sign.data.videoDoneFlag) + { +tz+= +'【金币签到】:获得'+sign.data.todayAmount+'金币\n' + } + + +resolve() + }) + }) + } + + +//金币签到翻倍 +function qqreadsign2() { +return new Promise((resolve, reject) => { + const toqqreadsign2url ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/clock_in_video', + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadsign2url,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 金币签到翻倍: ${data}`) + sign2 =JSON.parse(data) + +if (sign2.code==0) + { +tz+= +'【签到翻倍】:获得'+sign2.data.amount+'金币\n' +} + +resolve() + }) + }) + } + + +//每日阅读 +function qqreaddayread() { +return new Promise((resolve, reject) => { + const toqqreaddayreadurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/read_book', + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreaddayreadurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 每日阅读: ${data}`) + dayread =JSON.parse(data) +if (dayread.code==0) + { +tz+= +'【每日阅读】:获得'+dayread.data.amount+'金币\n' + +} + +resolve() + }) + }) + } + + +//视频奖励 +function qqreadvideo() { +return new Promise((resolve, reject) => { + const toqqreadvideourl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/watch_video', + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadvideourl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 视频奖励: ${data}`) + video =JSON.parse(data) + +if (video.code==0) + { +tz+= +'【视频奖励】:获得'+video.data.amount+'金币\n' + +} + +resolve() + }) + }) + } + + +//宝箱奖励 +function qqreadbox() { +return new Promise((resolve, reject) => { + + const toqqreadboxurl ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box', + + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadboxurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 宝箱奖励: ${data}`) + box =JSON.parse(data) + +if (box.data.count>=0) + { +tz+= +'【宝箱奖励'+box.data.count+'】:获得'+box.data.amount+'金币\n' + + } + +resolve() + }) + }) + } + +//宝箱奖励翻倍 +function qqreadbox2() { +return new Promise((resolve, reject) => { + + const toqqreadbox2url ={url: 'https://mqqapi.reader.qq.com/mqq/red_packet/user/treasure_box_video', + + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadbox2url,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 宝箱奖励翻倍: ${data}`) + box2 =JSON.parse(data) + +if (box2.code==0) + { +tz+= +'【宝箱翻倍】:获得'+box2.data.amount+'金币\n' +} + +resolve() + }) + }) + } + +//本周阅读时长 +function qqreadwktime() { +return new Promise((resolve, reject) => { + + const toqqreadwktimeurl = { + + url: `https://mqqapi.reader.qq.com/mqq/v1/bookShelfInit`, + + headers: JSON.parse(qqreadheaderVal), + + }; + + $.get(toqqreadwktimeurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 阅读时长: ${data}`) + wktime =JSON.parse(data) + if (wktime.code==0) +tz+='【本周阅读时长】:'+wktime.data.readTime+'分钟\n' + +resolve() + }) + }) + } + + +//本周阅读时长奖励任务 +function qqreadpick() { +return new Promise((resolve, reject) => { + const toqqreadpickurl = { + url:`https://mqqapi.reader.qq.com/mqq/pickPackageInit`, + headers: JSON.parse(qqreadheaderVal), + }; + +if (wktime.data.readTime>=wktimess){ + $.get(toqqreadpickurl,(error, response, data) =>{ + if(logs) $.log(`${jsname},周阅读时长奖励任务: ${data}`) + pick =JSON.parse(data) + if (pick.data[7].isPick==true) +tz+='【周时长奖励】:已全部领取\n' +for(let i=0;i{ +var pickid=pick.data[i].readTime +var Packageid=['10','10','20','30','50','80','100','120'] +const toqqreadPackageurl = { + url:`https://mqqapi.reader.qq.com/mqq/pickPackage?readTime=${pickid}`, + headers: JSON.parse(qqreadheaderVal), + timeout:60000}; + $.get(toqqreadPackageurl,(error, response, data) =>{ + if(logs) $.log(`${jsname}, 领周阅读时长: ${data}`) + Package =JSON.parse(data) + if (Package.code==0) +tz+='【周时长奖励'+(i+1)+'】:领取'+Packageid[i]+'阅豆\n' +}) + + },i*100)} + +}) + resolve() + } +}) + } + + + +function showmsg() { +console.log(tz) + +if (notifyInterval==1) +$.msg(jsname,'',tz)//显示所有通知 + +else if (notifyInterval==2&&task.data.treasureBox.doneFlag==0) +$.msg(jsname,'',tz)//宝箱领取成功通知 + +else if (notifyInterval==3&&task.data.treasureBox.count==0||task.data.treasureBox.count==15||task.data.treasureBox.count==30||task.data.treasureBox.count==45||task.data.treasureBox.count==60) +$.msg(jsname,'',tz)//宝箱每15次通知一次 + +} + + +// prettier-ignore +function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),a={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(a,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t){let e={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r)));let h=["","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="];h.push(e),s&&h.push(s),i&&h.push(i),console.log(h.join("\n")),this.logs=this.logs.concat(h)}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):this.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${s} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} diff --git a/tldkziye.js b/qzdkziye.js similarity index 83% rename from tldkziye.js rename to qzdkziye.js index 3cf54bb2c..b3edc4f80 100644 --- a/tldkziye.js +++ b/qzdkziye.js @@ -1,354 +1,351 @@ -/*ziye 陀螺打卡 - - -非常重要!!! - -微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/tldkziye.png 进入小程序,登录获取授权,再启动软件获取ck -建议设置6点到23点之间打卡,时间间隔30分钟以上,否则容易封号 - - - - -2020.9.9 非常重要!!! 原本打卡规定是30分钟一次,打卡速度一定不要太快,否则封号 -2020.9.10 修复重写错误 - - - - -《《《《《《《《《《制作其他打卡js的说明 - -抓包小程序,然后替换以下内容来制作其他打卡js, -需要替换的内容如下,按顺序替换字符,自己用电脑或者KODE软件替换,KODE下载链接https://apps.apple.com/cn/app/koder-code-editor/id1447489375 - -wq.02gk.com -陀螺打卡 -cs = 20 -xj = 1 -tldkurl -i=15 -tldk - -手动替换 -wq\.02gk\.com - -制作其他打卡js的说明》》》》》》》》》》》 - - - - - -////////////////////////////////////////正文 - - -使用说明: - -一,微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/tldkziye.png 进入小程序,登录获取授权 - -二,然后将hostname复制粘贴进配置文件 - -三,将重写复制到 rewrite_local 下,再进入程序获取ck,建议 放入新建配置片段,获取之后禁用即可 - -功能如下: -1.每日打卡,设置了开关,完成任务不再打卡 -2.打卡币统计, -3.现金统计,自动提现 - - - - - - - -hostname= wq.02gk.com, - - - -//surge -陀螺打卡 = type=http-request,pattern=^https:\/\/wq\.02gk\.com\/*,requires-body=1,max-size=0,script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/tldkziye.js - - - -//圈x -https:\/\/wq\.02gk\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/tldkziye.js - - -//loon -http-request ^https:\/\/wq\.02gk\.com\/* script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/tldkziye.js -, requires-body=true, timeout=10, tag=陀螺打卡 - -*/ - - - - - -const sy = init()//声明必须 -const notifyInterval = 1; //通知开为1,常关为0 -const logs = 0; // 日志开关 -const jsname = '陀螺打卡' -const jbid =1 -const sb='失败,请先关闭,进入程序获取授权' - -const cs = 20;//小程序打卡次数 -const xj = 1;//提现标准 -var tz='' - -const dkurlkey = 'tldkurl'+jbid -const dkurl = sy.getdata(dkurlkey) - - -let isGetCookie = typeof $request !== 'undefined' -if (isGetCookie) { - GetCookie() -} else { - all() -} - - - -function GetCookie() { -if ($request && $request.url.match(/i=15&/)) -if ($request && $request.url.match(/action=today&contr=index/)) - { - const dkurl = $request.url - sy.log(`dkurl:${dkurl}`) - if (dkurl) sy.setdata(dkurl, dkurlkey) - sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) -} - -} - - -//异步运行 - - -function all() - - { - - for(var i=0;i<3;i++) - { (function(i) { - setTimeout(function() { - - if(i==0) dktj(i); -else if(i==1) dkxj(i); -else if(i==2) showmsg(i); -}, (i + 1) * 1000); - })(i) - - -}} - - - - -//统计 - -function dktj() { -return new Promise((resolve, reject) => { - - const Tjurl = { - url: dkurl - }; - sy.get(Tjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1统计 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ -"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - - - - - -cstj1(obj.info.today.clock); - - - - resolve() - }) - }) - } - - -//次数统计 - - -function cstj1(tjtj) -{ -if (tjtj { - - const Xjurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) - }; - sy.get(Xjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1现金 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - - - - - tz +="💵现金余额"+ -obj.info.member.money+"元"+"\n" - - } - - else tz +=sb+"\n"; - - -xjtj1(obj.info.member.money); - - - - resolve() - }) - }) - } - - - - -//自动提现 - -function dktx() { -return new Promise((resolve, reject) => { - - const Txurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) - }; - sy.get(Txurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1提现 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - -tz +='提现成功,成功提现'+xj+'元'+"\n" - - } - -if(obj.status == 2) { - -tz +='提现失败,原因:'+obj.info+"\n" - - } - - - - - resolve() - }) - }) - } - - - -//现金统计 - - -function xjtj1(tjtj) -{ -if (tjtj>=xj) -dktx() - -} - - - -//打卡 -function dkdk() { -return new Promise((resolve, reject) => { - - const Dkurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) - }; - sy.get(Dkurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1打卡- data: ${data}`) - obj = JSON.parse(data) - - if (obj.status==1){ -tz+='[️打卡任务]:'+'打卡次数+1'+'\n' - - } -else tz +=obj.info+'\n' - - - resolve() - }) - }) - } - - -function showmsg() { - -console.log(tz) - -if (notifyInterval==1) -sy.msg(jsname,'',tz) -} - - -function init() { - isSurge = () => { - return undefined !== this.$httpClient - } - isQuanX = () => { - return undefined !== this.$task - } - getdata = (key) => { - if (isSurge()) return $persistentStore.read(key) - if (isQuanX()) return $prefs.valueForKey(key) - } - setdata = (key, val) => { - if (isSurge()) return $persistentStore.write(key, val) - if (isQuanX()) return $prefs.setValueForKey(key, val) - } - msg = (title, subtitle = '', body = '') => { - if (isSurge()) $notification.post(title, subtitle, body) - if (isQuanX()) $notify(title, subtitle, body) - } - log = (msg) => { - console.log(`${msg}\n`) - } - get = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'GET' - return $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) return $httpClient.get(options, callback) - } - post = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'POST' - $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) $httpClient.post(options, callback) - } - done = (value = {}) => { - $done(value) - } - return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } -} +/*ziye 圈子打卡 + + +非常重要!!! + +微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/qzdkziye.png 进入小程序,登录获取授权,再启动软件获取ck +建议设置6点到23点之间打卡,时间间隔30分钟以上,否则容易封号 + + + + + + +2020.9.22 + + + + + +《《《《《《《《《《制作其他打卡js的说明 + +抓包小程序,然后替换以下内容来制作其他打卡js, +需要替换的内容如下,按顺序替换字符,自己用电脑或者KODE软件替换,KODE下载链接https://apps.apple.com/cn/app/koder-code-editor/id1447489375 + +wq.inqan.com +圈子打卡 +cs = 20 +xj = 1 +qzdkurl +i=9 +qzdk + +手动替换 +wq\.inqan\.com + +制作其他打卡js的说明》》》》》》》》》》》 + + + + + + +////////////////////////////////////////正文 + + +使用说明: + +一,微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/qzdkziye.png 进入小程序,登录获取授权 + +二,然后将hostname复制粘贴进配置文件 + +三,将重写复制到 rewrite_local 下,再进入程序获取ck,建议 放入新建配置片段,获取之后禁用即可 + + +功能如下: +1.每日打卡,设置了开关,完成任务不再打卡 +2.打卡币统计, +3.现金统计,自动提现 + +hostname= wq.inqan.com, + + + +//surge +圈子打卡 = type=http-request,pattern=^https:\/\/wq\.inqan\.com\/*,requires-body=1,max-size=0,script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/qzdkziye.js + + +//圈x +https:\/\/wq\.inqan\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/qzdkziye.js + +//loon +http-request ^https:\/\/wq\.inqan\.com\/* script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/qzdkziye.js, requires-body=true, timeout=10, tag=圈子打卡 + + + +*/ + + + + + +const sy = init()//声明必须 +const notifyInterval = 1; //通知开为1,常关为0 +const logs = 0; // 日志开关 +const jsname = '圈子打卡' +const jbid =1 +const sb='失败,请先关闭,进入程序获取授权' + +const cs = 20;//小程序打卡次数 +const xj = 1;//提现标准 +var tz='' + +const dkurlkey = 'qzdkurl'+jbid +const dkurl = sy.getdata(dkurlkey) + + +let isGetCookie = typeof $request !== 'undefined' +if (isGetCookie) { + GetCookie() +} else { + all() +} + + + +function GetCookie() { +if ($request && $request.url.match(/i=9&/)) +if ($request && $request.url.match(/action=today&contr=index/)) + { + const dkurl = $request.url + sy.log(`dkurl:${dkurl}`) + if (dkurl) sy.setdata(dkurl, dkurlkey) + sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) +} + +} + + +//异步运行 + + +function all() + + { + + for(var i=0;i<3;i++) + { (function(i) { + setTimeout(function() { + + if(i==0) dktj(i); +else if(i==1) dkxj(i); +else if(i==2) showmsg(i); +}, (i + 1) * 1000); + })(i) + + +}} + + + + +//统计 + +function dktj() { +return new Promise((resolve, reject) => { + + const Tjurl = { + url: dkurl + }; + sy.get(Tjurl,(error, response, data) =>{ + if(logs)sy.log(`${jsname}1统计 - data: ${data}`) + obj = JSON.parse(data) +if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ +"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" + }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" + + + + + +cstj1(obj.info.today.clock); + + + + resolve() + }) + }) + } + + +//次数统计 + + +function cstj1(tjtj) +{ +if (tjtj { + + const Xjurl = { + url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) + }; + sy.get(Xjurl,(error, response, data) =>{ + if(logs)sy.log(`${jsname}1现金 - data: ${data}`) + obj = JSON.parse(data) +if(obj.status == 1) { + + + + + tz +="💵现金余额"+ +obj.info.member.money+"元"+"\n" + + } + + else tz +=sb+"\n"; + + +xjtj1(obj.info.member.money); + + + + resolve() + }) + }) + } + + + + +//自动提现 + +function dktx() { +return new Promise((resolve, reject) => { + + const Txurl = { + url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) + }; + sy.get(Txurl,(error, response, data) =>{ + if(logs)sy.log(`${jsname}1提现 - data: ${data}`) + obj = JSON.parse(data) +if(obj.status == 1) { + +tz +='提现成功,成功提现'+xj+'元'+"\n" + + } + +if(obj.status == 2) { + +tz +='提现失败,原因:'+obj.info+"\n" + + } + + + + + resolve() + }) + }) + } + + + +//现金统计 + + +function xjtj1(tjtj) +{ +if (tjtj>=xj) +dktx() + +} + + + +//打卡 +function dkdk() { +return new Promise((resolve, reject) => { + + const Dkurl = { + url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) + }; + sy.get(Dkurl,(error, response, data) =>{ + if(logs)sy.log(`${jsname}1打卡- data: ${data}`) + obj = JSON.parse(data) + + if (obj.status==1){ +tz+='[️打卡任务]:'+'打卡次数+1'+'\n' + + } +else tz +=obj.info+'\n' + + + resolve() + }) + }) + } + + +function showmsg() { + +console.log(tz) + +if (notifyInterval==1) +sy.msg(jsname,'',tz) +} + + +function init() { + isSurge = () => { + return undefined !== this.$httpClient + } + isQuanX = () => { + return undefined !== this.$task + } + getdata = (key) => { + if (isSurge()) return $persistentStore.read(key) + if (isQuanX()) return $prefs.valueForKey(key) + } + setdata = (key, val) => { + if (isSurge()) return $persistentStore.write(key, val) + if (isQuanX()) return $prefs.setValueForKey(key, val) + } + msg = (title, subtitle = '', body = '') => { + if (isSurge()) $notification.post(title, subtitle, body) + if (isQuanX()) $notify(title, subtitle, body) + } + log = (msg) => { + console.log(`${msg}\n`) + } + get = (options, callback) => { + if (isQuanX()) { + if (typeof options == 'string') options = { url: options } + options['method'] = 'GET' + return $task.fetch(options).then( + (response) => { + response['status'] = response.statusCode + callback(null, response, response.body) + }, + (reason) => callback(reason.error, null, null) + ) + } + if (isSurge()) return $httpClient.get(options, callback) + } + post = (options, callback) => { + if (isQuanX()) { + if (typeof options == 'string') options = { url: options } + options['method'] = 'POST' + $task.fetch(options).then( + (response) => { + response['status'] = response.statusCode + callback(null, response, response.body) + }, + (reason) => callback(reason.error, null, null) + ) + } + if (isSurge()) $httpClient.post(options, callback) + } + done = (value = {}) => { + $done(value) + } + return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } +} \ No newline at end of file diff --git a/qzdkziye.png b/qzdkziye.png new file mode 100644 index 000000000..370c3d7a1 Binary files /dev/null and b/qzdkziye.png differ diff --git a/sendNotify.js b/sendNotify.js new file mode 100644 index 000000000..b0874bb07 --- /dev/null +++ b/sendNotify.js @@ -0,0 +1,255 @@ +const $ = new Env(); +// =======================================微信server酱通知设置区域=========================================== +//此处填你申请的SCKEY. +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入PUSH_KEY) +let SCKEY = ''; + +// =======================================Bark App通知设置区域=========================================== +//此处填你BarkAPP的信息(IP/设备码,例如:https://api.day.app/XXXXXXXX) +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入BARK_PUSH) +let BARK_PUSH = ''; +//BARK app推送铃声,铃声列表去APP查看复制填写 +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入BARK_SOUND , Value输入app提供的铃声名称,例如:birdsong) +let BARK_SOUND = ''; + + +// =======================================telegram机器人通知设置区域=========================================== +//此处填你telegram bot 的Token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入TG_BOT_TOKEN) +let TG_BOT_TOKEN = ''; +//此处填你接收通知消息的telegram用户的id,例如:129xxx206 +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入TG_USER_ID) +let TG_USER_ID = ''; + +// =======================================钉钉机器人通知设置区域=========================================== +//此处填你钉钉 bot 的webhook,例如:5a544165465465645d0f31dca676e7bd07415asdasd +//注:此处设置github action用户填写到Settings-Secrets里面(Name输入DD_BOT_TOKEN) +let DD_BOT_TOKEN = ''; +//密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串 +let DD_BOT_SECRET = ''; + +if (process.env.PUSH_KEY) { + SCKEY = process.env.PUSH_KEY; +} +if (process.env.BARK_PUSH) { + if(process.env.BARK_PUSH.indexOf('https') > -1 || process.env.BARK_PUSH.indexOf('http') > -1) { + //兼容BARK自建用户 + BARK_PUSH = process.env.BARK_PUSH + } else { + BARK_PUSH = `https://api.day.app/${process.env.BARK_PUSH}` + } + if (process.env.BARK_SOUND) { + BARK_SOUND = process.env.BARK_SOUND + } +} else { + if(BARK_PUSH && BARK_PUSH.indexOf('https') === -1 && BARK_PUSH.indexOf('http') === -1) { + //兼容BARK本地用户只填写设备码的情况 + BARK_PUSH = `https://api.day.app/${BARK_PUSH}` + } +} +if (process.env.TG_BOT_TOKEN) { + TG_BOT_TOKEN = process.env.TG_BOT_TOKEN; +} +if (process.env.TG_USER_ID) { + TG_USER_ID = process.env.TG_USER_ID; +} + +if (process.env.DD_BOT_TOKEN) { + DD_BOT_TOKEN = process.env.DD_BOT_TOKEN; + if (process.env.DD_BOT_SECRET) { + DD_BOT_SECRET = process.env.DD_BOT_SECRET; + } +} + +async function sendNotify(text, desp) { + //提供四种通知 + await serverNotify(text, desp); + await BarkNotify(text, desp); + await tgBotNotify(text, desp); + await ddBotNotify(text, desp); +} + +function serverNotify(text, desp) { + return new Promise(resolve => { + if (SCKEY) { + //微信server酱推送通知一个\n不会换行,需要两个\n才能换行,故做此替换 + desp = desp.replace(/[\n\r]/g, '\n\n'); + const options = { + url: `https://sc.ftqq.com/${SCKEY}.send`, + body: `text=${text}&desp=${desp}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n发送通知调用API失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.errno === 0) { + console.log('\nserver酱发送通知消息成功\n') + } else if (data.errno === 1024) { + console.log('\nPUSH_KEY 错误\n') + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else { + console.log('\n您未提供server酱的SCKEY,取消微信推送消息通知\n'); + resolve() + } + }) +} + +function BarkNotify(text, desp) { + return new Promise(resolve => { + if (BARK_PUSH) { + const options = { + url: `${BARK_PUSH}/${encodeURIComponent(text)}/${encodeURIComponent(desp)}?sound=${BARK_SOUND}`, + } + $.get(options, (err, resp, data) => { + try { + if (err) { + console.log('\nBark APP发送通知调用API失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.code === 200) { + console.log('\nBark APP发送通知消息成功\n') + } else { + console.log(`\n${data.message}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }) + } else { + console.log('\n您未提供Bark的APP推送BARK_PUSH,取消Bark推送消息通知\n'); + resolve() + } + }) +} + +function tgBotNotify(text, desp) { + return new Promise(resolve => { + if (TG_BOT_TOKEN && TG_USER_ID) { + const options = { + url: `https://api.telegram.org/bot${TG_BOT_TOKEN}/sendMessage`, + body: `chat_id=${TG_USER_ID}&text=${text}\n\n${desp}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\ntelegram发送通知消息失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.ok) { + console.log('\nTelegram发送通知消息完成。\n') + } else if (data.error_code === 400) { + console.log('\n请主动给bot发送一条消息并检查接收用户ID是否正确。\n') + } else if (data.error_code === 401){ + console.log('\nTelegram bot token 填写错误。\n') + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else { + console.log('\n您未提供telegram机器人推送所需的TG_BOT_TOKEN和TG_USER_ID,取消telegram推送消息通知\n'); + resolve() + } + }) +} +function ddBotNotify(text, desp) { + return new Promise(resolve => { + const options = { + url: `https://oapi.dingtalk.com/robot/send?access_token=${DD_BOT_TOKEN}`, + json: { + "msgtype": "text", + "text": { + "content": ` ${text}\n\n${desp}` + } + }, + headers: { + 'Content-Type': 'application/json' + } + } + if (DD_BOT_TOKEN && DD_BOT_SECRET) { + const crypto = require('crypto'); + const dateNow = Date.now(); + const hmac = crypto.createHmac('sha256', DD_BOT_SECRET); + hmac.update(`${dateNow}\n${DD_BOT_SECRET}`); + const result = encodeURIComponent(hmac.digest('base64')); + options.url = `${options.url}×tamp=${dateNow}&sign=${result}`; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n钉钉发送通知消息失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('\n钉钉发送通知消息完成。\n') + } else { + console.log(`\n${data.errmsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else if (DD_BOT_TOKEN) { + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('\n钉钉发送通知消息失败!!\n') + console.log(err); + } else { + data = JSON.parse(data); + if (data.errcode === 0) { + console.log('\n钉钉发送通知消息完成。\n') + } else { + console.log(`\n${data.errmsg}\n`) + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else { + console.log('\n您未提供钉钉机器人推送所需的DD_BOT_TOKEN或者DD_BOT_SECRET,取消钉钉推送消息通知\n'); + resolve() + } + }) +} +module.exports = { + sendNotify, + BarkNotify, + SCKEY, + BARK_PUSH, + TG_BOT_TOKEN, + TG_USER_ID, + DD_BOT_TOKEN, +}//这里导出SCKEY,BARK_PUSH等通知参数是jd_bean_sign.js处需要 +// prettier-ignore +function Env(t,s){return new class{constructor(t,s){this.name=t,this.data=null,this.dataFile="box.dat",this.logs=[],this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,s),this.log("",`\ud83d\udd14${this.name}, \u5f00\u59cb!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}getScript(t){return new Promise(s=>{$.get({url:t},(t,e,i)=>s(i))})}runScript(t,s){return new Promise(e=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let o=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");o=o?1*o:20,o=s&&s.timeout?s.timeout:o;const[h,a]=i.split("@"),r={url:`http://${a}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:o},headers:{"X-Key":h,Accept:"*/*"}};$.post(r,(t,s,i)=>e(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),s=this.path.resolve(process.cwd(),this.dataFile),e=this.fs.existsSync(t),i=!e&&this.fs.existsSync(s);if(!e&&!i)return{};{const i=e?t:s;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),s=this.path.resolve(process.cwd(),this.dataFile),e=this.fs.existsSync(t),i=!e&&this.fs.existsSync(s),o=JSON.stringify(this.data);e?this.fs.writeFileSync(t,o):i?this.fs.writeFileSync(s,o):this.fs.writeFileSync(t,o)}}lodash_get(t,s,e){const i=s.replace(/\[(\d+)\]/g,".$1").split(".");let o=t;for(const t of i)if(o=Object(o)[t],void 0===o)return e;return o}lodash_set(t,s,e){return Object(t)!==t?t:(Array.isArray(s)||(s=s.toString().match(/[^.[\]]+/g)||[]),s.slice(0,-1).reduce((t,e,i)=>Object(t[e])===t[e]?t[e]:t[e]=Math.abs(s[i+1])>>0==+s[i+1]?[]:{},t)[s[s.length-1]]=e,t)}getdata(t){let s=this.getval(t);if(/^@/.test(t)){const[,e,i]=/^@(.*?)\.(.*?)$/.exec(t),o=e?this.getval(e):"";if(o)try{const t=JSON.parse(o);s=t?this.lodash_get(t,i,""):s}catch(t){s=""}}return s}setdata(t,s){let e=!1;if(/^@/.test(s)){const[,i,o]=/^@(.*?)\.(.*?)$/.exec(s),h=this.getval(i),a=i?"null"===h?null:h||"{}":"{}";try{const s=JSON.parse(a);this.lodash_set(s,o,t),e=this.setval(JSON.stringify(s),i)}catch(s){const h={};this.lodash_set(h,o,t),e=this.setval(JSON.stringify(h),i)}}else e=$.setval(t,s);return e}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,s){return this.isSurge()||this.isLoon()?$persistentStore.write(t,s):this.isQuanX()?$prefs.setValueForKey(t,s):this.isNode()?(this.data=this.loaddata(),this.data[s]=t,this.writedata(),!0):this.data&&this.data[s]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,s=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?$httpClient.get(t,(t,e,i)=>{!t&&e&&(e.body=i,e.statusCode=e.status),s(t,e,i)}):this.isQuanX()?$task.fetch(t).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t)):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,s)=>{try{const e=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();this.ckjar.setCookieSync(e,null),s.cookieJar=this.ckjar}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t)))}post(t,s=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),delete t.headers["Content-Length"],this.isSurge()||this.isLoon())$httpClient.post(t,(t,e,i)=>{!t&&e&&(e.body=i,e.statusCode=e.status),s(t,e,i)});else if(this.isQuanX())t.method="POST",$task.fetch(t).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t));else if(this.isNode()){this.initGotEnv(t);const{url:e,...i}=t;this.got.post(e,i).then(t=>{const{statusCode:e,statusCode:i,headers:o,body:h}=t;s(null,{status:e,statusCode:i,headers:o,body:h},h)},t=>s(t))}}time(t){let s={"M+":(new Date).getMonth()+1,"d+":(new Date).getDate(),"H+":(new Date).getHours(),"m+":(new Date).getMinutes(),"s+":(new Date).getSeconds(),"q+":Math.floor(((new Date).getMonth()+3)/3),S:(new Date).getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,((new Date).getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in s)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?s[e]:("00"+s[e]).substr((""+s[e]).length)));return t}msg(s=t,e="",i="",o){const h=t=>!t||!this.isLoon()&&this.isSurge()?t:"string"==typeof t?this.isLoon()?t:this.isQuanX()?{"open-url":t}:void 0:"object"==typeof t&&(t["open-url"]||t["media-url"])?this.isLoon()?t["open-url"]:this.isQuanX()?t:void 0:void 0;$.isMute||(this.isSurge()||this.isLoon()?$notification.post(s,e,i,h(o)):this.isQuanX()&&$notify(s,e,i,h(o))),this.logs.push("","==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="),this.logs.push(s),e&&this.logs.push(e),i&&this.logs.push(i)}log(...t){t.length>0?this.logs=[...this.logs,...t]:console.log(this.logs.join(this.logSeparator))}logErr(t,s){const e=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();e?$.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t.stack):$.log("",`\u2757\ufe0f${this.name}, \u9519\u8bef!`,t)}wait(t){return new Promise(s=>setTimeout(s,t))}done(t={}){const s=(new Date).getTime(),e=(s-this.startTime)/1e3;this.log("",`\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,s)} \ No newline at end of file diff --git a/wyxdkziye.js b/wyxdkziye.js deleted file mode 100644 index b47e3c771..000000000 --- a/wyxdkziye.js +++ /dev/null @@ -1,347 +0,0 @@ -/*ziye 玩游戏打卡 - -非常重要!!! - -微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/wyxdkziye.png 进入小程序,登录获取授权,再启动软件获取ck -建议设置6点到23点之间打卡,时间间隔30分钟以上,否则容易封号 - - - -2020.9.9 - - -《《《《《《《《《《制作其他打卡js的说明 - -抓包小程序,然后替换以下内容来制作其他打卡js, -需要替换的内容如下,按顺序替换字符,自己用电脑或者KODE软件替换,KODE下载链接https://apps.apple.com/cn/app/koder-code-editor/id1447489375 - -we7.ivee.top -玩游戏打卡 -cs = 5 -xj = 1 -wyxdkurl -i=6 -wyxdk - -手动替换 -we7\.ivee\.top - -制作其他打卡js的说明》》》》》》》》》》》 - - - - - - -////////////////////////////////////////正文 - -使用说明: - -一,微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/wyxdkziye.png 进入小程序,登录获取授权 - -二,然后将hostname复制粘贴进配置文件 - -三,将重写复制到 rewrite_local 下,再进入程序获取ck,建议 放入新建配置片段,获取之后禁用即可 - -功能如下: -1.每日打卡,设置了开关,完成任务不再打卡 -2.打卡币统计, -3.现金统计,自动提现 - - - - - -hostname= we7.ivee.top, - - - -//surge -玩游戏打卡 = type=http-request,pattern=^https:\/\/we7\.ivee\.top\/*,requires-body=1,max-size=0,script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/wyxdkziye.js - - - -//圈x -https:\/\/we7\.ivee\.top\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/wyxdkziye.js - - -//loon -http-request ^https:\/\/we7\.ivee\.top\/* script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/wyxdkziye.js -, requires-body=true, timeout=10, tag=玩游戏打卡 - - -*/ - - - - -const sy = init()//声明必须 -const notifyInterval = 1; //通知开为1,常关为0 -const logs = 0; // 日志开关 -const jsname = '玩游戏打卡' -const jbid =1 -const sb='失败,请先关闭,进入程序获取授权' - -const cs = 5;//小程序打卡次数 -const xj = 1;//提现标准 -var tz='' - -const dkurlkey = 'wyxdkurl'+jbid -const dkurl = sy.getdata(dkurlkey) - - -let isGetCookie = typeof $request !== 'undefined' -if (isGetCookie) { - GetCookie() -} else { - all() -} - - - -function GetCookie() { -if ($request && $request.url.match(/i=6&/)) -if ($request && $request.url.match(/action=today&contr=index/)) - { - const dkurl = $request.url - sy.log(`dkurl:${dkurl}`) - if (dkurl) sy.setdata(dkurl, dkurlkey) - sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) -} - -} - - -//异步运行 - - -function all() - - { - - for(var i=0;i<3;i++) - { (function(i) { - setTimeout(function() { - - if(i==0) dktj(i); -else if(i==1) dkxj(i); -else if(i==2) showmsg(i); -}, (i + 1) * 1000); - })(i) - - -}} - - - - -//统计 - -function dktj() { -return new Promise((resolve, reject) => { - - const Tjurl = { - url: dkurl - }; - sy.get(Tjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1统计 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ -"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - - - - - -cstj1(obj.info.today.clock); - - - - resolve() - }) - }) - } - - -//次数统计 - - -function cstj1(tjtj) -{ -if (tjtj { - - const Xjurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) - }; - sy.get(Xjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1现金 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - - - - - tz +="💵现金余额"+ -obj.info.member.money+"元"+"\n" - - } - - else tz +=sb+"\n"; - - -xjtj1(obj.info.member.money); - - - - resolve() - }) - }) - } - - - - -//自动提现 - -function dktx() { -return new Promise((resolve, reject) => { - - const Txurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) - }; - sy.get(Txurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1提现 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - -tz +='提现成功,成功提现'+xj+'元'+"\n" - - } - -if(obj.status == 2) { - -tz +='提现失败,原因:'+obj.info+"\n" - - } - - - - - resolve() - }) - }) - } - - - -//现金统计 - - -function xjtj1(tjtj) -{ -if (tjtj>=xj) -dktx() - -} - - - -//打卡 -function dkdk() { -return new Promise((resolve, reject) => { - - const Dkurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) - }; - sy.get(Dkurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1打卡- data: ${data}`) - obj = JSON.parse(data) - - if (obj.status==1){ -tz+='[️打卡任务]:'+'打卡次数+1'+'\n' - - } -else tz +=obj.info+'\n' - - - resolve() - }) - }) - } - - -function showmsg() { - -console.log(tz) - -if (notifyInterval==1) -sy.msg(jsname,'',tz) -} - - -function init() { - isSurge = () => { - return undefined !== this.$httpClient - } - isQuanX = () => { - return undefined !== this.$task - } - getdata = (key) => { - if (isSurge()) return $persistentStore.read(key) - if (isQuanX()) return $prefs.valueForKey(key) - } - setdata = (key, val) => { - if (isSurge()) return $persistentStore.write(key, val) - if (isQuanX()) return $prefs.setValueForKey(key, val) - } - msg = (title, subtitle = '', body = '') => { - if (isSurge()) $notification.post(title, subtitle, body) - if (isQuanX()) $notify(title, subtitle, body) - } - log = (msg) => { - console.log(`${msg}\n`) - } - get = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'GET' - return $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) return $httpClient.get(options, callback) - } - post = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'POST' - $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) $httpClient.post(options, callback) - } - done = (value = {}) => { - $done(value) - } - return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } -} diff --git a/xiaoleziye.js b/xiaoleziye.js new file mode 100644 index 000000000..e138f20b2 --- /dev/null +++ b/xiaoleziye.js @@ -0,0 +1,399 @@ + +/*ziye + + +微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/xiaoleziye.png 获取授权 + +开软件,然后进签到,点签到获取cookie + + +10.5 增加更多通知内容 +10.7 修复cookie,获取问题 + + + + +hostname=minapp.xqrobot.net, + +#小乐 +############## 圈x + +https:\/\/minapp\.xqrobot\.net\/* url script-request-body https://raw.githubusercontent.com/ziye12/JavaScript/master/xiaoleziye.js + + +#小乐 +############## loon + + +http-request https:\/\/minapp\.xqrobot\.net\/* script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/xiaoleziye.js, requires-body=true + + +#小乐 +############## surge + +小乐签到 = type=http-request,pattern=https:\/\/minapp\.xqrobot\.net\/*,script-path=https://raw.githubusercontent.com/ziye12/JavaScript/master/xiaoleziye.js, requires-body=true + + + + + +*/ + + + + + +const sy = init() + +const jsname='小乐签到' + +const logs = 0; //0为关闭日志,1为开启 +const notifyInterval=1//0为关闭通知,1为开启 +const jbid=1; + + +const xiaoleurlKey = 'xiaoleurl'+jbid + +const xiaoleheaderKey = 'xiaolehd'+jbid + +const xiaolebodyKey = 'xiaolebd'+jbid + +const xiaoleurlVal = sy.getdata(xiaoleurlKey) + +const xiaoleheaderVal = sy.getdata(xiaoleheaderKey) + +const xiaolebodyVal = sy.getdata(xiaolebodyKey) + + + + + + + + +var tz='' + + +let isGetCookie = typeof $request !== 'undefined' +if (isGetCookie) { + GetCookie() +} else { + all() +} + + + + + +function GetCookie() { + +if ($request.headers){ + + if($request &&$request.url.indexOf("/user.php?mod=sign&")>=0) { + + const xiaoleurlVal = $request.url +if (xiaoleurlVal) sy.setdata(xiaoleurlVal,xiaoleurlKey) + sy.log(`[${jsname}] 获取url请求: 成功,xiaoleurlVal: ${xiaoleurlVal}`) + + const xiaolebodyVal = $request.body + if (xiaolebodyVal) sy.setdata(xiaolebodyVal,xiaolebodyKey) + sy.log(`[${jsname}] 获取阅读: 成功,xiaolebodyVal: ${xiaolebodyVal}`) + +const xiaoleheaderVal = JSON.stringify($request.headers) + if (xiaoleheaderVal) sy.setdata(xiaoleheaderVal,xiaoleheaderKey) + sy.log(`[${jsname}] 获取Cookie: 成功,xiaoleheaderVal: ${xiaoleheaderVal}`) + sy.msg(xiaoleheaderKey, `获取Cookie: 成功🎉`, ``) + + + + + } + + } + +} + + + + + + + + + + + + + function all() + + { + + for(var i=0;i<5;i++) + { (function(i) { + setTimeout(function() { + + if(i==0) xiaoletask(i); + +else if(i==1) xiaoleuser(i); +else if(i==2) xiaoletg(i); +else if(i==3) xiaolesy(i); + + + +else if(i==4) showmsg(i); +}, (i + 1) *1000); + })(i) + + +}} + + + +//签到 +function xiaoletask() { +return new Promise((resolve, reject) => { + + const toxiaoleurl = { + + url: xiaoleurlVal, + + headers: JSON.parse(xiaoleheaderVal), + body: xiaolebodyVal + }; + sy.post(toxiaoleurl,(error, response, data) =>{ + if(logs) sy.log(`${jsname}, 签到信息: ${data}`) + signinfo =JSON.parse(data) + if (signinfo.result==true) + { +tz+='【签到成功】🎉:'+signinfo.show+'\n' +} + +else if (signinfo.result==false) + { +tz+='【重复签到】✖️:'+signinfo.show+'\n' +} + + + + resolve() + }) + }) + } + + + + +function xiaoleuser() { +return new Promise((resolve, reject) => { + + const toxiaoleuserurl = { + url: xiaoleurlVal.replace(/mod=sign/g, `mod=index`), +headers: JSON.parse(xiaoleheaderVal), + + }; + sy.post(toxiaoleuserurl,(error, response, data) =>{ +if(logs) sy.log(`${jsname}, 用户信息: ${data}`) + userinfo =JSON.parse(data) + if (userinfo.result==true) + { +tz+='【'+userinfo.info.userlevel_name+'】👤:'+userinfo.info.user_name+'\n'+ +'【现金余额】🧧:'+userinfo.info.user_money+'元'+'\n'+ +'【今日收益】🧧:'+userinfo.info.jiang_day1+'元'+'\n'+ +'【本月收益】🧧:'+userinfo.info.jiang_month1+'元'+'\n'+ +'【签到任务】⏰:'+userinfo.info.task_list[0].name+'\n'+ +'【签到收益】⏰:'+userinfo.info.task_list[0].money+'\n'+ +'【签到信息】⏰:'+userinfo.info.task_list[0].desc+'\n'+ + + + +'【邀请任务】👥:'+userinfo.info.task_list[1].name+'\n'+ +'【邀请收益】👥:'+userinfo.info.task_list[1].money+'\n'+ +'【邀请信息】👥:'+userinfo.info.task_list[1].desc+'\n' + + +} + + +else if (userinfo.result==false) + { +tz+=userinfo.show +} + + + + resolve() + }) + }) + } + + + + + +function xiaoletg() { +return new Promise((resolve, reject) => { + + const toxiaoletgurl = { + url: xiaoleurlVal.replace(/mod=sign/g, `mod=tg&act=user&level=&page=1`), +headers: JSON.parse(xiaoleheaderVal), + + }; + sy.post(toxiaoletgurl,(error, response, data) =>{ +if(logs) sy.log(`${jsname}, 用户信息: ${data}`) + tginfo =JSON.parse(data) + + + if (tginfo.result==true) + { + + +tz+='【好友信息】😄:'+tginfo.list[0].user_name+'\n'+ +'【注册时间】🤖:'+tginfo.list[0].user_atime+'\n'+ +'【好友等级】🎊:'+tginfo.list[0].userlevel_name+'\n' + + + + +} + + +else if (userinfo.result==false) + { +tz+='错误' +} + + + + resolve() + }) + }) + } + + + + + + + + + + + + + + + + + + +function xiaolesy() { +return new Promise((resolve, reject) => { + + const toxiaolesyurl = { + url: xiaoleurlVal.replace(/mod=sign/g, `mod=tbk_jiang&page=1`), +headers: JSON.parse(xiaoleheaderVal), + + }; + sy.post(toxiaolesyurl,(error, response, data) =>{ +if(logs) sy.log(`${jsname}, 收益信息: ${data}`) + syinfo =JSON.parse(data) +var xx=syinfo.list[0].jiang_text +var tt=xx.substring(xx.indexOf("用户")+2,xx.indexOf("奖励")); + + + + if (syinfo.result==true) + { +tz+= +'【收益信息】👤:'+tt+'\n'+ +'【下单时间】🧧:'+syinfo.list[0].jiang_adate+'\n'+ +'【预计收益】🧧:'+syinfo.list[0].jiang_money+'元'+'\n' + + + + + + +} + + +else if (userinfo.result==false) + { +tz+=userinfo.show +} + + + + resolve() + }) + }) + } + + + + +function showmsg() { + +console.log(tz) + +if (notifyInterval==1) +sy.msg(jsname,'',tz) +} + + +function init() { + isSurge = () => { + return undefined !== this.$httpClient + } + isQuanX = () => { + return undefined !== this.$task + } + getdata = (key) => { + if (isSurge()) return $persistentStore.read(key) + if (isQuanX()) return $prefs.valueForKey(key) + } + setdata = (key, val) => { + if (isSurge()) return $persistentStore.write(key, val) + if (isQuanX()) return $prefs.setValueForKey(key, val) + } + msg = (title, subtitle = '', body = '') => { + if (isSurge()) $notification.post(title, subtitle, body) + if (isQuanX()) $notify(title, subtitle, body) + } + log = (msg) => { + console.log(`${msg}\n`) + } + get = (options, callback) => { + if (isQuanX()) { + if (typeof options == 'string') options = { url: options } + options['method'] = 'GET' + return $task.fetch(options).then( + (response) => { + response['status'] = response.statusCode + callback(null, response, response.body) + }, + (reason) => callback(reason.error, null, null) + ) + } + if (isSurge()) return $httpClient.get(options, callback) + } + post = (options, callback) => { + if (isQuanX()) { + if (typeof options == 'string') options = { url: options } + options['method'] = 'POST' + $task.fetch(options).then( + (response) => { + response['status'] = response.statusCode + callback(null, response, response.body) + }, + (reason) => callback(reason.error, null, null) + ) + } + if (isSurge()) $httpClient.post(options, callback) + } + done = (value = {}) => { + $done(value) + } + return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } +} + diff --git a/xiaoleziye.png b/xiaoleziye.png new file mode 100644 index 000000000..eab575e49 Binary files /dev/null and b/xiaoleziye.png differ diff --git a/ysfdw.js b/ysfdw.js new file mode 100644 index 000000000..7651e453c --- /dev/null +++ b/ysfdw.js @@ -0,0 +1,32 @@ +/*ziye + +如果显示未获取定位,则重启软件多试几次 + + +下载到文件到本地 +放到构造请求里方便修改 (远程不能修改) + +浏览器打开https://raw.githubusercontent.com/ziye12/JavaScript/master/diqudaima.txt,然后搜索地区,修改下面👇的6位数 + + + + +[MITM] +hostname=restapi.amap.com +[rewrite_local] +#云闪付改定位 +^https:\/\/restapi\.amap\.com\/v3\/geocode\/regeo? url script-response-body ysfdw.js + +*/ + +var body = $response.body; // 声明一个变量body并以响应消息体赋值 +var obj = JSON.parse(body); // JSON.parse()将json形式的body转变成对象处理 + + + +obj.regeocode.addressComponent.adcode="540102" + + + +body = JSON.stringify(obj); // 重新打包回json字符串 +$done(body); // 结束修改 diff --git a/yydkziye.js b/yydkziye.js index 1aea69974..00c3dfbe4 100644 --- a/yydkziye.js +++ b/yydkziye.js @@ -13,7 +13,7 @@ 2020.9.8 2020.9.9 修复部分错误 2020.9.13 打卡次数调整为5 - +2020.9.16 打卡次数恢复为10 @@ -25,7 +25,7 @@ www.baimaa.com 音乐打卡 -cs = 5 +cs = 10 xj = 1 yydkurl i=11 @@ -87,7 +87,7 @@ const jsname = '音乐打卡' const jbid =1 const sb='失败,请先关闭,进入程序获取授权' -const cs = 5;//小程序打卡次数 +const cs = 10;//小程序打卡次数 const xj = 1;//提现标准 var tz='' diff --git a/yyzadkziye.js b/yyzadkziye.js deleted file mode 100644 index 45e5bfad4..000000000 --- a/yyzadkziye.js +++ /dev/null @@ -1,338 +0,0 @@ -/*ziye羊羊早安打卡 - -非常重要!!! - -微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/yyzadkziye.png 进入小程序,登录获取授权,再启动软件获取ck -建议设置6点到23点之间打卡,时间间隔30分钟以上,否则容易封号 - - - -《《《《《《《《《《制作其他打卡js的说明 - -抓包小程序,然后替换以下内容来制作其他打卡js, -需要替换的内容如下,按顺序替换字符,自己用电脑或者KODE软件替换,KODE下载链接https://apps.apple.com/cn/app/koder-code-editor/id1447489375 - -ph0001.hezyq.com -羊羊早安打卡 -cs = 40 -xj = 1 -yyzadkurl -i=1146 -yyzadk - -手动替换 -ph0001\.hezyq\.com - -制作其他打卡js的说明》》》》》》》》》》》 - - - - - - -////////////////////////////////////////正文 - - -使用说明: -一,微信扫码 https://raw.githubusercontent.com/ziye12/JavaScript/master/yyzadkziye.png 进入小程序,登录获取授权 - -二,然后将hostname复制粘贴进配置文件 - -三,将重写复制到 rewrite_local 下,再进入程序获取ck,建议 放入新建配置片段,获取之后禁用即可 - -功能如下: -1.每日打卡,设置了开关,完成任务不再打卡 -2.打卡币统计, -3.现金统计,自动提现 - - - - - -hostname= ph0001.hezyq.com, - -//surge -羊羊早安打卡 = type=http-request,pattern=^https:\/\/ph0001\.hezyq\.com\/*,requires-body=1,max-size=0,script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/yyzadkziye.js - -//圈x -https:\/\/ph0001\.hezyq\.com\/* url script-request-header https://raw.githubusercontent.com/ziye12/JavaScript/master/yyzadkziye.js - -//loon -http-request ^https:\/\/ph0001\.hezyq\.com\/* script-path= https://raw.githubusercontent.com/ziye12/JavaScript/master/yyzadkziye.js -, requires-body=true, timeout=10, tag=羊羊早安打卡 - - -*/ - - - -const sy = init()//声明必须 -const notifyInterval = 1; //通知开为1,常关为0 -const logs = 0; // 日志开关 -const jsname = '羊羊早安打卡' -const jbid =1 -const sb='失败,请先关闭,进入程序获取授权' - -const cs = 40;//小程序打卡次数 -const xj = 1;//提现标准 -var tz='' - -const dkurlkey = 'yyzadkurl'+jbid -const dkurl = sy.getdata(dkurlkey) - - -let isGetCookie = typeof $request !== 'undefined' -if (isGetCookie) { - GetCookie() -} else { - all() -} - - - -function GetCookie() { -if ($request && $request.url.match(/i=1146&/)) -if ($request && $request.url.match(/action=today&contr=index/)) - { - const dkurl = $request.url - sy.log(`dkurl:${dkurl}`) - if (dkurl) sy.setdata(dkurl, dkurlkey) - sy.msg(dkurlkey, `获取cookie: 成功🎉`, ``) -} - -} - - -//异步运行 - - -function all() - - { - - for(var i=0;i<3;i++) - { (function(i) { - setTimeout(function() { - - if(i==0) dktj(i); -else if(i==1) dkxj(i); -else if(i==2) showmsg(i); -}, (i + 1) * 1000); - })(i) - - -}} - - - - -//统计 - -function dktj() { -return new Promise((resolve, reject) => { - - const Tjurl = { - url: dkurl - }; - sy.get(Tjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1统计 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1 && obj.info.today.clock < cs){tz+="[账户信息]🎉"+"\n"+ -"今日已打卡"+[Number(obj.info.today.clock) ]+"/"+cs+"次"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - }else tz+="[打卡完成]"+"余"+[Number(obj.info.today. currency)]+"币"+"\n" - - - - - -cstj1(obj.info.today.clock); - - - - resolve() - }) - }) - } - - -//次数统计 - - -function cstj1(tjtj) -{ -if (tjtj { - - const Xjurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=index&contr=my`) - }; - sy.get(Xjurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1现金 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - - - - - tz +="💵现金余额"+ -obj.info.member.money+"元"+"\n" - - } - - else tz +=sb+"\n"; - - -xjtj1(obj.info.member.money); - - - - resolve() - }) - }) - } - - - - -//自动提现 - -function dktx() { -return new Promise((resolve, reject) => { - - const Txurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=withdrawals&contr=my&money=${xj}&payment_code=`) - }; - sy.get(Txurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1提现 - data: ${data}`) - obj = JSON.parse(data) -if(obj.status == 1) { - -tz +='提现成功,成功提现'+xj+'元'+"\n" - - } - -if(obj.status == 2) { - -tz +='提现失败,原因:'+obj.info+"\n" - - } - - - - - resolve() - }) - }) - } - - - -//现金统计 - - -function xjtj1(tjtj) -{ -if (tjtj>=xj) -dktx() - -} - - - -//打卡 -function dkdk() { -return new Promise((resolve, reject) => { - - const Dkurl = { - url: dkurl.replace(/action=today&contr=index/g, `action=sign&contr=clock`) - }; - sy.get(Dkurl,(error, response, data) =>{ - if(logs)sy.log(`${jsname}1打卡- data: ${data}`) - obj = JSON.parse(data) - - if (obj.status==1){ -tz+='[️打卡任务]:'+'打卡次数+1'+'\n' - - } -else tz +=obj.info+'\n' - - - resolve() - }) - }) - } - - -function showmsg() { - -console.log(tz) - -if (notifyInterval==1) -sy.msg(jsname,'',tz) -} - - -function init() { - isSurge = () => { - return undefined !== this.$httpClient - } - isQuanX = () => { - return undefined !== this.$task - } - getdata = (key) => { - if (isSurge()) return $persistentStore.read(key) - if (isQuanX()) return $prefs.valueForKey(key) - } - setdata = (key, val) => { - if (isSurge()) return $persistentStore.write(key, val) - if (isQuanX()) return $prefs.setValueForKey(key, val) - } - msg = (title, subtitle = '', body = '') => { - if (isSurge()) $notification.post(title, subtitle, body) - if (isQuanX()) $notify(title, subtitle, body) - } - log = (msg) => { - console.log(`${msg}\n`) - } - get = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'GET' - return $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) return $httpClient.get(options, callback) - } - post = (options, callback) => { - if (isQuanX()) { - if (typeof options == 'string') options = { url: options } - options['method'] = 'POST' - $task.fetch(options).then( - (response) => { - response['status'] = response.statusCode - callback(null, response, response.body) - }, - (reason) => callback(reason.error, null, null) - ) - } - if (isSurge()) $httpClient.post(options, callback) - } - done = (value = {}) => { - $done(value) - } - return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } -} diff --git a/yyzadkziye.png b/yyzadkziye.png deleted file mode 100644 index 088214a71..000000000 Binary files a/yyzadkziye.png and /dev/null differ