[
  {
    "path": ".dockerignore",
    "content": "node_modules\n\npackage-lock.json\n"
  },
  {
    "path": ".gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Ko-fi username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\nliberapay: # Replace with a single Liberapay username\nissuehunt: # Replace with a single IssueHunt username\notechie: # Replace with a single Otechie username\nlfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry\ncustom: # Replace with up to 4 custom sponsorship URLs e.g., ['https://www.youtube.com/c/DRISOFC', 'link2']\n"
  },
  {
    "path": ".npmignore",
    "content": "node_modules\n\npackage-lock.json\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM fedora:37\n\nRUN sudo dnf -y update &&\\\n    sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm &&\\\n    sudo dnf install -y git ffmpeg ImageMagick nodejs libwebp yarnpkg &&\\\n    sudo dnf clean all -y\n\nWORKDIR /zimbot\n\nCOPY . /zimbot\n\nRUN yarn\n\nCMD [\"node\", \".\"]\n"
  },
  {
    "path": "LICENSE",
    "content": "GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU Affero General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  Developers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\n  A secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate.  Many developers of free software are heartened and\nencouraged by the resulting cooperation.  However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\n  The GNU Affero General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community.  It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server.  Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\n  An older license, called the Affero General Public License and\npublished by Affero, was designed to accomplish similar goals.  This is\na different license, not a version of the Affero GPL, but Affero has\nreleased a new version of the Affero GPL which permits relicensing under\nthis license.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU Affero General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Remote Network Interaction; Use with the GNU General Public License.\n\n  Notwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software.  This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU Affero General Public License from time to time.  Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU Affero General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU Affero General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU Affero General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as published\n    by the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source.  For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code.  There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU AGPL, see\n<https://www.gnu.org/licenses/>.\n"
  },
  {
    "path": "README.md",
    "content": "<<<<<<< HEAD\n<a href=\"https://youtube.com/@zim-bot\"><img src=\"https://img.shields.io/badge/Tutorial-Video-ff0000?style=for-the-badge&logo=youtube&logoColor=ff000000&link=https://youtube.com/@zim-bot\" /><br>\r\n\r\n# ZIM BOT V4\r\n\r\n## ``` This Script is for Everyone Don't sell it at high price ```\r\n## WATCH TUTORIAL NICELY DON'T SKIP [`YOUTUBE`](https://youtube.com/@zim-bot)\r\n\r\n##  ``` Are you Experiencing an error don't hesitate to ask me ``` [`DRIPS`](https://wa.me/+447441437150)\r\n WhatsApp with so Many features using multi device  [`BAILEYS`](https://github.com/adiwajshing/baileys)\r\n \r\n <a href=\"https://youtube.com/@zim-bot\"><img src=\"https://img.shields.io/badge/Tutorial-Video-ff0000?style=for-the-badge&logo=youtube&logoColor=ff000000&link=https://youtube.com/@zim-bot\" /><br>\r\n \r\n ## ```Donate Me```\r\n\r\n- [`Paypal`](https://www.paypal.me/zimbotinc)\r\n </a>\r\n</p>\r\n<p align=\"center\">\r\n<img src=\"https://i.imgur.com/LbmTdhf.gif\" alt=\"animated\"  />\r\n</p>\r\n\r\n## [![WhatsApp Group](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/Kmb2MgOn3voDqrI2khhYDa) [![NodeJs](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/en/)\r\n\r\n> A Fully PRECIOUS COOL BOT BY DRIPS MEMES <br>\r\n> \r\n## DONT FORGET TO GIVE A STAR🌟 AND FORK\r\n\r\n\r\n\r\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/zim-bot/zimbot-v4)\r\n\r\n## BUILD PACKS\r\n\r\n```\r\nhttps://github.com/jonathanong/heroku-buildpack-ffmpeg-latest\r\nhttps://github.com/clhuang/heroku-buildpack-webp-binaries.git\r\n\r\n```\r\n[![Run on Repl.it](https://repl.it/badge/github/quiec/whatsAlfa)](https://replit.com/@ReinhardTuna/ZIM-BOT-INC-QR?v=1)\r\n<img src=\"https://fontmeme.com/permalink/220116/0c42dc0b64931810388ba399da55e927.png\" alt=\"backwoods-logo-font\" border=\"0\"></a>  \r\n\r\n ##  > THIS BOT CODED BY DRIPS MEMES ZIM BOT INC \r\n\r\n\r\n## >  FOLLOW STEPS BELOW FOR INSTALLATION\r\n\r\n## >  THIS BOT IT USE MULTI DEVICE BAILEYS\r\n\r\n## > CHANGE LINK IN LIB FOLDER 📁📂 CHANGE HERE [`DOCKERFILE`](https://github.com/zim-bot/zimbot-v4/edit/main/lib/Dockerfile)\r\n\r\n``` \r\napt install nodejs\r\n\r\napt install git\r\n\r\napt update && apt upgrade\r\n\r\ngit clone https://github.com/zim-bot/zimbot-v4\r\n \r\ncd zimbot-v4\r\n\r\n \r\nrm -r session.json\r\n\r\nnode --expose-gc index.js\r\n\r\necho scan the qr code and enjoy bot\r\n\r\n```\r\n\r\n\r\n## JOIN MY WHATSAPP GROUP\r\n\r\n# [![WhatsApp Group](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/EFsb8RCXV4jLEFk4eAcA1A)\r\n\r\n## MY PERSONAL CHAT\r\n\r\n# [![WhatsApp Group](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://wa.me/27634090203)\r\n\r\n\r\n# > THANKS FOR CHOOSING ZIM BOT WE APPRECIATE YOU FOR YOUR SUPPORT\r\n \r\n=======\n<a href=\"https://youtu.be/v1UL3fB3bK0\"><img src=\"https://img.shields.io/badge/Tutorial-Video-ff0000?style=for-the-badge&logo=youtube&logoColor=ff000000&link=\"https://youtu.be/v1UL3fB3bK0\" /><br>\n\n# ZIM BOT V4 NEW UPDATE\n\n## ``` This Script is for Everyone Don't sell it at high price ```\n## WATCH TUTORIAL NICELY DON'T SKIP [`YOUTUBE`](https://youtu.be/v1UL3fB3bK0)\n\n##  ``` Are you Experiencing an error don't hesitate to ask me ``` [`DRIPS`](https://wa.me/263776558634)\n WhatsApp with so Many features using multi device  [`BAILEYS`](https://github.com/adiwajshing/baileys)\n \n <a href=\"https://youtu.be/v1UL3fB3bK0\"><img src=\"https://img.shields.io/badge/Tutorial-Video-ff0000?style=for-the-badge&logo=youtube&logoColor=ff000000&link=https://youtu.be/v1UL3fB3bK0\" /><br>\n \n ## ```Donate Me```\n\n- [`Paypal`](https://www.paypal.me/zimbotinc)\n </a>\n</p>\n<p align=\"center\">\n<img src=\"https://i.imgur.com/LbmTdhf.gif\" alt=\"animated\"  />\n</p>\n\n## [![WhatsApp Group](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/Kmb2MgOn3voDqrI2khhYDa) [![NodeJs](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/en/)\n\n> A Fully PRECIOUS COOL BOT BY BLESSED TUNA (DRIPS BLENNIE MEMES) <br>\n> \n## DONT FORGET TO GIVE A STAR🌟 AND FORK\n\n\n\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/zim-bot/zimbot-v4)\n\n## BUILD PACKS\n\n```\nhttps://github.com/jonathanong/heroku-buildpack-ffmpeg-latest\nhttps://github.com/clhuang/heroku-buildpack-webp-binaries.git\n\n```\n[![Run on Repl.it](https://repl.it/badge/github/quiec/whatsAlfa)](https://replit.com/@ReinhardTuna/ZIM-BOT-INC-QR?v=1)\n<img src=\"https://fontmeme.com/permalink/220116/0c42dc0b64931810388ba399da55e927.png\" alt=\"backwoods-logo-font\" border=\"0\"></a>  \n\n ##  > THIS BOT CODED BY DRIPS MEMES ZIM BOT INC \n\n\n## >  FOLLOW STEPS BELOW FOR INSTALLATION\n\n## >  THIS BOT IT USE MULTI DEVICE BAILEYS\n\n\n``` \napt install nodejs\n\napt install git\n\napt update && apt upgrade\n\ngit clone https://github.com/zim-bot/zimbot-v4\n \ncd zimbot-v4\n\nyarn\n \n\nnode --expose-gc index.js\n\necho scan the qr code and enjoy bot\n\n```\n\n\n## JOIN MY WHATSAPP GROUP\n\n# [![WhatsApp Group](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/Kmb2MgOn3voDqrI2khhYDa)\n\n## MY PERSONAL CHAT\n\n# [![WhatsApp Group](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://wa.me/263776558634)\n\n\n# > THANKS FOR CHOOSING ZIM BOT WE APPRECIATE YOU FOR YOUR SUPPORT\n \n>>>>>>> d904ae1d (new update)\n"
  },
  {
    "path": "Zimbot/gtts.js",
    "content": "const request = require('request');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst async = require('async');\nconst fs = require('fs');\nconst MultiStream = require('multistream');\nconst fakeUa = require('fake-useragent');\n\nconst GOOGLE_TTS_URL = 'http://translate.google.com/translate_tts';\nconst MAX_CHARS = 100;\nconst LANGUAGES = {\n  'af': 'Afrikaans',\n  'sq': 'Albanian',\n  'ar': 'Arabic',\n  'hy': 'Armenian',\n  'ca': 'Catalan',\n  'zh': 'Chinese',\n  'zh-cn': 'Chinese (Mandarin/China)',\n  'zh-tw': 'Chinese (Mandarin/Taiwan)',\n  'zh-yue': 'Chinese (Cantonese)',\n  'hr': 'Croatian',\n  'cs': 'Czech',\n  'da': 'Danish',\n  'nl': 'Dutch',\n  'en': 'English',\n  'en-au': 'English (Australia)',\n  'en-uk': 'English (United Kingdom)',\n  'en-us': 'English (United States)',\n  'eo': 'Esperanto',\n  'fi': 'Finnish',\n  'fr': 'French',\n  'de': 'German',\n  'el': 'Greek',\n  'ht': 'Haitian Creole',\n  'hi': 'Hindi',\n  'hu': 'Hungarian',\n  'is': 'Icelandic',\n  'id': 'Indonesian',\n  'it': 'Italian',\n  'ja': 'Japanese',\n  'ko': 'Korean',\n  'la': 'Latin',\n  'lv': 'Latvian',\n  'mk': 'Macedonian',\n  'no': 'Norwegian',\n  'pl': 'Polish',\n  'pt': 'Portuguese',\n  'pt-br': 'Portuguese (Brazil)',\n  'ro': 'Romanian',\n  'ru': 'Russian',\n  'sr': 'Serbian',\n  'sk': 'Slovak',\n  'es': 'Spanish',\n  'es-es': 'Spanish (Spain)',\n  'es-us': 'Spanish (United States)',\n  'sw': 'Swahili',\n  'sv': 'Swedish',\n  'ta': 'Tamil',\n  'th': 'Thai',\n  'tr': 'Turkish',\n  'vi': 'Vietnamese',\n  'cy': 'Welsh'\n}\n\nfunction Text2Speech(_lang, _debug) {\n  var lang = _lang || 'en';\n  var debug = _debug || false;\n  lang = lang.toLowerCase();\n\n  if (!LANGUAGES[lang])\n    throw new Error('Language not supported: ' + lang);\n\n  var getArgs = getArgsFactory(lang);\n\n  return {\n    tokenize: tokenize,\n    createServer: (port) => createServer(getArgs, port),\n    stream: (text) => stream(getArgs, text),\n    save: (filepath, text, callback) => save(getArgs, filepath, text, callback)\n  }\n}\n\nfunction save(getArgs, filepath, text, callback) {\n  var text_parts = tokenize(text);\n  var total = text_parts.length;\n  async.eachSeries(text_parts, function(part, cb) {\n    var index = text_parts.indexOf(part);\n    var headers = getHeader();\n    var args = getArgs(part, index, total);\n    var fullUrl = GOOGLE_TTS_URL + args;\n\n    var writeStream = fs.createWriteStream(filepath, {\n      flags: index > 0 ? 'a' : 'w'\n    });\n    request({\n        uri: fullUrl,\n        headers: headers,\n        method: 'GET'\n      })\n      .pipe(writeStream);\n    writeStream.on('finish', cb);\n    writeStream.on('error', cb);\n  }, callback);\n}\n\nfunction stream(getArgs, text) {\n  var text_parts = tokenize(text);\n  var total = text_parts.length;\n\n  return MultiStream(text_parts.map(function(part, index) {\n    var headers = getHeader();\n    var args = getArgs(part, index, total);\n    var fullUrl = GOOGLE_TTS_URL + args\n\n    return request({\n      uri: fullUrl,\n      headers: headers,\n      method: 'GET'\n    });\n  }));\n}\n\nfunction getHeader() {\n  var headers = {\n    \"User-Agent\": fakeUa()\n  };\n  //console.log('headers', headers);\n  return headers;\n}\n\nfunction getArgsFactory(lang){\n  return function (text, index, total) {\n    var textlen = text.length;\n    var encodedText = encodeURIComponent(text);\n    var language = lang || 'en';\n    return `?ie=UTF-8&tl=${language}&q=${encodedText}&total=${total}&idx=${index}&client=tw-ob&textlen=${textlen}`\n  }\n}\n\nfunction tokenize(text) {\n  var text_parts = [];\n  if (!text)\n    throw new Error('No text to speak');\n\n  var punc = '¡!()[]¶;|°•—«»≤≥«»‹›\\n ';\n  var punc_list = punc.split('').map(function(char) {\n    return escapeStringRegexp(char);\n  });\n\n  var pattern = punc_list.join('|');\n  var parts = text.split(new RegExp(pattern));\n  parts = parts.filter(p => p.length > 0);\n\n  var output = [];\n  var i = 0;\n  for (let p of parts) {\n    if (!output[i]) {\n      output[i] = '';\n    }\n    if (output[i].length + p.length < MAX_CHARS) {\n      output[i] += ' ' + p;\n    } else {\n      i++;\n      output[i] = p;\n    }\n  }\n  output[0] = output[0].substr(1);\n  return output;\n}\n\nfunction createServer(getArgs, port) {\n  var http = require(\"http\");\n  var url = require('url');\n\n  var server = http.createServer(function(req, res) {\n    var queryData = url.parse(req.url, true).query;\n    var argsCallback = getArgs;\n    if (queryData && queryData.lang && LANGUAGES[queryData.lang]) {\n      argsCallback = getArgsFactory(queryData.lang);\n    }\n    if (queryData && queryData.text) {\n      res.writeHead(200, {'Content-Type': 'audio/mpeg'});\n      stream(argsCallback, queryData.text).pipe(res);\n    } else {\n      console.log(req.headers);\n      res.writeHead(200, {'Content-Type': 'application/json'});\n      res.end(JSON.stringify({\n        code: -1,\n        message: `Missing text. Please try: ${req.headers.host}?text=your+text`\n      }))\n    }\n  });\n\n  server.listen(port);\n  console.log(\"Text-to-Speech Server running on \" + port);\n}\n\nmodule.exports = Text2Speech;"
  },
  {
    "path": "Zimbot/index.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst cheerio = require('cheerio')\nconst fetch = require('node-fetch')\nconst axios = require('axios')\nconst _math = require('mathjs')\nconst _url = require('url')\nconst request = require('request');\nconst randomarray = async (array) => {\n\treturn array[Math.floor(Math.random() * array.length)]\n}\nexports.rexdl = async (query) => {\n\treturn new Promise((resolve) => {\n\t\taxios.get('https://rexdl.com/?s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst jenis = [];\n\t\t\t\tconst date = [];\n\t\t\t\tconst desc = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst result = [];\n\t\t\t\t$('div > div.post-content').each(function(a, b) {\n\t\t\t\t\tjudul.push($(b).find('h2.post-title > a').attr('title'))\n\t\t\t\t\tjenis.push($(b).find('p.post-category').text())\n\t\t\t\t\tdate.push($(b).find('p.post-date').text())\n\t\t\t\t\tdesc.push($(b).find('div.entry.excerpt').text())\n\t\t\t\t\tlink.push($(b).find('h2.post-title > a').attr('href'))\n\t\t\t\t})\n\t\t\t\t$('div > div.post-thumbnail > a > img').each(function(a, b) {\n\t\t\t\t\tthumb.push($(b).attr('data-src'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tkategori: jenis[i],\n\t\t\t\t\t\tupload_date: date[i],\n\t\t\t\t\t\tdeskripsi: desc[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t})\n}\nexports.rexdldown = async (link) => {\n\treturn new Promise((resolve) => {\n\t\taxios.get(link)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\tconst url = [];\n\t\t\t\tconst link_name = [];\n\t\t\t\tconst judul = $('#page > div > div > div > section > div:nth-child(2) > article > div > h1.post-title').text();\n\t\t\t\tconst plink = $('#page > div > div > div > section > div:nth-child(2) > center:nth-child(3) > h2 > span > a').attr('href')\n\t\t\t\taxios.get(plink)\n\t\t\t\t\t.then(({\n\t\t\t\t\t\tdata\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\t\t\t$$('#dlbox > ul.dl > a > li > span').each(function(a, b) {\n\t\t\t\t\t\t\tdeta = $$(b).text();\n\t\t\t\t\t\t\tlink_name.push(deta)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t$$('#dlbox > ul.dl > a').each(function(a, b) {\n\t\t\t\t\t\t\turl.push($$(b).attr('href'))\n\t\t\t\t\t\t})\n\t\t\t\t\t\tfor (let i = 0; i < link_name.length; i++) {\n\t\t\t\t\t\t\tlink.push({\n\t\t\t\t\t\t\t\tlink_name: link_name[i],\n\t\t\t\t\t\t\t\turl: url[i]\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\tjudul: judul,\n\t\t\t\t\t\t\tupdate_date: $$('#dlbox > ul.dl-list > li.dl-update > span:nth-child(2)').text(),\n\t\t\t\t\t\t\tversion: $$('#dlbox > ul.dl-list > li.dl-version > span:nth-child(2)').text(),\n\t\t\t\t\t\t\tsize: $$('#dlbox > ul.dl-list > li.dl-size > span:nth-child(2)').text(),\n\t\t\t\t\t\t\tdownload: link\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t})\n\t})\n}\nexports.merdekanews = async () => {\n\treturn new Promise((resolve) => {\n\t\taxios.get('https://www.merdeka.com/peristiwa/')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst upload = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst result = [];\n\t\t\t\t$('#mdk-content-center > div.inner-content > ul > li > div').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).find('h3 > a').text();\n\t\t\t\t\tjudul.push(deta)\n\t\t\t\t\tlink.push('https://www.merdeka.com' + $(b).find('h3 > a').attr('href'))\n\t\t\t\t\tupload.push($(b).find('div > span').text())\n\t\t\t\t\tthumb.push($(b).find('div > a > img').attr('src'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tupload_date: upload[i],\n\t\t\t\t\t\tlink: link[i],\n\t\t\t\t\t\tthumb: thumb[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t})\n}\nexports.metronews = async () => {\n\treturn new Promise((resolve) => {\n\t\taxios.get('https://www.metrotvnews.com/news')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst desc = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst tag = [];\n\t\t\t\tconst result = [];\n\t\t\t\t$('body > div.container.layout > section.content > div > div.item-list.pt-20 > div > div > h3 > a').each(function(a, b) {\n\t\t\t\t\tjudul.push($(b).attr('title'))\n\t\t\t\t})\n\t\t\t\t$('body > div.container.layout > section.content > div > div.item-list.pt-20 > div > div > p').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tdesc.push(deta)\n\t\t\t\t})\n\t\t\t\t$('body > div.container.layout > section.content > div > div.item-list.pt-20 > div > div > h3 > a').each(function(a, b) {\n\t\t\t\t\tlink.push('https://www.metrotvnews.com' + $(b).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('body > div.container.layout > section.content > div > div.item-list.pt-20 > div > img').each(function(a, b) {\n\t\t\t\t\tthumb.push($(b).attr('src').replace('w=300', 'w=720'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tlink: link[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tdeskripsi: desc[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t})\n}\nexports.asupanfilm = async (query) => {\n\treturn new Promise((resolve) => {\n\t\taxios.get(`https://asupanfilm.link/?search=${query}`)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst desc = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst result = [];\n\t\t\t\t$('body > div > div > div.card-body.p-2 > ul > li > div > div > h6 > a').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tjudul.push(deta)\n\t\t\t\t})\n\t\t\t\t$('body > div > div > div.card-body.p-2 > ul > li > div > div').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text()\n\t\t\t\t\tdesc.push(deta.split('   ')[2])\n\t\t\t\t})\n\t\t\t\t$('body > div > div > div.card-body.p-2 > ul > li > div > img').each(function(a, b) {\n\t\t\t\t\tthumb.push($(b).attr('src').split('UX67_CR0,0,67,98_AL_')[0])\n\t\t\t\t})\n\t\t\t\t$('body > div > div > div.card-body.p-2 > ul > li > div > div > h6 > a').each(function(a, b) {\n\t\t\t\t\tlink.push('https://asupanfilm.link/' + $(b).attr('href'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tdeskripsi: desc[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t})\n}\nexports.asupanfilminfo = async (link) => {\n\treturn new Promise((resolve) => {\n\t\taxios.get(link)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst info = {\n\t\t\t\t\tjudul: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(1)').text(),\n\t\t\t\t\tthumb: $('body > div > div.card.mb-3 > div.card-footer > a').attr('href'),\n\t\t\t\t\talurcerita_imdb: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(2)').text().split(' Alur Cerita IMDb: ')[1],\n\t\t\t\t\talurcerita_tmdb: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(3)').text().split(' Alur Cerita TMDb: ')[1],\n\t\t\t\t\tdireksi: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(4)').text().split(' Direksi: ')[1],\n\t\t\t\t\tpemeran: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(5)').text().split(' Pemeran: ')[1],\n\t\t\t\t\tkategori: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(6)').text().split(' Kategori: ')[1],\n\t\t\t\t\tnegara: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(7)').text().split(' Negara: ')[1],\n\t\t\t\t\ttahun_rilis: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(8)').text().split(' Tahun Rilis: ')[1],\n\t\t\t\t\tdurasi: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(9)').text().split(' Durasi: ')[1],\n\t\t\t\t\tskor: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(10)').text().split(' Skor: ')[1],\n\t\t\t\t\tkualitas: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(11)').text().split(' Kualitas: ')[1],\n\t\t\t\t\tjenis: $('body > div > div:nth-child(5) > div.card-body.p-2 > ul > li:nth-child(12)').text().split(' Jenis: ')[1]\n\t\t\t\t}\n\t\t\t\tresolve(info)\n\t\t\t})\n\t})\n}\nexports.stickersearch = async (query) => {\n\treturn new Promise((resolve) => {\n\t\taxios.get(`https://getstickerpack.com/stickers?query=${query}`)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\t$('#stickerPacks > div > div:nth-child(3) > div > a').each(function(a, b) {\n\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t})\n\t\t\t\trand = link[Math.floor(Math.random() * link.length)]\n\t\t\t\taxios.get(rand)\n\t\t\t\t\t.then(({\n\t\t\t\t\t\tdata\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\t\t\tconst url = [];\n\t\t\t\t\t\t$$('#stickerPack > div > div.row > div > img').each(function(a, b) {\n\t\t\t\t\t\t\turl.push($$(b).attr('src').split('&d=')[0])\n\t\t\t\t\t\t})\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\ttitle: $$('#intro > div > div > h1').text(),\n\t\t\t\t\t\t\tauthor: $$('#intro > div > div > h5 > a').text(),\n\t\t\t\t\t\t\tauthor_link: $$('#intro > div > div > h5 > a').attr('href'),\n\t\t\t\t\t\t\tsticker: url\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t})\n\t})\n}\nexports.randomtt = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://brainans.com/search?query=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst luser = $('#search-container > div:nth-child(1) > div.content__text > a').attr('href')\n\t\t\t\taxios.get('https://brainans.com/' + luser)\n\t\t\t\t\t.then(({\n\t\t\t\t\t\tdata\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\t\t\tvlink = [];\n\t\t\t\t\t\t$$('#videos_container > div > div.content__list.grid.infinite_scroll.cards > div > div > a').each(function(a, b) {\n\t\t\t\t\t\t\tvlink.push('https://brainans.com/' + $$(b).attr('href'))\n\t\t\t\t\t\t})\n\t\t\t\t\t\trandomarray(vlink).then(res => {\n\t\t\t\t\t\t\taxios.get(res)\n\t\t\t\t\t\t\t\t.then(({\n\t\t\t\t\t\t\t\t\tdata\n\t\t\t\t\t\t\t\t}) => {\n\t\t\t\t\t\t\t\t\tconst $$$ = cheerio.load(data)\n\t\t\t\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\t\t\t\tusername: $$$('#card-page > div > div.row > div > div > div > div > div.main__user-desc.align-self-center.ml-2 > a').text(),\n\t\t\t\t\t\t\t\t\t\tcaption: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.main__list').text(),\n\t\t\t\t\t\t\t\t\t\tlike_count: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div > div:nth-child(1) > span').text(),\n\t\t\t\t\t\t\t\t\t\tcomment_count: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.content__btns.d-flex > div:nth-child(2) > span').text(),\n\t\t\t\t\t\t\t\t\t\tshare_count: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.content__btns.d-flex > div:nth-child(3) > span').text(),\n\t\t\t\t\t\t\t\t\t\tvideourl: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.main__image-container > div > video').attr('src')\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t})\n\t})\n}\nexports.trendtwit = (country) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`https://getdaytrends.com/${country}/`)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst hastag = [];\n\t\t\t\tconst tweet = [];\n\t\t\t\tconst result = [];\n\t\t\t\t$('#trends > table.table.table-hover.text-left.clickable.ranking.trends.wider.mb-0 > tbody > tr> td.main > a').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text()\n\t\t\t\t\thastag.push(deta)\n\t\t\t\t})\n\t\t\t\t$('#trends > table.table.table-hover.text-left.clickable.ranking.trends.wider.mb-0 > tbody > tr > td.main > div > span').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text()\n\t\t\t\t\ttweet.push(deta)\n\t\t\t\t})\n\t\t\t\tnum = 1\n\t\t\t\tfor (let i = 0; i < hastag.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\trank: num,\n\t\t\t\t\t\thastag: hastag[i],\n\t\t\t\t\t\ttweet: tweet[i]\n\t\t\t\t\t})\n\t\t\t\t\tnum += 1\n\t\t\t\t}\n\t\t\t\tresolve({\n\t\t\t\t\tcountry: country,\n\t\t\t\t\tresult: result\n\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.pinterest = async (querry) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\taxios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\n\t\t\theaders: {\n\t\t\t\t\"cookie\": \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n\t\t\t}\n\t\t}).then(({\n\t\t\tdata\n\t\t}) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = [];\n\t\t\tconst hasil = [];\n\t\t\t$('div > a').get().map(b => {\n\t\t\t\tconst link = $(b).find('img').attr('src')\n\t\t\t\tresult.push(link)\n\t\t\t});\n\t\t\tresult.forEach(v => {\n\t\t\t\tif (v == undefined) return\n\t\t\t\thasil.push(v.replace(/236/g, '736'))\n\t\t\t})\n\t\t\thasil.shift();\n\t\t\tresolve(hasil)\n\t\t})\n\t})\n}\nexports.zerochan = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://www.zerochan.net/search?q=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst result = [];\n\t\t\t\tconst id = [];\n\t\t\t\t$('#thumbs2 > li > a > img').each(function(a, b) {\n\t\t\t\t\tif (!$(b).attr('alt').startsWith('https://static.zerochan.net/')) {\n\t\t\t\t\t\tjudul.push($(b).attr('alt'))\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t$('#thumbs2 > li > a').each(function(a, b) {\n\t\t\t\t\tid.push($(b).attr('href'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push('https://s1.zerochan.net/' + judul[i].replace(/\\ /g, '.') + '.600.' + id[i].split('/')[1] + '.jpg')\n\t\t\t\t}\n\t\t\t\tresolve({\n\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\tresult: result\n\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.happymoddl = (link) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(link)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\tconst jlink = [];\n\t\t\t\tconst result = [];\n\t\t\t\tconst title = $('body > div > div.container-left > section:nth-child(1) > div > h1').text()\n\t\t\t\tconst info = $('body > div > div.container-left > section:nth-child(1) > div > ul').text()\n\t\t\t\t$('body > div.container-row.clearfix.container-wrap.pdt-font-container > div.container-left > section:nth-child(1) > div > div:nth-child(3) > div > p > a').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tjlink.push(deta)\n\t\t\t\t\tif ($(b).attr('href').startsWith('/')) {\n\t\t\t\t\t\tlink.push('https://happymod.com' + $(b).attr('href'))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\ttitle: jlink[i],\n\t\t\t\t\t\tdl_link: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconsole.log(link)\n\t\t\t\tresolve({\n\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\ttitle: title,\n\t\t\t\t\tinfo: info.replace(/\\t|- /g, ''),\n\t\t\t\t\tdownload: link\n\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.goredl = async (link) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\taxios.get(link)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\tconst format = {\n\t\t\t\t\tjudul: $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > header > h1').text(),\n\t\t\t\t\tviews: $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > span > span.count').text(),\n\t\t\t\t\tcomment: $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > a > span.count').text(),\n\t\t\t\t\tlink: $$('video > source').attr('src')\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.chara = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`https://www.anime-planet.com/characters/all?name=${query}&sort=likes&order=desc`)\n\t\t\t.then((data) => {\n\t\t\t\tconst $ = cheerio.load(data.data)\n\t\t\t\tconst linkp = $('#siteContainer > table > tbody > tr:nth-child(1) > td.tableCharInfo > a').attr('href')\n\t\t\t\taxios.get('https://www.anime-planet.com' + linkp)\n\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t//console.log(data.data)\n\t\t\t\t\t\tconst $$ = cheerio.load(data.data)\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tnama: $$('#siteContainer > h1').text(),\n\t\t\t\t\t\t\tgender: $$('#siteContainer > section.pure-g.entryBar > div:nth-child(1)').text().split('\\nGender: ')[1],\n\t\t\t\t\t\t\twarna_rambut: $$('#siteContainer > section.pure-g.entryBar > div:nth-child(2)').text().split('\\nHair Color: ')[1],\n\t\t\t\t\t\t\twarna_mata: $$('#siteContainer > section:nth-child(11) > div > div > div > div > div:nth-child(1) > div').text().split('\\n')[1],\n\t\t\t\t\t\t\tgol_darah: $$('#siteContainer > section:nth-child(11) > div > div > div > div > div:nth-child(2) > div').text().split('\\n')[1],\n\t\t\t\t\t\t\tbirthday: $$('#siteContainer > section:nth-child(11) > div > div > div > div > div:nth-child(3) > div').text().split('\\n')[1],\n\t\t\t\t\t\t\tdescription: $$('#siteContainer > section:nth-child(11) > div > div > div > div:nth-child(1) > p').text()\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.anime = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`https://www.anime-planet.com/anime/all?name=${query}`)\n\t\t\t.then((data) => {\n\t\t\t\tconst $ = cheerio.load(data.data)\n\t\t\t\tconst result = [];\n\t\t\t\tconst judul = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\t$('#siteContainer > ul.cardDeck.cardGrid > li > a > h3').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tjudul.push(deta)\n\t\t\t\t})\n\t\t\t\t$('#siteContainer > ul.cardDeck.cardGrid > li > a').each(function(a, b) {\n\t\t\t\t\tlink.push('https://www.anime-planet.com' + $(b).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('#siteContainer > ul.cardDeck.cardGrid > li > a > div.crop > img').each(function(a, b) {\n\t\t\t\t\tthumb.push('https://www.anime-planet.com' + $(b).attr('src'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.manga = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`https://www.anime-planet.com/manga/all?name=${query}`)\n\t\t\t.then((data) => {\n\t\t\t\tconst $ = cheerio.load(data.data)\n\t\t\t\tconst result = [];\n\t\t\t\tconst judul = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\t$('#siteContainer > ul.cardDeck.cardGrid > li > a > h3').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tjudul.push(deta)\n\t\t\t\t})\n\t\t\t\t$('#siteContainer > ul.cardDeck.cardGrid > li > a').each(function(a, b) {\n\t\t\t\t\tlink.push('https://www.anime-planet.com' + $(b).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('#siteContainer > ul.cardDeck.cardGrid > li > a > div.crop > img').each(function(a, b) {\n\t\t\t\t\tthumb.push('https://www.anime-planet.com' + $(b).attr('src'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.job = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`https://www.jobstreet.co.id/id/job-search/${query}-jobs/`)\n\t\t\t.then((data) => {\n\t\t\t\t//console.log(data.data)\n\t\t\t\tconst $ = cheerio.load(data.data)\n\t\t\t\tconst job = [];\n\t\t\t\tconst perusahaan = [];\n\t\t\t\tconst daerah = [];\n\t\t\t\tconst format = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst upload = [];\n\t\t\t\t$('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > div > h1 > a > div').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tjob.push(deta)\n\t\t\t\t})\n\t\t\t\t$('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > div > span').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tperusahaan.push(deta)\n\t\t\t\t})\n\t\t\t\t$('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > span > span').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tdaerah.push(deta)\n\t\t\t\t})\n\t\t\t\t$('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > div > h1 > a').each(function(a, b) {\n\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div.sx2jih0.zcydq852.zcydq842.zcydq872.zcydq862.zcydq82a.zcydq832.zcydq8d2.zcydq8cq > div.sx2jih0.zcydq832.zcydq8cq.zcydq8c6.zcydq882 > time > span').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tupload.push(deta)\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < job.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjob: job[i],\n\t\t\t\t\t\tperusahaan: perusahaan[i],\n\t\t\t\t\t\tdaerah: daerah[i],\n\t\t\t\t\t\tupload: upload[i],\n\t\t\t\t\t\tlink_Detail: 'https://www.jobstreet.co.id' + link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(format)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.anoboys = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://anoboy.media/?s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst format = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst judul = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst uptime = [];\n\t\t\t\t$('body > div.wrap > div.container > div.column-content > a > div > div.amvj > h3').each(function(a, b) {\n\t\t\t\t\tjud = $(b).text();\n\t\t\t\t\tjudul.push(jud)\n\t\t\t\t})\n\t\t\t\t$('body > div.wrap > div.container > div.column-content > a > div > div.jamup').each(function(c, d) {\n\t\t\t\t\tupt = $(d).text();\n\t\t\t\t\tuptime.push(upt)\n\t\t\t\t})\n\t\t\t\t$('body > div.wrap > div.container > div.column-content > a > div > amp-img').each(function(e, f) {\n\t\t\t\t\tthumb.push($(f).attr('src'))\n\t\t\t\t})\n\t\t\t\t$('body > div.wrap > div.container > div.column-content > a').each(function(g, h) {\n\t\t\t\t\tlink.push($(h).attr('href'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: data.status,\n\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.anoboydl = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tresolve({\n\t\t\t\t\tjudul: $('body > div.wrap > div.container > div.pagetitle > h1').text(),\n\t\t\t\t\tuptime: $('body > div.wrap > div.container > div.pagetitle > div > div > span > time').text(),\n\t\t\t\t\tdirect_link: $('#tontonin > source').attr('src'),\n\t\t\t\t\tmforu: {\n\t\t\t\t\t\tSD: $('#colomb > p > span:nth-child(1) > a:nth-child(3)').attr('href'),\n\t\t\t\t\t\tHD: $('#colomb > p > span:nth-child(1) > a:nth-child(5)').attr('href')\n\t\t\t\t\t},\n\t\t\t\t\tzippy: {\n\t\t\t\t\t\tSD: $('#colomb > p > span:nth-child(3) > a:nth-child(3)').attr('href'),\n\t\t\t\t\t\tHD: $('#colomb > p > span:nth-child(3) > a:nth-child(5)').attr('href')\n\t\t\t\t\t},\n\t\t\t\t\tmirror: {\n\t\t\t\t\t\tSD: $('#colomb > p > span:nth-child(5) > a:nth-child(3)').attr('href'),\n\t\t\t\t\t\tHD: $('#colomb > p > span:nth-child(5) > a:nth-child(5)').attr('href')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.film = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`http://167.99.71.200/?s=${query}`)\n\t\t\t.then((data) => {\n\t\t\t\tconst $ = cheerio.load(data.data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst genre = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst format = [];\n\t\t\t\t$('div > div.item-article > header > h2 > a').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tjudul.push(deta)\n\t\t\t\t})\n\t\t\t\t$('div > div.item-article > header > div.gmr-movie-on').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tgenre.push(deta)\n\t\t\t\t})\n\t\t\t\t$('div > div.content-thumbnail.text-center > a > img').each(function(a, b) {\n\t\t\t\t\tthumb.push($(b).attr('src'))\n\t\t\t\t})\n\t\t\t\t$('div > div.item-article > header > div.gmr-watch-movie > a').each(function(a, b) {\n\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tgenre: genre[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink_nonton: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (format == '') {\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tstatus: 'error'\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tresolve(format)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.webtoons = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`https://www.webtoons.com/id/search?keyword=${query}`)\n\t\t\t.then((data) => {\n\t\t\t\tconst $ = cheerio.load(data.data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst genre = [];\n\t\t\t\tconst author = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst likes = [];\n\t\t\t\tconst format = [];\n\t\t\t\t$('#content > div > ul > li > a > div > p.subj').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tjudul.push(deta)\n\t\t\t\t})\n\t\t\t\t$('div > ul > li > a > span').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tgenre.push(deta)\n\t\t\t\t})\n\t\t\t\t$('div > ul > li > a > div > p.author').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tauthor.push(deta)\n\t\t\t\t})\n\t\t\t\t$('div > ul > li > a > div > p.grade_area > em').each(function(a, b) {\n\t\t\t\t\tdeta = $(b).text();\n\t\t\t\t\tlikes.push(deta)\n\t\t\t\t})\n\t\t\t\t$('#content > div > ul > li > a').each(function(a, b) {\n\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tgenre: genre[i],\n\t\t\t\t\t\tauthor: author[i],\n\t\t\t\t\t\tlikes: likes[i],\n\t\t\t\t\t\tlink: 'https://www.webtoons.com' + link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (likes == '') {\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tstatus: `${query} tidak dapat ditemukan/error`\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tresolve(format)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.soundcloud = async (link) => {\n\treturn new Promise((resolve, reject) => {\n\t\tconst options = {\n\t\t\tmethod: 'POST',\n\t\t\turl: \"https://www.klickaud.co/download.php\",\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tformData: {\n\t\t\t\t'value': link,\n\t\t\t\t'2311a6d881b099dc3820600739d52e64a1e6dcfe55097b5c7c649088c4e50c37': '710c08f2ba36bd969d1cbc68f59797421fcf90ca7cd398f78d67dfd8c3e554e3'\n\t\t\t}\n\t\t};\n\t\trequest(options, async function(error, response, body) {\n\t\t\tconsole.log(body)\n\t\t\tif (error) throw new Error(error);\n\t\t\tconst $ = cheerio.load(body)\n\t\t\tresolve({\n\t\t\t\tjudul: $('#header > div > div > div.col-lg-8 > div > table > tbody > tr > td:nth-child(2)').text(),\n\t\t\t\tdownload_count: $('#header > div > div > div.col-lg-8 > div > table > tbody > tr > td:nth-child(3)').text(),\n\t\t\t\tthumb: $('#header > div > div > div.col-lg-8 > div > table > tbody > tr > td:nth-child(1) > img').attr('src'),\n\t\t\t\tlink: $('#dlMP3').attr('onclick').split(`downloadFile('`)[1].split(`',`)[0]\n\t\t\t});\n\t\t});\n\t})\n}\nexports.igdl = async (link) => {\n\treturn new Promise((resolve, reject) => {\n\t\tconst options = {\n\t\t\tmethod: 'POST',\n\t\t\turl: \"https://downloadgram.org/#downloadhere\",\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tformData: {\n\t\t\t\turl: link,\n\t\t\t\tsubmit: ''\n\t\t\t}\n\t\t};\n\t\trequest(options, async function(error, response, body) {\n\t\t\tif (error) throw new Error(error);\n\t\t\tconst $ = cheerio.load(body)\n\t\t\tconst result = [];\n\t\t\t$('#downloadBox > a').each(function(a, b) {\n\t\t\t\tresult.push($(b).attr('href'))\n\t\t\t})\n\t\t\tresolve(result);\n\t\t});\n\t})\n}\nexports.igstalk = async (username) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\tlet {\n\t\t\tdata\n\t\t} = await axios('https://www.instagram.com/' + username + '/?__a=1', {\n\t\t\t'method': 'GET',\n\t\t\t'headers': {\n\t\t\t\t'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',\n\t\t\t\t'cookie': 'isi sendiri cokie igeh'\n\t\t\t}\n\t\t})\n\t\tlet user = data.graphql.user\n\t\tlet json = {\n\t\t\tcreator: '\"hardianto02_',\n\t\t\tstatus: 'ok',\n\t\t\tcode: 200,\n\t\t\tusername: user.username,\n\t\t\tfullname: user.full_name,\n\t\t\tverified: user.is_verified,\n\t\t\tvideo_count_reel: user.highlight_reel_count,\n\t\t\tfollowers: user.edge_followed_by.count,\n\t\t\tfollow: user.edge_follow.count,\n\t\t\tis_bussines: user.is_business_account,\n\t\t\tis_professional: user.is_professional_account,\n\t\t\tcategory: user.category_name,\n\t\t\tthumbnail: user.profile_pic_url_hd,\n\t\t\tbio: user.biography,\n\t\t\tinfo_account: data.seo_category_infos\n\t\t}\n\t\tresolve(json)\n\t})\n}\nexports.gempa = async () => {\n\treturn new Promise(async (resolve, reject) => {\n\t\taxios.get('https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst drasa = [];\n\t\t\t\t$('table > tbody > tr:nth-child(1) > td:nth-child(6) > span').get().map((rest) => {\n\t\t\t\t\tdir = $(rest).text();\n\t\t\t\t\tdrasa.push(dir.replace('\\t', ' '))\n\t\t\t\t})\n\t\t\t\tteks = ''\n\t\t\t\tfor (let i = 0; i < drasa.length; i++) {\n\t\t\t\t\tteks += drasa[i] + '\\n'\n\t\t\t\t}\n\t\t\t\tconst rasa = teks\n\t\t\t\tconst format = {\n\t\t\t\t\timagemap: $('div.modal-body > div > div:nth-child(1) > img').attr('src'),\n\t\t\t\t\tmagnitude: $('table > tbody > tr:nth-child(1) > td:nth-child(4)').text(),\n\t\t\t\t\tkedalaman: $('table > tbody > tr:nth-child(1) > td:nth-child(5)').text(),\n\t\t\t\t\twilayah: $('table > tbody > tr:nth-child(1) > td:nth-child(6) > a').text(),\n\t\t\t\t\twaktu: $('table > tbody > tr:nth-child(1) > td:nth-child(2)').text(),\n\t\t\t\t\tlintang_bujur: $('table > tbody > tr:nth-child(1) > td:nth-child(3)').text(),\n\t\t\t\t\tdirasakan: rasa\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.cariresep = async (query) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\taxios.get('https://resepkoki.id/?s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\tconst judul = [];\n\t\t\t\tconst upload_date = [];\n\t\t\t\tconst format = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\t$('body > div.all-wrapper.with-animations > div:nth-child(5) > div > div.archive-posts.masonry-grid-w.per-row-2 > div.masonry-grid > div > article > div > div.archive-item-media > a').each(function(a, b) {\n\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('body > div.all-wrapper.with-animations > div:nth-child(5) > div > div.archive-posts.masonry-grid-w.per-row-2 > div.masonry-grid > div > article > div > div.archive-item-content > header > h3 > a').each(function(c, d) {\n\t\t\t\t\tjud = $(d).text();\n\t\t\t\t\tjudul.push(jud)\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.bacaresep = async (query) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\taxios.get(query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst abahan = [];\n\t\t\t\tconst atakaran = [];\n\t\t\t\tconst atahap = [];\n\t\t\t\t$('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-details > div > div.single-recipe-ingredients-nutritions > div > table > tbody > tr > td:nth-child(2) > span.ingredient-name').each(function(a, b) {\n\t\t\t\t\tbh = $(b).text();\n\t\t\t\t\tabahan.push(bh)\n\t\t\t\t})\n\t\t\t\t$('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-details > div > div.single-recipe-ingredients-nutritions > div > table > tbody > tr > td:nth-child(2) > span.ingredient-amount').each(function(c, d) {\n\t\t\t\t\tuk = $(d).text();\n\t\t\t\t\tatakaran.push(uk)\n\t\t\t\t})\n\t\t\t\t$('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-content > div.single-steps > table > tbody > tr > td.single-step-description > div > p').each(function(e, f) {\n\t\t\t\t\tth = $(f).text();\n\t\t\t\t\tatahap.push(th)\n\t\t\t\t})\n\t\t\t\tconst judul = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-title.title-hide-in-desktop > h1').text();\n\t\t\t\tconst waktu = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-meta > ul > li.single-meta-cooking-time > span').text();\n\t\t\t\tconst hasil = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-meta > ul > li.single-meta-serves > span').text().split(': ')[1]\n\t\t\t\tconst level = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-meta > ul > li.single-meta-difficulty > span').text().split(': ')[1]\n\t\t\t\tconst thumb = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-details > div > div.single-main-media > img').attr('src')\n\t\t\t\ttbahan = 'bahan\\n'\n\t\t\t\tfor (let i = 0; i < abahan.length; i++) {\n\t\t\t\t\ttbahan += abahan[i] + ' ' + atakaran[i] + '\\n'\n\t\t\t\t}\n\t\t\t\tttahap = 'tahap\\n'\n\t\t\t\tfor (let i = 0; i < atahap.length; i++) {\n\t\t\t\t\tttahap += atahap[i] + '\\n\\n'\n\t\t\t\t}\n\t\t\t\tconst tahap = ttahap\n\t\t\t\tconst bahan = tbahan\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tjudul: judul,\n\t\t\t\t\t\twaktu_masak: waktu,\n\t\t\t\t\t\thasil: hasil,\n\t\t\t\t\t\ttingkat_kesulitan: level,\n\t\t\t\t\t\tthumb: thumb,\n\t\t\t\t\t\tbahan: bahan.split('bahan\\n')[1],\n\t\t\t\t\t\tlangkah_langkah: tahap.split('tahap\\n')[1]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.searchgore = async (query) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\taxios.get('https://seegore.com/?s=' + query).then(dataa => {\n\t\t\tconst $$$ = cheerio.load(dataa)\n\t\t\tpagina = $$$('#main > div.container.main-container > div > div.bb-col.col-content > div > div > div > div > nav > ul > li:nth-child(4) > a').text();\n\t\t\trand = Math.floor(Math.random() * pagina) + 1\n\t\t\tif (rand === 1) {\n\t\t\t\tslink = 'https://seegore.com/?s=' + query\n\t\t\t} else {\n\t\t\t\tslink = `https://seegore.com/page/${rand}/?s=${query}`\n\t\t\t}\n\t\t\taxios.get(slink)\n\t\t\t\t.then(({\n\t\t\t\t\tdata\n\t\t\t\t}) => {\n\t\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\t\tconst link = [];\n\t\t\t\t\tconst judul = [];\n\t\t\t\t\tconst uploader = [];\n\t\t\t\t\tconst format = [];\n\t\t\t\t\tconst thumb = [];\n\t\t\t\t\t$('#post-items > li > article > div.content > header > h2 > a').each(function(a, b) {\n\t\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t\t})\n\t\t\t\t\t$('#post-items > li > article > div.content > header > h2 > a').each(function(c, d) {\n\t\t\t\t\t\tjud = $(d).text();\n\t\t\t\t\t\tjudul.push(jud)\n\t\t\t\t\t})\n\t\t\t\t\t$('#post-items > li > article > div.content > header > div > div.bb-cat-links > a').each(function(e, f) {\n\t\t\t\t\t\tupl = $(f).text();\n\t\t\t\t\t\tuploader.push(upl)\n\t\t\t\t\t})\n\t\t\t\t\t$('#post-items > li > article > div.post-thumbnail > a > div > img').each(function(g, h) {\n\t\t\t\t\t\tthumb.push($(h).attr('src'))\n\t\t\t\t\t})\n\t\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\t\tformat.push({\n\t\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\t\tuploader: uploader[i],\n\t\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\tconst result = {\n\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\tdata: format\n\t\t\t\t\t}\n\t\t\t\t\tresolve(result)\n\t\t\t\t})\n\t\t\t\t.catch(reject)\n\t\t})\n\t})\n}\nexports.randomgore = async () => {\n\treturn new Promise(async (resolve, reject) => {\n\t\trand = Math.floor(Math.random() * 218) + 1\n\t\trandvid = Math.floor(Math.random() * 16) + 1\n\t\tif (rand === 1) {\n\t\t\tslink = 'https://seegore.com/gore/'\n\t\t} else {\n\t\t\tslink = `https://seegore.com/gore/page/${rand}/`\n\t\t}\n\t\taxios.get(slink)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\tconst result = [];\n\t\t\t\tconst username = [];\n\t\t\t\tconst linkp = $(`#post-items > li:nth-child(${randvid}) > article > div.post-thumbnail > a`).attr('href')\n\t\t\t\tconst thumbb = $(`#post-items > li:nth-child(${randvid}) > article > div.post-thumbnail > a > div > img`).attr('src')\n\t\t\t\taxios.get(linkp)\n\t\t\t\t\t.then(({\n\t\t\t\t\t\tdata\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\t\t\tconst format = {\n\t\t\t\t\t\t\tjudul: $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > header > h1').text(),\n\t\t\t\t\t\t\tviews: $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > span > span.count').text(),\n\t\t\t\t\t\t\tcomment: $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > a > span.count').text() == '' ? 'Tidak ada komentar' : $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > a > span.count').text(),\n\t\t\t\t\t\t\tthumb: thumbb,\n\t\t\t\t\t\t\tlink: $$('video > source').attr('src')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst result = {\n\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\tdata: format\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(result)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(reject)\n\t\t\t})\n\t})\n}\nexports.textmakervid = async (text1, style) => {\n\tif (style == 'poly') {\n\t\tvar tstyle = 0\n\t} else if (style == 'bold') {\n\t\tvar tstyle = 1\n\t} else if (style == 'glowing') {\n\t\tvar tstyle = 2\n\t} else if (style == 'colorful') {\n\t\tvar tstyle = 3\n\t} else if (style == 'army') {\n\t\tvar tstyle = 4\n\t} else if (style == 'retro') {\n\t\tvar tstyle = 5\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst options = {\n\t\t\tmethod: 'POST',\n\t\t\turl: \"https://photooxy.com/other-design/make-a-video-that-spells-your-name-237.html\",\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tformData: {\n\t\t\t\toptionNumber_0: tstyle,\n\t\t\t\ttext_1: text1,\n\t\t\t\tlogin: 'OK'\n\t\t\t}\n\t\t};\n\t\trequest(options, async function(error, response, body) {\n\t\t\tif (error) throw new Error(error);\n\t\t\tconst $ = cheerio.load(body)\n\t\t\tconst result = {\n\t\t\t\turl: $('div.btn-group > a').attr('href')\n\t\t\t}\n\t\t\tresolve(result);\n\t\t});\n\t})\n}\nexports.apkmirror = async (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://www.apkmirror.com/?post_type=app_release&searchtype=apk&s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst nama = [];\n\t\t\t\tconst developer = [];\n\t\t\t\tconst lupdate = [];\n\t\t\t\tconst size = [];\n\t\t\t\tconst down = [];\n\t\t\t\tconst version = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst format = [];\n\t\t\t\t$('#content > div > div > div.appRow > div > div > div > h5 > a').each(function(a, b) {\n\t\t\t\t\tnem = $(b).text();\n\t\t\t\t\tnama.push(nem)\n\t\t\t\t})\n\t\t\t\t$('#content > div > div > div.appRow > div > div > div > a').each(function(c, d) {\n\t\t\t\t\tdev = $(d).text();\n\t\t\t\t\tdeveloper.push(dev)\n\t\t\t\t})\n\t\t\t\t$('#content > div > div > div.appRow > div > div > div > div.downloadIconPositioning > a').each(function(e, f) {\n\t\t\t\t\tlink.push('https://www.apkmirror.com' + $(f).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('#content > div > div > div.infoSlide > p > span.infoslide-value').each(function(g, h) {\n\t\t\t\t\tdata = $(h).text();\n\t\t\t\t\tif (data.match('MB')) {\n\t\t\t\t\t\tsize.push(data)\n\t\t\t\t\t} else if (data.match('UTC')) {\n\t\t\t\t\t\tlupdate.push(data)\n\t\t\t\t\t} else if (!isNaN(data) || data.match(',')) {\n\t\t\t\t\t\tdown.push(data)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tversion.push(data)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: nama[i],\n\t\t\t\t\t\tdev: developer[i],\n\t\t\t\t\t\tsize: size[i],\n\t\t\t\t\t\tversion: version[i],\n\t\t\t\t\t\tuploaded_on: lupdate[i],\n\t\t\t\t\t\tdownload_count: down[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Hanya Orang Biasa',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.sfiledown = async (link) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(link)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst nama = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(2) > b').text();\n\t\t\t\tconst size = $('#download').text().split('Download File')\n\t\t\t\tconst desc = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(7) > center > h1').text();\n\t\t\t\tconst type = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(4) > a:nth-child(3)').text();\n\t\t\t\tconst upload = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(5)').text();\n\t\t\t\tconst uploader = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(4) > a:nth-child(2)').text();\n\t\t\t\tconst download = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(6)').text();\n\t\t\t\tconst link = $('#download').attr('href')\n\t\t\t\tother = link.split('/')[7].split('&is')[0]\n\t\t\t\tconst format = {\n\t\t\t\t\tjudul: nama + other.substr(other.length - 6).split('.')[1],\n\t\t\t\t\tsize: size[1].split('(')[1].split(')')[0],\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmime: other.substr(other.length - 6).split('.')[1],\n\t\t\t\t\tdesc: desc,\n\t\t\t\t\tuploader: uploader,\n\t\t\t\t\tuploaded: upload.split('\\n - Uploaded: ')[1],\n\t\t\t\t\tdownload_count: download.split(' - Downloads: ')[1],\n\t\t\t\t\tlink: link\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Hanya Orang Biasa',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.zippydl = async (link) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\taxios.get(link)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst nama = $('#lrbox > div:nth-child(2) > div:nth-child(1) > font:nth-child(4)').text();\n\t\t\t\tconst size = $('#lrbox > div:nth-child(2) > div:nth-child(1) > font:nth-child(7)').text();\n\t\t\t\tconst upload = $('#lrbox > div:nth-child(2) > div:nth-child(1) > font:nth-child(10)').text();\n\t\t\t\tconst getlink = async (u) => {\n\t\t\t\t\tconsole.log('⏳  ' + `Get Page From : ${u}`)\n\t\t\t\t\tconst zippy = await axios({\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\turl: u\n\t\t\t\t\t}).then(res => res.data).catch(err => false)\n\t\t\t\t\tconsole.log('Done')\n\t\t\t\t\tconst $ = cheerio.load(zippy)\n\t\t\t\t\tif (!$('#dlbutton').length) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tmessage: $('#lrbox>div').first().text().trim()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log('⏳  ' + 'Fetch Link Download...')\n\t\t\t\t\tconst url = _url.parse($('.flagen').attr('href'), true)\n\t\t\t\t\tconst urlori = _url.parse(u)\n\t\t\t\t\tconst key = url.query['key']\n\t\t\t\t\tlet time;\n\t\t\t\t\tlet dlurl;\n\t\t\t\t\ttry {\n\t\t\t\t\t\ttime = /var b = ([0-9]+);$/gm.exec($('#dlbutton').next().html())[1]\n\t\t\t\t\t\tdlurl = urlori.protocol + '//' + urlori.hostname + '/d/' + key + '/' + (2 + 2 * 2 + parseInt(time)) + '3/DOWNLOAD'\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\ttime = _math.evaluate(/ \\+ \\((.*)\\) \\+ /gm.exec($('#dlbutton').next().html())[1])\n\t\t\t\t\t\tdlurl = urlori.protocol + '//' + urlori.hostname + '/d/' + key + '/' + (time) + '/DOWNLOAD'\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log('Done')\n\t\t\t\t\treturn dlurl\n\t\t\t\t}\n\t\t\t\tgetlink(link).then(res => {\n\t\t\t\t\t//_(timet) \n\t\t\t\t\tvar result = {\n\t\t\t\t\t\tcreator: 'Hanya Orang Biasa',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tJudul: nama,\n\t\t\t\t\t\t\tsize: size,\n\t\t\t\t\t\t\tuploaded: upload,\n\t\t\t\t\t\t\tlink: res\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresolve(result)\n\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.android1 = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://an1.com/tags/MOD/?story=' + query + '&do=search&subaction=search')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst nama = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst rating = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst developer = [];\n\t\t\t\tconst format = [];\n\t\t\t\t$('body > div.page > div > div > div.app_list > div > div > div.cont > div.data > div.name > a > span').each(function(a, b) {\n\t\t\t\t\tnem = $(b).text();\n\t\t\t\t\tnama.push(nem)\n\t\t\t\t})\n\t\t\t\t$('div > ul > li.current-rating').each(function(c, d) {\n\t\t\t\t\trat = $(d).text();\n\t\t\t\t\trating.push(rat)\n\t\t\t\t})\n\t\t\t\t$('body > div.page > div > div > div.app_list > div > div > div.cont > div.data > div.developer.xsmf.muted').each(function(e, f) {\n\t\t\t\t\tdev = $(f).text();\n\t\t\t\t\tdeveloper.push(dev)\n\t\t\t\t})\n\t\t\t\t$('body > div.page > div > div > div.app_list > div > div > div.img > img').each(function(g, h) {\n\t\t\t\t\tthumb.push($(h).attr('src'))\n\t\t\t\t})\n\t\t\t\t$('body > div.page > div > div > div.app_list > div > div > div.cont > div.data > div.name > a').each(function(i, j) {\n\t\t\t\t\tlink.push($(j).attr('href'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: nama[i],\n\t\t\t\t\t\tdev: developer[i],\n\t\t\t\t\t\trating: rating[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Hanya Orang Biasa',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.apkmody = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://apkmody.io/?s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\t//console.log(data)\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst nama = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst mod = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst format = [];\n\t\t\t\t$('#primary > section:nth-child(3) > div > div > div > article > a > div > div > div > h2').each(function(a, b) {\n\t\t\t\t\tnem = $(b).text();\n\t\t\t\t\tnama.push(nem)\n\t\t\t\t})\n\t\t\t\t$('#primary > section:nth-child(3) > div > div > div > article > a > div > div > p').each(function(c, d) {\n\t\t\t\t\tmodd = $(d).text();\n\t\t\t\t\tmod.push(modd.split('\\n')[1])\n\t\t\t\t})\n\t\t\t\t$('#primary > section:nth-child(3) > div > div > div > article > a > div > img').each(function(e, f) {\n\t\t\t\t\tthumb.push($(f).attr('src'))\n\t\t\t\t})\n\t\t\t\t$('#primary > section:nth-child(3) > div > div > div > article > a').each(function(g, h) {\n\t\t\t\t\tlink.push($(h).attr('href'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: nama[i],\n\t\t\t\t\t\tinfomod: mod[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Hanya Orang Biasa',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.happymod = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://www.happymod.com/search.html?q=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst nama = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst rating = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst format = [];\n\t\t\t\t$('body > div.container-row.clearfix.container-wrap > div.container-left > section > div > div > h3 > a').each(function(a, b) {\n\t\t\t\t\tnem = $(b).text();\n\t\t\t\t\tnama.push(nem)\n\t\t\t\t\tlink.push('https://happymod.com' + $(b).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('body > div.container-row.clearfix.container-wrap > div.container-left > section > div > div > div.clearfix > span').each(function(c, d) {\n\t\t\t\t\trat = $(d).text();\n\t\t\t\t\trating.push(rat)\n\t\t\t\t})\n\t\t\t\t$('body > div.container-row.clearfix.container-wrap > div.container-left > section > div > a > img').each(function(e, f) {\n\t\t\t\t\tthumb.push($(f).attr('data-original'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tformat.push({\n\t\t\t\t\t\tjudul: nama[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\trating: rating[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst result = {\n\t\t\t\t\tcreator: 'Hanya Orang Biasa',\n\t\t\t\t\tdata: format\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.ghuser = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://github.com/search?q=' + query + '&type=users')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst username = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst result = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\t$('#user_search_results > div > div > div.flex-auto > div > div.f4.text-normal > a.color-text-secondary').each(function(a, b) {\n\t\t\t\t\tlink.push('https://github.com/' + $(b).attr('href'))\n\t\t\t\t\tusr = $(b).text();\n\t\t\t\t\tusername.push(usr)\n\t\t\t\t})\n\t\t\t\t$('#user_search_results > div > div > div.flex-shrink-0.mr-2 > a > img').each(function(c, d) {\n\t\t\t\t\tthumb.push($(d).attr('src').replace('s=40&', ''))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tname: username[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.ghfollower = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://github.com/' + query + '?tab=followers')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\tconst result = [];\n\t\t\t\tconst username = [];\n\t\t\t\t$('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-9.mb-4.mb-md-0 > div > div > div > div.d-table-cell.col-9.v-align-top.pr-3 > a').each(function(a, b) {\n\t\t\t\t\tlink.push('https://github.com/' + $(b).attr('href'))\n\t\t\t\t\tusername.push($(b).attr('href').split('/')[1])\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tusername: username[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst hasil = {\n\t\t\t\t\tusername: $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.vcard-names-container.float-left.js-profile-editable-names.col-12.py-3.js-sticky.js-user-profile-sticky-fields > h1 > span.p-nickname.vcard-username.d-block').text().split('\\n')[1].replace('          ', ''),\n\t\t\t\t\tfollowers: $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.d-flex.flex-column > div.js-profile-editable-area.d-flex.flex-column.d-md-block > div.flex-order-1.flex-md-order-none.mt-2.mt-md-0 > div > a:nth-child(1) > span').text(),\n\t\t\t\t\tavatar: $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.position-relative.d-inline-block.col-2.col-md-12.mr-3.mr-md-0.flex-shrink-0 > a > img').attr('src'),\n\t\t\t\t\tlistfollowers: result\n\t\t\t\t}\n\t\t\t\tresolve(hasil)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.ghfollowing = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://github.com/' + query + '?tab=following')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\tconst result = [];\n\t\t\t\tconst username = [];\n\t\t\t\t$('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-9.mb-4.mb-md-0 > div > div > div > div.d-table-cell.col-9.v-align-top.pr-3 > a').each(function(a, b) {\n\t\t\t\t\tlink.push('https://github.com/' + $(b).attr('href'))\n\t\t\t\t\tusername.push($(b).attr('href').split('/')[1])\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tusername: username[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst hasil = {\n\t\t\t\t\tusername: $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.vcard-names-container.float-left.js-profile-editable-names.col-12.py-3.js-sticky.js-user-profile-sticky-fields > h1 > span.p-nickname.vcard-username.d-block').text().split('\\n')[1].replace('          ', ''),\n\t\t\t\t\tfollowing: $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.d-flex.flex-column > div.js-profile-editable-area.d-flex.flex-column.d-md-block > div.flex-order-1.flex-md-order-none.mt-2.mt-md-0 > div > a:nth-child(1) > span').text(),\n\t\t\t\t\tavatar: $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.position-relative.d-inline-block.col-2.col-md-12.mr-3.mr-md-0.flex-shrink-0 > a > img').attr('src'),\n\t\t\t\t\tlistfollowing: result\n\t\t\t\t}\n\t\t\t\tresolve(hasil)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.corona = async (country) => {\n\tif (!country) return loghandler.noinput;\n\ttry {\n\t\tconst res = await axios.request(`https://www.worldometers.info/coronavirus/country/` + country, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"Mozilla/5.0 (Linux; Android 9; Redmi 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Mobile Safari/537.36\"\n\t\t\t}\n\t\t});\n\t\tlet result = {};\n\t\tconst $ = cheerio.load(res.data);\n\t\tresult.status = res.status\n\t\tresult.negara = $(\"div\").find(\"h1\").text().slice(3).split(/ /g)[0];\n\t\tresult.total_kasus = $(\"div#maincounter-wrap\").find(\"div.maincounter-number > span\").eq(0).text() + \" total\";\n\t\tresult.total_kematian = $(\"div#maincounter-wrap\").find(\"div.maincounter-number > span\").eq(1).text() + \" total\";\n\t\tresult.total_sembuh = $(\"div#maincounter-wrap\").find(\"div.maincounter-number > span\").eq(2).text() + \" total\";\n\t\tresult.informasi = $(\"div.content-inner > div\").eq(1).text();\n\t\tresult.informasi_lengkap = \"https://www.worldometers.info/coronavirus/country/\" + country;\n\t\tif (result.negara == '') {\n\t\t\tresult.status = 'error'\n\t\t}\n\t\treturn result;\n\t} catch (error404) {\n\t\treturn \"=> Error => \" + error404;\n\t}\n};\nexports.mangatoon = async (search) => {\n\tif (!search) return \"No Querry Input! Bakaa >\\/\\/<\";\n\ttry {\n\t\tconst res = await axios.get(`https://mangatoon.mobi/en/search?word=${search}`, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"Mozilla/5.0 (Linux; Android 9; Redmi 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Mobile Safari/537.36\"\n\t\t\t}\n\t\t});\n\t\tconst hasil = [];\n\t\tconst $ = cheerio.load(res.data);\n\t\t$('div.recommend-item').each(function(a, b) {\n\t\t\tlet comic_name = $(b).find('div.recommend-comics-title > span').text();\n\t\t\tlet comic_type = $(b).find('div.comics-type > span').text().slice(1).split(/ /g).join(\"\");\n\t\t\tlet comic_url = $(b).find('a').attr('href');\n\t\t\tlet comic_thumb = $(b).find('img').attr('src');\n\t\t\tconst result = {\n\t\t\t\tstatus: res.status,\n\t\t\t\tcreator: \"@dehan_j1ng\",\n\t\t\t\tcomic_name,\n\t\t\t\tcomic_type,\n\t\t\t\tcomic_url: 'https://mangatoon.mobi' + comic_url,\n\t\t\t\tcomic_thumb\n\t\t\t};\n\t\t\thasil.push(result);\n\t\t});\n\t\tlet filt = hasil.filter(v => v.comic_name !== undefined && v.comic_type !== undefined);\n\t\treturn filt;\n\t} catch (eror404) {\n\t\treturn \"=> Error =>\" + eror404;\n\t}\n}\nexports.palingmurah = async (produk) => {\n\tif (!produk) {\n\t\treturn new TypeError(\"No Querry Input! Bakaaa >\\/\\/<\")\n\t}\n\ttry {\n\t\tconst res = await axios.get(`https://palingmurah.net/pencarian-produk/?term=` + produk)\n\t\tconst hasil = []\n\t\tconst $ = cheerio.load(res.data)\n\t\t$('div.ui.card.wpj-card-style-2 ').each(function(a, b) {\n\t\t\tlet url = $(b).find('a.image').attr('href')\n\t\t\tlet img = $(b).find('img.my_image.lazyload').attr('data-src')\n\t\t\tlet title = $(b).find('a.list-header').text().trim()\n\t\t\tlet product_desc = $(b).find('div.description.visible-on-list').text().trim()\n\t\t\tlet price = $(b).find('div.flex-master.card-job-price.text-right.text-vertical-center').text().trim()\n\t\t\tconst result = {\n\t\t\t\tstatus: res.status,\n\t\t\t\tcreator: \"@dehan_j1ng\",\n\t\t\t\tproduct: title,\n\t\t\t\tproduct_desc: product_desc,\n\t\t\t\tproduct_image: img,\n\t\t\t\tproduct_url: url,\n\t\t\t\tprice\n\t\t\t}\n\t\t\thasil.push(result)\n\t\t})\n\t\treturn hasil\n\t} catch (error404) {\n\t\treturn new Error(\"=> Error =>\" + error404)\n\t}\n}\nexports.mediafire = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst judul = $('body > div.mf-dlr.page.ads-alternate > div.content > div.center > div > div.dl-btn-cont > div.dl-btn-labelWrap > div.promoDownloadName.notranslate > div').text();\n\t\t\t\tconst size = $('body > div.mf-dlr.page.ads-alternate > div.content > div.center > div > div.dl-info > ul > li:nth-child(1) > span').text();\n\t\t\t\tconst upload_date = $('body > div.mf-dlr.page.ads-alternate > div.content > div.center > div > div.dl-info > ul > li:nth-child(2) > span').text();\n\t\t\t\tconst link = $('#downloadButton').attr('href')\n\t\t\t\tconst hsil = {\n\t\t\t\t\tjudul: link.split('/')[5],\n\t\t\t\t\tupload_date: upload_date,\n\t\t\t\t\tsize: size,\n\t\t\t\t\tmime: link.split('/')[5].split('.')[1],\n\t\t\t\t\tlink: link\n\t\t\t\t}\n\t\t\t\tresolve(hsil)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.artinama = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\tqueryy = query.replace(/ /g, '+')\n\t\taxios.get('https://www.primbon.com/arti_nama.php?nama1=' + query + '&proses=+Submit%21+')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = $('#body').text();\n\t\t\t\tconst result2 = result.split('\\n      \\n        \\n        \\n')[0]\n\t\t\t\tconst result4 = result2.split('ARTI NAMA')[1]\n\t\t\t\tconst result5 = result4.split('.\\n\\n')\n\t\t\t\tconst result6 = result5[0] + '\\n\\n' + result5[1]\n\t\t\t\tresolve(result6)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.drakor = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\tqueryy = query.replace(/ /g, '+')\n\t\taxios.get('https://drakorasia.net/?s=' + queryy + '&post_type=post')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst judul = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\t$('#post > div > div.thumbnail > a').each(function(a, b) {\n\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t\tthumb.push($(b).find('img').attr('src'))\n\t\t\t\t})\n\t\t\t\t$('#post > div > div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a > h2').each(function(c, d) {\n\t\t\t\t\ttitel = $(d).text();\n\t\t\t\t\tjudul.push(titel)\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.wattpad = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://www.wattpad.com/search/' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\tconst linkk = [];\n\t\t\t\tconst judull = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst dibaca = [];\n\t\t\t\tconst vote = [];\n\t\t\t\tconst bab = [];\n\t\t\t\t$('ul.list-group > li.list-group-item').each(function(a, b) {\n\t\t\t\t\tlinkk.push('https://www.wattpad.com' + $(b).find('a').attr('href'))\n\t\t\t\t\tthumb.push($(b).find('img').attr('src'))\n\t\t\t\t})\n\t\t\t\t$('div.story-card-data.hidden-xxs > div.story-info > ul > li:nth-child(1) > div.icon-container > div > span.stats-value').each(function(e, f) {\n\t\t\t\t\tbaca = $(f).text();\n\t\t\t\t\tdibaca.push(baca)\n\t\t\t\t})\n\t\t\t\t$('div.story-card-data.hidden-xxs > div.story-info > ul > li:nth-child(2) > div.icon-container > div > span.stats-value').each(function(g, h) {\n\t\t\t\t\tvot = $(h).text();\n\t\t\t\t\tvote.push(vot)\n\t\t\t\t})\n\t\t\t\t$('div.story-card-data.hidden-xxs > div.story-info > ul > li:nth-child(3) > div.icon-container > div > span.stats-value').each(function(i, j) {\n\t\t\t\t\tbb = $(j).text();\n\t\t\t\t\tbab.push(bb)\n\t\t\t\t})\n\t\t\t\t$('div.story-card-data.hidden-xxs > div.story-info > div.title').each(function(c, d) {\n\t\t\t\t\ttitel = $(d).text();\n\t\t\t\t\tjudull.push(titel)\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < linkk.length; i++) {\n\t\t\t\t\tif (!judull[i] == '') {\n\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\tjudul: judull[i],\n\t\t\t\t\t\t\tdibaca: dibaca[i],\n\t\t\t\t\t\t\tdivote: vote[i],\n\t\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\t\tlink: linkk[i]\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.dewabatch = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://dewabatch.com/?s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\tconst linkk = [];\n\t\t\t\tconst judull = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst rating = [];\n\t\t\t\t$('div.thumb > a').each(function(a, b) {\n\t\t\t\t\tlinkk.push($(b).attr('href'))\n\t\t\t\t\tjudull.push($(b).attr('title'))\n\t\t\t\t\tthumb.push($(b).find('img').attr('src').split('?resize')[0])\n\t\t\t\t})\n\t\t\t\t$('#content > div.postbody > div > div > ul > li > div.dtl > div.footer-content-post.fotdesktoppost > div.contentleft > span:nth-child(1) > rating > ratingval > ratingvalue').each(function(c, d) {\n\t\t\t\t\trate = $(d).text();\n\t\t\t\t\trating.push(rate.split(' ')[0])\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < linkk.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judull[i],\n\t\t\t\t\t\trating: rating[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: linkk[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.kiryu = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://kiryuu.id/?s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\tconst linkk = [];\n\t\t\t\tconst judull = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst rating = [];\n\t\t\t\t$('div.bsx > a').each(function(a, b) {\n\t\t\t\t\tlinkk.push($(b).attr('href'))\n\t\t\t\t\tjudull.push($(b).attr('title'))\n\t\t\t\t\tthumb.push($(b).find('img').attr('src').split('?resize')[0])\n\t\t\t\t})\n\t\t\t\t$('div.rating > div.numscore').each(function(c, d) {\n\t\t\t\t\trate = $(d).text();\n\t\t\t\t\trating.push(rate)\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < linkk.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tjudul: judull[i],\n\t\t\t\t\t\trating: rating[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: linkk[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.sfilesearch = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://sfile.mobi/search.php?q=' + query + '&search=Search')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst neme = [];\n\t\t\t\tconst size = [];\n\t\t\t\t$('div.w3-card.white > div.list > a').each(function(a, b) {\n\t\t\t\t\tlink.push($(b).attr('href'))\n\t\t\t\t})\n\t\t\t\t$('div.w3-card.white > div.list > a').each(function(c, d) {\n\t\t\t\t\tname = $(d).text();\n\t\t\t\t\tneme.push(name)\n\t\t\t\t})\n\t\t\t\t$('div.w3-card.white > div.list').each(function(e, f) {\n\t\t\t\t\tsiz = $(f).text();\n\t\t\t\t\t//sz = siz.\n\t\t\t\t\tsize.push(siz.split('(')[1])\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < link.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tnama: neme[i],\n\t\t\t\t\t\tsize: size[i].split(')')[0],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.carigc = (nama) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('http://ngarang.com/link-grup-wa/daftar-link-grup-wa.php?search=' + nama + '&searchby=name')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data);\n\t\t\t\tconst result = [];\n\t\t\t\tconst lnk = [];\n\t\t\t\tconst nm = [];\n\t\t\t\t$('div.wa-chat-title-container').each(function(a, b) {\n\t\t\t\t\tconst limk = $(b).find('a').attr('href');\n\t\t\t\t\tlnk.push(limk)\n\t\t\t\t})\n\t\t\t\t$('div.wa-chat-title-text').each(function(c, d) {\n\t\t\t\t\tconst name = $(d).text();\n\t\t\t\t\tnm.push(name)\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < lnk.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tnama: nm[i].split('. ')[1],\n\t\t\t\t\t\tlink: lnk[i].split('?')[0]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.wikisearch = async (query) => {\n\tconst res = await axios.get(`https://id.m.wikipedia.org/w/index.php?search=${query}`)\n\tconst $ = cheerio.load(res.data)\n\tconst hasil = []\n\tlet wiki = $('#mf-section-0').find('p').text()\n\tlet thumb = $('#mf-section-0').find('div > div > a > img').attr('src')\n\tthumb = thumb ? thumb : '//pngimg.com/uploads/wikipedia/wikipedia_PNG35.png'\n\tthumb = 'https:' + thumb\n\tlet judul = $('h1#section_0').text()\n\thasil.push({\n\t\twiki,\n\t\tthumb,\n\t\tjudul\n\t})\n\treturn hasil\n}\nexports.devianart = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://www.deviantart.com/search?q=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\tno = ''\n\t\t\t\t$$('#root > div.hs1JI > div > div._3WsM9 > div > div > div:nth-child(3) > div > div > div:nth-child(1) > div > div:nth-child(1) > div > section > a').each(function(c, d) {\n\t\t\t\t\tno = $$(d).attr('href')\n\t\t\t\t})\n\t\t\t\taxios.get(no)\n\t\t\t\t\t.then(({\n\t\t\t\t\t\tdata\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\t\t\tconst result = [];\n\t\t\t\t\t\t$('#root > main > div > div._2QovI > div._2rKEX._17aAh._1bdC8 > div > div._2HK_1 > div._1lkTS > div > img').each(function(a, b) {\n\t\t\t\t\t\t\tresult.push($(b).attr('src'))\n\t\t\t\t\t\t})\n\t\t\t\t\t\tresolve(result)\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.konachan = (chara) => {\n\treturn new Promise((resolve, reject) => {\n\t\tlet text = chara.replace(' ', '_')\n\t\taxios.get('https://konachan.net/post?tags=' + text + '+')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\tconst no = [];\n\t\t\t\t$$('div.pagination > a').each(function(c, d) {\n\t\t\t\t\tno.push($$(d).text())\n\t\t\t\t})\n\t\t\t\tlet mat = Math.floor(Math.random() * no.length)\n\t\t\t\taxios.get('https://konachan.net/post?page=' + mat + '&tags=' + text + '+')\n\t\t\t\t\t.then(({\n\t\t\t\t\t\tdata\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\t\t\tconst result = [];\n\t\t\t\t\t\t$('#post-list > div.content > div:nth-child(4) > ul > li > a.directlink.largeimg').each(function(a, b) {\n\t\t\t\t\t\t\tresult.push($(b).attr('href'))\n\t\t\t\t\t\t})\n\t\t\t\t\t\tresolve(result)\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.wallpapercave = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://wallpapercave.com/search?q=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\t$('div.imgrow > a').each(function(a, b) {\n\t\t\t\t\tif (!$(b).find('img').attr('src').includes('.gif')) {\n\t\t\t\t\t\tresult.push('https://wallpapercave.com/' + $(b).find('img').attr('src').replace('fuwp', 'uwp'))\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.wallpapercraft = (query) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://wallpaperscraft.com/search/?query=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\t$('span.wallpapers__canvas').each(function(a, b) {\n\t\t\t\t\tresult.push($(b).find('img').attr('src'))\n\t\t\t\t})\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\nexports.wallpaperhd = (chara) => {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://wall.alphacoders.com/search.php?search=' + chara + '&filter=4K+Ultra+HD')\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst result = [];\n\t\t\t\t$('div.boxgrid > a > picture').each(function(a, b) {\n\t\t\t\t\tresult.push($(b).find('img').attr('src').replace('thumbbig-', ''))\n\t\t\t\t})\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\n"
  },
  {
    "path": "Zimbot/index2.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮ZimBotInc SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF ZimBotInc SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃ZimBotInc SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃THANKS TO DIKA ARDNT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst axios = require('axios');\nconst cheerio = require('cheerio');\nconst fs = require('fs');\nconst { spawn, exec } = require(\"child_process\");\nconst yt = require(\"yt-search\");\nconst FormData = require(\"form-data\");\nconst got = require(\"got\")\nconst print = (message) => {\n\treturn console.log(message)\n}\n\nasync function ManggaToon(judul) {\n\ttry {\n\t\tconst link = await axios.get(`https://mangatoon.mobi/id/search?word=${judul}`) \n\t\tconst c = cheerio.load(link.data)\n\t\tlet id = c('#page-content').find('div.search-page > div > div.comics-result > div.recommended-wrap > div > div > a').attr('href') || 'undefined'\n\t\tif(id === 'undefined') {\n\t\t\tconst link2 = await axios.get(`https://mangatoon.mobi/en/search?word=${judul}`)\n\t\t\tconst C = cheerio.load(link2.data)\n\t\t\tlet id2 = C('#page-content').find('div.search-page > div > div.comics-result > div.recommended-wrap > div > div:nth-child(1) > a').attr('href')\n\t\t\tconst data = await axios.get(`https://mangatoon.mobi${id2}`)\n\t\t\tconst $ = cheerio.load(data.data)\n\t\t\tvar judul = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-title-bg > span').text().trim()\n\t\t\tvar genre = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-tags-info > span').text().trim()\n\t\t\tvar author = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-author-name > span').text().trim()\n\t\t\tvar thumb = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-img > img.big-img').attr('src');\n\t\t\tvar LinkKe = $('#page-content').find('div.detail-wrap > div.detail-interact > a').attr('href')\n\t\t\tvar Link = `https://mangatoon.mobi${LinkKe}`\n\t\t\tlet Author = author.replace('Nama Author: ', '');\n\t\t\tlet hasil = {\n\t\t\t\tjudul, thumb, genre, Author, Link\n\t\t\t}\n\t\t\treturn hasil\n\t\t} else {\n\t\tconst data = await axios.get(`https://mangatoon.mobi${id}`)\n\t\tconst $ = cheerio.load(data.data)\n\t\tvar judul = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-title-bg > span').text().trim()\n\t\tvar genre = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-tags-info > span').text().trim()\n\t\tvar author = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-author-name > span').text().trim()\n\t\tvar thumb = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-img > img.big-img').attr('src');\n\t\tvar LinkKe = $('#page-content').find('div.detail-wrap > div.detail-interact > a').attr('href')\n\t\tvar Link = `https://mangatoon.mobi${LinkKe}`\n\t\tlet Author = author.replace('Nama Author: ', '');\n\t\tlet hasil = {\n\t\t\tjudul, thumb, genre, Author, Link\n\t\t}\n\t\treturn hasil\n\t}\n\t\t} catch (err) {\n\t\t\treturn `Not Found 404`\n\t\t}\n}\nasync function emoji(emoticon) {\n\tconst emojii = encodeURI(`${emoticon}`)\n\tconst link = await axios.get(`https://emojipedia.org/${emojii}/`)\n\tconst $ = cheerio.load(link.data)\n\tvar apple = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(1) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar google = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(2) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar samsung = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(3) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar microsoft = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(4) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar whatsapp = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(5) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar twitter = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(6) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar facebook = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(7) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar jooxpixel = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(8) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar openmoji = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(9) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar emojidex = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(10) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar messager = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(11) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar LG = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(12) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar HTC = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(13) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar mozilla = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(14) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar softbank = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(15) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar docomo = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(16) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar KDDI = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(17) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tconst result = {\n\t\tapple: apple.replace('120', '240'),\n\t\tgoogle: google.replace('120', '240'),\n\t\tsamsung: samsung.replace('120', '240'),\n\t\tmicrosoft: microsoft.replace('120', '240'),\n\t\twhatsapp: whatsapp.replace('120', '240'),\n\t\ttwitter: twitter.replace('120', '240'),\n\t\tfacebook: facebook.replace('120', '240'),\n\t\tjooxPixel: jooxpixel.replace('120', '240'),\n\t\topenemoji: openmoji.replace('120', '240'),\n\t\temojidex: emojidex.replace('120', '240'),\n\t\tmessanger: messager.replace('120', '240'),\n\t\tLG: LG.replace('120', '240'),\n\t\tHTC: HTC.replace('120', '240'),\n\t\tmozilla: mozilla.replace('120', '240'),\n\t\tsoftbank: softbank.replace('120', '240'),\n\t\tdocomo: docomo.replace('120', '240'),\n\t\tKDDI: KDDI.replace('120', '240')\n\t}\n\treturn result\n}\n\nasync function RandomCerpen() {\n\ttry{\n\tconst link = await axios.get(`http://cerpenmu.com/`)\n\tconst c = cheerio.load(link.data)\n\tlet kumpulan = []\n\tc('#sidebar > div').each(function (real, ra) {\n\t\tc(ra).find('ul > li').each(function (i, rayy) {\n\t\t\tlet random = c(rayy).find('a').attr('href')\n\t\t\tkumpulan.push(random)\n\t\t})\n\t})\n\tvar acak = kumpulan[Math.floor(Math.random() * (kumpulan.length))]\n\tlet Otw = await axios.get(`${acak}`)\n\tconst C = cheerio.load(Otw.data)\n\tlet otw = []\n\tC('#content > article > article').each(function (a, b) {\n\t\tlet random = C(b).find('h2 > a').attr('href')\n\t\totw.push(random)\n\t})\n\tvar Acak = otw[Math.floor(Math.random() * (otw.length))]\n\tlet Link = await axios.get(`${Acak}`)\n\tlet $ = cheerio.load(Link.data)\n\tlet judul = $('#content').find('article > h1').text().trim()\n\tlet karangan = $('#content').find('article > a:nth-child(2)').text().trim()\n\tlet Isi = []\n\t$('#content > article > p').each(function (wm, Ra) {\n\t\tlet isi = $(Ra).text().trim()\n\t\tIsi.push(isi)\n\n\t})\n\tlet cerita = []\n\tfor (let i of Isi) {\n\t\tcerita += i\n\t}\n\tconst data = {\n\t\tstatus: 200,\n\t\tauthor: 'RA BOT',\n\t\tresult: {\n\t\t\tJudul: judul,\n\t\t\tPenulis: karangan,\n\t\t\tsumber: Acak,\n\t\t\tcerita: cerita\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tconst res404 = {\n\t\tstatus: 500,\n\t\tauthor: 'RA BOT',\n\t\tPesan: 'Udah Ga work?:/ cp: 082149344210'\n\t}\n\treturn res404\n}\n}\nasync function stickerSearch(querry) {\n\tconst link = await axios.get(`https://getstickerpack.com/stickers?query=${querry}`);\n\tconst $ = cheerio.load(link.data)\n\tlet sticker1 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > img').attr('src'),\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > span.title').text().trim(),\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > span.username').text().trim()\n\t}\n\tlet sticker2 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > span.username').text().trim() \n\t}\n\tlet sticker3 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > span.username').text().trim() \n\t}\n\tlet sticker4 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > span.username').text().trim() \n\t}\n\tlet sticker5 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > span.username').text().trim() \n\t}\n\tlet sticker6 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > span.username').text().trim() \n\t}\n\tlet sticker7 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > span.username').text().trim() \n\t}\n\tlet sticker8 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > span.username').text().trim() \n\t}\n\tlet sticker9 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > span.username').text().trim() \n\t}\n\tlet sticker10 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > span.username').text().trim() \n\t}\n\tlet sticker11 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > span.username').text().trim() \n\t}\n\tlet sticker12 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > span.username').text().trim() \n\t}\n\tlet stickerlop =  [\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > img').attr('src')\n\t]\nlet data = {\n\t\tsticker: stickerlop, sticker1, sticker2, sticker3, sticker4, sticker5, sticker6, sticker7, sticker8, sticker9, sticker10, sticker11, sticker12\n\t}\n\treturn data\n}\n\nasync function RamalJadian(tanggal, bulan, tahun) {\n\tif(isNaN(tanggal) && isNaN(bulan) && isNaN(tahun)) return `Tanggal bulan tahun harus berupa angka`\n\tconst link = await axios.get(`https://www.primbon.com/tanggal_jadian_pernikahan.php?tgl=${tanggal}&bln=${bulan}&thn=${tahun}&proses=+Submit%21+`)\n\tconst $ = cheerio.load(link.data)\n\tlet tanggall = $('#body').text().trim()\n\tlet a = tanggall.replace('MAKNA TANGGAL JADIAN, PERNIKAHAN', '').replace('Karakteristik:', '\\nKarakteristik : ').replace('< Hitung Kembali', '')\n\treturn a\n}\nasync function igDownloader(Link) {\n\tconst hasil = []\n\tconst Form = {\n\t\turl: Link,\n\t\tsubmit: \"\"\n\t}\n\tawait axios(`https://downloadgram.org/`, {\n\t\tmethod: \"POST\",\n\t\tdata:  new URLSearchParams(Object.entries(Form)),\n\t\theaders: {\n\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\"cookie\": \"_ga=GA1.2.1695343126.1621491858; _gid=GA1.2.28178724.1621491859; __gads=ID=8f9d3ef930e9a07b-2258e672bec80081:T=1621491859:RT=1621491859:S=ALNI_MbqLxhztDiYZttJFX2SkvYei6uGOw; __atuvc=3%7C20; __atuvs=60a6eb107a17dd75000; __atssc=google%3B2; _gat_gtag_UA_142480840_1=1\"\n\t\t},\n\t\treferrerPolicy: \"strict-origin-when-cross-origin\",\n\t}).then(async res => {\n\t\tconst $ = cheerio.load(res.data)\n\t\tlet url = $('#downloadBox').find('a').attr('href');\n\t\tawait axios(Link, {\n\t\t\tmethod: \"GET\",\n\t\t\tdata: null,\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"ig_did=08A3C465-7D43-4D8A-806A-88F98384E63B; ig_nrcb=1; mid=X_ipMwALAAFgQ7AftbrkhIDIdXJ8; fbm_124024574287414=base_domain=.instagram.com; shbid=17905; ds_user_id=14221286336; csrftoken=fXHAj5U3mcJihQEyVXfyCzcg46lHx7QD; sessionid=14221286336%3A5n4czHpQ0GRzlq%3A28; shbts=1621491639.7673564; rur=FTW\"\n\t\t\t},\n\t\t\treferrerPolicy: \"strict-origin-when-cross-origin\"\n\t\t}).then(respon => {\n\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\tlet title = ch('title').text().trim()\n\t\t\tconst result = {\n\t\t\t\tauthor: \"RA BOT\",\n\t\t\t\tresult: {\n\t\t\t\t\tlink: url,\n\t\t\t\t\tdesc: title,\n\t\t\t\t\tLinkAwal: Link\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(result)\n\t\t})\n\t})\n\treturn hasil[0]\n}\nfunction Pantun() {\n\tconst pantun = fs.readFileSync('./database/pantun.json')\n\tconst data = JSON.parse(pantun)\n\tconst acak = data[Math.floor(Math.random() * (data.length))]\n\treturn acak\n}\nfunction trutdare(querry) {\n\tconst trdr = fs.readFileSync('./database/truthdare.json') // tempat simpen file lu\n\tconst result = JSON.parse(trdr)\n\tif(querry === 'truth id') {\n\t\tlet res = result.Truth.id[Math.floor(Math.random() * result.Truth.id.length)]\n\treturn res\n\t} else if (querry === 'truth eng') {\n\t\tlet res = result.Truth.eng[Math.floor(Math.random() * result.Truth.eng.length)]\n\t\treturn res\n\t} else if(querry === 'dare id') {\n\t\tlet res = result.Dare.id[Math.floor(Math.random() * result.Dare.id.length)]\n\t\treturn res\n\t} else if(querry === 'dare eng') {\n\t\tlet res = result.Dare.eng[Math.floor(Math.random() * result.Dare.eng.length)]\n\t\treturn res\n\t} else {\n\t\treturn `Querry tidak terdaftar dimenu harap masukkan dengan benar.\\n\\ncara pakai :\\n1. trutdare('truth id')\\n2. trutdare('truth eng')\\n3. trutdare('dare id')\\n4. trutdare('dare eng')`\n\t}\n}\nasync function SearchFilm(querry) {\n\tconst link =  await axios.get(`https://123movies.mom/search/?keyword=${querry}`)\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\tlet result = []\n\t$('#main').each(function (a, b) {\n\t\t\t $(b).find('div').each(function (c, d) {\n\t\t\t\tlet url = $(d).find('a').attr('href')\n\t\t\t\tlet img = $(d).find('a > img').attr('src')\n\t\t\t\tlet judul = $(d).find('a > img').attr('alt')\n\t\t\t\tlet data = {\n\t\t\t\t\tjudul: judul,\n\t\t\t\t\tthumb: img,\n\t\t\t\t\turl: url\n\t\t\t\t}\n\t\t\t\tresult.push(data)\n\t\t\t})\n\t\t\tfor (let i = 29; i < result.length; i++) {\n\t\t\thasil.push(result[i])\n\t\t\t}\n\t})\n\treturn hasil\n}\nfunction FaktaUnik() {\n\tconst fakta = fs.readFileSync('./database/faktaunik.json')\n\tconst data = JSON.parse(fakta)\n\tconst acak = data[Math.floor(Math.random() * (data.length))]\n\treturn acak\n}\nasync function Liriklagu(querry) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tawait axios.request({\n\t\t\turl: \"https://www.musixmatch.com/search/\" + querry,\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\"\n\t\t\t}\n\t\t}).then(async res => {\n\t\t\tconst ch = cheerio.load(res.data)\n\t\t\tlet Url = ch('#search-all-results').find('div.main-panel > div:nth-child(1) > div.box-content > div > ul > li > div > div.media-card-body > div > h2 > a').attr('href')\n\t\t\tawait axios.request({\n\t\t\t\turl: \"https://www.musixmatch.com\"+ Url,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tdata: null,\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\t\"if-none-match\": \"W/\\\"252c5-LEqIxy/rzHPI2QxgG5//NcL3YjQ\\\"\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\t'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'\n\t\t\t\t}\n\t\t\t}).then(({ data }) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tlet judul = $('#site > div > div > div > main > div > div > div.mxm-track-banner.top > div > div > div').find('div.col-sm-10.col-md-8.col-ml-9.col-lg-9.static-position > div.track-title-header > div.mxm-track-title > h1').text().trim()\n\t\t\t\tlet artis = $('#site > div > div > div > main > div > div > div > div > div > div > div> div > div > h2 > span').text().trim()\n\t\t\t\tlet thumb = $('#site > div > div > div > main > div > div > div.mxm-track-banner.top > div > div > div').find('div.col-sm-1.col-md-2.col-ml-3.col-lg-3.static-position > div > div > div > img').attr('src')\n\t\t\t\tlet lirik = []\n\t\t\t\t$('#site > div > div > div > main > div > div > div.mxm-track-lyrics-container').find('div.container > div > div > div > div.col-sm-10.col-md-8.col-ml-6.col-lg-6 > div.mxm-lyrics').each(function (a, b) {\n\t\t\t\t\tlet isi = $(b).find('span').text().trim()\n\t\t\t\t\tlirik.push(isi)\n\t\t\t\t})\n\t\t\t\tconst result = {\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tjudul: judul.replace('Lyrics', ''),\n\t\t\t\t\t\tpenyanyi: artis,\n\t\t\t\t\t\tthumb: \"https:\" + thumb,\n\t\t\t\t\t\tlirik: lirik[0]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t})\n\t})\n}\nasync function infoFilm123(url) {\n\ttry{\n\tconst link =  await axios.get(`${url}`)\n\tconst $ = cheerio.load(link.data)\n\tlet judul = $('#mv-info').find('div.mvi-content > div.mvic-desc > h1').text().trim()\n\tlet genre = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(1) > a').text().trim()\n\tlet aktor = []\n\t$('div.mvi-content').each(function (a, b) {\n\t\tlet res = $(b).find('div.mvic-desc > div.mvic-info > div.mvici-left > p > a').text().trim()\n\t\taktor.push(res)\n\t})\n\tlet country = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(4) > a').attr('title')\n\tlet durasi = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(1) > strong').text().trim()\n\tlet kualitas = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(2) > span').text().trim()\n\tlet publish = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(4) > a').text().trim()\n\tlet tag = []\n\t$('#mv-keywords').each(function (c, d) {\n\t\tlet res = $(d).find('a').text().trim()\n\t\ttag.push(res)\n\t})\n\tlet thumb = $('#mv-info').find('div.player-holder > a').attr('style')\n\tlet video = $('#mv-info').find('div.player-holder > a').attr('href')\n\tvar result = {\n\t\tjudul: judul,\n\t\tthumbail: thumb.replace('background-image: url', '').replace('(', '').replace(')', ''),\n\t\tgenre: genre,\n\t\tvideo: video,\n\t\tnegara: country,\n\t\tdurasi: durasi,\n\t\tquality: kualitas,\n\t\trilis: publish,\n\t\taktor: aktor,\n\t\thastag: tag\n\t}\n\treturn result\n} catch (err) {\n\treturn `Judul tidak ditemukan`\n}\n} \n\nasync function Otakudesu(querry) {\n\ttry {\n\tconst link = await axios.get(`https://otakudesu.moe/?s=${querry}&post_type=anime`)\n\tconst c = cheerio.load(link.data)\n\tlet id = c('#venkonten > div > div.venser > div > div > ul > li:nth-child(1) > h2 > a').attr('href')\n\tconst Link = await axios.get(id)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(1) > span').text().trim()\n\tlet judulJpn = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(2) > span').text().trim()\n\tlet score = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(3) > span').text().trim()\n\tlet Produser = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(4) > span').text().trim()\n\tlet Type = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(5) > span').text().trim()\n\tlet Status = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(6) > span').text().trim()\n\tlet TotalEpisode = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(7) > span').text().trim()\n\tlet durasi = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(8) > span').text().trim()\n\tlet Rilis = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(9) > span').text().trim()\n\tlet studio = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(10) > span').text().trim()\n\tlet genre = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(11) > span').text().trim()\n\tlet thumb = $('#venkonten > div.venser > div.fotoanime').find('img').attr('src')\n\tlet Sinopsis = $('#venkonten > div.venser > div.fotoanime > div.sinopc').find('p').text().trim()\n\tlet LinkDown = $('#venkonten').find('div.venser > div:nth-child(8) > ul > li:nth-child(4) > span:nth-child(1) > a').attr('href')\n\tconst data = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tjapan: judulJpn,\n\t\t\trating: score,\n\t\t\tproduser: Produser,\n\t\t\ttype: Type,\n\t\t\tstatus: Status,\n\t\t\tepisode: TotalEpisode,\n\t\t\tdurasi: durasi,\n\t\t\trilis: Rilis,\n\t\t\tstudio: studio,\n\t\t\tgenre: genre,\n\t\t\tLinkDown: LinkDown,\n\t\t\tsinopsis: Sinopsis\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function wikipedia(querry) {\n\ttry {\n\tconst link =  await axios.get(`https://id.wikipedia.org/wiki/${querry}`)\n\tconst $ = cheerio.load(link.data)\n\tlet judul = $('#firstHeading').text().trim()\n\tlet thumb = $('#mw-content-text').find('div.mw-parser-output > div:nth-child(1) > table > tbody > tr:nth-child(2) > td > a > img').attr('src') || `//i.ibb.co/nzqPBpC/http-error-404-not-found.png`\n\tlet isi = []\n\t$('#mw-content-text > div.mw-parser-output').each(function (rayy, Ra) {\n\t\tlet penjelasan = $(Ra).find('p').text().trim()\n\t\tisi.push(penjelasan)\n\t})\n\tfor(let i of isi) {\n\tconst data = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: 'https:'+thumb,\n\t\t\tisi: i\n\t\t}\n\t}\n\treturn data\n}\n\t} catch (err) {\n\t\tvar notFond = {\n\t\t\tauthor: 'Ra bot',\n\t\t\tstatus: link.status,\n\t\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t\t}\n\t\treturn notFond\n\t}\n}\nasync function corona(negara) {\n\ttry{\n\tconst link = await axios.get(`https://www.worldometers.info/coronavirus/country/${negara}/`)\n\tconst $ = cheerio.load(link.data)\n\tlet kasus = $('#maincounter-wrap').find(' div > span').eq(0).text().trim()\n\tlet mati = $('#maincounter-wrap').find(' div > span').eq(1).text().trim()\n\tlet sembuh = $('#maincounter-wrap').find(' div > span').eq(2).text().trim()\n\tconst data = {\n\t\tauthor: 'Iqbalzz',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tkasus: kasus,\n\t\t\tmeninggal: mati,\n\t\t\tsembuh: sembuh\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Iqbalzz',\n\t\tstatus: link.status,\n\t\tPesan: 'Error Hubungi Owner Kami'\n\t}\n\treturn notFond\n}\n}\nasync function cuaca(wilayah) {\n\ttry {\n\tfunction Cuaca(daerah) {\n\t\tconst listcuaca = fs.readFileSync('./database/cuaca.json')\n\t\tconst data = JSON.parse(listcuaca)\n\t\tif(daerah.toLowerCase() === 'aceh'){\n\t\t\treturn data[0]\n\t\t} else if (daerah.toLowerCase() === 'bali') {\n\t\t\treturn data[1]\n\t\t} else if (daerah.toLowerCase() === 'bangka belitung') {\n\t\t\treturn data[2]\n\t\t} else if (daerah.toLowerCase() === 'banten') {\n\t\t\treturn data[3]\n\t\t} else if (daerah.toLowerCase() === 'yogyakarta' || daerah.toLowerCase() === 'jogja') {\n\t\t\treturn data[4]\n\t\t} else if (daerah.toLowerCase() === 'jakarta')  {\n\t\t\treturn data[5]\n\t\t} else if (daerah.toLowerCase() === 'gorontalo') {\n\t\t\treturn data[6]\n\t\t} else if (daerah.toLowerCase() === 'jambi') {\n\t\t\treturn data[7]\n\t\t} else if (daerah.toLowerCase() === 'jawa barat') {\n\t\t\treturn data[8]\n\t\t} else if (daerah.toLowerCase() === 'jawa tengah') {\n\t\t\treturn data[9]\n\t\t} else if (daerah.toLowerCase() === 'jawa timur') {\n\t\t\treturn data[10]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan barat') {\n\t\t\treturn data[11]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan selatan') {\n\t\t\treturn data[12]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan tengah') {\n\t\t\treturn data[13]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan timur') {\n\t\t\treturn data[14]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan utara') {\n\t\t\treturn data[15]\n\t\t} else if (daerah.toLowerCase() === 'riau') {\n\t\t\treturn data[16]\n\t\t} else if (daerah.toLowerCase() === 'lampung') {\n\t\t\treturn data[17]\n\t\t} else if (daerah.toLowerCase() === 'maluku') {\n\t\t\treturn data[18]\n\t\t} else if (daerah.toLowerCase() === 'maluku utara') {\n\t\t\treturn data[19]\n\t\t} else if (daerah.toLowerCase() === 'ntb') {\n\t\t\treturn data[20]\n\t\t} else if (daerah.toLowerCase() === 'ntt') {\n\t\t\treturn data[21]\n\t\t} else if (daerah.toLowerCase() === 'papua') {\n\t\t\treturn data[22]\n\t\t} else if (daerah.toLowerCase() === 'papua barat') {\n\t\t\treturn data[23]\n\t\t} else if (daerah.toLowerCase() === 'riau') {\n\t\t\treturn data[24]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi barat') {\n\t\t\treturn data[25]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi selatan') {\n\t\t\treturn data[26]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi tengah') {\n\t\t\treturn data[27]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi tenggara') {\n\t\t\treturn data[28]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi utara') {\n\t\t\treturn data[29]\n\t\t} else if (daerah.toLowerCase() === 'sumatra barat') {\n\t\t\treturn data[30]\n\t\t} else if (daerah.toLowerCase() === 'sumatra selatan') {\n\t\t\treturn data[31]\n\t\t} else if (daerah.toLowerCase() === 'sumatra utara') {\n\t\t\treturn data[32]\n\t\t} else if (daerah.toLowerCase() === 'indonesia') {\n\t\t\treturn data[33]\n\t\t} else {\n\t\t\treturn `undefined`\n\t\t}\n\t}\n\tconst link = await axios.get(`https://www.bmkg.go.id/cuaca/prakiraan-cuaca-indonesia.bmkg${Cuaca(wilayah)}`)\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\t$('#TabPaneCuaca2 > div.table-responsive > table > tbody').each(function (a, b) {\n\t\t$(b).find('tr').each(function (c, d) {\n\t\t\tlet nama = $(d).find('td > a').text().trim()\n\t\t\tlet cuaca = $(d).find('td > span').text().trim()\n\t\t\tlet suhu = $(d).find('td:nth-child(6)').text().trim()\n\t\t\tlet kelembapan = $(d).find('td:nth-child(7)').text().trim()\n\t\t\tlet data = {\n\t\t\t\tdaerah: nama,\n\t\t\t\tcuaca: cuaca,\n\t\t\t\tsuhu: suhu + ' °C',\n\t\t\t\tkelembapan: kelembapan + '%'\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function FilmApik23(querry) {\n\ttry{\n\tconst link = await axios.get(`https://filmapik.website/?s=${querry}`);\n\tconst c = cheerio.load(link.data)\n\tlet Id = []\n\tc('#main > div > div.main-content.main-category > div.movies-list-wrap.mlw-category > div.movies-list.movies-list-full ').each(function (a, b) {\n\t\tc(b).find('div').each(function (e, d) {\n\t\t\tlet id = c(d).find('a').attr('href')\n\t\t\tId.push(id)\n\t\t})\n\t})\n\tlet Random = Id[Math.floor(Math.random() * (Id.length))]\n\tconst Link = await axios.get(Random)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#mv-info').find('div.mvi-content > div.mvic-desc > h3').text().trim()\n\tlet view = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(1)').text().trim()\n\tlet genre = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(2)').text().trim()\n\tlet studio = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(3) > span').text().trim()\n\tlet durasi = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(1) > span').text().trim()\n\tlet TvStatus = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(2) > span').text().trim()\n\tlet network = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > div > p:nth-child(5) > a').text().trim()\n\tlet thumb = $('#mv-info').find('div.mvi-content > div.thumb.mvic-thumb > img').attr('src')\n\tlet BintangFilm = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > p > span').text().trim()\n\tconst data = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tLink: Random,\n\t\t\tpenonton: view.replace('Views: ', ''),\n\t\t\tdurasi: durasi,\n\t\t\tgenre: genre.replace('Genre: ', ''),\n\t\t\tstudio: studio,\n\t\t\tTV: TvStatus,\n\t\t\tnetwork: network,\n\t\t\tbintangFilm: BintangFilm\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function ssstik_io(Link) {\n\tconst hasil = []\n\tawait axios.request({\n\t\turl: \"https://ssstik.io/download-tiktok-mp3\",\n\t\tmethod: \"GET\",\n\t\tdata: null,\n\t\theaders: {\n\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\"cookie\": \"_ga=GA1.2.1214162640.1613122103; __gads=ID=a84fb2b8cf02d3d7-22dd4d0604c600bf:T=1613122103:RT=1613122103:S=ALNI_MYL7L8hoaImlsOJ4ci_mlprmNr_dQ; __cflb=02DiuEcwseaiqqyPC5pErDKzpi9ACpCy4uc7DgJdduo1D; _gid=GA1.2.318630001.1621485974; PHPSESSID=e6tcghbdi76h30pkem3lmgb6h2; _gat_UA-3524196-6=1\"\n\t\t}\n\t}).then(async res => {\n\t\tconst $ = cheerio.load(res.data)\n\t\tlet token = $('#splash > div').find('form').attr('data-hx-post')\n\t\tlet ttts = $('#splash > div').find('form').attr('include-vals')\n\t\tconst tt = ttts.split(',')[0].replace('tt:', '')\n\t\tconst ts = ttts.split(',')[1].replace('ts:', '')\n\t\tconst format = {\n\t\t\tid: Link,\n\t\t\tlocale: \"en\",\n\t\t\ttt: tt,\n\t\t\tts: ts\n\t\t}\n\t\tawait axios('https://ssstik.io' + token, {\n\t\t\tmethod: \"POST\",\n\t\t\tdata: new URLSearchParams(Object.entries(format)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"hx-active-element\": \"submit\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1214162640.1613122103; __gads=ID=a84fb2b8cf02d3d7-22dd4d0604c600bf:T=1613122103:RT=1613122103:S=ALNI_MYL7L8hoaImlsOJ4ci_mlprmNr_dQ; __cflb=02DiuEcwseaiqqyPC5pErDKzpi9ACpCy4uc7DgJdduo1D; _gid=GA1.2.318630001.1621485974; PHPSESSID=e6tcghbdi76h30pkem3lmgb6h2; _gat_UA-3524196-6=1\"\n\t\t\t}\n\t\t}).then(respon => {\n\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\tconst data = {\n\t\t\t\tauthor: \"RA BOT\",\n\t\t\t\tresult: {\n\t\t\t\t\tnowm: ch('#mainpicture > div').find('a.pure-button.pure-button-primary.is-center.u-bl.dl-button.download_link.without_watermark_direct.snaptik').attr('href'),\n\t\t\t\t\tmp3: ch('#mainpicture > div').find('a.pure-button.pure-button-primary.is-center.u-bl.dl-button.download_link.music.snaptik').attr('href')\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil[0]\n} \nasync function TiktokDownloader(link) {\n\tconst Result = []\n\tawait axios.request({\n\t\turl: `https://ttdownloader.com/`,\n\t\tmethod: \"get\",\n\t\theaders: {\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=797oo0b7ao6ma18170vfggf8sa; popCookie=1; _gid=GA1.2.182249774.1621486055; _gat_gtag_UA_117413493_7=1\"\n\t\t}\n\t})\n\t.then(async res => {\n\t\tconst $ = cheerio.load(res.data)\n\t\tlet token = $('#token').attr('value');\n\t\tconst Form = {\n\t\t\turl: link,\n\t\t\tformat: '',\n\t\t\ttoken: token\n\t\t}\n\t\tawait axios(\"https://ttdownloader.com/ajax/\", {\n\t\t\tmethod: \"POST\",\n\t\t\tdata: new URLSearchParams(Object.entries(Form)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=797oo0b7ao6ma18170vfggf8sa; popCookie=1; _gid=GA1.2.182249774.1621486055; _gat_gtag_UA_117413493_7=1\"\n\t\t\t}\n\t\t}).then(respon => {\n\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\tlet result = {\n\t\t\t\tstatus: respon.status,\n\t\t\t\tauthor: 'RA BOT',\n\t\t\t\tresult: {\n\t\t\t\t\tnowm: ch('#results-list > div:nth-child(2)').find('div.download > a').attr('href'),\n\t\t\t\t\twm: ch('#results-list > div:nth-child(3)').find('div.download > a').attr('href'),\n\t\t\t\t\taudio: ch('#results-list > div:nth-child(4)').find('div.download > a').attr('href')\n\t\t\t\t}\n\t\t\t}\n\t\t\tResult.push(result)\n\t\t})\n\t})\n\treturn Result[0]\n}\nasync function uploadFile(path) {\n\tconst Result = []\n\tconst bodyForm = new FormData();\n\tbodyForm.append('files[]', fs.createReadStream(path))\n\tawait axios(`https://uguu.se/upload.php`,{\n\t\tmethod: 'POST',\n\t\tdata: bodyForm,\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"content-type\": `multipart/form-data; boundary=${bodyForm._boundary}`\n\t\t}\n\t}).then(({ data }) => {\n\t\tconst result = {\n\t\t\tauthor: 'Created by Ra',\n\t\t\tstatus: data.success ? 200 : 404,\n\t\t\tresult: {\n\t\t\t\turl: data.files[0].name,\n\t\t\t\tnamaFile: data.files[0].url,\n\t\t\t\tsize: data.files[0].size,\n\t\t\t\thash: data.files[0].hash\n\t\t\t}\n\t\t}\n\t\tResult.push(result.result.url)\n\t})\n\treturn Result[0]\n}\nasync function ytPlay(querry) {\n\tconst videos = await yt(querry)\n\tconst result = []\n\tconst Format = {\n\t\tq: videos.all[0].url,\n\t\tvt: 'mp3'\n\t}\n\tawait axios('https://yt1s.com/api/ajaxSearch/index', {\n\t\tmethod: 'POST',\n\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\"cookie\": \"_ga=GA1.2.586773459.1621481788; _gid=GA1.2.1576517376.1621481788; _gat_gtag_UA_173445049_1=1\"\n\t\t},\n\t\treferrerPolicy: \"strict-origin-when-cross-origin\"\n\t}).then(async res => {\n\t\tconst FormatData = {\n\t\t\tvid: res.data.vid,\n\t\t\tk: res.data.kc\n\t\t}\n\t\tawait axios('https://yt1s.com/api/ajaxConvert/convert', {\n\t\t\tmethod: 'POST',\n\t\t\tdata: new URLSearchParams(Object.entries(FormatData)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"sec-ch-ua-mobile\": \"?0\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.586773459.1621481788; _gid=GA1.2.1576517376.1621481788; _gat_gtag_UA_173445049_1=1\"\n\t\t\t},\n\t\t\treferrerPolicy: \"strict-origin-when-cross-origin\"\n\t\t}).then(respon => {\n\t\t\tresult.push(respon.data)\n\t\t})\n\t})\n\treturn result[0]\n}\nasync function Gempa() {\n\ttry{\n\tconst link = await axios.get(`https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg`)\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\t$('body > div.wrapper > div.container.content > div > div.col-md-8 > div > div > table > tbody').each(function (a, b) {\n\t    $(b).find('tr').each(function (c, d) {\n\t\t\tlet tanggal = $(d).find('td:nth-child(2)').text().trim()\n\t\t\tlet koordinat = $(d).find('td:nth-child(3)').text().trim()\n\t\t\tlet magnitudo = $(d).find('td:nth-child(4)').text().trim()\n\t\t\tlet kedalaman = $(d).find('td:nth-child(5)').text().trim()\n\t\t\tlet skala = $(d).find('td:nth-child(6) > a').text().trim()\n\t\t\tconst data = {\n\t\t\t\tauthor: 'Ra bot',\n\t\t\t\tstatus: link.status,\n\t\t\t\tresult: {\n\t\t\t\t\ttanggal: tanggal,\n\t\t\t\t\tkoordinat: koordinat,\n\t\t\t\t\tgetaran: magnitudo,\n\t\t\t\t\tkedalaman: kedalaman,\n\t\t\t\t\tskala: skala\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function cnn() {\n\ttry {\n\tconst link = await axios.get('https://www.cnnindonesia.com/')\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\t$('#content > div > div.l_content > div.box.feed.berita_terbaru_lst > div.list.media_rows.middle').each(function (a, b) {\n\t\t$(b).find('article').each(function (c, d) {\n\t\t\tlet judul = $(d).find('a > span.box_text > h2').text().trim() || '-' \n\t\t\tlet tema = $(d).find('a > span.box_text > span.kanal').text().trim() || '-'\n\t\t\tlet publik = $(d).find('a > span.box_text > span.date').text().trim() || '-'\n\t\t\tlet thumb = $(d).find('a > span.ratiobox.ratio_16_9.box_img > span > img').attr('src') || '-'\n\t\t\tlet url = $(d).find('a').attr('href') || '-'\n\t\t\tconst data = {\n\t\t\t\tauthor: 'Ra bot',\n\t\t\t\tstatus: link.status,\n\t\t\t\tresult: {\n\t\t\t\t\tjudul: judul,\n\t\t\t\t\ttema: tema,\n\t\t\t\t\trilis: publik,\n\t\t\t\t\tthumb: thumb,\n\t\t\t\t\turl: url\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function photoManipulation(namaFile, path, effectId) {\n\tconst hasil = []\n\t\tconst fd = new FormData();\n\t\tfd.append('name', `${namaFile}`)\n\t\tfd.append('file', fs.createReadStream(`${path}`))\n\t\tawait axios( {\n\t\t\tmethod: \"POST\",\n\t\t\turl: \"https://photomania.net/upload/file\",\n\t\t\theaders: fd.getHeaders(),\n\t\t\tdata: fd\n\t\t}).then(async res => {\n\t\t\tconst formData = {\n\t\t\t\tphotoId: `${res.data.id}`,\n\t\t\t\teffectId: `${effectId}`\n\t\t\t}\n\t\t\tawait axios(`https://photomania.net/render`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(formData)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"application/json, text/javascript, /; q=0.01\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t}\n\t\t\t}).then(respon => {\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: respon .status,\n\t\t\t\t\tauthor: \"I`am Ra\",\n\t\t\t\t\tresult: {\n\t\t\t\t\t\turl: respon.data.url,\n\t\t\t\t\t\turl_secury: respon.data.url_secure,\n\t\t\t\t\t\tukuran: respon.data.width + ' x ' + respon.data.height,\n\t\t\t\t\t\texplayet: respon.data.expires_at\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thasil.push(result)\n\t\t\t\treturn result\n\t\t\t})\n\t\t})\n\t\treturn hasil[0]\n}\nasync function ToVid(path) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tconst BodyForm = new FormData()\n\t\tBodyForm.append('new-image', fs.createReadStream(path))\n\t\tBodyForm.append('new-image-url', '')\n\t\tawait axios({\n\t\t\turl: \"https://s7.ezgif.com/webp-to-mp4\",\n\t\t\tmethod: \"POST\",\n\t\t\theaders: BodyForm.getHeaders(),\n\t\t\tdata: BodyForm\n\t\t}).then(res => {\n\t\t\tconst $ = cheerio.load(res.data)\n\t\t\tlet File = $('#main > form').find('input[type=hidden]:nth-child(1)').attr('value')\n\t\t\tlet token = $('#main > form').find('input[type=hidden]:nth-child(2)').attr('value')\n\t\t\tlet Submit = $('#tool-submit-button').find('input').attr('value')\n\t\t\tconst Format = {\n\t\t\t\tfile: File,\n\t\t\t\ttoken: token,\n\t\t\t\tconvert: Submit\n\t\t\t}\n\t\t\taxios({\n\t\t\t\turl: \"https://ezgif.com/webp-to-mp4/\" + File,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\"\n\t\t\t\t}\n\t\t\t}).then(({ data, status}) => {\n\t\t\t\tconst ch = cheerio.load(data)\n\t\t\t\tlet link = ch('#output > p.outfile').find('video > source').attr('src')\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: status,\n\t\t\t\t\tdata: \"https:\" + link\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t})\n\t})\n}\nasync function fbDownloader(Link) {\n\treturn new Promise (async (resolve, reject) => {\n\t\tconst BodyForm = {\n\t\t\turl: Link\n\t\t}\n\t\tawait axios({\n\t\t\turl: \"https://www.getfvid.com/downloader\",\n\t\t\tmethod: \"POST\",\n\t\t\tdata:  new URLSearchParams(Object.entries(BodyForm)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'\n\t\t\t}\n\t\t}).then(respon => {\n\t\t\tconst $ = cheerio.load(respon.data)\n\t\t\tlet HD = $(\"body > div.page-content > div > div > div.col-lg-10.col-md-10.col-centered\").find('div > div:nth-child(3) > div > div.col-md-4.btns-download > p:nth-child(1) > a').attr('href')\n\t\t\tlet Normal = $(\"body > div.page-content > div > div > div.col-lg-10.col-md-10.col-centered\").find('div > div:nth-child(3) > div > div.col-md-4.btns-download > p:nth-child(2) > a').attr(\"href\")\n\t\t\tconst result = {\n\t\t\t\tstatus: respon.status,\n\t\t\t\tauthor: \"I`am RA\",\n\t\t\t\tresult: {\n\t\t\t\t\tlink_hd: HD,\n\t\t\t\t\tnormal: Normal\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolve(result)\n\t\t}).catch(reject)\n\t})\n}\nasync function SpeedVid(path, kecepatan) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tconst BodyForm = new FormData()\n\t\tBodyForm.append('new-image', fs.createReadStream(path))\n\t\tBodyForm.append('new-image-url', '')\n\t\tBodyForm.append('upload', 'Upload video!')\n\t\tawait axios({\n\t\t\turl: \"https://s3.ezgif.com/video-speed\",\n\t\t\tmethod: \"POST\",\n\t\t\tdata: BodyForm,\n\t\t\theaders: BodyForm.getHeaders()\n\t\t}).then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tlet File = $('#main > form').find(' input[type=hidden]:nth-child(1)').attr('value')\n\t\t\tlet token = $('#main > form').find('input[type=hidden]:nth-child(2)').attr('value')\n\t\t\tconst Format = {\n\t\t\t\tfile: File,\n\t\t\t\ttoken: token,\n\t\t\t\tmultiplier: kecepatan,\n\t\t\t\tapply_audio: \"on\"\n\t\t\t}\n\t\t\taxios({\n\t\t\t\turl: `https://s3.ezgif.com/video-speed/${File}?ajax=true`,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t}\n\t\t\t}).then(respon => {\n\t\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\t\tlet result = {\n\t\t\t\t\tstatus: respon.status,\n\t\t\t\t\tauthor: \"I`am Ra\",\n\t\t\t\t\tdata: 'https:' + ch('p').find('video > source').attr('src')\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t})\n\t})\n}\nasync function ReverseVid (path, audio) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tfunction muteOrno(audioo ,File, token) {\n\t\t\tif (audioo === true) {\n\t\t\t\tconst Format = {\n\t\t\t\t\tfile: File,\n\t\t\t\t\ttoken: token,\n\t\t\t\t\taudio: \"on\",\n\t\t\t\t\tencoding: \"original\"\n\t\t\t\t}\n\t\t\t\treturn Format\n\t\t\t} else if (audioo === false) {\n\t\t\t\tconst Format = {\n\t\t\t\t\tfile: File,\n\t\t\t\t\ttoken: token,\n\t\t\t\t\tmute: \"on\",\n\t\t\t\t\tencoding: \"original\"\n\t\t\t\t}\n\t\t\t\treturn Format\n\t\t\t} else {\n\t\t\t\tconst Format = {\n\t\t\t\t\tfile: File,\n\t\t\t\t\ttoken: token,\n\t\t\t\t\taudio: \"on\",\n\t\t\t\t\tencoding: \"original\"\n\t\t\t\t}\n\t\t\t\treturn Format\n\t\t\t}\n\t\t}\n\tconst BodyForm = new FormData()\n\t\tBodyForm.append('new-image', fs.createReadStream(path))\n\t\tBodyForm.append('new-image-url', '')\n\t\tBodyForm.append('upload', 'Upload video!')\n\t\tawait axios({\n\t\t\turl: \"https://s3.ezgif.com/reverse-video\",\n\t\t\tmethod: 'POST',\n\t\t\tdata: BodyForm,\n\t\t\theaders: BodyForm.getHeaders()\n\t\t}).then(async respon => {\n\t\t\tconst $ = cheerio.load(respon.data)\n\t\t\tlet File = $('#main > form').find('input[type=hidden]:nth-child(1)').attr('value')\n\t\t\tlet token = $('#main > form').find('input[type=hidden]:nth-child(2)').attr('value')\n\t\t\tconst Format = await muteOrno(audio, File, token)\n\t\t\taxios(`https://s3.ezgif.com/reverse-video/${File}?ajax=true`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\"\n\t\t\t\t}\n\t\t\t}).then(res => {\n\t\t\t\tconst ch = cheerio.load(res.data)\n\t\t\t\tlet Link = ch('p > video').find('source').attr('src')\n\t\t\t\tlet Type = ch('p > video').find('source').attr('type')\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\tcreated: \"I`am Ra\",\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tlink: \"https:\" + Link,\n\t\t\t\t\t\ttype: Type\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t}).catch(reject)\n\t})\n}\nasync function GSMArena(querry) {\n\tconst link = await axios.get(`https://www.gsmarena.com/res.php3?sSearch=${querry}`)\n\tconst ch = cheerio.load(link.data)\n\tlet Url = ch('#review-body > div > ul').find('li:nth-child(1) > a').attr('href')\n\tconst Link = await axios.get(`https://www.gsmarena.com/${Url}`)\n\tlet $ = cheerio.load(Link.data)\n\tlet barang = $('#body > div > div.review-header > div').find(' div.article-info-line.page-specs.light.border-bottom > h1').text().trim()\n\tlet rilis = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(1) > span').text().trim()\n\tlet thumb = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > div > a > img').attr('src')\n\tlet ukuran = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(3) > span').text().trim()\n\tlet tipe = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(5) > span').text().trim()\n\tlet storage = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(7) > span').text().trim()\n\tlet display = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-display > div').text().trim()\n\tlet inchi = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-display > strong > span').text().trim()\n\tlet camPix = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-camera > strong > span:nth-child(1)').text().trim()\n\tlet Mp = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-camera > strong > span:nth-child(2)').text().trim()\n\tlet VideoVix = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-camera > div').text().trim()\n\tlet Ram = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-expansion > strong > span:nth-child(2)').text().trim()\n\tlet chipset = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-expansion > div').text().trim()\n\tlet batre = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-battery > strong > span:nth-child(1)').text().trim()\n\tlet Mah = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-battery > strong > span:nth-child(2)').text().trim()\n\tlet merekBatre = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-battery > div').text().trim()\n\tlet AngkaRam = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-expansion > strong > span:nth-child(1)').text().trim()\n\tlet detail = []\n\t$('#specs-list').each(function (anu, RA) {\n\t\tlet isi = $(RA).text().trim()\n\t\tdetail.push(isi)\n\t})\n\tconst result = {\n\t\tstatus: Link.status,\n\t\tauthor: \"I`am Ra\",\n\t\tresult: {\n\t\t\tjudul: barang,\n\t\t\trilis: rilis,\n\t\t\tthumb: thumb,\n\t\t\tukuran: ukuran,\n\t\t\ttype: tipe,\n\t\t\tstorage: storage,\n\t\t\tdisplay: display,\n\t\t\tinchi: inchi,\n\t\t\tpixel: camPix + Mp,\n\t\t\tvideoPixel: VideoVix,\n\t\t\tram: AngkaRam + Ram,\n\t\t\tchipset: chipset,\n\t\t\tbatrai: batre + Mah,\n\t\t\tmerek_batre: merekBatre,\n\t\t\tdetail: detail[0]\n\t\t}\n\t}\n\treturn result\n}\nasync function zodiakMing(querry) {\n\tconst link = await axios.get(`https://www.fimela.com/zodiak/${querry}/minggu-ini`)\n\tconst  $ = cheerio.load(link.data)\n\tlet thumb = $('body > div > div > div').find('div > div > a > img').attr('src')\n\tlet judul = $('body > div > div > div').find('div > div > div.zodiak--content-header__text > h5').text().trim()\n\tlet date = $('body > div > div > div').find('div> div.zodiak--content-header__text > span').text().trim()\n\tlet hoki = $('body > div > div > div > div').find('div > div > div:nth-child(1) > div > span').text().trim()\n\tlet umum = $('body > div > div > div > div').find(' div > div > div:nth-child(1) > div > p').text().trim()\n\tlet love = $('body > div > div > div > div').find(' div > div > div:nth-child(2) > div > p').text().trim()\n\tlet keuangan = $('body > div > div > div > div').find(' div > div > div:nth-child(3) > div > p').text().trim()\n\tconst result = {\n\t\tstatus: link.status,\n\t\tdata: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tdate: date,\n\t\t\tnomer_hoki: hoki,\n\t\t\tisi: {\n\t\t\t\tumum: umum,\n\t\t\t\tlove: love,\n\t\t\t\tkeuangan: keuangan\n\t\t\t}\n\t\t}\n\t}\n\treturn result\n}\nasync function zodiakHar (querry) {\n\tlet Hasil = []\n\tawait axios.request(`https://www.fimela.com/zodiak/${querry}`, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t}\n\t\t}).then(({ data}) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tlet thumb = $('body > div > div > div').find('div > div > a > img').attr('src')\n\t\t\tlet judul = $('body > div > div.container-main > div.container-article > div').find('div.zodiak--content-header__right > div.zodiak--content-header__text > h5').text().trim()\n\t\t\tlet tanggal = $('body > div > div > div > div > div > div > span').text().trim()\n\t\t\tlet nomer_ = $('body > div > div > div > div > div > div').find('div:nth-child(1) > div.zodiak--content__content > span').text().trim()\n\t\t\tlet isi = []\n\t\t\t$('body > div > div > div > div > div > div').each(function (anu, RA) {\n\t\t\t\tlet umum = $(RA).find('div:nth-child(1) > div.zodiak--content__content > p').text().trim() || undefined\n\t\t\t\tlet love = $(RA).find('div:nth-child(2) > div.zodiak--content__content > p').text().trim() || undefined\n\t\t\t\tlet keuangan = $(RA).find('div:nth-child(3) > div.zodiak--content__content > p').text().trim() || undefined\n\t\t\t\tlet Data = {\n\t\t\t\t\tumum: umum,\n\t\t\t\t\tlove: love,\n\t\t\t\t\tkeuangan: keuangan\n\t\t\t\t}\n\t\t\t\tisi.push(Data)\n\t\t\t})\n\t\t\tlet ramal = []\n\t\t\tisi.map(ryuzin => {\n\t\t\t\tif (ryuzin.umum === undefined) return\n\t\t\t\tif (ryuzin.love === undefined) return\n\t\t\t\tif (ryuzin.keuangan === undefined) return\n\t\t\t\tramal.push(ryuzin)\n\t\t\t})\n\t\t\tconst result = {\n\t\t\t\tjudul: judul,\n\t\t\t\tthumb: thumb,\n\t\t\t\tdate: tanggal,\n\t\t\t\tno_hoki: nomer_,\n\t\t\t\tteori: ramal[0]\n\t\t\t}\n\t\t\tHasil.push(result)\n\t\t})\n\t\treturn Hasil[0]\n}\nasync function Shoope(item, limit) {\n\tconst hasil = []\n\tawait axios.request(`https://shopee.co.id/api/v4/search/search_items?by=relevancy&keyword=${item}&limit=${limit}&newest=0&order=desc&page_type=search&scenario=PAGE_GLOBAL_SEARCH&version=2`, {\n\t\tmethod: \"GET\",\n\t\tdata: null,\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"if-none-match-\": \"55b03-856cd63f16112f8a43da6096f97ac3fe\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t}\n\t}).then(respon => {\n\t\thasil.push(respon.data)\n\t})\n\treturn hasil[0]\n}\nasync function pinterest(querry) {\n\tlet HASIL = []\n\tawait axios.request(`https://id.pinterest.com/search/pins/?rs=typed&q=` + querry, {\n\t\t\tmethod: \"GET\",\n\t\t\turl: \"https://id.pinterest.com/search/pins/?rs=typed&q=\"+ querry,\n\t\t\theaders: {\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"sec-ch-ua-mobile\": \"?0\",\n\t\t\t\t\"upgrade-insecure-requests\": \"1\",\n\t\t\t\t\"cookie\": \"csrftoken=ebe0be3a93cea6072be18633add953a2; _b=\\\"AVezvd6F4UtE24FUsA6INxipyZZDoSpyCc5vaJK4QDYXmExosVEc4h6WkiKhlVtQ430=\\\"; cm_sub=denied; fba=True; _ga=GA1.2.862909259.1620474446; g_state={\\\"i_l\\\":0}; _auth=1; _pinterest_sess=TWc9PSZ0VEZqZmdDSlJYaGU5REIvNklIcVlnMjE5b0ZraTE5REJVQ0JiMUwxTkZZaGFoVk1sRDVhOFlwQzhkQnQ0YkMwRlNyV0lIWUFlK0ZVTkVxYUhKNmlvZ0R1UXlQYTBRRVVhMU1yYkpmcXpHK3UyNjNhckRqUFFOYVJVa3RnVmJtVzd2MmRGaHFMZUpLNVhtaHptTDhWSnBSdXhZY0FhRnRTN3J1S0V4cGtsVTBxeE54NkF2blVNSFV3R0NTQTR1bVVNRURGVGdnYlN5UjdBbk9YcHVGbGI3a1kwd1dEZDgrZVM1SDc3V0pJMm00OWxKUDVNQjBLVlFocTB4Mjg1M1RnbGxBaFAxbS9MTnVzei91cEQvcjBtakp6N0ZnU2t1Y3NxWW1DRDV1Q3h0ankvQ3FEWGh3MXczcXBHNXJpYVNCMHB6dUoxMGF6ZzVxN2VqQVBoSElSd0tiQk41ZVRPQXlOaGNpNzVQMWJSeVZJbCtYYVMxQ1ZRUFUwalU3eGVzMGRySlNzdWo1NG5uaXNFM3ZpT0o0TkZHR1daUXlwaXFQclMwa04raW9xVnVaTTRSVGEzTE03TVlZcmZYVDd5UmVPd2lZaGw4aE9VMHJBd0tidEsrcHdPWk96RlFMekVLTzY3VU1PL0tIYUdwUE1IWVdJNnJXalBkU09Sb3dEaHlQVVR1T1RqNW5Sc2FRdmVkZmhkMk9HNHBCL0ZpZ3NMdmZvVW9ReVltTFBCTlNLWHpray9LNWJ2UTNvTlBzVm9aZjRvYWRvRFhla0dBNzdveWJVYXZmVFp2cnFFNU5DYUVwSHhxeDlIajNIVTlHaEVYdGptWm5mSGVSRmtIMmQwVVVVZlVCVEh6UHB3TnBtdWV0b2l6L3VTc3pXMXFGN3lHS3ZJM3BwL0NrWVJDMm1HY2tROGxuQVFRNS9OUW45R3dtSk8zeFJidVFSTG1qTG5PelAvKzd3T3lrN1NoKzBHVGNTY1pGSEY0bW8xcGVmc3NtclBhTWE2QUMxOXNpQWUwRmo4UHl0ZGpwUzhUQXVhbjYwT0ZJeHhHai8yOWFUVTA1Wkx2czN4VSttLzMvbkFVQ2svWnZvNC9xZ3E4VkhYSFZ5elo4TzhtU0o5c3ZDcEJyYjE3QVI1WHlmTTFhWThvWHQ1T0tSTWRsWnI3a1lpU245dEVLd1lZSXRremtkTUZmcVA2YUg0c1UrSk1JOWJVRzZpcWd3T0NVaFZkdUh3UUdURi9sbDBqT2pBZVV2ZnlTQzc5ZnBMYkFMQ1ZsWjdIYWcmaDc1Uk5kK2I4MjFMUXBaVUthci9rVHpCUWRvPQ==; _pinterest_cm=\\\"TWc9PSYxZnpkMS9XN29Rd2R0TnpBN0RzVktja1J4NUtINUJqRzNGODFXS0xES1pndWlNVm52a0d3V0JocmVIS3p5eDdnNXNZa0hGelNQNDBSTFRId3ZhTFFIQjRGOW1lNlJZMzFiVlg1MHhSOFpmMGhRZUoySUpJZDIyWlVYMjRXNHRaL1lodFl4eW1jWjNyTklpbytYbHZyd29nRm5DY0pQOGgyUWpDdk9zQ1craXR5VEZoNHV4ZzRnOXV4SUFFSStYZCsmT08zMFI1bktXa3pwSDFtK3NNRWpxWWNpQzNzPQ==\\\"; _routing_id=\\\"595f24cd-7f4c-4495-aa67-37212d099cd8\\\"; sessionFunnelEventLogged=1\"\n\t\t\t}\n\t\t}).then(res => {\n\t\t\tconst $ = cheerio.load(res.data)\n\t\t\tlet hasil = []\n\t\t\t$('body > div > div > div > div > div > div > div > div > div > div > div').each(function (a, b) {\n\t\t\t\t$(b).find('div').each(function (c, d) {\n\t\t\t\t\tlet Link = $(d).find('div > div > div > div > a').find('img').attr('src')\n\t\t\t\t\thasil.push(Link)\n\t\t\t\t})\n\t\t\t})\n\t\t\tlet Data = []\n\t\t\thasil.map(V => {\n\t\t\t\tif (V === undefined) return \n\t\t\t\tData.push(V.replace('236x', 'originals'))\n\t\t\t})\n\t\t\tlet FilterArray = new Set(Data)\n\t\t\tlet unique = [...FilterArray]\n\t\t\tconst result = {\n\t\t\t\tstatus: res.status,\n\t\t\t\tresult: unique\n\t\t\t}\n\t\t\tHASIL.push(result)\n\t\t})\n\t\treturn HASIL[0]\n}\nasync function TiktokDown (link) {\n\t\treturn new Promise (async (resolve, reject) => {\n\t\t\tawait axios.request(`https://toksaver.com/convertok?url=` + link, {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tdata: null,\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"/\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\t'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'\n\t\t\t\t}\n\t\t\t}).then(res => {\n\t\t\t\tresolve(res.data)\n\t\t\t}).catch(reject)\n\t\t})\n}\n\n\nmodule.exports.RandomCerpen = RandomCerpen\nmodule.exports.emoji = emoji\nmodule.exports.stickerSearch = stickerSearch\nmodule.exports.ManggaToon = ManggaToon\nmodule.exports.RamalJadian = RamalJadian\nmodule.exports.Pantun = Pantun\nmodule.exports.trutdare = trutdare\nmodule.exports.SearchFilm = SearchFilm\nmodule.exports.infoFilm123 = infoFilm123\nmodule.exports.FaktaUnik = FaktaUnik\nmodule.exports.Liriklagu = Liriklagu\nmodule.exports.Otakudesu = Otakudesu\nmodule.exports.wikipedia = wikipedia\nmodule.exports.corona =  corona\nmodule.exports.cuaca = cuaca\nmodule.exports.FilmApik23 = FilmApik23\nmodule.exports.Gempa = Gempa\nmodule.exports.cnn = cnn\nmodule.exports.TiktokDownloader = TiktokDownloader\nmodule.exports.uploadFile =  uploadFile\nmodule.exports.ytPlay = ytPlay\nmodule.exports.igDownloader = igDownloader\nmodule.exports.ssstik_io =  ssstik_io\nmodule.exports.photoManipulation = photoManipulation\nmodule.exports.ToVid = ToVid \nmodule.exports.fbDownloader = fbDownloader\nmodule.exports.SpeedVid = SpeedVid\nmodule.exports.ReverseVid = ReverseVid\nmodule.exports.GSMArena =  GSMArena\nmodule.exports.zodiakMing = zodiakMing\nmodule.exports.zodiakHar =  zodiakHar \nmodule.exports.Shoope = Shoope\nmodule.exports.pinterest = pinterest\nmodule.exports.TiktokDown = TiktokDown\n"
  },
  {
    "path": "Zimbot/index3.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst axios = require('axios');\nconst cheerio = require('cheerio');\nconst fs = require('fs');\nconst { spawn, exec } = require(\"child_process\");\nconst yt = require(\"yt-search\");\nconst FormData = require(\"form-data\");\nconst got = require(\"got\")\nconst print = (message) => {\n\treturn console.log(message)\n}\n\nasync function ManggaToon(judul) {\n\ttry {\n\t\tconst link = await axios.get(`https://mangatoon.mobi/id/search?word=${judul}`) \n\t\tconst c = cheerio.load(link.data)\n\t\tlet id = c('#page-content').find('div.search-page > div > div.comics-result > div.recommended-wrap > div > div > a').attr('href') || 'undefined'\n\t\tif(id === 'undefined') {\n\t\t\tconst link2 = await axios.get(`https://mangatoon.mobi/en/search?word=${judul}`)\n\t\t\tconst C = cheerio.load(link2.data)\n\t\t\tlet id2 = C('#page-content').find('div.search-page > div > div.comics-result > div.recommended-wrap > div > div:nth-child(1) > a').attr('href')\n\t\t\tconst data = await axios.get(`https://mangatoon.mobi${id2}`)\n\t\t\tconst $ = cheerio.load(data.data)\n\t\t\tvar judul = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-title-bg > span').text().trim()\n\t\t\tvar genre = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-tags-info > span').text().trim()\n\t\t\tvar author = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-author-name > span').text().trim()\n\t\t\tvar thumb = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-img > img.big-img').attr('src');\n\t\t\tvar LinkKe = $('#page-content').find('div.detail-wrap > div.detail-interact > a').attr('href')\n\t\t\tvar Link = `https://mangatoon.mobi${LinkKe}`\n\t\t\tlet Author = author.replace('Nama Author: ', '');\n\t\t\tlet hasil = {\n\t\t\t\tjudul, thumb, genre, Author, Link\n\t\t\t}\n\t\t\treturn hasil\n\t\t} else {\n\t\tconst data = await axios.get(`https://mangatoon.mobi${id}`)\n\t\tconst $ = cheerio.load(data.data)\n\t\tvar judul = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-title-bg > span').text().trim()\n\t\tvar genre = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-tags-info > span').text().trim()\n\t\tvar author = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-info > div.detail-author-name > span').text().trim()\n\t\tvar thumb = $('#page-content').find('div.detail-wrap > div.detail-top-info > div.detail-img > img.big-img').attr('src');\n\t\tvar LinkKe = $('#page-content').find('div.detail-wrap > div.detail-interact > a').attr('href')\n\t\tvar Link = `https://mangatoon.mobi${LinkKe}`\n\t\tlet Author = author.replace('Nama Author: ', '');\n\t\tlet hasil = {\n\t\t\tjudul, thumb, genre, Author, Link\n\t\t}\n\t\treturn hasil\n\t}\n\t\t} catch (err) {\n\t\t\treturn `Not Found 404`\n\t\t}\n}\nasync function emoji(emoticon) {\n\tconst emojii = encodeURI(`${emoticon}`)\n\tconst link = await axios.get(`https://emojipedia.org/${emojii}/`)\n\tconst $ = cheerio.load(link.data)\n\tvar apple = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(1) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar google = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(2) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar samsung = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(3) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar microsoft = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(4) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar whatsapp = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(5) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar twitter = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(6) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar facebook = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(7) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar jooxpixel = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(8) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar openmoji = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(9) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar emojidex = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(10) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar messager = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(11) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar LG = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(12) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar HTC = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(13) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar mozilla = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(14) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar softbank = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(15) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar docomo = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(16) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tvar KDDI = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(17) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\n\tconst result = {\n\t\tapple: apple.replace('120', '240'),\n\t\tgoogle: google.replace('120', '240'),\n\t\tsamsung: samsung.replace('120', '240'),\n\t\tmicrosoft: microsoft.replace('120', '240'),\n\t\twhatsapp: whatsapp.replace('120', '240'),\n\t\ttwitter: twitter.replace('120', '240'),\n\t\tfacebook: facebook.replace('120', '240'),\n\t\tjooxPixel: jooxpixel.replace('120', '240'),\n\t\topenemoji: openmoji.replace('120', '240'),\n\t\temojidex: emojidex.replace('120', '240'),\n\t\tmessanger: messager.replace('120', '240'),\n\t\tLG: LG.replace('120', '240'),\n\t\tHTC: HTC.replace('120', '240'),\n\t\tmozilla: mozilla.replace('120', '240'),\n\t\tsoftbank: softbank.replace('120', '240'),\n\t\tdocomo: docomo.replace('120', '240'),\n\t\tKDDI: KDDI.replace('120', '240')\n\t}\n\treturn result\n}\n\nasync function RandomCerpen() {\n\ttry{\n\tconst link = await axios.get(`http://cerpenmu.com/`)\n\tconst c = cheerio.load(link.data)\n\tlet kumpulan = []\n\tc('#sidebar > div').each(function (real, ra) {\n\t\tc(ra).find('ul > li').each(function (i, rayy) {\n\t\t\tlet random = c(rayy).find('a').attr('href')\n\t\t\tkumpulan.push(random)\n\t\t})\n\t})\n\tvar acak = kumpulan[Math.floor(Math.random() * (kumpulan.length))]\n\tlet Otw = await axios.get(`${acak}`)\n\tconst C = cheerio.load(Otw.data)\n\tlet otw = []\n\tC('#content > article > article').each(function (a, b) {\n\t\tlet random = C(b).find('h2 > a').attr('href')\n\t\totw.push(random)\n\t})\n\tvar Acak = otw[Math.floor(Math.random() * (otw.length))]\n\tlet Link = await axios.get(`${Acak}`)\n\tlet $ = cheerio.load(Link.data)\n\tlet judul = $('#content').find('article > h1').text().trim()\n\tlet karangan = $('#content').find('article > a:nth-child(2)').text().trim()\n\tlet Isi = []\n\t$('#content > article > p').each(function (wm, Ra) {\n\t\tlet isi = $(Ra).text().trim()\n\t\tIsi.push(isi)\n\n\t})\n\tlet cerita = []\n\tfor (let i of Isi) {\n\t\tcerita += i\n\t}\n\tconst data = {\n\t\tstatus: 200,\n\t\tauthor: 'RA BOT',\n\t\tresult: {\n\t\t\tJudul: judul,\n\t\t\tPenulis: karangan,\n\t\t\tsumber: Acak,\n\t\t\tcerita: cerita\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tconst res404 = {\n\t\tstatus: 500,\n\t\tauthor: 'RA BOT',\n\t\tPesan: 'Udah Ga work?:/ cp: 082149344210'\n\t}\n\treturn res404\n}\n}\nasync function stickerSearch(querry) {\n\tconst link = await axios.get(`https://getstickerpack.com/stickers?query=${querry}`);\n\tconst $ = cheerio.load(link.data)\n\tlet sticker1 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > img').attr('src'),\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > span.title').text().trim(),\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > span.username').text().trim()\n\t}\n\tlet sticker2 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > span.username').text().trim() \n\t}\n\tlet sticker3 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > span.username').text().trim() \n\t}\n\tlet sticker4 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > span.username').text().trim() \n\t}\n\tlet sticker5 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > span.username').text().trim() \n\t}\n\tlet sticker6 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > span.username').text().trim() \n\t}\n\tlet sticker7 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > span.username').text().trim() \n\t}\n\tlet sticker8 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > span.username').text().trim() \n\t}\n\tlet sticker9 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > span.username').text().trim() \n\t}\n\tlet sticker10 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > span.username').text().trim() \n\t}\n\tlet sticker11 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > span.username').text().trim() \n\t}\n\tlet sticker12 = {\n\t\tsticker: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > img').attr('src') ,\n\t\tnama: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > span.title').text().trim() ,\n\t\tcreator: $('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > span.username').text().trim() \n\t}\n\tlet stickerlop =  [\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(1) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(2) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(3) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(4) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(5) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(6) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(7) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(8) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(9) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(10) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(11) > a > div > img').attr('src'),\n\t\t$('#stickerPacks').find('div > div:nth-child(3) > div:nth-child(12) > a > div > img').attr('src')\n\t]\nlet data = {\n\t\tsticker: stickerlop, sticker1, sticker2, sticker3, sticker4, sticker5, sticker6, sticker7, sticker8, sticker9, sticker10, sticker11, sticker12\n\t}\n\treturn data\n}\n\nasync function RamalJadian(tanggal, bulan, tahun) {\n\tif(isNaN(tanggal) && isNaN(bulan) && isNaN(tahun)) return `Tanggal bulan tahun harus berupa angka`\n\tconst link = await axios.get(`https://www.primbon.com/tanggal_jadian_pernikahan.php?tgl=${tanggal}&bln=${bulan}&thn=${tahun}&proses=+Submit%21+`)\n\tconst $ = cheerio.load(link.data)\n\tlet tanggall = $('#body').text().trim()\n\tlet a = tanggall.replace('MAKNA TANGGAL JADIAN, PERNIKAHAN', '').replace('Karakteristik:', '\\nKarakteristik : ').replace('< Hitung Kembali', '')\n\treturn a\n}\nasync function igDownloader(Link) {\n\tconst hasil = []\n\tconst Form = {\n\t\turl: Link,\n\t\tsubmit: \"\"\n\t}\n\tawait axios(`https://downloadgram.org/`, {\n\t\tmethod: \"POST\",\n\t\tdata:  new URLSearchParams(Object.entries(Form)),\n\t\theaders: {\n\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\"cookie\": \"_ga=GA1.2.1695343126.1621491858; _gid=GA1.2.28178724.1621491859; __gads=ID=8f9d3ef930e9a07b-2258e672bec80081:T=1621491859:RT=1621491859:S=ALNI_MbqLxhztDiYZttJFX2SkvYei6uGOw; __atuvc=3%7C20; __atuvs=60a6eb107a17dd75000; __atssc=google%3B2; _gat_gtag_UA_142480840_1=1\"\n\t\t},\n\t\treferrerPolicy: \"strict-origin-when-cross-origin\",\n\t}).then(async res => {\n\t\tconst $ = cheerio.load(res.data)\n\t\tlet url = $('#downloadBox').find('a').attr('href');\n\t\tawait axios(Link, {\n\t\t\tmethod: \"GET\",\n\t\t\tdata: null,\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"ig_did=08A3C465-7D43-4D8A-806A-88F98384E63B; ig_nrcb=1; mid=X_ipMwALAAFgQ7AftbrkhIDIdXJ8; fbm_124024574287414=base_domain=.instagram.com; shbid=17905; ds_user_id=14221286336; csrftoken=fXHAj5U3mcJihQEyVXfyCzcg46lHx7QD; sessionid=14221286336%3A5n4czHpQ0GRzlq%3A28; shbts=1621491639.7673564; rur=FTW\"\n\t\t\t},\n\t\t\treferrerPolicy: \"strict-origin-when-cross-origin\"\n\t\t}).then(respon => {\n\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\tlet title = ch('title').text().trim()\n\t\t\tconst result = {\n\t\t\t\tauthor: \"RA BOT\",\n\t\t\t\tresult: {\n\t\t\t\t\tlink: url,\n\t\t\t\t\tdesc: title,\n\t\t\t\t\tLinkAwal: Link\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(result)\n\t\t})\n\t})\n\treturn hasil[0]\n}\nfunction Pantun() {\n\tconst pantun = fs.readFileSync('./database/pantun.json')\n\tconst data = JSON.parse(pantun)\n\tconst acak = data[Math.floor(Math.random() * (data.length))]\n\treturn acak\n}\nfunction trutdare(querry) {\n\tconst trdr = fs.readFileSync('./database/truthdare.json') // tempat simpen file lu\n\tconst result = JSON.parse(trdr)\n\tif(querry === 'truth id') {\n\t\tlet res = result.Truth.id[Math.floor(Math.random() * result.Truth.id.length)]\n\treturn res\n\t} else if (querry === 'truth eng') {\n\t\tlet res = result.Truth.eng[Math.floor(Math.random() * result.Truth.eng.length)]\n\t\treturn res\n\t} else if(querry === 'dare id') {\n\t\tlet res = result.Dare.id[Math.floor(Math.random() * result.Dare.id.length)]\n\t\treturn res\n\t} else if(querry === 'dare eng') {\n\t\tlet res = result.Dare.eng[Math.floor(Math.random() * result.Dare.eng.length)]\n\t\treturn res\n\t} else {\n\t\treturn `Querry tidak terdaftar dimenu harap masukkan dengan benar.\\n\\ncara pakai :\\n1. trutdare('truth id')\\n2. trutdare('truth eng')\\n3. trutdare('dare id')\\n4. trutdare('dare eng')`\n\t}\n}\nasync function SearchFilm(querry) {\n\tconst link =  await axios.get(`https://123movies.mom/search/?keyword=${querry}`)\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\tlet result = []\n\t$('#main').each(function (a, b) {\n\t\t\t $(b).find('div').each(function (c, d) {\n\t\t\t\tlet url = $(d).find('a').attr('href')\n\t\t\t\tlet img = $(d).find('a > img').attr('src')\n\t\t\t\tlet judul = $(d).find('a > img').attr('alt')\n\t\t\t\tlet data = {\n\t\t\t\t\tjudul: judul,\n\t\t\t\t\tthumb: img,\n\t\t\t\t\turl: url\n\t\t\t\t}\n\t\t\t\tresult.push(data)\n\t\t\t})\n\t\t\tfor (let i = 29; i < result.length; i++) {\n\t\t\thasil.push(result[i])\n\t\t\t}\n\t})\n\treturn hasil\n}\nfunction FaktaUnik() {\n\tconst fakta = fs.readFileSync('./database/faktaunik.json')\n\tconst data = JSON.parse(fakta)\n\tconst acak = data[Math.floor(Math.random() * (data.length))]\n\treturn acak\n}\nasync function Liriklagu(querry) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tawait axios.request({\n\t\t\turl: \"https://www.musixmatch.com/search/\" + querry,\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\"\n\t\t\t}\n\t\t}).then(async res => {\n\t\t\tconst ch = cheerio.load(res.data)\n\t\t\tlet Url = ch('#search-all-results').find('div.main-panel > div:nth-child(1) > div.box-content > div > ul > li > div > div.media-card-body > div > h2 > a').attr('href')\n\t\t\tawait axios.request({\n\t\t\t\turl: \"https://www.musixmatch.com\"+ Url,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tdata: null,\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\t\"if-none-match\": \"W/\\\"252c5-LEqIxy/rzHPI2QxgG5//NcL3YjQ\\\"\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\t'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'\n\t\t\t\t}\n\t\t\t}).then(({ data }) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tlet judul = $('#site > div > div > div > main > div > div > div.mxm-track-banner.top > div > div > div').find('div.col-sm-10.col-md-8.col-ml-9.col-lg-9.static-position > div.track-title-header > div.mxm-track-title > h1').text().trim()\n\t\t\t\tlet artis = $('#site > div > div > div > main > div > div > div > div > div > div > div> div > div > h2 > span').text().trim()\n\t\t\t\tlet thumb = $('#site > div > div > div > main > div > div > div.mxm-track-banner.top > div > div > div').find('div.col-sm-1.col-md-2.col-ml-3.col-lg-3.static-position > div > div > div > img').attr('src')\n\t\t\t\tlet lirik = []\n\t\t\t\t$('#site > div > div > div > main > div > div > div.mxm-track-lyrics-container').find('div.container > div > div > div > div.col-sm-10.col-md-8.col-ml-6.col-lg-6 > div.mxm-lyrics').each(function (a, b) {\n\t\t\t\t\tlet isi = $(b).find('span').text().trim()\n\t\t\t\t\tlirik.push(isi)\n\t\t\t\t})\n\t\t\t\tconst result = {\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tjudul: judul.replace('Lyrics', ''),\n\t\t\t\t\t\tpenyanyi: artis,\n\t\t\t\t\t\tthumb: \"https:\" + thumb,\n\t\t\t\t\t\tlirik: lirik[0]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t})\n\t})\n}\nasync function infoFilm123(url) {\n\ttry{\n\tconst link =  await axios.get(`${url}`)\n\tconst $ = cheerio.load(link.data)\n\tlet judul = $('#mv-info').find('div.mvi-content > div.mvic-desc > h1').text().trim()\n\tlet genre = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(1) > a').text().trim()\n\tlet aktor = []\n\t$('div.mvi-content').each(function (a, b) {\n\t\tlet res = $(b).find('div.mvic-desc > div.mvic-info > div.mvici-left > p > a').text().trim()\n\t\taktor.push(res)\n\t})\n\tlet country = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(4) > a').attr('title')\n\tlet durasi = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(1) > strong').text().trim()\n\tlet kualitas = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(2) > span').text().trim()\n\tlet publish = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(4) > a').text().trim()\n\tlet tag = []\n\t$('#mv-keywords').each(function (c, d) {\n\t\tlet res = $(d).find('a').text().trim()\n\t\ttag.push(res)\n\t})\n\tlet thumb = $('#mv-info').find('div.player-holder > a').attr('style')\n\tlet video = $('#mv-info').find('div.player-holder > a').attr('href')\n\tvar result = {\n\t\tjudul: judul,\n\t\tthumbail: thumb.replace('background-image: url', '').replace('(', '').replace(')', ''),\n\t\tgenre: genre,\n\t\tvideo: video,\n\t\tnegara: country,\n\t\tdurasi: durasi,\n\t\tquality: kualitas,\n\t\trilis: publish,\n\t\taktor: aktor,\n\t\thastag: tag\n\t}\n\treturn result\n} catch (err) {\n\treturn `Judul tidak ditemukan`\n}\n} \n\nasync function Otakudesu(querry) {\n\ttry {\n\tconst link = await axios.get(`https://otakudesu.moe/?s=${querry}&post_type=anime`)\n\tconst c = cheerio.load(link.data)\n\tlet id = c('#venkonten > div > div.venser > div > div > ul > li:nth-child(1) > h2 > a').attr('href')\n\tconst Link = await axios.get(id)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(1) > span').text().trim()\n\tlet judulJpn = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(2) > span').text().trim()\n\tlet score = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(3) > span').text().trim()\n\tlet Produser = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(4) > span').text().trim()\n\tlet Type = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(5) > span').text().trim()\n\tlet Status = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(6) > span').text().trim()\n\tlet TotalEpisode = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(7) > span').text().trim()\n\tlet durasi = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(8) > span').text().trim()\n\tlet Rilis = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(9) > span').text().trim()\n\tlet studio = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(10) > span').text().trim()\n\tlet genre = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(11) > span').text().trim()\n\tlet thumb = $('#venkonten > div.venser > div.fotoanime').find('img').attr('src')\n\tlet Sinopsis = $('#venkonten > div.venser > div.fotoanime > div.sinopc').find('p').text().trim()\n\tlet LinkDown = $('#venkonten').find('div.venser > div:nth-child(8) > ul > li:nth-child(4) > span:nth-child(1) > a').attr('href')\n\tconst data = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tjapan: judulJpn,\n\t\t\trating: score,\n\t\t\tproduser: Produser,\n\t\t\ttype: Type,\n\t\t\tstatus: Status,\n\t\t\tepisode: TotalEpisode,\n\t\t\tdurasi: durasi,\n\t\t\trilis: Rilis,\n\t\t\tstudio: studio,\n\t\t\tgenre: genre,\n\t\t\tLinkDown: LinkDown,\n\t\t\tsinopsis: Sinopsis\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function wikipedia(querry) {\n\ttry {\n\tconst link =  await axios.get(`https://id.wikipedia.org/wiki/${querry}`)\n\tconst $ = cheerio.load(link.data)\n\tlet judul = $('#firstHeading').text().trim()\n\tlet thumb = $('#mw-content-text').find('div.mw-parser-output > div:nth-child(1) > table > tbody > tr:nth-child(2) > td > a > img').attr('src') || `//i.ibb.co/nzqPBpC/http-error-404-not-found.png`\n\tlet isi = []\n\t$('#mw-content-text > div.mw-parser-output').each(function (rayy, Ra) {\n\t\tlet penjelasan = $(Ra).find('p').text().trim()\n\t\tisi.push(penjelasan)\n\t})\n\tfor(let i of isi) {\n\tconst data = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: 'https:'+thumb,\n\t\t\tisi: i\n\t\t}\n\t}\n\treturn data\n}\n\t} catch (err) {\n\t\tvar notFond = {\n\t\t\tauthor: 'Ra bot',\n\t\t\tstatus: link.status,\n\t\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t\t}\n\t\treturn notFond\n\t}\n}\nasync function corona(negara) {\n\ttry{\n\tconst link = await axios.get(`https://www.worldometers.info/coronavirus/country/${negara}/`)\n\tconst $ = cheerio.load(link.data)\n\tlet kasus = $('#maincounter-wrap').find(' div > span').eq(0).text().trim()\n\tlet mati = $('#maincounter-wrap').find(' div > span').eq(1).text().trim()\n\tlet sembuh = $('#maincounter-wrap').find(' div > span').eq(2).text().trim()\n\tconst data = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tkasus: kasus,\n\t\t\tmeninggal: mati,\n\t\t\tsembuh: sembuh\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function cuaca(wilayah) {\n\ttry {\n\tfunction Cuaca(daerah) {\n\t\tconst listcuaca = fs.readFileSync('./database/cuaca.json')\n\t\tconst data = JSON.parse(listcuaca)\n\t\tif(daerah.toLowerCase() === 'aceh'){\n\t\t\treturn data[0]\n\t\t} else if (daerah.toLowerCase() === 'bali') {\n\t\t\treturn data[1]\n\t\t} else if (daerah.toLowerCase() === 'bangka belitung') {\n\t\t\treturn data[2]\n\t\t} else if (daerah.toLowerCase() === 'banten') {\n\t\t\treturn data[3]\n\t\t} else if (daerah.toLowerCase() === 'yogyakarta' || daerah.toLowerCase() === 'jogja') {\n\t\t\treturn data[4]\n\t\t} else if (daerah.toLowerCase() === 'jakarta')  {\n\t\t\treturn data[5]\n\t\t} else if (daerah.toLowerCase() === 'gorontalo') {\n\t\t\treturn data[6]\n\t\t} else if (daerah.toLowerCase() === 'jambi') {\n\t\t\treturn data[7]\n\t\t} else if (daerah.toLowerCase() === 'jawa barat') {\n\t\t\treturn data[8]\n\t\t} else if (daerah.toLowerCase() === 'jawa tengah') {\n\t\t\treturn data[9]\n\t\t} else if (daerah.toLowerCase() === 'jawa timur') {\n\t\t\treturn data[10]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan barat') {\n\t\t\treturn data[11]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan selatan') {\n\t\t\treturn data[12]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan tengah') {\n\t\t\treturn data[13]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan timur') {\n\t\t\treturn data[14]\n\t\t} else if (daerah.toLowerCase() === 'kalimantan utara') {\n\t\t\treturn data[15]\n\t\t} else if (daerah.toLowerCase() === 'riau') {\n\t\t\treturn data[16]\n\t\t} else if (daerah.toLowerCase() === 'lampung') {\n\t\t\treturn data[17]\n\t\t} else if (daerah.toLowerCase() === 'maluku') {\n\t\t\treturn data[18]\n\t\t} else if (daerah.toLowerCase() === 'maluku utara') {\n\t\t\treturn data[19]\n\t\t} else if (daerah.toLowerCase() === 'ntb') {\n\t\t\treturn data[20]\n\t\t} else if (daerah.toLowerCase() === 'ntt') {\n\t\t\treturn data[21]\n\t\t} else if (daerah.toLowerCase() === 'papua') {\n\t\t\treturn data[22]\n\t\t} else if (daerah.toLowerCase() === 'papua barat') {\n\t\t\treturn data[23]\n\t\t} else if (daerah.toLowerCase() === 'riau') {\n\t\t\treturn data[24]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi barat') {\n\t\t\treturn data[25]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi selatan') {\n\t\t\treturn data[26]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi tengah') {\n\t\t\treturn data[27]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi tenggara') {\n\t\t\treturn data[28]\n\t\t} else if (daerah.toLowerCase() === 'sulawesi utara') {\n\t\t\treturn data[29]\n\t\t} else if (daerah.toLowerCase() === 'sumatra barat') {\n\t\t\treturn data[30]\n\t\t} else if (daerah.toLowerCase() === 'sumatra selatan') {\n\t\t\treturn data[31]\n\t\t} else if (daerah.toLowerCase() === 'sumatra utara') {\n\t\t\treturn data[32]\n\t\t} else if (daerah.toLowerCase() === 'indonesia') {\n\t\t\treturn data[33]\n\t\t} else {\n\t\t\treturn `undefined`\n\t\t}\n\t}\n\tconst link = await axios.get(`https://www.bmkg.go.id/cuaca/prakiraan-cuaca-indonesia.bmkg${Cuaca(wilayah)}`)\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\t$('#TabPaneCuaca2 > div.table-responsive > table > tbody').each(function (a, b) {\n\t\t$(b).find('tr').each(function (c, d) {\n\t\t\tlet nama = $(d).find('td > a').text().trim()\n\t\t\tlet cuaca = $(d).find('td > span').text().trim()\n\t\t\tlet suhu = $(d).find('td:nth-child(6)').text().trim()\n\t\t\tlet kelembapan = $(d).find('td:nth-child(7)').text().trim()\n\t\t\tlet data = {\n\t\t\t\tdaerah: nama,\n\t\t\t\tcuaca: cuaca,\n\t\t\t\tsuhu: suhu + ' °C',\n\t\t\t\tkelembapan: kelembapan + '%'\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function FilmApik23(querry) {\n\ttry{\n\tconst link = await axios.get(`https://filmapik.website/?s=${querry}`);\n\tconst c = cheerio.load(link.data)\n\tlet Id = []\n\tc('#main > div > div.main-content.main-category > div.movies-list-wrap.mlw-category > div.movies-list.movies-list-full ').each(function (a, b) {\n\t\tc(b).find('div').each(function (e, d) {\n\t\t\tlet id = c(d).find('a').attr('href')\n\t\t\tId.push(id)\n\t\t})\n\t})\n\tlet Random = Id[Math.floor(Math.random() * (Id.length))]\n\tconst Link = await axios.get(Random)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#mv-info').find('div.mvi-content > div.mvic-desc > h3').text().trim()\n\tlet view = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(1)').text().trim()\n\tlet genre = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(2)').text().trim()\n\tlet studio = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(3) > span').text().trim()\n\tlet durasi = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(1) > span').text().trim()\n\tlet TvStatus = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(2) > span').text().trim()\n\tlet network = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > div > p:nth-child(5) > a').text().trim()\n\tlet thumb = $('#mv-info').find('div.mvi-content > div.thumb.mvic-thumb > img').attr('src')\n\tlet BintangFilm = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > p > span').text().trim()\n\tconst data = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tLink: Random,\n\t\t\tpenonton: view.replace('Views: ', ''),\n\t\t\tdurasi: durasi,\n\t\t\tgenre: genre.replace('Genre: ', ''),\n\t\t\tstudio: studio,\n\t\t\tTV: TvStatus,\n\t\t\tnetwork: network,\n\t\t\tbintangFilm: BintangFilm\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function ssstik_io(Link) {\n\tconst hasil = []\n\tawait axios.request({\n\t\turl: \"https://ssstik.io/download-tiktok-mp3\",\n\t\tmethod: \"GET\",\n\t\tdata: null,\n\t\theaders: {\n\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\"cookie\": \"_ga=GA1.2.1214162640.1613122103; __gads=ID=a84fb2b8cf02d3d7-22dd4d0604c600bf:T=1613122103:RT=1613122103:S=ALNI_MYL7L8hoaImlsOJ4ci_mlprmNr_dQ; __cflb=02DiuEcwseaiqqyPC5pErDKzpi9ACpCy4uc7DgJdduo1D; _gid=GA1.2.318630001.1621485974; PHPSESSID=e6tcghbdi76h30pkem3lmgb6h2; _gat_UA-3524196-6=1\"\n\t\t}\n\t}).then(async res => {\n\t\tconst $ = cheerio.load(res.data)\n\t\tlet token = $('#splash > div').find('form').attr('data-hx-post')\n\t\tlet ttts = $('#splash > div').find('form').attr('include-vals')\n\t\tconst tt = ttts.split(',')[0].replace('tt:', '')\n\t\tconst ts = ttts.split(',')[1].replace('ts:', '')\n\t\tconst format = {\n\t\t\tid: Link,\n\t\t\tlocale: \"en\",\n\t\t\ttt: tt,\n\t\t\tts: ts\n\t\t}\n\t\tawait axios('https://ssstik.io' + token, {\n\t\t\tmethod: \"POST\",\n\t\t\tdata: new URLSearchParams(Object.entries(format)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"hx-active-element\": \"submit\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1214162640.1613122103; __gads=ID=a84fb2b8cf02d3d7-22dd4d0604c600bf:T=1613122103:RT=1613122103:S=ALNI_MYL7L8hoaImlsOJ4ci_mlprmNr_dQ; __cflb=02DiuEcwseaiqqyPC5pErDKzpi9ACpCy4uc7DgJdduo1D; _gid=GA1.2.318630001.1621485974; PHPSESSID=e6tcghbdi76h30pkem3lmgb6h2; _gat_UA-3524196-6=1\"\n\t\t\t}\n\t\t}).then(respon => {\n\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\tconst data = {\n\t\t\t\tauthor: \"RA BOT\",\n\t\t\t\tresult: {\n\t\t\t\t\tnowm: ch('#mainpicture > div').find('a.pure-button.pure-button-primary.is-center.u-bl.dl-button.download_link.without_watermark_direct.snaptik').attr('href'),\n\t\t\t\t\tmp3: ch('#mainpicture > div').find('a.pure-button.pure-button-primary.is-center.u-bl.dl-button.download_link.music.snaptik').attr('href')\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil[0]\n} \nasync function TiktokDownloader(link) {\n\tconst Result = []\n\tawait axios.request({\n\t\turl: `https://ttdownloader.com/`,\n\t\tmethod: \"get\",\n\t\theaders: {\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=797oo0b7ao6ma18170vfggf8sa; popCookie=1; _gid=GA1.2.182249774.1621486055; _gat_gtag_UA_117413493_7=1\"\n\t\t}\n\t})\n\t.then(async res => {\n\t\tconst $ = cheerio.load(res.data)\n\t\tlet token = $('#token').attr('value');\n\t\tconst Form = {\n\t\t\turl: link,\n\t\t\tformat: '',\n\t\t\ttoken: token\n\t\t}\n\t\tawait axios(\"https://ttdownloader.com/ajax/\", {\n\t\t\tmethod: \"POST\",\n\t\t\tdata: new URLSearchParams(Object.entries(Form)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=797oo0b7ao6ma18170vfggf8sa; popCookie=1; _gid=GA1.2.182249774.1621486055; _gat_gtag_UA_117413493_7=1\"\n\t\t\t}\n\t\t}).then(respon => {\n\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\tlet result = {\n\t\t\t\tstatus: respon.status,\n\t\t\t\tauthor: 'RA BOT',\n\t\t\t\tresult: {\n\t\t\t\t\tnowm: ch('#results-list > div:nth-child(2)').find('div.download > a').attr('href'),\n\t\t\t\t\twm: ch('#results-list > div:nth-child(3)').find('div.download > a').attr('href'),\n\t\t\t\t\taudio: ch('#results-list > div:nth-child(4)').find('div.download > a').attr('href')\n\t\t\t\t}\n\t\t\t}\n\t\t\tResult.push(result)\n\t\t})\n\t})\n\treturn Result[0]\n}\nasync function uploadFile(path) {\n\tconst Result = []\n\tconst bodyForm = new FormData();\n\tbodyForm.append('files[]', fs.createReadStream(path))\n\tawait axios(`https://uguu.se/upload.php`,{\n\t\tmethod: 'POST',\n\t\tdata: bodyForm,\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"content-type\": `multipart/form-data; boundary=${bodyForm._boundary}`\n\t\t}\n\t}).then(({ data }) => {\n\t\tconst result = {\n\t\t\tauthor: 'Created by Ra',\n\t\t\tstatus: data.success ? 200 : 404,\n\t\t\tresult: {\n\t\t\t\turl: data.files[0].name,\n\t\t\t\tnamaFile: data.files[0].url,\n\t\t\t\tsize: data.files[0].size,\n\t\t\t\thash: data.files[0].hash\n\t\t\t}\n\t\t}\n\t\tResult.push(result.result.url)\n\t})\n\treturn Result[0]\n}\nasync function ytPlay(querry) {\n\tconst videos = await yt(querry)\n\tconst result = []\n\tconst Format = {\n\t\tq: videos.all[0].url,\n\t\tvt: 'mp3'\n\t}\n\tawait axios('https://yt1s.com/api/ajaxSearch/index', {\n\t\tmethod: 'POST',\n\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\"cookie\": \"_ga=GA1.2.586773459.1621481788; _gid=GA1.2.1576517376.1621481788; _gat_gtag_UA_173445049_1=1\"\n\t\t},\n\t\treferrerPolicy: \"strict-origin-when-cross-origin\"\n\t}).then(async res => {\n\t\tconst FormatData = {\n\t\t\tvid: res.data.vid,\n\t\t\tk: res.data.kc\n\t\t}\n\t\tawait axios('https://yt1s.com/api/ajaxConvert/convert', {\n\t\t\tmethod: 'POST',\n\t\t\tdata: new URLSearchParams(Object.entries(FormatData)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"sec-ch-ua-mobile\": \"?0\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.586773459.1621481788; _gid=GA1.2.1576517376.1621481788; _gat_gtag_UA_173445049_1=1\"\n\t\t\t},\n\t\t\treferrerPolicy: \"strict-origin-when-cross-origin\"\n\t\t}).then(respon => {\n\t\t\tresult.push(respon.data)\n\t\t})\n\t})\n\treturn result[0]\n}\nasync function Gempa() {\n\ttry{\n\tconst link = await axios.get(`https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg`)\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\t$('body > div.wrapper > div.container.content > div > div.col-md-8 > div > div > table > tbody').each(function (a, b) {\n\t    $(b).find('tr').each(function (c, d) {\n\t\t\tlet tanggal = $(d).find('td:nth-child(2)').text().trim()\n\t\t\tlet koordinat = $(d).find('td:nth-child(3)').text().trim()\n\t\t\tlet magnitudo = $(d).find('td:nth-child(4)').text().trim()\n\t\t\tlet kedalaman = $(d).find('td:nth-child(5)').text().trim()\n\t\t\tlet skala = $(d).find('td:nth-child(6) > a').text().trim()\n\t\t\tconst data = {\n\t\t\t\tauthor: 'Ra bot',\n\t\t\t\tstatus: link.status,\n\t\t\t\tresult: {\n\t\t\t\t\ttanggal: tanggal,\n\t\t\t\t\tkoordinat: koordinat,\n\t\t\t\t\tgetaran: magnitudo,\n\t\t\t\t\tkedalaman: kedalaman,\n\t\t\t\t\tskala: skala\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function cnn() {\n\ttry {\n\tconst link = await axios.get('https://www.cnnindonesia.com/')\n\tconst $ = cheerio.load(link.data)\n\tlet hasil = []\n\t$('#content > div > div.l_content > div.box.feed.berita_terbaru_lst > div.list.media_rows.middle').each(function (a, b) {\n\t\t$(b).find('article').each(function (c, d) {\n\t\t\tlet judul = $(d).find('a > span.box_text > h2').text().trim() || '-' \n\t\t\tlet tema = $(d).find('a > span.box_text > span.kanal').text().trim() || '-'\n\t\t\tlet publik = $(d).find('a > span.box_text > span.date').text().trim() || '-'\n\t\t\tlet thumb = $(d).find('a > span.ratiobox.ratio_16_9.box_img > span > img').attr('src') || '-'\n\t\t\tlet url = $(d).find('a').attr('href') || '-'\n\t\t\tconst data = {\n\t\t\t\tauthor: 'Ra bot',\n\t\t\t\tstatus: link.status,\n\t\t\t\tresult: {\n\t\t\t\t\tjudul: judul,\n\t\t\t\t\ttema: tema,\n\t\t\t\t\trilis: publik,\n\t\t\t\t\tthumb: thumb,\n\t\t\t\t\turl: url\n\t\t\t\t}\n\t\t\t}\n\t\t\thasil.push(data)\n\t\t})\n\t})\n\treturn hasil\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: 'Ra bot',\n\t\tstatus: link.status,\n\t\tPesan: 'ERROR HUBUNGI OWNER 082149344210'\n\t}\n\treturn notFond\n}\n}\nasync function photoManipulation(namaFile, path, effectId) {\n\tconst hasil = []\n\t\tconst fd = new FormData();\n\t\tfd.append('name', `${namaFile}`)\n\t\tfd.append('file', fs.createReadStream(`${path}`))\n\t\tawait axios( {\n\t\t\tmethod: \"POST\",\n\t\t\turl: \"https://photomania.net/upload/file\",\n\t\t\theaders: fd.getHeaders(),\n\t\t\tdata: fd\n\t\t}).then(async res => {\n\t\t\tconst formData = {\n\t\t\t\tphotoId: `${res.data.id}`,\n\t\t\t\teffectId: `${effectId}`\n\t\t\t}\n\t\t\tawait axios(`https://photomania.net/render`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(formData)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"application/json, text/javascript, /; q=0.01\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t}\n\t\t\t}).then(respon => {\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: respon .status,\n\t\t\t\t\tauthor: \"I`am Ra\",\n\t\t\t\t\tresult: {\n\t\t\t\t\t\turl: respon.data.url,\n\t\t\t\t\t\turl_secury: respon.data.url_secure,\n\t\t\t\t\t\tukuran: respon.data.width + ' x ' + respon.data.height,\n\t\t\t\t\t\texplayet: respon.data.expires_at\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thasil.push(result)\n\t\t\t\treturn result\n\t\t\t})\n\t\t})\n\t\treturn hasil[0]\n}\nasync function ToVid(path) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tconst BodyForm = new FormData()\n\t\tBodyForm.append('new-image', fs.createReadStream(path))\n\t\tBodyForm.append('new-image-url', '')\n\t\tawait axios({\n\t\t\turl: \"https://s7.ezgif.com/webp-to-mp4\",\n\t\t\tmethod: \"POST\",\n\t\t\theaders: BodyForm.getHeaders(),\n\t\t\tdata: BodyForm\n\t\t}).then(res => {\n\t\t\tconst $ = cheerio.load(res.data)\n\t\t\tlet File = $('#main > form').find('input[type=hidden]:nth-child(1)').attr('value')\n\t\t\tlet token = $('#main > form').find('input[type=hidden]:nth-child(2)').attr('value')\n\t\t\tlet Submit = $('#tool-submit-button').find('input').attr('value')\n\t\t\tconst Format = {\n\t\t\t\tfile: File,\n\t\t\t\ttoken: token,\n\t\t\t\tconvert: Submit\n\t\t\t}\n\t\t\taxios({\n\t\t\t\turl: \"https://ezgif.com/webp-to-mp4/\" + File,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\"\n\t\t\t\t}\n\t\t\t}).then(({ data, status}) => {\n\t\t\t\tconst ch = cheerio.load(data)\n\t\t\t\tlet link = ch('#output > p.outfile').find('video > source').attr('src')\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: status,\n\t\t\t\t\tdata: \"https:\" + link\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t})\n\t})\n}\nasync function fbDownloader(Link) {\n\treturn new Promise (async (resolve, reject) => {\n\t\tconst BodyForm = {\n\t\t\turl: Link\n\t\t}\n\t\tawait axios({\n\t\t\turl: \"https://www.getfvid.com/downloader\",\n\t\t\tmethod: \"POST\",\n\t\t\tdata:  new URLSearchParams(Object.entries(BodyForm)),\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"cache-control\": \"max-age=0\",\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'\n\t\t\t}\n\t\t}).then(respon => {\n\t\t\tconst $ = cheerio.load(respon.data)\n\t\t\tlet HD = $(\"body > div.page-content > div > div > div.col-lg-10.col-md-10.col-centered\").find('div > div:nth-child(3) > div > div.col-md-4.btns-download > p:nth-child(1) > a').attr('href')\n\t\t\tlet Normal = $(\"body > div.page-content > div > div > div.col-lg-10.col-md-10.col-centered\").find('div > div:nth-child(3) > div > div.col-md-4.btns-download > p:nth-child(2) > a').attr(\"href\")\n\t\t\tconst result = {\n\t\t\t\tstatus: respon.status,\n\t\t\t\tauthor: \"I`am RA\",\n\t\t\t\tresult: {\n\t\t\t\t\tlink_hd: HD,\n\t\t\t\t\tnormal: Normal\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolve(result)\n\t\t}).catch(reject)\n\t})\n}\nasync function SpeedVid(path, kecepatan) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tconst BodyForm = new FormData()\n\t\tBodyForm.append('new-image', fs.createReadStream(path))\n\t\tBodyForm.append('new-image-url', '')\n\t\tBodyForm.append('upload', 'Upload video!')\n\t\tawait axios({\n\t\t\turl: \"https://s3.ezgif.com/video-speed\",\n\t\t\tmethod: \"POST\",\n\t\t\tdata: BodyForm,\n\t\t\theaders: BodyForm.getHeaders()\n\t\t}).then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tlet File = $('#main > form').find(' input[type=hidden]:nth-child(1)').attr('value')\n\t\t\tlet token = $('#main > form').find('input[type=hidden]:nth-child(2)').attr('value')\n\t\t\tconst Format = {\n\t\t\t\tfile: File,\n\t\t\t\ttoken: token,\n\t\t\t\tmultiplier: kecepatan,\n\t\t\t\tapply_audio: \"on\"\n\t\t\t}\n\t\t\taxios({\n\t\t\t\turl: `https://s3.ezgif.com/video-speed/${File}?ajax=true`,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t}\n\t\t\t}).then(respon => {\n\t\t\t\tconst ch = cheerio.load(respon.data)\n\t\t\t\tlet result = {\n\t\t\t\t\tstatus: respon.status,\n\t\t\t\t\tauthor: \"I`am Ra\",\n\t\t\t\t\tdata: 'https:' + ch('p').find('video > source').attr('src')\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t})\n\t})\n}\nasync function ReverseVid (path, audio) {\n\treturn new Promise(async (resolve, reject) => {\n\t\tfunction muteOrno(audioo ,File, token) {\n\t\t\tif (audioo === true) {\n\t\t\t\tconst Format = {\n\t\t\t\t\tfile: File,\n\t\t\t\t\ttoken: token,\n\t\t\t\t\taudio: \"on\",\n\t\t\t\t\tencoding: \"original\"\n\t\t\t\t}\n\t\t\t\treturn Format\n\t\t\t} else if (audioo === false) {\n\t\t\t\tconst Format = {\n\t\t\t\t\tfile: File,\n\t\t\t\t\ttoken: token,\n\t\t\t\t\tmute: \"on\",\n\t\t\t\t\tencoding: \"original\"\n\t\t\t\t}\n\t\t\t\treturn Format\n\t\t\t} else {\n\t\t\t\tconst Format = {\n\t\t\t\t\tfile: File,\n\t\t\t\t\ttoken: token,\n\t\t\t\t\taudio: \"on\",\n\t\t\t\t\tencoding: \"original\"\n\t\t\t\t}\n\t\t\t\treturn Format\n\t\t\t}\n\t\t}\n\tconst BodyForm = new FormData()\n\t\tBodyForm.append('new-image', fs.createReadStream(path))\n\t\tBodyForm.append('new-image-url', '')\n\t\tBodyForm.append('upload', 'Upload video!')\n\t\tawait axios({\n\t\t\turl: \"https://s3.ezgif.com/reverse-video\",\n\t\t\tmethod: 'POST',\n\t\t\tdata: BodyForm,\n\t\t\theaders: BodyForm.getHeaders()\n\t\t}).then(async respon => {\n\t\t\tconst $ = cheerio.load(respon.data)\n\t\t\tlet File = $('#main > form').find('input[type=hidden]:nth-child(1)').attr('value')\n\t\t\tlet token = $('#main > form').find('input[type=hidden]:nth-child(2)').attr('value')\n\t\t\tconst Format = await muteOrno(audio, File, token)\n\t\t\taxios(`https://s3.ezgif.com/reverse-video/${File}?ajax=true`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries(Format)),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\"\n\t\t\t\t}\n\t\t\t}).then(res => {\n\t\t\t\tconst ch = cheerio.load(res.data)\n\t\t\t\tlet Link = ch('p > video').find('source').attr('src')\n\t\t\t\tlet Type = ch('p > video').find('source').attr('type')\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\tcreated: \"I`am Ra\",\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tlink: \"https:\" + Link,\n\t\t\t\t\t\ttype: Type\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t}).catch(reject)\n\t})\n}\nasync function GSMArena(querry) {\n\tconst link = await axios.get(`https://www.gsmarena.com/res.php3?sSearch=${querry}`)\n\tconst ch = cheerio.load(link.data)\n\tlet Url = ch('#review-body > div > ul').find('li:nth-child(1) > a').attr('href')\n\tconst Link = await axios.get(`https://www.gsmarena.com/${Url}`)\n\tlet $ = cheerio.load(Link.data)\n\tlet barang = $('#body > div > div.review-header > div').find(' div.article-info-line.page-specs.light.border-bottom > h1').text().trim()\n\tlet rilis = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(1) > span').text().trim()\n\tlet thumb = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > div > a > img').attr('src')\n\tlet ukuran = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(3) > span').text().trim()\n\tlet tipe = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(5) > span').text().trim()\n\tlet storage = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.specs-brief.pattern > span:nth-child(7) > span').text().trim()\n\tlet display = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-display > div').text().trim()\n\tlet inchi = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-display > strong > span').text().trim()\n\tlet camPix = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-camera > strong > span:nth-child(1)').text().trim()\n\tlet Mp = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-camera > strong > span:nth-child(2)').text().trim()\n\tlet VideoVix = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-camera > div').text().trim()\n\tlet Ram = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-expansion > strong > span:nth-child(2)').text().trim()\n\tlet chipset = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-expansion > div').text().trim()\n\tlet batre = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-battery > strong > span:nth-child(1)').text().trim()\n\tlet Mah = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-battery > strong > span:nth-child(2)').text().trim()\n\tlet merekBatre = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-battery > div').text().trim()\n\tlet AngkaRam = $('#body > div > div.review-header > div').find('div.center-stage.light.nobg.specs-accent > ul > li.help.accented.help-expansion > strong > span:nth-child(1)').text().trim()\n\tlet detail = []\n\t$('#specs-list').each(function (anu, RA) {\n\t\tlet isi = $(RA).text().trim()\n\t\tdetail.push(isi)\n\t})\n\tconst result = {\n\t\tstatus: Link.status,\n\t\tauthor: \"I`am Ra\",\n\t\tresult: {\n\t\t\tjudul: barang,\n\t\t\trilis: rilis,\n\t\t\tthumb: thumb,\n\t\t\tukuran: ukuran,\n\t\t\ttype: tipe,\n\t\t\tstorage: storage,\n\t\t\tdisplay: display,\n\t\t\tinchi: inchi,\n\t\t\tpixel: camPix + Mp,\n\t\t\tvideoPixel: VideoVix,\n\t\t\tram: AngkaRam + Ram,\n\t\t\tchipset: chipset,\n\t\t\tbatrai: batre + Mah,\n\t\t\tmerek_batre: merekBatre,\n\t\t\tdetail: detail[0]\n\t\t}\n\t}\n\treturn result\n}\nasync function zodiakMing(querry) {\n\tconst link = await axios.get(`https://www.fimela.com/zodiak/${querry}/minggu-ini`)\n\tconst  $ = cheerio.load(link.data)\n\tlet thumb = $('body > div > div > div').find('div > div > a > img').attr('src')\n\tlet judul = $('body > div > div > div').find('div > div > div.zodiak--content-header__text > h5').text().trim()\n\tlet date = $('body > div > div > div').find('div> div.zodiak--content-header__text > span').text().trim()\n\tlet hoki = $('body > div > div > div > div').find('div > div > div:nth-child(1) > div > span').text().trim()\n\tlet umum = $('body > div > div > div > div').find(' div > div > div:nth-child(1) > div > p').text().trim()\n\tlet love = $('body > div > div > div > div').find(' div > div > div:nth-child(2) > div > p').text().trim()\n\tlet keuangan = $('body > div > div > div > div').find(' div > div > div:nth-child(3) > div > p').text().trim()\n\tconst result = {\n\t\tstatus: link.status,\n\t\tdata: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tdate: date,\n\t\t\tnomer_hoki: hoki,\n\t\t\tisi: {\n\t\t\t\tumum: umum,\n\t\t\t\tlove: love,\n\t\t\t\tkeuangan: keuangan\n\t\t\t}\n\t\t}\n\t}\n\treturn result\n}\nasync function zodiakHar (querry) {\n\tlet Hasil = []\n\tawait axios.request(`https://www.fimela.com/zodiak/${querry}`, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t}\n\t\t}).then(({ data}) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tlet thumb = $('body > div > div > div').find('div > div > a > img').attr('src')\n\t\t\tlet judul = $('body > div > div.container-main > div.container-article > div').find('div.zodiak--content-header__right > div.zodiak--content-header__text > h5').text().trim()\n\t\t\tlet tanggal = $('body > div > div > div > div > div > div > span').text().trim()\n\t\t\tlet nomer_ = $('body > div > div > div > div > div > div').find('div:nth-child(1) > div.zodiak--content__content > span').text().trim()\n\t\t\tlet isi = []\n\t\t\t$('body > div > div > div > div > div > div').each(function (anu, RA) {\n\t\t\t\tlet umum = $(RA).find('div:nth-child(1) > div.zodiak--content__content > p').text().trim() || undefined\n\t\t\t\tlet love = $(RA).find('div:nth-child(2) > div.zodiak--content__content > p').text().trim() || undefined\n\t\t\t\tlet keuangan = $(RA).find('div:nth-child(3) > div.zodiak--content__content > p').text().trim() || undefined\n\t\t\t\tlet Data = {\n\t\t\t\t\tumum: umum,\n\t\t\t\t\tlove: love,\n\t\t\t\t\tkeuangan: keuangan\n\t\t\t\t}\n\t\t\t\tisi.push(Data)\n\t\t\t})\n\t\t\tlet ramal = []\n\t\t\tisi.map(ryuzin => {\n\t\t\t\tif (ryuzin.umum === undefined) return\n\t\t\t\tif (ryuzin.love === undefined) return\n\t\t\t\tif (ryuzin.keuangan === undefined) return\n\t\t\t\tramal.push(ryuzin)\n\t\t\t})\n\t\t\tconst result = {\n\t\t\t\tjudul: judul,\n\t\t\t\tthumb: thumb,\n\t\t\t\tdate: tanggal,\n\t\t\t\tno_hoki: nomer_,\n\t\t\t\tteori: ramal[0]\n\t\t\t}\n\t\t\tHasil.push(result)\n\t\t})\n\t\treturn Hasil[0]\n}\nasync function Shoope(item, limit) {\n\tconst hasil = []\n\tawait axios.request(`https://shopee.co.id/api/v4/search/search_items?by=relevancy&keyword=${item}&limit=${limit}&newest=0&order=desc&page_type=search&scenario=PAGE_GLOBAL_SEARCH&version=2`, {\n\t\tmethod: \"GET\",\n\t\tdata: null,\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"if-none-match-\": \"55b03-856cd63f16112f8a43da6096f97ac3fe\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t}\n\t}).then(respon => {\n\t\thasil.push(respon.data)\n\t})\n\treturn hasil[0]\n}\nasync function pinterest(querry) {\n\tlet HASIL = []\n\tawait axios.request(`https://id.pinterest.com/search/pins/?rs=typed&q=` + querry, {\n\t\t\tmethod: \"GET\",\n\t\t\turl: \"https://id.pinterest.com/search/pins/?rs=typed&q=\"+ querry,\n\t\t\theaders: {\n\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\"sec-ch-ua-mobile\": \"?0\",\n\t\t\t\t\"upgrade-insecure-requests\": \"1\",\n\t\t\t\t\"cookie\": \"csrftoken=ebe0be3a93cea6072be18633add953a2; _b=\\\"AVezvd6F4UtE24FUsA6INxipyZZDoSpyCc5vaJK4QDYXmExosVEc4h6WkiKhlVtQ430=\\\"; cm_sub=denied; fba=True; _ga=GA1.2.862909259.1620474446; g_state={\\\"i_l\\\":0}; _auth=1; _pinterest_sess=TWc9PSZ0VEZqZmdDSlJYaGU5REIvNklIcVlnMjE5b0ZraTE5REJVQ0JiMUwxTkZZaGFoVk1sRDVhOFlwQzhkQnQ0YkMwRlNyV0lIWUFlK0ZVTkVxYUhKNmlvZ0R1UXlQYTBRRVVhMU1yYkpmcXpHK3UyNjNhckRqUFFOYVJVa3RnVmJtVzd2MmRGaHFMZUpLNVhtaHptTDhWSnBSdXhZY0FhRnRTN3J1S0V4cGtsVTBxeE54NkF2blVNSFV3R0NTQTR1bVVNRURGVGdnYlN5UjdBbk9YcHVGbGI3a1kwd1dEZDgrZVM1SDc3V0pJMm00OWxKUDVNQjBLVlFocTB4Mjg1M1RnbGxBaFAxbS9MTnVzei91cEQvcjBtakp6N0ZnU2t1Y3NxWW1DRDV1Q3h0ankvQ3FEWGh3MXczcXBHNXJpYVNCMHB6dUoxMGF6ZzVxN2VqQVBoSElSd0tiQk41ZVRPQXlOaGNpNzVQMWJSeVZJbCtYYVMxQ1ZRUFUwalU3eGVzMGRySlNzdWo1NG5uaXNFM3ZpT0o0TkZHR1daUXlwaXFQclMwa04raW9xVnVaTTRSVGEzTE03TVlZcmZYVDd5UmVPd2lZaGw4aE9VMHJBd0tidEsrcHdPWk96RlFMekVLTzY3VU1PL0tIYUdwUE1IWVdJNnJXalBkU09Sb3dEaHlQVVR1T1RqNW5Sc2FRdmVkZmhkMk9HNHBCL0ZpZ3NMdmZvVW9ReVltTFBCTlNLWHpray9LNWJ2UTNvTlBzVm9aZjRvYWRvRFhla0dBNzdveWJVYXZmVFp2cnFFNU5DYUVwSHhxeDlIajNIVTlHaEVYdGptWm5mSGVSRmtIMmQwVVVVZlVCVEh6UHB3TnBtdWV0b2l6L3VTc3pXMXFGN3lHS3ZJM3BwL0NrWVJDMm1HY2tROGxuQVFRNS9OUW45R3dtSk8zeFJidVFSTG1qTG5PelAvKzd3T3lrN1NoKzBHVGNTY1pGSEY0bW8xcGVmc3NtclBhTWE2QUMxOXNpQWUwRmo4UHl0ZGpwUzhUQXVhbjYwT0ZJeHhHai8yOWFUVTA1Wkx2czN4VSttLzMvbkFVQ2svWnZvNC9xZ3E4VkhYSFZ5elo4TzhtU0o5c3ZDcEJyYjE3QVI1WHlmTTFhWThvWHQ1T0tSTWRsWnI3a1lpU245dEVLd1lZSXRremtkTUZmcVA2YUg0c1UrSk1JOWJVRzZpcWd3T0NVaFZkdUh3UUdURi9sbDBqT2pBZVV2ZnlTQzc5ZnBMYkFMQ1ZsWjdIYWcmaDc1Uk5kK2I4MjFMUXBaVUthci9rVHpCUWRvPQ==; _pinterest_cm=\\\"TWc9PSYxZnpkMS9XN29Rd2R0TnpBN0RzVktja1J4NUtINUJqRzNGODFXS0xES1pndWlNVm52a0d3V0JocmVIS3p5eDdnNXNZa0hGelNQNDBSTFRId3ZhTFFIQjRGOW1lNlJZMzFiVlg1MHhSOFpmMGhRZUoySUpJZDIyWlVYMjRXNHRaL1lodFl4eW1jWjNyTklpbytYbHZyd29nRm5DY0pQOGgyUWpDdk9zQ1craXR5VEZoNHV4ZzRnOXV4SUFFSStYZCsmT08zMFI1bktXa3pwSDFtK3NNRWpxWWNpQzNzPQ==\\\"; _routing_id=\\\"595f24cd-7f4c-4495-aa67-37212d099cd8\\\"; sessionFunnelEventLogged=1\"\n\t\t\t}\n\t\t}).then(res => {\n\t\t\tconst $ = cheerio.load(res.data)\n\t\t\tlet hasil = []\n\t\t\t$('body > div > div > div > div > div > div > div > div > div > div > div').each(function (a, b) {\n\t\t\t\t$(b).find('div').each(function (c, d) {\n\t\t\t\t\tlet Link = $(d).find('div > div > div > div > a').find('img').attr('src')\n\t\t\t\t\thasil.push(Link)\n\t\t\t\t})\n\t\t\t})\n\t\t\tlet Data = []\n\t\t\thasil.map(V => {\n\t\t\t\tif (V === undefined) return \n\t\t\t\tData.push(V.replace('236x', 'originals'))\n\t\t\t})\n\t\t\tlet FilterArray = new Set(Data)\n\t\t\tlet unique = [...FilterArray]\n\t\t\tconst result = {\n\t\t\t\tstatus: res.status,\n\t\t\t\tauthor: \"I`am Ra\",\n\t\t\t\tresult: unique\n\t\t\t}\n\t\t\tHASIL.push(result)\n\t\t})\n\t\treturn HASIL[0]\n}\nasync function TiktokDown (link) {\n\t\treturn new Promise (async (resolve, reject) => {\n\t\t\tawait axios.request(`https://toksaver.com/convertok?url=` + link, {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tdata: null,\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"/\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t\t\t\t'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'\n\t\t\t\t}\n\t\t\t}).then(res => {\n\t\t\t\tresolve(res.data)\n\t\t\t}).catch(reject)\n\t\t})\n}\n\nfunction jagokata(input) {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://jagokata.com/kata-bijak/kata-' + input.replace(/\\s/g, '_') + '.html?page=1')\n\t\t\t.then(res => {\n\t\t\t\tconst $ = cheerio.load(res.data)\n\t\t\t\tdata = []\n\t\t\t\t$('div[id=\"main\"]').find('ul[id=\"citatenrijen\"] > li').each(function (index, element) {\n\t\t\t\t\tx = $(this).find('div[class=\"citatenlijst-auteur\"] > a').text().trim()\n\t\t\t\t\ty = $(this).find('span[class=\"auteur-beschrijving\"]').text().trim()\n\t\t\t\t\tz = $(element).find('q[class=\"fbquote\"]').text().trim()\n\t\t\t\t\tdata.push({ author: x, bio: y, quote: z })\n\t\t\t\t})\n\t\t\t\tdata.splice(2, 1)\n\t\t\t\tif (data.length == 0) return resolve({ status: false })\n\t\t\t\tresolve({ status: true, result: data })\n\t\t\t}).catch(reject)\n\t})\n}\n\nmodule.exports.jagokata = jagokata\nmodule.exports.RandomCerpen = RandomCerpen\nmodule.exports.emoji = emoji\nmodule.exports.stickerSearch = stickerSearch\nmodule.exports.ManggaToon = ManggaToon\nmodule.exports.RamalJadian = RamalJadian\nmodule.exports.Pantun = Pantun\nmodule.exports.trutdare = trutdare\nmodule.exports.SearchFilm = SearchFilm\nmodule.exports.infoFilm123 = infoFilm123\nmodule.exports.FaktaUnik = FaktaUnik\nmodule.exports.Liriklagu = Liriklagu\nmodule.exports.Otakudesu = Otakudesu\nmodule.exports.wikipedia = wikipedia\nmodule.exports.corona =  corona\nmodule.exports.cuaca = cuaca\nmodule.exports.FilmApik23 = FilmApik23\nmodule.exports.Gempa = Gempa\nmodule.exports.cnn = cnn\nmodule.exports.TiktokDownloader = TiktokDownloader\nmodule.exports.uploadFile =  uploadFile\nmodule.exports.ytPlay = ytPlay\nmodule.exports.igDownloader = igDownloader\nmodule.exports.ssstik_io =  ssstik_io\nmodule.exports.photoManipulation = photoManipulation\nmodule.exports.ToVid = ToVid \nmodule.exports.fbDownloader = fbDownloader\nmodule.exports.SpeedVid = SpeedVid\nmodule.exports.ReverseVid = ReverseVid\nmodule.exports.GSMArena =  GSMArena\nmodule.exports.zodiakMing = zodiakMing\nmodule.exports.zodiakHar =  zodiakHar \nmodule.exports.Shoope = Shoope\nmodule.exports.pinterest = pinterest\nmodule.exports.TiktokDown = TiktokDown\n"
  },
  {
    "path": "Zimbot/index4.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst axios_1 = __importDefault(require(\"axios\"));\nconst cheerio_1 = __importDefault(require(\"cheerio\"));\nconst form_data_1 = __importDefault(require(\"form-data\"));\nconst fs_1 = __importDefault(require(\"fs\"));\nconst got_1 = __importDefault(require(\"got\"));\nfunction ManggaToon(querry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        try {\n            return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n                yield axios_1.default(`https://mangatoon.mobi/id/search?word=${querry}`, {\n                    method: \"GET\",\n                    headers: {\n                        \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                        \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n                        \"cache-control\": \"max-age=0\",\n                    }\n                }).then(response => {\n                    if (response.status !== 200)\n                        return;\n                    const $ = cheerio_1.default.load(response.data);\n                    const hasil = [];\n                    $('#page-content > div.search-page > div > div.comics-result > div.recommended-wrap > div').each(function (_a, b) {\n                        $(b).find('div').each(function (_c, d) {\n                            const judul = $(d).find('div.recommend-comics-title > span').text().trim();\n                            const tema = $(d).find('div.comics-type > span').text().trim();\n                            const thumb = $(d).find('a > div > img').attr('src');\n                            const url = $(d).find('a').attr('href');\n                            const result = {\n                                judul: judul,\n                                tema: tema,\n                                thumb: thumb,\n                                url: \"https://mangatoon.mobi\" + url\n                            };\n                            hasil.push(result);\n                        });\n                    });\n                    const data = [];\n                    hasil.map(v => {\n                        if (v.judul === undefined)\n                            return;\n                        if (v.tema === undefined)\n                            return;\n                        if (v.thumb === undefined)\n                            return;\n                        if (v.url.replace(/[https:\\/\\/mangatoon.mobi]/, '') === undefined)\n                            return;\n                        data.push(v);\n                    });\n                    const result = {\n                        status: response.status,\n                        author: \"I`am Ra\",\n                        data: data\n                    };\n                    resolve(result);\n                }).catch(reject);\n            }));\n        }\n        catch (err) {\n            return err;\n        }\n    });\n}\nfunction EmojiScrapper(emoji) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            const emot = encodeURIComponent(emoji);\n            yield axios_1.default.request({\n                url: `https://emojipedia.org/${emot}/`,\n                method: \"GET\"\n            }).then(respon => {\n                if (respon.status !== 200)\n                    return;\n                const $ = cheerio_1.default.load(respon.data);\n                const emot = [];\n                const hasil = [];\n                $('body > div > div > article > section > ul').each(function (_chuwi, Tyuzu) {\n                    $(Tyuzu).find('li').each(function (_ryu, itzy) {\n                        const nama = $(itzy).find('div > div > img').attr('alt');\n                        const image = $(itzy).find('div > div > img').attr('srcset');\n                        const result = {\n                            name: nama,\n                            image: image\n                        };\n                        emot.push(result);\n                    });\n                });\n                emot.map(tyuzu => {\n                    if (tyuzu.name === undefined)\n                        return;\n                    if (tyuzu.image === undefined)\n                        return;\n                    hasil.push({ name: tyuzu.name, image: tyuzu.image.replace('2x ', '') });\n                });\n                const res = {\n                    status: respon.status,\n                    emoticon: hasil\n                };\n                resolve(res);\n            }).catch(reject);\n        }));\n    });\n}\nfunction RandomCerpen() {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            const link = yield axios_1.default.get(`http://cerpenmu.com/`);\n            if (link.status !== 200)\n                return;\n            const $ = cheerio_1.default.load(link.data);\n            const link_input = [];\n            $('#sidebar > div:nth-child(9) > ul').each(function (_a, b) {\n                $(b).find('li').each(function (_tyu, zu) {\n                    const url = $(zu).find('a').attr('href');\n                    link_input.push(url);\n                });\n            });\n            const random = link_input[Math.floor(Math.random() * (link_input.length))];\n            const Url = yield axios_1.default.get(random);\n            if (Url.status !== 200)\n                resolve({ status: Url.status, mess: \"ERROR\" });\n            const ch = cheerio_1.default.load(Url.data);\n            const Data = [];\n            ch('#content > article').each(function (_hm, to) {\n                ch(to).find('article').each(function (_chu, chuwi) {\n                    const Url = ch(chuwi).find('h2 > a').attr('href');\n                    Data.push(Url);\n                });\n            });\n            const acak = Data[Math.floor(Math.random() * (Data.length))];\n            yield axios_1.default.get(acak).then(respon => {\n                if (respon.status !== 200)\n                    return;\n                const $ = cheerio_1.default.load(respon.data);\n                const judul = $('#content').find('article > h1').text().trim();\n                const kategori = $('#content').find('article > a:nth-child(4)').text().trim();\n                const cerita = $('#content').find('article').text().trim();\n                const res = {\n                    status: respon.status,\n                    author: \"I`am RA\",\n                    data: {\n                        judul: judul,\n                        kategori: kategori,\n                        cerita: cerita\n                    }\n                };\n                resolve(res);\n            }).catch(reject);\n        }));\n    });\n}\nfunction StickerSearch(querry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            yield axios_1.default.get(`https://getstickerpack.com/stickers?query=` + querry).then((res) => __awaiter(this, void 0, void 0, function* () {\n                const $ = cheerio_1.default.load(res.data);\n                const Data = [];\n                $('#stickerPacks > div > div:nth-child(3)').each(function (_a, b) {\n                    $(b).find('div').each(function (_c, d) {\n                        const url = $(d).find('a').attr('href');\n                        Data.push(url);\n                    });\n                });\n                const data = [];\n                Data.map(tyuzu => {\n                    if (tyuzu === undefined)\n                        return;\n                    data.push(tyuzu);\n                });\n                const random = data[Math.floor(Math.random() * (data.length))];\n                yield axios_1.default.get(random).then(respon => {\n                    const $ = cheerio_1.default.load(respon.data);\n                    const Sticker = [];\n                    $('#stickerPack > div > div.row').each(function (_a, b) {\n                        $(b).find('div').each(function (_c, d) {\n                            const sticker = $(d).find('img').attr('data-src-large');\n                            Sticker.push(sticker);\n                        });\n                    });\n                    const data = [];\n                    Sticker.map(tyuzu => {\n                        if (tyuzu === undefined)\n                            return;\n                        data.push(tyuzu);\n                    });\n                    const Format = {\n                        judul: $('#intro').find('div > div > h1').text().trim(),\n                        creator: $('#intro').find('div > div > h5 > a').text().trim(),\n                        sticker: data\n                    };\n                    const result = {\n                        status: respon.status,\n                        author: \"I`am RA\",\n                        data: Format\n                    };\n                    resolve(result);\n                }).catch(reject);\n            }));\n        }));\n    });\n}\nfunction UploadFile(_path) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, rejects) => __awaiter(this, void 0, void 0, function* () {\n            const BodyForm = new form_data_1.default();\n            const FileSys = fs_1.default.createReadStream(_path);\n            BodyForm.append('files[]', FileSys);\n            yield axios_1.default({\n                url: \"https://uguu.se/upload.php\",\n                method: \"POST\",\n                data: BodyForm,\n                headers: Object.assign({ \"accept\": \"*/*\", \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\" }, BodyForm.getHeaders())\n            }).then(respon => {\n                const result = {\n                    author: 'Created by Ra',\n                    status: respon.data.success ? 200 : 404,\n                    result: {\n                        url: respon.data.files[0].name,\n                        namaFile: respon.data.files[0].url,\n                        size: respon.data.files[0].size,\n                        hash: respon.data.files[0].hash\n                    }\n                };\n                resolve(result);\n            }).catch(rejects);\n        }));\n    });\n}\nfunction igDownload(Link) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            const Form = {\n                url: Link,\n                submit: \"\"\n            };\n            yield axios_1.default(`https://downloadgram.org/`, {\n                method: \"POST\",\n                data: new URLSearchParams(Object.entries(Form)),\n                headers: {\n                    \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                    \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n                    \"cache-control\": \"max-age=0\",\n                    \"content-type\": \"application/x-www-form-urlencoded\",\n                    \"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n                    \"cookie\": \"_ga=GA1.2.1695343126.1621491858; _gid=GA1.2.28178724.1621491859; __gads=ID=8f9d3ef930e9a07b-2258e672bec80081:T=1621491859:RT=1621491859:S=ALNI_MbqLxhztDiYZttJFX2SkvYei6uGOw; __atuvc=3%7C20; __atuvs=60a6eb107a17dd75000; __atssc=google%3B2; _gat_gtag_UA_142480840_1=1\"\n                },\n            }).then((res) => __awaiter(this, void 0, void 0, function* () {\n                const $ = cheerio_1.default.load(res.data);\n                const url = $('#downloadBox').find('a').attr('href');\n                yield axios_1.default(Link, {\n                    method: \"GET\",\n                    data: null,\n                    headers: {\n                        \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                        \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n                        \"cache-control\": \"max-age=0\",\n                        \"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n                        \"cookie\": \"ig_did=08A3C465-7D43-4D8A-806A-88F98384E63B; ig_nrcb=1; mid=X_ipMwALAAFgQ7AftbrkhIDIdXJ8; fbm_124024574287414=base_domain=.instagram.com; shbid=17905; ds_user_id=14221286336; csrftoken=fXHAj5U3mcJihQEyVXfyCzcg46lHx7QD; sessionid=14221286336%3A5n4czHpQ0GRzlq%3A28; shbts=1621491639.7673564; rur=FTW\"\n                    }\n                }).then(respon => {\n                    const ch = cheerio_1.default.load(respon.data);\n                    const title = ch('title').text().trim();\n                    const result = {\n                        author: \"RA BOT\",\n                        result: {\n                            link: url,\n                            desc: title,\n                            LinkAwal: Link\n                        }\n                    };\n                    resolve(result);\n                }).catch(reject);\n            }));\n        }));\n    });\n}\nfunction Pantun() {\n    const pantun = JSON.parse(fs_1.default.readFileSync('./database/pantun.json').toString());\n    const acak = pantun[Math.floor(Math.random() * (pantun.length))];\n    return acak;\n}\nfunction TruthOrDare(querry) {\n    const result = JSON.parse(fs_1.default.readFileSync('./database/truthdare.json').toString());\n    if (querry === 'truth id') {\n        const res = result.Truth.id[Math.floor(Math.random() * result.Truth.id.length)];\n        return res;\n    }\n    else if (querry === 'truth eng') {\n        const res = result.Truth.eng[Math.floor(Math.random() * result.Truth.eng.length)];\n        return res;\n    }\n    else if (querry === 'dare id') {\n        const res = result.Dare.id[Math.floor(Math.random() * result.Dare.id.length)];\n        return res;\n    }\n    else if (querry === 'dare eng') {\n        const res = result.Dare.eng[Math.floor(Math.random() * result.Dare.eng.length)];\n        return res;\n    }\n    else {\n        return `Querry tidak terdaftar dimenu harap masukkan dengan benar.\\n\\ncara pakai :\\n1. TruthOrDare ('truth id')\\n2. TruthOrDare('truth eng')\\n3. TruthOrDare ('dare id')\\n4. TruthOrDare ('dare eng')`;\n    }\n}\nfunction SearchFilm(querry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            yield got_1.default.get(`http://167.99.31.48/?s=${querry}`).then(respon => {\n                const $ = cheerio_1.default.load(respon.body);\n                const hasil = [];\n                $('#content > div > div.los').each(function (a, b) {\n                    $(b).find('article').each(function (tyu, zu) {\n                        const judul = $(zu).find('div > a > div > div > header > h2').text().trim();\n                        const thumb = $(zu).find('div > a > div > img').attr('src');\n                        const kualitas = $(zu).find('div > a > div > div > span').text().trim();\n                        const Url = $(zu).find('div > a').attr('href');\n                        const result = {\n                            judul: judul,\n                            thumb: thumb,\n                            quality: kualitas,\n                            link: Url\n                        };\n                        hasil.push(result);\n                    });\n                });\n                resolve(hasil);\n            }).catch(reject);\n        }));\n    });\n}\nfunction OtakudesuSearch(querry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            yield got_1.default(`https://otakudesu.moe/?s=${querry}&post_type=anime`, {\n                method: \"GET\",\n                headers: {\n                    \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                    \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n                    \"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\"\n                }\n            }).then(respon => {\n                const $ = cheerio_1.default.load(respon.body);\n                const hasil = [];\n                $('#venkonten > div > div.venser > div > div').each(function (a, b) {\n                    $(b).find('ul > li').each(function (c, d) {\n                        const judul = $(d).find('h2 > a').text().trim();\n                        const Url = $(d).find('h2 > a').attr('href');\n                        const thumb = $(d).find('img').attr('src');\n                        const rating = $(d).find('div:nth-child(5)').text().trim();\n                        const status = $(d).find('div:nth-child(4)').text().trim();\n                        const Genre = $(d).find('div:nth-child(3)').text().trim();\n                        const Result = {\n                            judul: judul,\n                            thumb: thumb,\n                            url: Url,\n                            rating: rating.replace(/[Rating :]/g, ''),\n                            status: status.replace(/[Status : ]/g, ''),\n                            genre: Genre.replace(/[Genres : ]/g, '')\n                        };\n                        hasil.push(Result);\n                    });\n                });\n                const Data = {\n                    status: respon.statusCode,\n                    author: \"I`am Ra\",\n                    result: hasil\n                };\n                resolve(Data);\n            }).catch(reject);\n        }));\n    });\n}\nfunction InfoOtakudesu(URL) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            yield got_1.default.get(URL, {\n                headers: {\n                    \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                    \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n                    \"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\"\n                }\n            }).then(res => {\n                const $ = cheerio_1.default.load(res.body);\n                const hasil = [];\n                const thumb = $('#venkonten').find('div.venser > div.fotoanime > img').attr('src');\n                const sinopsis = [];\n                $('#venkonten > div.venser > div.fotoanime > div.infozin > div').each(function (a, b) {\n                    $(b).find('span').each(function (tyu, zu) {\n                        const Data = $(zu).text().trim();\n                        hasil.push(Data);\n                    });\n                });\n                $('#venkonten > div.venser').find('div.fotoanime > div.sinopc').each(function (c, d) {\n                    const Data = $(d).find('p').text().trim();\n                    sinopsis.push(Data);\n                });\n                let Bio = \"\";\n                for (const i of hasil) {\n                    Bio += i + \"\\n\";\n                }\n                const Result = {\n                    status: res.statusCode,\n                    author: \"I`am Ra\",\n                    result: {\n                        thumb: thumb,\n                        bio: Bio,\n                        sinopsis: sinopsis[0]\n                    }\n                };\n                resolve(Result);\n            }).catch(reject);\n        }));\n    });\n}\nfunction Musikmatch(querry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            yield got_1.default.get(`https://www.musixmatch.com/search/${querry}`, {\n                method: \"GET\",\n                headers: {\n                    \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                    \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n                    \"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\"\n                }\n            }).then(({ body }) => __awaiter(this, void 0, void 0, function* () {\n                const $ = cheerio_1.default.load(body);\n                const Url = $('#search-all-results > div.main-panel > div').find('div.box-content > div > ul > li > div > div.media-card-body > div > h2 > a').attr('href');\n                yield got_1.default(`https://www.musixmatch.com${Url}`, {\n                    method: \"GET\",\n                    headers: {\n                        \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                        \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n                        \"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\"\n                    }\n                }).then(res => {\n                    const $ = cheerio_1.default.load(res.body);\n                    const judul = $('#site > div > div > div > main > div > div > div.mxm-track-banner.top > div > div > div').find('div.col-sm-10.col-md-8.col-ml-9.col-lg-9.static-position > div.track-title-header > div.mxm-track-title > h1').text().trim();\n                    const artis = $('#site > div > div > div > main > div > div > div > div > div > div > div> div > div > h2 > span').text().trim();\n                    const thumb = $('#site > div > div > div > main > div > div > div.mxm-track-banner.top > div > div > div').find('div.col-sm-1.col-md-2.col-ml-3.col-lg-3.static-position > div > div > div > img').attr('src');\n                    const lirik = [];\n                    $('#site > div > div > div > main > div > div > div.mxm-track-lyrics-container').find('div.container > div > div > div > div.col-sm-10.col-md-8.col-ml-6.col-lg-6 > div.mxm-lyrics').each(function (a, b) {\n                        const isi = $(b).find('span').text().trim();\n                        lirik.push(isi);\n                    });\n                    const result = {\n                        status: res.statusCode,\n                        author: \"I`am Ra\",\n                        result: {\n                            judul: judul.replace('Lyrics', ''),\n                            penyanyi: artis,\n                            thumb: \"https:\" + thumb,\n                            lirik: lirik[0]\n                        }\n                    };\n                    resolve(result);\n                });\n            })).catch(reject);\n        }));\n    });\n}\nfunction Snaptik (Url) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            const BodyForm = new form_data_1.default();\n            BodyForm.append('url', encodeURI(Url));\n            yield axios_1.default({\n                url: \"https://snaptik.app/action.php?lang=ID\",\n                method: \"POST\",\n                data: BodyForm,\n                headers: Object.assign({ \"accept\": \"*/*\", \"accept-language\": \"en-US,en;q=0.9,id;q=0.8\", \"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\" }, BodyForm.getHeaders())\n            }).then(respon => {\n                const $ = cheerio_1.default.load(respon.data);\n                const result = {\n                    status: respon.status,\n                    author: \"Ra\",\n                    result: {\n                        judul: $('div.zhay-middle.center').find('h1 > a').text().trim(),\n                        caption: $('div.zhay-middle.center').find(\"p:nth-child(2) > span\").text().trim(),\n                        tanggal: $('div.zhay-middle.center > p:nth-child(3)').text().trim(),\n                        thumb: $(\"div.zhay-left.left\").find('img').attr('src'),\n                        link1: 'https://snaptik.app' + $('div.zhay-right.is-desktop-only.right').find('div > a:nth-child(1)').attr('href'),\n                        link2: 'https://snaptik.app' + $('div.zhay-right.is-desktop-only.right').find('div > a:nth-child(2)').attr('href'),\n                        link3: 'https://snaptik.app' + $('div.zhay-right.is-desktop-only.right').find(\"div > a:nth-child(3)\").attr('href')\n                    }\n                };\n                resolve(result);\n            }).catch(reject);\n        }));\n    });\n}\nmodule.exports.ManggaToon = ManggaToon;\nmodule.exports.EmojiScrapper = EmojiScrapper;\nmodule.exports.RandomCerpen = RandomCerpen;\nmodule.exports.StickerSearch = StickerSearch;\nmodule.exports.UploadFile = UploadFile;\nmodule.exports.igDownload = igDownload;\nmodule.exports.Pantun = Pantun;\nmodule.exports.TruthOrDare = TruthOrDare;\nmodule.exports.SearchFilm = SearchFilm;\nmodule.exports.OtakudesuSearch = OtakudesuSearch;\nmodule.exports.InfoOtakudesu = InfoOtakudesu;\nmodule.exports.Musikmatch = Musikmatch;\nmodule.exports.Snaptik = Snaptik;\n"
  },
  {
    "path": "Zimbot/index5.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst cheerio = require('cheerio')\nconst fetch = require('node-fetch')\nconst axios = require('axios')\nconst _math = require('mathjs')\nconst _url = require('url')\nconst request = require('request');\n//const wa = require('./whatsapp/message')\n\nfunction randomarray(url) {\nreturn url[Math.floor(Math.random() * url.length)]\n}\n\nexports.randomtt = async(query) => {\n  return new Promise((resolve,reject) => {\n    axios.get('https://brainans.com/search?query=' + query)\n    .then(({data}) => {\n      const $ = cheerio.load(data)\n      const luser = $('#search-container > div:nth-child(1) > div.content__text > a').attr('href')\n      axios.get('https://brainans.com/' + luser)\n      .then(({data}) => {\n        const $$ = cheerio.load(data)\n        vlink = [];\n        $$('#videos_container > div > div.content__list.grid.infinite_scroll.cards > div > div > a').each(function(a, b){\n          vlink.push('https://brainans.com/' + $$(b).attr('href'))\n        })\n        randomarray(vlink).then(res => {\n          axios.get(res)\n          .then(({data}) => {\n            const $$$ = cheerio.load(data)\n            resolve({\n              username: $$$('#card-page > div > div.row > div > div > div > div > div.main__user-desc.align-self-center.ml-2 > a').text(),\n              caption: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.main__list').text(),\n              like_count: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div > div:nth-child(1) > span').text(),\n              comment_count: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.content__btns.d-flex > div:nth-child(2) > span').text(),\n              share_count: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.content__btns.d-flex > div:nth-child(3) > span').text(),\n              videourl: $$$('#card-page > div > div.row > div > div > div.main__info.mb-4 > div.main__image-container > div > video').attr('src')\n            })\n          })\n        })\n      })\n    })\n  })\n}\nexports.trendtwit = (country) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get(`https://getdaytrends.com/${country}/`)\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst hastag = [];\n      const tweet = [];\n      const result = [];\n      $('#trends > table.table.table-hover.text-left.clickable.ranking.trends.wider.mb-0 > tbody > tr> td.main > a').each(function(a, b){\n        deta = $(b).text()\n        hastag.push(deta)\n      })\n      $('#trends > table.table.table-hover.text-left.clickable.ranking.trends.wider.mb-0 > tbody > tr > td.main > div > span').each(function(a, b){\n        deta = $(b).text()\n        tweet.push(deta)\n      })\n      num = 1\n      for(let i=0; i<hastag.length; i++){\n        result.push({\n          rank: num,\n          hastag: hastag[i],\n          tweet: tweet[i]\n        })\n        num += 1\n      }\n\t\t    resolve({\n          country: country,\n          result: result\n        })\n\t\t})\n\t\t.catch(reject)\n\t})\n}\nexports.pinterest = async(querry) => {\n\treturn new Promise(async(resolve,reject) => {\n\t\t axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\n\t\t\theaders: {\n\t\t\t\"cookie\" : \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n\t\t}\n\t\t\t}).then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\tconst hasil = [];\n   \t\t $('div > a').get().map(b => {\n        const link = $(b).find('img').attr('src')\n            result.push(link)\n\t\t});\n   \t\tresult.forEach(v => {\n\t\t if(v == undefined) return\n\t\t hasil.push(v.replace(/236/g,'736'))\n\t\t\t})\n\t\t\thasil.shift();\n\t\tresolve(hasil)\n\t\t})\n\t})\n}\nexports.zerochan = (query) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get('https://www.zerochan.net/search?q=' + query)\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst judul = [];\n      const result = [];\n      const id = [];\n\t\t\t$('#thumbs2 > li > a > img').each(function(a,b) {\n        if(!$(b).attr('alt').startsWith('https://static.zerochan.net/')){\n\t\t\t\tjudul.push($(b).attr('alt'))\n        }\n\t\t\t})\n      $('#thumbs2 > li > a').each(function(a, b) {\n        id.push($(b).attr('href'))\n      })\n      for(let i=0; i<judul.length; i++){\n        result.push('https://s1.zerochan.net/' + judul[i].replace(/\\ /g, '.') + '.600.' + id[i].split('/')[1] + '.jpg')\n      }\n\t\t  resolve({\n        creator: 'Fajar Ihsana',\n        result: result\n      })\n\t\t})\n\t\t.catch(reject)\n\t})\n}\nexports.happymoddl = (link) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get(link)\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n      const link = [];\n      const jlink = [];\n      const result = [];\n\t\t\tconst title = $('body > div > div.container-left > section:nth-child(1) > div > h1').text()\n      const info = $('body > div > div.container-left > section:nth-child(1) > div > ul').text()\n      $('body > div.container-row.clearfix.container-wrap.pdt-font-container > div.container-left > section:nth-child(1) > div:nth-child(11) > div:nth-child(3) > div > p > a').each(function(a, b) {\n        deta = $(b).text();\n        jlink.push(deta)\n        if($(b).attr('href').startsWith('/')){\n        link.push('https://happymod.com' + $(b).attr('href'))\n        }\n        else{\n          link.push($(b).attr('href'))\n        }\n      })\n      for(let i=0; i<link.length; i++){\n        result.push({\n          title: jlink[i],\n          dl_link: link[i]\n        })\n      }\n\t\t  resolve({\n        creator: 'Fajar Ihsana',\n        title: title,\n        info: info.replace(/\\t|- /g, ''),\n        download: result\n      })\n\t\t})\n\t\t.catch(reject)\n\t})\n}\nexports.goredl = async(link) => {\n\t        return new Promise(async(resolve,reject) => {\n            axios.get(link)\n\t\t\t\t\t\t.then(({ data }) => {\n\t\t\t\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\t\t\t\tconst format = {\n\t\t\t\t\t\t\t\tjudul : $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > header > h1').text(),\n\t\t\t\t\t\t\t\tviews : $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > span > span.count').text(),\n\t\t\t\t\t\t\t\tcomment : $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > a > span.count').text(),\n\t\t\t\t\t\t\t\tlink : $$('video > source').attr('src')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst result = {\n\t\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\t\tdata : format\n\t\t\t\t\t\t\t}\n                  resolve(result)\n                })\n                .catch(reject)\n            })\n}\nexports.chara = async(query) => {\n  return new Promise((resolve, reject) => {\n    axios.get(`https://www.anime-planet.com/characters/all?name=${query}&sort=likes&order=desc`)\n    .then((data) => {\n      const $ = cheerio.load(data.data)\n      const linkp = $('#siteContainer > table > tbody > tr:nth-child(1) > td.tableCharInfo > a').attr('href')\n      axios.get('https://www.anime-planet.com' + linkp)\n      .then((data) => {\n        //console.log(data.data)\n        const $$ = cheerio.load(data.data)\n      resolve({\n        nama: $$('#siteContainer > h1').text(),\n        gender: $$('#siteContainer > section.pure-g.entryBar > div:nth-child(1)').text().split('\\nGender: ')[1],\n        warna_rambut: $$('#siteContainer > section.pure-g.entryBar > div:nth-child(2)').text().split('\\nHair Color: ')[1],\n        warna_mata: $$('#siteContainer > section:nth-child(11) > div > div > div > div > div:nth-child(1) > div').text().split('\\n')[1],\n        gol_darah: $$('#siteContainer > section:nth-child(11) > div > div > div > div > div:nth-child(2) > div').text().split('\\n')[1],\n        birthday: $$('#siteContainer > section:nth-child(11) > div > div > div > div > div:nth-child(3) > div').text().split('\\n')[1],\n        description: $$('#siteContainer > section:nth-child(11) > div > div > div > div:nth-child(1) > p').text()\n      })\n    })\n    })\n    .catch(reject)\n  })\n}\nexports.anime = async(query) => {\n  return new Promise((resolve, reject) => {\n    axios.get(`https://www.anime-planet.com/anime/all?name=${query}`)\n    .then((data) => {\n      const $ = cheerio.load(data.data)\n      const result = [];\n      const judul = [];\n      const link = [];\n      const thumb = [];\n      $('#siteContainer > ul.cardDeck.cardGrid > li > a > h3').each(function(a, b) {\n        deta = $(b).text();\n        judul.push(deta)\n      })\n      $('#siteContainer > ul.cardDeck.cardGrid > li > a').each(function(a, b) {\n        link.push('https://www.anime-planet.com' + $(b).attr('href'))\n      })\n      $('#siteContainer > ul.cardDeck.cardGrid > li > a > div.crop > img').each(function(a, b) {\n        thumb.push('https://www.anime-planet.com' + $(b).attr('src'))\n      })\n      for(let i=0; i<judul.length; i++){\n        result.push({\n          judul: judul[i],\n          thumb: thumb[i],\n          link: link[i]\n        })\n      }\n      resolve(result)\n    })\n    .catch(reject)\n  })\n}\nexports.manga = async(query) => {\n  return new Promise((resolve, reject) => {\n    axios.get(`https://www.anime-planet.com/manga/all?name=${query}`)\n    .then((data) => {\n      const $ = cheerio.load(data.data)\n      const result = [];\n      const judul = [];\n      const link = [];\n      const thumb = [];\n      $('#siteContainer > ul.cardDeck.cardGrid > li > a > h3').each(function(a, b) {\n        deta = $(b).text();\n        judul.push(deta)\n      })\n      $('#siteContainer > ul.cardDeck.cardGrid > li > a').each(function(a, b) {\n        link.push('https://www.anime-planet.com' + $(b).attr('href'))\n      })\n      $('#siteContainer > ul.cardDeck.cardGrid > li > a > div.crop > img').each(function(a, b) {\n        thumb.push('https://www.anime-planet.com' + $(b).attr('src'))\n      })\n      for(let i=0; i<judul.length; i++){\n        result.push({\n          judul: judul[i],\n          thumb: thumb[i],\n          link: link[i]\n        })\n      }\n      resolve(result)\n    })\n    .catch(reject)\n  })\n}\nexports.job = async(query) => {\n  return new Promise((resolve, reject) => {\n    axios.get(`https://www.jobstreet.co.id/id/job-search/${query}-jobs/`)\n    .then((data) => {\n      //console.log(data.data)\n      const $ = cheerio.load(data.data)\n      const job = [];\n      const perusahaan = [];\n      const daerah = [];\n      const format = [];\n      const link = [];\n      const upload = [];\n      $('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > div > h1 > a > div').each(function(a, b) {\n        deta = $(b).text();\n        job.push(deta)\n      })\n      $('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > div > span').each(function(a, b) {\n        deta = $(b).text();\n        perusahaan.push(deta)\n      })\n      $('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > span > span').each(function(a, b) {\n        deta = $(b).text();\n        daerah.push(deta)\n      })\n      $('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div > div > div > h1 > a').each(function(a, b) {\n        link.push($(b).attr('href'))\n      })\n      $('#jobList > div > div:nth-child(3) > div > div > div > div > article > div > div > div.sx2jih0.zcydq852.zcydq842.zcydq872.zcydq862.zcydq82a.zcydq832.zcydq8d2.zcydq8cq > div.sx2jih0.zcydq832.zcydq8cq.zcydq8c6.zcydq882 > time > span').each(function(a, b) {\n        deta = $(b).text();\n        upload.push(deta)\n      })\n      for(let i=0; i<job.length; i++){\n        format.push({\n          job: job[i],\n          perusahaan: perusahaan[i],\n          daerah: daerah[i],\n          upload: upload[i],\n          link_Detail: 'https://www.jobstreet.co.id' + link[i]\n        })\n      }\n      resolve(format)\n    })\n    .catch(reject)\n  })\n}\nexports.distance = async(kawal, ktujuan) => {\n  return new Promise((resolve, reject) => {\n    axios.get(`http://jarakantarkota.com/${kawal}/${ktujuan}/`)\n    .then((data) => {\n      const $ = cheerio.load(data.data)\n      const jarak = $('body > div.content > div > div.b-search-route > div > div > div.col-xs-12.col-sm-12.col-md-12.col-lg-8 > div').text().replace('                       ', '')\n      resolve({\n        kota_asal: jarak.split('  -')[0],\n        kota_tujuan: jarak.split('- ')[1].split(' (')[0],\n        jarak: jarak.split(' (')[1].split(')')[0]\n      })\n    })\n    .catch(reject)\n  })\n}\nexports.anoboys = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://anoboy.media/?s=' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const format = [];\n                        const link = [];\n\t\t\t\t\t\tconst judul = [];\n\t\t\t\t\t\tconst thumb = [];\n\t\t\t\t\t\tconst uptime = [];\n                        $('body > div.wrap > div.container > div.column-content > a > div > div.amvj > h3').each(function(a,b) {\n                                jud = $(b).text();\n                                judul.push(jud)\n                        })\n                        $('body > div.wrap > div.container > div.column-content > a > div > div.jamup').each(function(c,d) {\n                        \tupt = $(d).text();\n                        \tuptime.push(upt)\n                        })\n                        $('body > div.wrap > div.container > div.column-content > a > div > amp-img').each(function(e,f) {\n                        \tthumb.push($(f).attr('src'))\n                        })\n                        $('body > div.wrap > div.container > div.column-content > a').each(function(g,h) {\n                        \tlink.push($(h).attr('href'))\n                        })\n        \t\t\t\tfor(let i=0; i<link.length; i++){\n        \t\t\t\t\tformat.push({\n        \t\t\t\t\t\tjudul : judul[i],\n        \t\t\t\t\t\tthumb : thumb[i],\n        \t\t\t\t\t\tlink : link[i]\n        \t\t\t\t\t})\n        \t\t\t\t}\n        \t\t\t\tconst result = {\n        \t\t\t\t\tstatus: data.status,\n        \t\t\t\t\tcreator: 'Fajar Ihsana',\n        \t\t\t\t\tdata: format\n        \t\t\t\t}\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.anoboydl = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get(query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                  resolve({\n                  \tjudul: $('body > div.wrap > div.container > div.pagetitle > h1').text(),\n                  \tuptime: $('body > div.wrap > div.container > div.pagetitle > div > div > span > time').text(),\n                  \tmforu: {\n                  \t\tSD: $('#colomb > p > span:nth-child(1) > a:nth-child(3)').attr('href'),\n                  \t\tHD: $('#colomb > p > span:nth-child(1) > a:nth-child(5)').attr('href')\n                  \t},\n                  \tzippy: {\n                  \t\tSD: $('#colomb > p > span:nth-child(3) > a:nth-child(3)').attr('href'),\n                  \t\tHD: $('#colomb > p > span:nth-child(3) > a:nth-child(5)').attr('href')\n                  \t},\n                  \tmirror: {\n                  \t\tSD: $('#colomb > p > span:nth-child(5) > a:nth-child(3)').attr('href'),\n                  \t\tHD: $('#colomb > p > span:nth-child(5) > a:nth-child(5)').attr('href')\n                  \t}\n                  })\n                })\n                .catch(reject)\n        })\n}\nexports.film = async(query) => {\n  return new Promise((resolve, reject) => {\n    axios.get(`http://167.99.71.200/?s=${query}`)\n    .then((data) => {\n      const $ = cheerio.load(data.data)\n      const judul = [];\n      const genre = [];\n      const thumb = [];\n      const link = [];\n      const format = [];\n      $('div > div.item-article > header > h2 > a').each(function(a, b) {\n        deta = $(b).text();\n        judul.push(deta)\n      })\n      $('div > div.item-article > header > div.gmr-movie-on').each(function(a, b) {\n        deta = $(b).text();\n        genre.push(deta)\n      })\n      $('div > div.content-thumbnail.text-center > a > img').each(function(a, b) {\n        thumb.push($(b).attr('src'))\n      })\n      $('div > div.item-article > header > div.gmr-watch-movie > a').each(function(a, b) {\n        link.push($(b).attr('href'))\n      })\n      for(let i=0; i<judul.length; i++){\n        format.push({\n          judul: judul[i],\n          genre: genre[i],\n          thumb: thumb[i],\n          link_nonton: link[i]\n        })\n      }\n      if(format == ''){\n        resolve({\n          status: 'error'\n        })\n      }\n      else{\n      resolve(format)\n      }\n    })\n    .catch(reject)\n  })\n}\nexports.webtoons = async(query) => {\n  return new Promise((resolve, reject) => {\n    axios.get(`https://www.webtoons.com/id/search?keyword=${query}`)\n    .then((data) => {\n      const $ = cheerio.load(data.data)\n      const judul = [];\n      const genre = [];\n      const author = [];\n      const link = [];\n      const likes = [];\n      const format = [];\n      $('#content > div > ul > li > a > div > p.subj').each(function(a, b) {\n        deta = $(b).text();\n        judul.push(deta)\n      })\n      $('div > ul > li > a > span').each(function(a, b) {\n        deta = $(b).text();\n        genre.push(deta)\n      })\n      $('div > ul > li > a > div > p.author').each(function(a, b) {\n        deta = $(b).text();\n        author.push(deta)\n      })\n      $('div > ul > li > a > div > p.grade_area > em').each(function(a, b) {\n        deta = $(b).text();\n        likes.push(deta)\n      })\n      $('#content > div > ul > li > a').each(function(a, b) {\n        link.push($(b).attr('href'))\n      })\n      for(let i=0; i<judul.length; i++){\n        format.push({\n          judul: judul[i],\n          genre: genre[i],\n          author: author[i],\n          likes: likes[i],\n          link: 'https://www.webtoons.com' + link[i]\n        })\n      }\n      if(likes == ''){\n        resolve({\n          status: `${query} tidak dapat ditemukan/error`\n        })\n      }\n      else{\n      resolve(format)\n      }\n    })\n    .catch(reject)\n  })\n}\nexports.soundcloud = async(link) => {\n    return new Promise((resolve, reject) => {\n    const options = { method: 'POST',\n      url:\"https://www.klickaud.co/download.php\",\n      headers: { 'content-type': 'application/x-www-form-urlencoded'},\n      formData: { 'value': link,\n'2311a6d881b099dc3820600739d52e64a1e6dcfe55097b5c7c649088c4e50c37': '710c08f2ba36bd969d1cbc68f59797421fcf90ca7cd398f78d67dfd8c3e554e3' } };\n    \n    request(options, async function (error, response, body) {\n      console.log(body)\n      if (error) throw new Error(error);\n      const $ = cheerio.load(body)\n      resolve({\n        judul: $('#header > div > div > div.col-lg-8 > div > table > tbody > tr > td:nth-child(2)').text(),\n        download_count: $('#header > div > div > div.col-lg-8 > div > table > tbody > tr > td:nth-child(3)').text(),\n        thumb: $('#header > div > div > div.col-lg-8 > div > table > tbody > tr > td:nth-child(1) > img').attr('src'),\n        link: $('#dlMP3').attr('onclick').split(`downloadFile('`)[1].split(`',`)[0]\n      });\n    });\n  })\n}\nexports.igdl = async(link) => {\n    return new Promise((resolve, reject) => {\n    const options = { method: 'POST',\n      url:\"https://downloadgram.org/#downloadhere\",\n      headers: { 'content-type': 'application/x-www-form-urlencoded' },\n      formData: { url: link, submit: '' } };\n    \n    request(options, async function (error, response, body) {\n      if (error) throw new Error(error);\n      const $ = cheerio.load(body)\n      const result = [];\n      $('#downloadBox > a').each(function(a, b) {\n        result.push($(b).attr('href'))\n      })\n      resolve(result);\n    });\n  })\n}\nexports.igstalk = async(username) => {\n    return new Promise(async(resolve, reject) => {\n    let {data} = await axios('https://www.instagram.com/'+username+'/?__a=1', {\n        'method': 'GET',\n        'headers': {\n        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',\n        'cookie': 'ig_did=77ADA31F-4AB0-4D19-8875-522C891A60E6; ig_nrcb=1; csrftoken=Zuy4R9169ejQY0R20InUOfeh2fCh7cfW; ds_user_id=8779859677; sessionid=8779859677%3Az2RfuCb1tsxTh1%3A26; shbid=\"10275\\0548779859677\\0541665541164:01f7683f87e5d1e3c2db8b41bfad455d2718c549ac0aeba033c00ae0e25647a7d8b87ee1\"; shbts=\"1634005164\\0548779859677\\0541665541164:01f7df3ebca9d4ae3ecdb5f3b25d845142e5f462409976c5c140ba803c85bdd15fe0d45e\"; rur=\"EAG\\0548779859677\\0541665541186:01f7c8bdbba6bfaf1f0fc03d5b843fe864bb908dc49069cc77dd546a9c6b50302d83b608\"'\n        }\n    })\n    let user = data.graphql.user\n    let json = {\n        creator: '\"hardianto02_',\n        status: 'ok',\n        code: 200,\n        username: user.username,\n        fullname: user.full_name,\n        verified: user.is_verified,\n        video_count_reel: user.highlight_reel_count,\n        followers: user.edge_followed_by.count,\n        follow: user.edge_follow.count,\n        is_bussines: user.is_business_account,\n        is_professional: user.is_professional_account,\n        category: user.category_name,\n        thumbnail: user.profile_pic_url_hd,\n        bio: user.biography,\n        info_account: data.seo_category_infos\n    }\n    resolve(json)\n})\n}\nexports.gempa = async() => {\n\t        return new Promise(async(resolve,reject) => {\n                axios.get('https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const drasa = [];\n                        $('table > tbody > tr:nth-child(1) > td:nth-child(6) > span').get().map((rest) => {\n         \t\t\t\t\tdir = $(rest).text();\n         \t\t\t\t\tdrasa.push(dir.replace('\\t', ' '))\n        \t\t\t\t})\n        \t\t\t\tteks = ''\n        \t\t\t\tfor(let i=0; i<drasa.length; i++){\n        \t\t\t\t\tteks += drasa[i] + '\\n'\n        \t\t\t\t}\n        \t\t\t\tconst rasa = teks\n                        const format = {\n                        \timagemap : $('div.modal-body > div > div:nth-child(1) > img').attr('src'),\n                        \tmagnitude : $('table > tbody > tr:nth-child(1) > td:nth-child(4)').text(),\n                        \tkedalaman: $('table > tbody > tr:nth-child(1) > td:nth-child(5)').text(),\n                        \twilayah: $('table > tbody > tr:nth-child(1) > td:nth-child(6) > a').text(),\n                        \twaktu: $('table > tbody > tr:nth-child(1) > td:nth-child(2)').text(),\n                        \tlintang_bujur: $('table > tbody > tr:nth-child(1) > td:nth-child(3)').text(),\n                        \tdirasakan: rasa\n                        }\n                        const result = {\n                        \tcreator: 'Fajar Ihsana',\n                        \tdata: format\n                        }\n                  resolve(result)\n\t\t\t})\n                .catch(reject)\n            })\n}\nexports.cariresep = async(query) => {\n\t        return new Promise(async(resolve,reject) => {\n                axios.get('https://resepkoki.id/?s=' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const link = [];\n                        const judul = [];\n                        const upload_date = [];\n                        const format = [];\n                        const thumb = [];\n                        $('body > div.all-wrapper.with-animations > div:nth-child(5) > div > div.archive-posts.masonry-grid-w.per-row-2 > div.masonry-grid > div > article > div > div.archive-item-media > a').each(function(a,b){\n                        \tlink.push($(b).attr('href'))\n                        })\n                        $('body > div.all-wrapper.with-animations > div:nth-child(5) > div > div.archive-posts.masonry-grid-w.per-row-2 > div.masonry-grid > div > article > div > div.archive-item-content > header > h3 > a').each(function(c,d){\n                        \tjud = $(d).text();\n                        \tjudul.push(jud)\n                        })\n                        for( let i = 0; i < link.length; i++){\n\t\t\t\t\t\t\tformat.push({\n\t\t\t\t\t\t\t\tjudul : judul[i],\n\t\t\t\t\t\t\t\tlink : link[i]\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst result = {\n\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\tdata : format\n\t\t\t\t\t\t}\n                  resolve(result)\n\t\t\t})\n                .catch(reject)\n            })\n}\nexports.bacaresep = async(query) => {\n\t        return new Promise(async(resolve,reject) => {\n                axios.get(query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const abahan = [];\n                        const atakaran = [];\n                        const atahap = [];\n                        $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-details > div > div.single-recipe-ingredients-nutritions > div > table > tbody > tr > td:nth-child(2) > span.ingredient-name').each(function(a,b) {\n                        \tbh = $(b).text();\n                        \tabahan.push(bh)\n                        })\n                        $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-details > div > div.single-recipe-ingredients-nutritions > div > table > tbody > tr > td:nth-child(2) > span.ingredient-amount').each(function(c,d) {\n                        \tuk = $(d).text();\n                        \tatakaran.push(uk)\n                        })\n                        $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-content > div.single-steps > table > tbody > tr > td.single-step-description > div > p').each(function(e,f) {\n                        \tth = $(f).text();\n                        \tatahap.push(th)\n                        })\n                        const judul = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-title.title-hide-in-desktop > h1').text();\n                        const waktu = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-meta > ul > li.single-meta-cooking-time > span').text();\n                        const hasil = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-meta > ul > li.single-meta-serves > span').text().split(': ')[1]\n                        const level = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-main > div.single-meta > ul > li.single-meta-difficulty > span').text().split(': ')[1]\n                        const thumb = $('body > div.all-wrapper.with-animations > div.single-panel.os-container > div.single-panel-details > div > div.single-main-media > img').attr('src')\n                        tbahan = 'bahan\\n'\n                        for( let i = 0; i < abahan.length; i++){\n\t\t\t\t\t\t\ttbahan += abahan[i] + ' ' + atakaran[i] + '\\n' \n\t\t\t\t\t\t}\n\t\t\t\t\t\tttahap = 'tahap\\n'\n\t\t\t\t\t\tfor( let i = 0; i < atahap.length; i++){\n\t\t\t\t\t\t\tttahap += atahap[i] + '\\n\\n' \n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst tahap = ttahap\n\t\t\t\t\t\tconst bahan = tbahan\n\t\t\t\t\t\tconst result = {\n\t\t\t\t\t\t\tcreator : 'Fajar Ihsana',\n\t\t\t\t\t\t\tdata : {\n\t\t\t\t\t\t\t\tjudul : judul,\n\t\t\t\t\t\t\t\twaktu_masak : waktu,\n\t\t\t\t\t\t\t\thasil : hasil,\n\t\t\t\t\t\t\t\ttingkat_kesulitan : level,\n\t\t\t\t\t\t\t\tthumb : thumb,\n\t\t\t\t\t\t\t\tbahan : bahan.split('bahan\\n')[1],\n\t\t\t\t\t\t\t\tlangkah_langkah : tahap.split('tahap\\n')[1]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n                  resolve(result)\n\t\t\t})\n                .catch(reject)\n            })\n}\nexports.searchgore = async(query) => {\n\t        return new Promise(async(resolve,reject) => {\n\t        \taxios.get('https://seegore.com/?s=' + query).then(dataa => {\n\t        \t\tconst $$$ = cheerio.load(dataa)\n\t        \t\tpagina = $$$('#main > div.container.main-container > div > div.bb-col.col-content > div > div > div > div > nav > ul > li:nth-child(4) > a').text();\t\n\t        \trand = Math.floor(Math.random() * pagina) + 1\n\t        \tif(rand === 1){\n\t        \t\tslink = 'https://seegore.com/?s=' + query\n\t        \t}else{\n\t        \t\tslink = `https://seegore.com/page/${rand}/?s=${query}` \n\t        \t}\n                axios.get(slink)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const link = [];\n                        const judul = [];\n                        const uploader = [];\n                        const format = [];\n                        const thumb = [];\n                        $('#post-items > li > article > div.content > header > h2 > a').each(function(a,b){\n                        \tlink.push($(b).attr('href'))\n                        })\n                        $('#post-items > li > article > div.content > header > h2 > a').each(function(c,d){\n                        \tjud = $(d).text();\n                        \tjudul.push(jud)\n                        })\n                        $('#post-items > li > article > div.content > header > div > div.bb-cat-links > a').each(function(e,f){\n                        \tupl = $(f).text();\n                        \tuploader.push(upl)\n                        })\n                        $('#post-items > li > article > div.post-thumbnail > a > div > img').each(function(g,h){\n                        \tthumb.push($(h).attr('src'))\n                        })\n                        for( let i = 0; i < link.length; i++){\n\t\t\t\t\t\t\tformat.push({\n\t\t\t\t\t\t\t\tjudul : judul[i],\n\t\t\t\t\t\t\t\tuploader : uploader[i],\n\t\t\t\t\t\t\t\tthumb : thumb[i],\n\t\t\t\t\t\t\t\tlink : link[i]\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst result = {\n\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\tdata : format\n\t\t\t\t\t\t}\n                  resolve(result)\n\t\t\t})\n                .catch(reject)\n            })\n\t        })\n}\nexports.randomgore = async() => {\n\t        return new Promise(async(resolve,reject) => {\n\t        \taxios.get('https://seegore.com/gore/').then(dataa => {\n\t        \t\tconst $$$ = cheerio.load(dataa)\n\t        \t\tpagina = $$$('#main > div.container.main-container.bb-stretched-full > div > div > div > div > div > div > nav > ul > li:nth-child(4) > a').text();\t\n\t        \trand = Math.floor(Math.random() * pagina) + 1\n\t        \trandvid = Math.floor(Math.random() * 16) + 1\n\t        \tif(rand === 1){\n\t        \t\tslink = 'https://seegore.com/gore/'\n\t        \t}else{\n\t        \t\tslink = `https://seegore.com/gore/page/${rand}/` \n\t        \t}\n                axios.get(slink)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const link = [];\n                        const result = [];\n                        const username = [];\n                        const linkp = $(`#post-items > li:nth-child(${randvid}) > article > div.post-thumbnail > a`).attr('href')\n                        const thumbb = $(`#post-items > li:nth-child(${randvid}) > article > div.post-thumbnail > a > div > img`).attr('src')\n                        axios.get(linkp)\n\t\t\t\t\t\t.then(({ data }) => {\n\t\t\t\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\t\t\t\tconst format = {\n\t\t\t\t\t\t\t\tjudul : $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > header > h1').text(),\n\t\t\t\t\t\t\t\tviews : $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > span > span.count').text(),\n\t\t\t\t\t\t\t\tcomment : $$('div.single-main-container > div > div.bb-col.col-content > div > div > div > div > div.s-post-meta-block.bb-mb-el > div > div > div.col-r.d-table-cell.col-md-6.col-sm-6.text-right-sm > div > a > span.count').text(),\n\t\t\t\t\t\t\t\tthumb : thumbb,\n\t\t\t\t\t\t\t\tlink : $$('video > source').attr('src')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst result = {\n\t\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\t\tdata : format\n\t\t\t\t\t\t\t}\n                  resolve(result)\n                })\n\t\t\t})\n                .catch(reject)\n            })\n        })\n}\nexports.textmakervid = async(text1, style) => {\nif(style == 'poly'){\n  var tstyle = 0\n}\nelse if(style == 'bold'){\n  var tstyle = 1\n}\nelse if(style == 'glowing'){\n  var tstyle = 2\n}\nelse if(style == 'colorful'){\n  var tstyle = 3\n}\nelse if(style == 'army'){\n  var tstyle = 4\n}\nelse if(style == 'retro'){\n  var tstyle = 5\n}\n  return new Promise((resolve, reject) => {\n    const options = { method: 'POST',\n      url:\"https://photooxy.com/other-design/make-a-video-that-spells-your-name-237.html\",\n      headers: { 'content-type': 'application/x-www-form-urlencoded' },\n      formData: { optionNumber_0: tstyle ,text_1: text1, login: 'OK' } };\n    \n    request(options, async function (error, response, body) {\n      if (error) throw new Error(error);\n      const $ = cheerio.load(body)\n      const result = {\n           url: $('div.btn-group > a').attr('href')\n      }\n      resolve(result);\n    });\n  })\n}\nexports.bp = async(text) => {\n  return new Promise((resolve, reject) => {\n    const options = { method: 'POST',\n      url:\"https://textpro.me/create-blackpink-logo-style-online-1001.html\",\n      headers: { 'content-type': 'application/x-www-form-urlencoded' },\n      formData: { 'text[]': text, token: '623c625172b158249e4700caf5ec792e',submit: 'Go' } };\n    \n    request(options, async function (error, response, body) {\n      if (error) throw new Error(error);\n      const $ = cheerio.load(body)\n      const result = {\n           url: $('#view-image-wrapper > div:nth-child(1) > div > img').attr('src')\n      }\n      resolve(result);\n    });\n  })\n}\n\nexports.apkmirror = async(query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://www.apkmirror.com/?post_type=app_release&searchtype=apk&s=' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const nama = [];\n                        const developer = [];\n                        const lupdate = [];\n                        const size = [];\n                        const down = [];\n                        const version = [];\n                        const link = [];\n                        const format = [];\n                        $('#content > div > div > div.appRow > div > div > div > h5 > a').each(function(a,b) {\n                          nem = $(b).text();\n                          nama.push(nem)\n                        })\n                        $('#content > div > div > div.appRow > div > div > div > a').each(function(c,d) {\n                          dev = $(d).text();\n                          developer.push(dev)\n                        })\n                        $('#content > div > div > div.appRow > div > div > div > div.downloadIconPositioning > a').each(function(e,f) {\n                          link.push('https://www.apkmirror.com' + $(f).attr('href'))\n                        })\n                        $('#content > div > div > div.infoSlide > p > span.infoslide-value').each(function(g,h) {\n                          data = $(h).text();\n                          if(data.match('MB')){\n                          size.push(data)\n                          }\n                          else if(data.match('UTC')){\n                            lupdate.push(data)\n                          }\n                          else if(!isNaN(data) || data.match(',')){\n                            down.push(data)\n                          }\n                          else{\n                            version.push(data)\n                          }\n                        })\n                        for(let i=0; i<link.length; i++){\n                          format.push({\n                            judul : nama[i],\n                            dev : developer[i],\n                            size : size[i],\n                            version : version[i],\n                            uploaded_on : lupdate[i],\n                            download_count : down[i],\n                            link : link[i]\n                          })\n                        }\n                       const result = {\n                        creator : 'Hanya Orang Biasa',\n                        data : format\n                       }\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.sfiledown = async(link) => {\n        return new Promise((resolve,reject) => {\n                axios.get(link)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const nama = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(2) > b').text();\n                        const size = $('#download').text().split('Download File')\n                        const desc = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(7) > center > h1').text();\n                        const type = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(4) > a:nth-child(3)').text();\n                        const upload = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(5)').text();\n                        const uploader = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(4) > a:nth-child(2)').text();\n                        const download = $('body > div.w3-row-padding.w3-container.w3-white > div > div:nth-child(6)').text();\n                        const link = $('#download').attr('href')\n\t\t\tother = link.split('/')[7].split('&is')[0]\n                        const format = {\n                          judul: nama + other.substr(other.length - 6).split('.')[1],\n                          size: size[1].split('(')[1].split(')')[0],\n                          type: type,\n\t\t\t  mime: other.substr(other.length - 6).split('.')[1],\n                          desc: desc,\n                          uploader: uploader,\n                          uploaded: upload.split('\\n - Uploaded: ')[1],\n                          download_count : download.split(' - Downloads: ')[1],\n                          link: link\n                        }\n                        const result = {\n                        creator : 'Hanya Orang Biasa',\n                        data : format\n                       }\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.zippydl = async(link) => {\n        return new Promise(async(resolve,reject) => {\n                axios.get(link)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const nama = $('#lrbox > div:nth-child(2) > div:nth-child(1) > font:nth-child(4)').text();\n                        const size = $('#lrbox > div:nth-child(2) > div:nth-child(1) > font:nth-child(7)').text();\n                        const upload = $('#lrbox > div:nth-child(2) > div:nth-child(1) > font:nth-child(10)').text();\n                        const getlink = async (u) => {\n                          console.log('⏳  ' + `Get Page From : ${u}`)\n                          const zippy = await axios({ method: 'GET', url: u }).then(res => res.data).catch(err => false)\n                          console.log('Done')\n                          const $ = cheerio.load(zippy)\n                          if (!$('#dlbutton').length) {\n                              return { error: true, message: $('#lrbox>div').first().text().trim() }\n                          }\n                          console.log('⏳  ' + 'Fetch Link Download...')\n                          const url = _url.parse($('.flagen').attr('href'), true)\n                          const urlori = _url.parse(u)\n                          const key = url.query['key']\n                          let time;\n                          let dlurl;\n                          try {\n                              time = /var b = ([0-9]+);$/gm.exec($('#dlbutton').next().html())[1]\n                              dlurl = urlori.protocol + '//' + urlori.hostname + '/d/' + key + '/' + (2 + 2 * 2 + parseInt(time)) + '3/DOWNLOAD'\n                          } catch (error) {\n                              time = _math.evaluate(/ \\+ \\((.*)\\) \\+ /gm.exec($('#dlbutton').next().html())[1])\n                              dlurl = urlori.protocol + '//' + urlori.hostname + '/d/' + key + '/' + (time) + '/DOWNLOAD'\n                          }\n                          console.log('Done')\n                          return dlurl \n                      }\n                      getlink(link).then(res => {\n                        //_(timet) \n                        \n                        var result = {\n                        creator : 'Hanya Orang Biasa',\n                        data : {\n                          Judul: nama,\n                          size: size,\n                          uploaded: upload,\n                          link: res\n                        }\n                       }\n                    resolve(result)\n                     })\n                })\n                .catch(reject)\n        })\n}\nexports.android1 = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://an1.com/tags/MOD/?story=' + query + '&do=search&subaction=search')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const nama = [];\n                        const link = [];\n                        const rating = [];\n                        const thumb = [];\n                        const developer = [];\n                        const format = [];\n                        $('body > div.page > div > div > div.app_list > div > div > div.cont > div.data > div.name > a > span').each(function(a,b) {\n                          nem = $(b).text();\n                          nama.push(nem)\n                        })\n                        $('div > ul > li.current-rating').each(function(c,d) {\n                          rat = $(d).text();\n                          rating.push(rat)\n                        })\n                        $('body > div.page > div > div > div.app_list > div > div > div.cont > div.data > div.developer.xsmf.muted').each(function(e,f) {\n                          dev = $(f).text();\n                          developer.push(dev)\n                        })\n                        $('body > div.page > div > div > div.app_list > div > div > div.img > img').each(function(g,h) {\n                          thumb.push($(h).attr('src'))\n                        })\n                        $('body > div.page > div > div > div.app_list > div > div > div.cont > div.data > div.name > a').each(function(i,j) {\n                          link.push($(j).attr('href'))\n                        })\n                        for(let i=0; i<link.length; i++){\n                          format.push({\n                            judul : nama[i],\n                            dev : developer[i],\n                            rating : rating[i], \n                            thumb : thumb[i],\n                            link : link[i]\n                          })\n                        }\n                       const result = {\n                        creator : 'Hanya Orang Biasa',\n                        data : format\n                       }\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.apkmody = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://apkmody.io/?s=' + query)\n                .then(({ data }) => {\n                  //console.log(data)\n                        const $ = cheerio.load(data)\n                        const nama = [];\n                        const link = [];\n                        const mod = [];\n                        const thumb = [];\n                        const format = [];\n                        $('#primary > section:nth-child(3) > div > div > div > article > a > div > div > div > h2').each(function(a,b) {\n                          nem = $(b).text();\n                          nama.push(nem)\n                        })\n                        $('#primary > section:nth-child(3) > div > div > div > article > a > div > div > p').each(function(c,d) {\n                          modd = $(d).text();\n                          mod.push(modd.split('\\n')[1])\n                        })\n                        $('#primary > section:nth-child(3) > div > div > div > article > a > div > img').each(function(e,f) {\n                          thumb.push($(f).attr('src'))\n                        })\n                        $('#primary > section:nth-child(3) > div > div > div > article > a').each(function(g,h) {\n                          link.push($(h).attr('href'))\n                        })\n                        for(let i=0; i<link.length; i++){\n                          format.push({\n                            judul : nama[i],\n                            infomod : mod[i], \n                            thumb : thumb[i],\n                            link : link[i]\n                          })\n                        }\n                       const result = {\n                        creator : 'Hanya Orang Biasa',\n                        data : format\n                       }\n\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.happymod = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://www.happymod.com/search.html?q=' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const nama = [];\n                        const link = [];\n                        const rating = [];\n                        const thumb = [];\n                        const format = [];\n                        $('body > div.container-row.clearfix.container-wrap > div.container-left > section > div > div > h3 > a').each(function(a,b) {\n                          nem = $(b).text();\n                          nama.push(nem)\n                          link.push('https://happymod.com' + $(b).attr('href'))\n                        })\n                        $('body > div.container-row.clearfix.container-wrap > div.container-left > section > div > div > div.clearfix > span').each(function(c,d) {\n                          rat = $(d).text();\n                          rating.push(rat)\n                        })\n                        $('body > div.container-row.clearfix.container-wrap > div.container-left > section > div > a > img').each(function(e,f) {\n                          thumb.push($(f).attr('data-original'))\n                        })\n                        for(let i=0; i<link.length; i++){\n                          format.push({\n                            judul : nama[i],\n                            thumb : thumb[i],\n                            rating : rating[i],\n                            link : link[i]\n                          })\n                        }\n                       const result = {\n                        creator : 'Hanya Orang Biasa',\n                        data : format\n                       }\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.ghuser = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://github.com/search?q=' + query + '&type=users')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const username = [];\n                        const link = [];\n                        const result = [];\n                        const thumb = [];\n                        $('#user_search_results > div > div > div.flex-auto > div > div.f4.text-normal > a.color-text-secondary').each(function(a,b) {\n                                link.push('https://github.com/' + $(b).attr('href'))\n                                usr = $(b).text();\n                                username.push(usr)\n                        })\n                        $('#user_search_results > div > div > div.flex-shrink-0.mr-2 > a > img').each(function(c,d) {\n                        thumb.push($(d).attr('src').replace('s=40&', ''))\n                    })\n                        for(let i=0; i<link.length; i++){\n                        \tresult.push({\n                        \t\tname : username[i],\n                        \t\tthumb : thumb[i],\n                        \t\tlink : link[i]\n                        \t})\n                        }\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.ghfollower = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://github.com/'+ query + '?tab=followers')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const link = [];\n                        const result = [];\n                        const username = [];\n                        $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-9.mb-4.mb-md-0 > div > div > div > div.d-table-cell.col-9.v-align-top.pr-3 > a').each(function(a,b) {\n                                link.push('https://github.com/' + $(b).attr('href'))\n                                username.push($(b).attr('href').split('/')[1])\n                        })\n                        for(let i=0; i<link.length; i++){\n                        \tresult.push({\n                        \t\tusername : username[i],\n                        \t\tlink : link[i]\n                        \t})\n                        }\n                        const hasil = {\n                        \tusername : $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.vcard-names-container.float-left.js-profile-editable-names.col-12.py-3.js-sticky.js-user-profile-sticky-fields > h1 > span.p-nickname.vcard-username.d-block').text().split('\\n')[1].replace('          ',''),\n                        \tfollowers : $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.d-flex.flex-column > div.js-profile-editable-area.d-flex.flex-column.d-md-block > div.flex-order-1.flex-md-order-none.mt-2.mt-md-0 > div > a:nth-child(1) > span').text(),\n                        \tavatar : $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.position-relative.d-inline-block.col-2.col-md-12.mr-3.mr-md-0.flex-shrink-0 > a > img').attr('src'),\n                        \tlistfollowers : result\n                        }\n                  resolve(hasil)\n                })\n                .catch(reject)\n        })\n}\nexports.ghfollowing = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://github.com/'+ query + '?tab=following')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const link = [];\n                        const result = [];\n                        const username = [];\n                        $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-9.mb-4.mb-md-0 > div > div > div > div.d-table-cell.col-9.v-align-top.pr-3 > a').each(function(a,b) {\n                                link.push('https://github.com/' + $(b).attr('href'))\n                                username.push($(b).attr('href').split('/')[1])\n                        })\n                        for(let i=0; i<link.length; i++){\n                        \tresult.push({\n                        \t\tusername : username[i],\n                        \t\tlink : link[i]\n                        \t})\n                        }\n                        const hasil = {\n                        \tusername : $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.vcard-names-container.float-left.js-profile-editable-names.col-12.py-3.js-sticky.js-user-profile-sticky-fields > h1 > span.p-nickname.vcard-username.d-block').text().split('\\n')[1].replace('          ',''),\n                          following : $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.d-flex.flex-column > div.js-profile-editable-area.d-flex.flex-column.d-md-block > div.flex-order-1.flex-md-order-none.mt-2.mt-md-0 > div > a:nth-child(1) > span').text(),\n                          avatar : $('#js-pjax-container > div.container-xl.px-3.px-md-4.px-lg-5 > div > div.flex-shrink-0.col-12.col-md-3.mb-4.mb-md-0 > div > div.js-profile-editable-replace > div.clearfix.d-flex.d-md-block.flex-items-center.mb-4.mb-md-0 > div.position-relative.d-inline-block.col-2.col-md-12.mr-3.mr-md-0.flex-shrink-0 > a > img').attr('src'),\n                        \tlistfollowing : result\n                        }\n                  resolve(hasil)\n                })\n                .catch(reject)\n        })\n}\n\nexports.corona = async (country) => {\n  if (!country) return loghandler.noinput;\n  try {\n   const res = await axios.request(`https://www.worldometers.info/coronavirus/country/` + country, {\n    method: \"GET\",\n    headers: {\n      \"User-Agent\": \"Mozilla/5.0 (Linux; Android 9; Redmi 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Mobile Safari/537.36\"\n    }\n  });\n  let result = {};\n  const $ = cheerio.load(res.data);\n  result.status = res.status\n  result.negara = $(\"div\").find(\"h1\").text().slice(3).split(/ /g)[0];\n  result.total_kasus = $(\"div#maincounter-wrap\").find(\"div.maincounter-number > span\").eq(0).text() + \" total\";\n  result.total_kematian = $(\"div#maincounter-wrap\").find(\"div.maincounter-number > span\").eq(1).text() + \" total\";\n  result.total_sembuh = $(\"div#maincounter-wrap\").find(\"div.maincounter-number > span\").eq(2).text() + \" total\";\n  result.informasi = $(\"div.content-inner > div\").eq(1).text();\n  result.informasi_lengkap = \"https://www.worldometers.info/coronavirus/country/\" + country;\n  if(result.negara == ''){\n  result.status = 'error'\n}\n  return result;\n  } catch (error404) {\n    return \"=> Error => \" + error404;\n  }\n};\n\nexports.mangatoon = async (search) => {\n  if (!search) return \"No Querry Input! Bakaa >\\/\\/<\";\n  try {\n  const res = await axios.get(`https://mangatoon.mobi/en/search?word=${search}`, {\n    method: \"GET\",\n    headers: {\n      \"User-Agent\": \"Mozilla/5.0 (Linux; Android 9; Redmi 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Mobile Safari/537.36\"\n    }\n  });\n  const hasil = [];\n  const $ = cheerio.load(res.data);\n  $('div.recommend-item').each(function(a, b) {\n    let comic_name = $(b).find('div.recommend-comics-title > span').text();\n    let comic_type = $(b).find('div.comics-type > span').text().slice(1).split(/ /g).join(\"\");\n    let comic_url = $(b).find('a').attr('href');\n    let comic_thumb = $(b).find('img').attr('src');\n    const result = {\n      status: res.status,\n      creator: \"@dehan_j1ng\",\n      comic_name,\n      comic_type,\n      comic_url: 'https://mangatoon.mobi' + comic_url,\n      comic_thumb\n    };\n    hasil.push(result);\n  });\n  let filt = hasil.filter(v => v.comic_name !== undefined && v.comic_type !== undefined);\n  return filt;\n  } catch (eror404) {\n    return \"=> Error =>\" + eror404;\n  }\n}\n\nexports.palingmurah = async (produk) => {\n  if (!produk) {\n    return new TypeError(\"No Querry Input! Bakaaa >\\/\\/<\")\n  }\n  try {\nconst res = await axios.get(`https://palingmurah.net/pencarian-produk/?term=` + produk)\nconst hasil = []\nconst $ = cheerio.load(res.data)\n$('div.ui.card.wpj-card-style-2 ').each(function (a, b) {\nlet url = $(b).find('a.image').attr('href')\nlet img = $(b).find('img.my_image.lazyload').attr('data-src')\nlet title = $(b).find('a.list-header').text().trim()\nlet product_desc = $(b).find('div.description.visible-on-list').text().trim()\nlet price = $(b).find('div.flex-master.card-job-price.text-right.text-vertical-center').text().trim()\nconst result = {\n  status: res.status,\n  creator: \"@dehan_j1ng\",\n\tproduct: title,\n\tproduct_desc: product_desc,\n\tproduct_image: img,\n\tproduct_url: url,\n\tprice\n}\nhasil.push(result)\n})\n  return hasil\n  } catch (error404) {\n    return new Error(\"=> Error =>\" + error404)\n  }\n}\n\nexports.mediafire = (query) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get(query)\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst judul = $('body > div.mf-dlr.page.ads-alternate > div.content > div.center > div > div.dl-btn-cont > div.dl-btn-labelWrap > div.promoDownloadName.notranslate > div').text();\n\t\t  \tconst size = $('body > div.mf-dlr.page.ads-alternate > div.content > div.center > div > div.dl-info > ul > li:nth-child(1) > span').text();\n\t\t  \tconst upload_date = $('body > div.mf-dlr.page.ads-alternate > div.content > div.center > div > div.dl-info > ul > li:nth-child(2) > span').text();\n\t\t  \tconst link = $('#downloadButton').attr('href')\n\t\t  \tconst hsil = {\n\t\t  \t\tjudul : link.split('/')[5],\n\t\t  \t\tupload_date : upload_date,\n\t\t  \t\tsize : size,\n                                mime : link.split('/')[5].split('.')[1],\n\t\t  \t\tlink : link\n\t\t  \t}\n\t\t  resolve(hsil)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\nexports.artinama = (query) => {\n        return new Promise((resolve,reject) => {\n        \tqueryy = query.replace(/ /g, '+')\n                axios.get('https://www.primbon.com/arti_nama.php?nama1=' + query +'&proses=+Submit%21+')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const result = $('#body').text();\n\t\t\t\t\t\tconst result2 = result.split('\\n      \\n        \\n        \\n')[0]\n\t\t\t\t\t\tconst result4 = result2.split('ARTI NAMA')[1]\n\t\t\t\t\t\tconst result5 = result4.split('.\\n\\n')\n\t\t\t\t\t\tconst result6 = result5[0] + '\\n\\n' + result5[1]\n                  resolve(result6)\n                })\n                .catch(reject)\n        })\n}\n\nexports.drakor = (query) => {\n        return new Promise((resolve,reject) => {\n        \tqueryy = query.replace(/ /g, '+')\n                axios.get('https://drakorasia.net/?s=' + queryy + '&post_type=post')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const result = [];\n                        const link = [];\n\t\t\t\t\t\tconst judul = [];\n\t\t\t\t\t\tconst thumb = [];\n                        $('#post > div > div.thumbnail > a').each(function(a,b) {\n                                link.push($(b).attr('href'))\n                        \t\tthumb.push($(b).find('img').attr('src'))\n                        })\n                        $('#post > div > div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a > h2').each(function(c,d) {\n                        \ttitel = $(d).text();\n                        \tjudul.push(titel)\n                        })\n        for(let i=0; i<link.length; i++){\n        \tresult.push({\n        \t\tjudul : judul[i],\n        \t\tthumb : thumb[i],\n        \t\tlink : link[i]\n\n        \t})\n        }\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.wattpad = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://www.wattpad.com/search/' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const result = [];\n                        const linkk= [];\n                        const judull = [];\n                        const thumb = [];\n                        const dibaca = [];\n                        const vote = [];\n                        const bab =[];\n                        $('ul.list-group > li.list-group-item').each(function(a,b) {\n                            linkk.push('https://www.wattpad.com' + $(b).find('a').attr('href'))\n                            thumb.push($(b).find('img').attr('src'))\n                        })\n                        $('div.story-card-data.hidden-xxs > div.story-info > ul > li:nth-child(1) > div.icon-container > div > span.stats-value').each(function(e,f) {\n                            baca = $(f).text();\n                            dibaca.push(baca)\n                        })\n                        $('div.story-card-data.hidden-xxs > div.story-info > ul > li:nth-child(2) > div.icon-container > div > span.stats-value').each(function(g,h) {\n                            vot = $(h).text();\n                            vote.push(vot)\n                        })\n                        $('div.story-card-data.hidden-xxs > div.story-info > ul > li:nth-child(3) > div.icon-container > div > span.stats-value').each(function(i,j) {\n                            bb = $(j).text();\n                            bab.push(bb)\n                        })\n                        $('div.story-card-data.hidden-xxs > div.story-info > div.title').each(function(c,d) {\n                            titel = $(d).text();\n                            judull.push(titel)\n                        })\nfor(let i=0; i<linkk.length; i++){\nif(!judull[i] == ''){\nresult.push({\njudul : judull[i],\ndibaca: dibaca[i],\ndivote: vote[i],\nthumb : thumb[i],\nlink : linkk[i]\n})\n}\n}\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\nexports.dewabatch = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://dewabatch.com/?s=' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const result = [];\n\t\t\tconst linkk= [];\n\t\t\tconst judull = [];\n\t\t\tconst thumb = [];\n\t\t\tconst rating = [];\n                        $('div.thumb > a').each(function(a,b) {\n                                linkk.push($(b).attr('href'))\n\t\t\t\tjudull.push($(b).attr('title'))\n\t\t\t\tthumb.push($(b).find('img').attr('src').split('?resize')[0])\n\t\t\t})\n\t\t\t$('#content > div.postbody > div > div > ul > li > div.dtl > div.footer-content-post.fotdesktoppost > div.contentleft > span:nth-child(1) > rating > ratingval > ratingvalue').each(function(c, d){\n\t\t\t\trate = $(d).text();\n\t\t\t\trating.push(rate.split(' ')[0])\n\t\t\t})\nfor(let i=0; i<linkk.length; i++){\nresult.push({\njudul : judull[i],\nrating : rating[i],\nthumb : thumb[i],\nlink : linkk[i]\n})\n}\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\n\n\nexports.kiryu = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://kiryuu.id/?s=' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const result = [];\n\t\t\tconst linkk= [];\n\t\t\tconst judull = [];\n\t\t\tconst thumb = [];\n\t\t\tconst rating = [];\n                        $('div.bsx > a').each(function(a,b) {\n                                linkk.push($(b).attr('href'))\n\t\t\t\tjudull.push($(b).attr('title'))\n\t\t\t\tthumb.push($(b).find('img').attr('src').split('?resize')[0])\n\t\t\t})\n\t\t\t$('div.rating > div.numscore').each(function(c,d) {\n\t\t\trate = $(d).text();\n\t\t\trating.push(rate)\n\t\t\t})\nfor(let i=0; i<linkk.length; i++){\nresult.push({\njudul : judull[i],\nrating : rating[i],\nthumb : thumb[i],\nlink : linkk[i]\n})\n}\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\n\nexports.sfilesearch = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://sfile.mobi/search.php?q=' + query + '&search=Search')\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const result = [];\n                        const link = [];\n                        const neme = [];\nconst size = [];\n                        $('div.w3-card.white > div.list > a').each(function(a,b) {\n                                link.push($(b).attr('href'))\n                        })\n                        $('div.w3-card.white > div.list > a').each(function(c,d) {\n                                name = $(d).text();\n                                neme.push(name)\n                                })\n\t\t\t$('div.w3-card.white > div.list').each(function(e,f) {\n                                siz = $(f).text();\n                               //sz = siz.\n\t\t\t\tsize.push(siz.split('(')[1])\n                                })\nfor(let i=0; i<link.length; i++){\n        result.push({\n                nama: neme[i],\n\t\tsize : size[i].split(')')[0],\n                link: link[i]\n        })\n}\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\n\nexports.carigc = (nama) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get('http://ngarang.com/link-grup-wa/daftar-link-grup-wa.php?search='+ nama +'&searchby=name')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data);\n\t\t\tconst result = [];\n\t\t\tconst lnk = [];\n\t\t\tconst nm = [];\n\t\t$('div.wa-chat-title-container').each(function(a,b){\n\t\t\tconst limk = $(b).find('a').attr('href');\n\t\t\tlnk.push(limk)\n\t\t\t})\n\t\t$('div.wa-chat-title-text').each(function(c,d) {\n\t\t\tconst name = $(d).text();\n\t\t\tnm.push(name)\n\t\t\t})\n\t\tfor( let i = 0; i < lnk.length; i++){\n\t\t\tresult.push({\n\t\t\t\tnama: nm[i].split('. ')[1],\n\t\t\t\tlink: lnk[i].split('?')[0]\n\t\t\t})\n\t\t}\n\t\tresolve(result)\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nexports.wikisearch = async (query) => {\nconst res = await axios.get(`https://id.m.wikipedia.org/w/index.php?search=${query}`)\nconst $ = cheerio.load(res.data)\nconst hasil = []\nlet wiki = $('#mf-section-0').find('p').text()\nlet thumb = $('#mf-section-0').find('div > div > a > img').attr('src')\nthumb = thumb ? thumb : '//pngimg.com/uploads/wikipedia/wikipedia_PNG35.png'\nthumb = 'https:' + thumb\nlet judul = $('h1#section_0').text()\nhasil.push({ wiki, thumb, judul })\nreturn hasil\n}\n\nexports.devianart = (query) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get('https://www.deviantart.com/search?q=' + query)\n\t\t.then(({ data }) =>{\n\t\tconst $$ = cheerio.load(data)\n\t\t no = ''\n\t\t$$('#root > div.hs1JI > div > div._3WsM9 > div > div > div:nth-child(3) > div > div > div:nth-child(1) > div > div:nth-child(1) > div > section > a').each(function(c,d){\n\t\t\tno = $$(d).attr('href')\n\t\t})\n\t\taxios.get(no)\n\t\t.then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\t$('#root > main > div > div._2QovI > div._2rKEX._17aAh._1bdC8 > div > div._2HK_1 > div._1lkTS > div > img').each(function(a,b){\n\t\t\tresult.push($(b).attr('src'))\n\t\t})\n\t\tresolve(result)\n\t\t})\n\t})\n\t\t.catch(reject)\n\t})\n}\nexports.konachan = (chara) => {\n\treturn new Promise((resolve,reject) => {\n\t\tlet text = chara.replace(' ','_')\n\t\taxios.get('https://konachan.net/post?tags='+ text +'+')\n\t\t.then(({ data }) =>{\n\t\tconst $$ = cheerio.load(data)\n\t\tconst no = [];\n\t\t$$('div.pagination > a').each(function(c,d){\n\t\t\tno.push($$(d).text())\n\t\t})\n\t\tlet mat = Math.floor(Math.random() * no.length)\n\t\taxios.get('https://konachan.net/post?page='+ mat +'&tags=' + text + '+')\n\t\t.then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\t$('#post-list > div.content > div:nth-child(4) > ul > li > a.directlink.largeimg').each(function(a,b){\n\t\t\tresult.push($(b).attr('href'))\n\t\t})\n\t\tresolve(result)\n\t\t})\n\t})\n\t\t.catch(reject)\n\t})\n}\n\nexports.wallpapercave = (query) => {\n        return new Promise((resolve,reject) => {\n                axios.get('https://wallpapercave.com/search?q=' + query)\n                .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        const result = [];\n                        $('div.imgrow > a').each(function(a,b) {\n\t\t\tif(!$(b).find('img').attr('src').includes('.gif')){\n                                result.push('https://wallpapercave.com/' + $(b).find('img').attr('src').replace('fuwp','uwp'))  \n                        }})\n                  resolve(result)\n                })\n                .catch(reject)\n        })\n}\n\nexports.wallpapercraft = (query) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get('https://wallpaperscraft.com/search/?query=' + query)\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = [];\n\t\t\t$('span.wallpapers__canvas').each(function(a,b) {\n\t\t\t\tresult.push($(b).find('img').attr('src'))\t\n\t\t\t})\n\t\t  resolve(result)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\nexports.wallpaperhd = (chara) => {\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get('https://wall.alphacoders.com/search.php?search=' + chara + '&filter=4K+Ultra+HD')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = [];\n\t\t\t$('div.boxgrid > a > picture').each(function(a,b) {\n\t\t\t\tresult.push($(b).find('img').attr('src').replace('thumbbig-',''))\t\n\t\t\t})\n\t\t  resolve(result)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n"
  },
  {
    "path": "Zimbot/jadibot.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nlet { default: makeWASocket, useSingleFileAuthState } = require('@adiwajshing/baileys')\nlet { state, saveState } = useSingleFileAuthState('./sessions.json')\nlet QR = require('qrcode')\nlet util = require('util')\nlet pino = require('pino')\n\nexports.jadibot = async (conn, m) => {\n     let ZimBotInc = makeWASocket({\n        logger: pino({ level: 'silent' }),\n        printQRInTerminal: false,\n        auth: state,\n\t\tbrowser: ['ZIM BOT JADI']\n})\n\nZimBotInc.ev.on('connection.update', async (update) => {\n\t\tconst { connection, qr } = update\n\t\tif (qr !== undefined) {\n\t\t\tlet res = await QR.toDataURL(qr, { scale: 8 })\n\t\t\tlet scan = await conn.sendFile(m.key.remoteJid, res, '', 'Scan bang...', m)\n\t\t\tsetTimeout(() => {\n\t\t\t\tconn.sendMessage(m.key.remoteJid, { delete: { remoteJid: m.key.remoteJid, fromMe: true, id: scan.key.id, participant: conn.user.jid }})\n\t\t\t}, 30000)\n\t\t\tif (connection === 'open') {\n\t\t\t\tconn.reply(m.key.remoteJid, 'Success\\n' + util.format(ZimBotInc.user), m)\n\t\t\t}\n\t\t}\n\t})\n}"
  },
  {
    "path": "Zimbot/mediafire.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//━━━━━━━━━━━━━━━━━━━━━\n//\nconst axios = require('axios')\nconst cheerio = require('cheerio')\n\nconst mediafireDl = async (url) => {\nconst res = await axios.get(url) \nconst $ = cheerio.load(res.data)\nconst hasil = []\nconst link = $('a#downloadButton').attr('href')\nconst size = $('a#downloadButton').text().replace('Download', '').replace('(', '').replace(')', '').replace('\\n', '').replace('\\n', '').replace('                         ', '')\nconst seplit = link.split('/')\nconst nama = seplit[5]\nmime = nama.split('.')\nmime = mime[1]\nhasil.push({ nama, mime, size, link })\nreturn hasil\n}\n\n\nmodule.exports = { mediafireDl }"
  },
  {
    "path": "Zimbot/zimbotii.js",
    "content": "const usedCommandRecently = new Set()\n\n/**\n * Check is number filtered\n * @param  {String} from\n */\nconst isFiltered = (from) => !!usedCommandRecently.has(from)\n\n/**\n * Add number to filter\n * @param  {String} from\n */\nconst addFilter = (from) => {\n    usedCommandRecently.add(from)\n    setTimeout(() => usedCommandRecently.delete(from), 5000) //5 seconds limit\n}\n\nmodule.exports = { \n    msgFilter: {\n    isFiltered,\n    addFilter\n}\n}"
  },
  {
    "path": "Zimbot.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ᴢɪᴍ ʙᴏᴛ ɪɴᴄ 2023 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮blessedtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/@zim-bot\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nprocess.on('uncaughtException', console.error)\nrequire('./bot')\nconst { BufferJSON, WA_DEFAULT_EPHEMERAL, generateWAMessageFromContent, WAZimBotIncection, MessageType, proto, generateWAMessageContent, generateWAMessage, prepareWAMessageMedia, areJidsSameUser, getContentType, fetchLatestBaileysVersion } = require('@adiwajshing/baileys')\nconst fs = require('fs')\nconst util = require('util')\nconst crypto = require('crypto')\nconst chalk = require('chalk')\nconst { exec, spawn, execSync } = require('child_process')\nconst axios = require('axios')\nconst { fetchUrl, isUrl, processTime } = require(\"./lib/myfunc\")\nconst path = require('path')\nconst url = require('url')\nconst os = require('os')\nconst got = require('got')\nconst hx = require('hxz-api')\nconst maker = require('mumaker')\nconst fetch = require('node-fetch')\nconst yts = require('youtube-yts')\nconst { Readability } = require('@mozilla/readability');\nconst moment = require('moment-timezone')\nconst { JSDOM } = require('jsdom')\nconst speed = require('performance-now')\nconst { performance } = require('perf_hooks')\nconst { Primbon } = require('scrape-primbon')\nconst { igApi, getSessionId } = require('insta-fetcher')\nlet ig = new igApi(\"csrftoken=6wrPrUbsa05Csm9wlqxAOSqRwxxscjD;rur=16771\\05427758921939\\0541695476019:01f7994241f5e244ccf1bb676853d91b4f281e385e564f6c99a3592b27b0a39dada825e8;mid=Yy21jQALAAEmUl5E0beHHz_eVvyI;ds_user_id=27758921939;sessionid=27758921939%3ASGdS1WkMZToRfs%3A12%3AAYe5Sp23sp78pv0PnIRL6X-ySJdCDpe4uxbuJxtcxw;ig_did=09B76BA7-2D56-42E5-89BB-3584A9EAD69B\");\nig.setCookie(\"csrftoken=6wrPrUbsa05Csm9wlqxAOSqRwxxscjD;rur=16771\\05427758921939\\0541695476019:01f7994241f5e244ccf1bb676853d91b4f281e385e564f6c99a3592b27b0a39dada825e8;mid=Yy21jQALAAEmUl5E0beHHz_eVvyI;ds_user_id=27758921939;sessionid=27758921939%3ASGdS1WkMZToRfs%3A12%3AAYe5Sp23sp78pv0PnIRL6X-ySJdCDpe4uxbuJxtcxw;ig_did=09B76BA7-2D56-42E5-89BB-3584A9EAD69B\");\nconst Config = require('./drips');\nconst { color, bgcolor } = require(\"./lib/color\");\nconst simpleGit = require('simple-git');\nconst git = simpleGit();\nconst Heroku = require('heroku-client');\nconst { PassThrough } = require('stream');\nconst { getLinkPreview, getPreviewFromContent } = require(\"link-preview-js\");\nconst primbon = new Primbon()\nconst { smsg, formatp, tanggal, formatDate, getTime,  sleep, clockString, fetchJson, getBuffer, jsonformat, format, parseMention, getRandom } = require('./lib/myfunc')\n/*let { addLevelingId, addLevelingLevel, addLevelingXp, getLevelingId, getLevelingLevel, getLevelingXp } = require(\"./lib/lvlfunction\")*/\nconst speedofbot = require(\"performance-now\")\nconst { mediafireDl } = require('./lib/mediafire.js')\nconst { lirikLagu } = require('./lib/lirik.js')\nconst { fromBuffer } = require('file-type')\nconst mel = require('kitsune-api');\nlet { msgFilter } = require('./Zimbot/zimbotii.js')\nconst { Boom } = require(\"@hapi/boom\")\nconst ffmpeg = require('fluent-ffmpeg')\nconst { checkPetualangUser, addInventori, addBesi, sellBesi, getBesi, addDm, sellDm, getDm, addEmas, sellEmas, getEmas, addFish, sellFish, getFish } = require('./tez.js')\nconst { addLevelingId, addLevelingLevel ,addLevelingXp, getLevelingId, getLevelingLevel, getLevelingXp } = require('./level')\nconst { isLimit, limitAdd, getLimit, giveLimit, addBalance, kurangBalance, getBalance, isGame, gameAdd, givegame, cekGLimit } = require('./limit')\n\n//xp and leveling database⧈⧈⧈⧈\n\n//message type\n/* let drips = fs.readFileSync('./Zimbot/drips.jpg') \n*/\n\n//database\nconst  dripsno = JSON.parse(fs.readFileSync('./database/antilink.json'))\nconst _level = JSON.parse(fs.readFileSync('./database/leveluser.json'))\nconst _petualang = JSON.parse(fs.readFileSync('./database/inventori.json'))\nconst balance = JSON.parse(fs.readFileSync('./database/balance.json'))\nconst dripsanti = JSON.parse(fs.readFileSync('./lib/rude.json'))\nlet bad = JSON.parse(fs.readFileSync('./lib/rude.json'))\nglobal.db = JSON.parse(fs.readFileSync('./src/database.json'))\nif (global.db) global.db = {\n    sticker: {},\n    database: {},\n    game: {},\n    settings: {},\n    others: {},\n    users: {},\n    chats: {},\n    ...(global.db || {})\n}\n\nlet vote = db.others.vote = []\n\nmodule.exports = ZimBotInc = async (ZimBotInc, m, chatUpdate, store) => {\ntry {\nvar body = (m.mtype === 'conversation') ? m.message.conversation : (m.mtype == 'imageMessage') ? m.message.imageMessage.caption : (m.mtype == 'videoMessage') ? m.message.videoMessage.caption : (m.mtype == 'extendedTextMessage') ? m.message.extendedTextMessage.text : (m.mtype == 'buttonsResponseMessage') ? m.message.buttonsResponseMessage.selectedButtonId : (m.mtype == 'listResponseMessage') ? m.message.listResponseMessage.singleSelectReply.selectedRowId : (m.mtype == 'templateButtonReplyMessage') ? m.message.templateButtonReplyMessage.selectedId : (m.mtype === 'messageContextInfo') ? (m.message.buttonsResponseMessage?.selectedButtonId || m.message.listResponseMessage?.singleSelectReply.selectedRowId || m.text) : ''\nvar budy = (typeof m.text == 'string' ? m.text : '')\nvar prefix = prefa ? /^[°┊π÷┊¶∆£¢€¥®™+✓_=|~!?@#$%^&.©^]/gi.test(body) ? body.match(/^[°┊π÷┊¶∆£¢€¥®™+✓_=|~!?@#$%^&.©^]/gi)[0] : \"\" : prefa ?? global.prefix\nconst isCmd = body.startsWith(prefix)\nconst command = body.replace(prefix, '').trim().split(/ +/).shift().toLowerCase()\nconst args = body.trim().split(/ +/).slice(1)\nconst pushname = m.pushName || \"No Name\"\nconst botNumber = await ZimBotInc.decodeJid(ZimBotInc.user.id)\nconst isCreator = [botNumber, ...global.owner].map(v => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').includes(m.sender)\nconst itsMe = m.sender == botNumber ? true : false\nconst text = q = args.join(\" \")\nconst from = m.chat\nconst quoted = m.quoted ? m.quoted : m\nconst mime = (quoted.msg || quoted).mimetype || ''\nconst isMedia = /image|video|sticker|audio/.test(mime)\nconst sender = m.isGroup ? (m.key.participant ? m.key.participant : m.participant) : m.key.remoteJid\nconst isPetualang = checkPetualangUser(sender)\n//----GROUP METADATA----\\\\\nconst groupMetadata = m.isGroup ? await ZimBotInc.groupMetadata(m.chat).catch(e => {}) : ''\nconst groupName = m.isGroup ? groupMetadata.subject : ''\nconst participants = m.isGroup ? await groupMetadata.participants : ''\nconst groupAdmins = m.isGroup ? await participants.filter(v => v.admin !== null).map(v => v.id) : ''\nconst groupOwner = m.isGroup ? groupMetadata.owner : ''\nconst isBotAdmins = m.isGroup ? groupAdmins.includes(botNumber) : false\nconst isAdmins = m.isGroup ? groupAdmins.includes(m.sender) : false\nconst isAntinsfw = m.isGroup ?  dripsno.includes(m.chat) : false\nconst isPremium = isCreator || global.premium.map(v => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').includes(m.sender) || false\nconst antiToxic = m.isGroup ? dripsanti.includes(from) : false\nconst zimbotincv3 = body.slice(0).trim().split(/ +/).shift().toLowerCase()\n//-----END HERE------\\\\\n\nconst runtime = function (seconds) {\nseconds = Number(seconds);\nvar d = Math.floor(seconds / (3600 * 24));\nvar h = Math.floor((seconds % (3600 * 24)) / 3600);\nvar m = Math.floor((seconds % 3600) / 60);\nvar s = Math.floor(seconds % 60);\nvar dDisplay = d > 0 ? d + (d == 1 ? \" day, \" : \" Day, \") : \"\";\nvar hDisplay = h > 0 ? h + (h == 1 ? \" hour, \" : \" Hour, \") : \"\";\nvar mDisplay = m > 0 ? m + (m == 1 ? \" minute, \" : \" Minute, \") : \"\";\nvar sDisplay = s > 0 ? s + (s == 1 ? \" second\" : \" Second\") : \"\";\nreturn dDisplay + hDisplay + mDisplay + sDisplay;\n}\n\n\n\nconst tempButton = async (remoteJid, text, footer, content) => {\nconst templateMessage = {\n viewOnceMessage: {\n message: {\ntemplateMessage: {\nhydratedTemplate: {\nhydratedContentText: text,\nhydratedContentFooter: footer,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\n    \nconst reply = (teks) => {\n  ZimBotInc.sendMessage(m.chat, {text: teks, contextInfo: {\"externalAdReply\": {title: \"ᴢɪᴍ ʙᴏᴛ ᴠ5\",mediaType: 3, renderLargerThumbnail: false, showAdAttribution: true, detectLinks: true,body: \"DRIPS OFC\", thumbnail: fs.readFileSync('./drips.jpg'),sourceUrl: (\"https://youtu.be/KNu-gr2h7bo\")}}})\n}\nconst replay = (teks) => {\n  ZimBotInc.sendMessage(m.chat, {text: teks, contextInfo: {\"externalAdReply\": {title: \"ᴢɪᴍ ʙᴏᴛ ᴠ5\",mediaType: 3, renderLargerThumbnail: false, showAdAttribution: true, body: \"DRIPS OFC\", thumbnail: fs.readFileSync('./drips.jpg'),sourceUrl: (\"https://youtu.be/KNu-gr2h7bo\")}}})\n}    \n \nconst tempButtons = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'OWNERMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst tempButtoni = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'DATABASEMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\n hydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst tempButtonie = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'PHOTOOXYMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\n message: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst tempButtono = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'GROUPMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst tempButton1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'ALL MENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst saerchmenu = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'SEARCHMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst nsfmenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'nsfmenu')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\n\n\n                    \nconst downloadmenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'DOWNLOADMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst photofiltermenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'PHOTOFILTERMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst toolmenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'TOOLMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst ephotomenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'EPHOTOMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst convertmenu = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'CONVERTMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};                                  \nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nconst drip =  {\n  key : {\n    fromMe: false,\nparticipant : '0@s.whatsapp.net'\n},\n     contextInfo: {\n    forwardingScore: 9999,\n    isForwarded: false, \nshowAdAttribution: true,\ntitle: \"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\nbody: \"GIVE IT A STAR\",\nmediaType: \"VIDEO\",\nmediaUrl: `https://githb.com/zim-bot/zimbot-v4`,\ndescription: 'DRIPS OFC',\npreviewType: \"PHOTO\",\nthumbnail: fs.readFileSync('./drips.jpg'),\nsourceUrl: \"\",\ndetectLinks: false,\n    }}\n\n\n\nlet blessedtuna = {\n    key : {\n        fromMe: false,\nparticipant : '0@s.whatsapp.net'\n},\n  message: {\n  documentMessage: {\nshowAdAttribution: true,\n  title: \"ᴢɪᴍ ʙᴏᴛ ᴠ5\", \n  jpegThumbnail: fs.readFileSync('./drips.jpg')\n}\n}\n }\n\n \n let mudratunha = {\n    key: { \n         fromMe: false,\n         participant: `0@s.whatsapp.net`, ...(m.chat ? \n    { remoteJid: \"17608914335-1625305606@g.us\" } : {}) \n               },\n    message: { \n       \"extendedTextMessage\": {\n                \"text\":'SUB DRIPS OFC',\n                \"title\": 'ᴢɪᴍ ʙᴏᴛ ɪɴᴄ',\n                'jpegThumbnail': fs.readFileSync('./drips.jpg')\n             }\n           } \n          }\n\nlet picaks = [flaming,fluming,flarun,flasmurf,mehk,awog,mohai,mhehe]\nlet picak = picaks[Math.floor(Math.random() * picaks.length)]\n    try {\n let isNumber = x => typeof x === 'number' && !isNaN(x)\n let limitUser = isPremium ? global.limitawal.premium : global.limitawal.free\n let user = global.db.users[m.sender]\n if (typeof user !== 'object') global.db.users[m.sender] = {}\n if (user) {\n   if (!isNumber(user.afkTime)) user.afkTime = -1\n   if (!('afkReason' in user)) user.afkReason = ''\n   if (!isNumber(user.limit)) user.limit = limitUser\n } else global.db.users[m.sender] = {\n   afkTime: -1,\n   afkReason: '',\n   limit: limitUser,\n }\n let chats = global.db.chats[m.chat]\n   if (typeof chats !== 'object') global.db.chats[m.chat] = {}\n   if (chats) {\n  if (!('mute' in chats)) chats.mute = false\n  if (!('chatbot' in chats)) chats.chatbot = false\n  if (!('antilink' in chats)) chats.antilink = true\n  if (!('antilinkyt' in chats)) chats.antilinkyt = false\n  if (!('autoblock' in chats)) chats.autoblock = false\n  if (!('isWelcome' in chats)) chats.isWelcome = false\n  if (!('localonly' in chats)) chats.localonly = true\n  if (!('antilinkall' in chats)) chats.antilinkall = false\n  if (!('antiytchannel' in chats)) chats.antiytchannel = false\n  if (!('antitiktok' in chats)) chats.antitiktok = false\n  if (!('antitelegram' in chats)) chats.antitelegram = false\n  if (!('antiinstagram' in chats)) chats.antiinstagram = false\n  if (!('antifb' in chats)) chats.antifb = false\n  if (!('antibule' in chats)) chats.antibule = false\n  if (!('antiwame' in chats)) chats.antiwame = false\n  if (!('wame' in chats)) chats.wame = false\n  if (!('antitwitter' in chats)) chats.antitwitter = false\n  if (!('antivn' in chats)) chats.antivn = false\n  if (!('antiphoto' in chats)) chats.antiphoto = false\n  if (!('antisticker' in chats)) chats.antisticker = false\n  if (!('antivideo' in chats)) chats.antivideo = false\n \n} else global.db.chats[m.chat] = {\n   mute: false,\n   chatbot: false,\n   wame: false,\n   antilink: true,\n   antilinkyt: false,\n   isWelcome: false,\n   antilinkall: false,\n   antiytchannel: false,\n   antitiktok: false,\n   antitelegram: false,\n   antiinstagram: false,\n   antifb: false,\n   antibule: false,\n   antiwame: false,\n   antitwitter: false,\n   antisticker: false,\n   antiphoto: false,\n   antivn: false,\n   antivideo: false,\n   privatechat: true,\n   localonly: true,\n }\n let setting = global.db.settings[botNumber]\n if (typeof setting !== 'object') global.db.settings[botNumber] = {}\n    if (setting) {\nif (!isNumber(setting.status)) setting.status = 0\nif (!('autobio' in setting)) setting.autobio = true\nif (!('chatbot' in setting)) setting.chatbot = false\nif (!('grouponly' in setting)) setting.grouponly = false\nif (!('autoblock' in setting)) setting.autoblock = false\nif (!('privatechat' in setting)) setting.privatechat = true\nif (!('chatgpt' in setting)) setting.chatgpt = false\n    } else global.db.settings[botNumber] = {\nstatus: 0,\nautobio: true,\nchatbot: false,\ngrouponly: false,\nautoblock: false,\nprivatechat: true,\nchatgpt: false,\n    }\n} catch (err) {\n console.error(err)\n}\nZimBotInc.ws.on('CB:action,,battery', json => {\nconst batteryLevelStr = json[2][0][1].value\nconst batterylevel = parseInt (batteryLevelStr)\n  battre = batterylevel\n})  \n\nZimBotInc.ws.on('CB:action,,charger', json => {\nconst chargerLevelStr = json[2][0][1].value\nconst charging = parseInt (chargerLevelStr)\n  charger = charging\n})  \n//public/self\nif (!ZimBotInc.public) {\nif (!m.key.fromMe) return\n}\n\n//push message to console && autoread\n\nconst Drips = require('drips-memes')\ncolors = ['red', 'white', 'black', 'blue', 'yellow', 'green']\nlet d = new Date(new Date + 3600000)\nlet locale = 'id'\nlet time = d.toLocaleString(locale, { hour: 'numeric', minute: 'numeric', second: 'numeric', timeZone: 'Africa/Harare'})\nconst { color } = require('./lib/color')\nif (isCmd && !m.isGroup)\nconsole.log(color('[ RECIEVED ]'), color(time, 'red'), color(`${command} [${args.length}]`), Drips.hr(), 'FROM', color(pushname))\n\nif (isCmd && m.isGroup)\nconsole.log(color('[ RECIEVED ]'), color(time, 'red'), color(`${command} [${args.length}]`), Drips.hr(), 'FROM', color(pushname), 'in', color(groupName))\n\n//leveling\nconst levelRole = getLevelingLevel(sender, _level)\n  var role = 'bronz'\n  if (levelRole <= 3) {\nrole = 'Copper'\n  } else if (levelRole <= 5) {\nrole = 'Iron'\n  } else if (levelRole <= 7) {\nrole = 'Silver'\n  } else if (levelRole <= 10) {\nrole = 'Gold'\n  } else if (levelRole <= 12) {\nrole = 'Platinum'\n  } else if (levelRole <= 15) {\nrole = 'Mithril'\n  } else if (levelRole <= 18) {\nrole = 'Orichalcum'\n  } else if (levelRole <= 25) {\nrole = 'Adamantite'\n  } else if (levelRole <= 45) {\nrole = 'Good In Game'\n  }\n \n\n//CHATBOT\nif (global.dripsreadgroup) {\nif (m.isGroup) { ZimBotInc.readMessages(m.chat, m.sender, [m.key.id]) }\n}\nif (global.dripsreadall) { if (m.message) { ZimBotInc.readMessages(m.chat, m.sender, [m.key.id]) }\n}\nif (global.dripsrecord) { if (m.chat) { ZimBotInc.sendPresenceUpdate('recording', m.chat) }\n}\n\nif (global.dripstyping) { if (m.chat) { ZimBotInc.sendPresenceUpdate('composing', m.chat) }\n}\nif (global.available) { if (m.chat) { ZimBotInc.sendPresenceUpdate('available', m.chat) }\n}\nif (global.unavailable) { if (m.chat) { ZimBotInc.sendPresenceUpdate('unavailable', m.chat) }\n}\n//RPG FUNCTION BY DRIPS\nfunction randomNomor(min, max = null) {\n  if (max !== null) {\n  min = Math.ceil(min);\n  max = Math.floor(max);\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n  } else {\n  return Math.floor(Math.random() * min) + 1//removing credits is not any option\n  }\n  }\n\nfunction pickRandom(list) {\n  return list[Math.floor(list.length * Math.random())]\n  }\nlet beedrips = [f1,f2,f3,f4,f5,f6]\n        let dripsee = pickRandom(beedrips)\n/*\nif (budy.includes(\"://chat.whatsapp.com/\")) {\n  console.log(\n    color(\"[AUTO-JOIN]\", \"red\"),\n    color(\"YAHAHAHHAHAH\", \"white\")\n  );\n  ZimBotInc.query({\n    json: [\n      \"action\",\n      \"invite\",\n      `${budy.replace(\"https://chat.whatsapp.com/\", \"\")}`,\n    ],\n  });\n}\n*/\nif (isCmd && msgFilter.isFiltered(from) && !isGroup) {\n  console.log(color('[SPAM]', 'red'), color(time, 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname))\n  return reply('〔ʙᴇ ᴘᴀᴛɪᴇɴᴛ 𝟻 sᴇᴄᴏɴᴅs/ᴄᴏᴍᴍᴀɴᴅ〕')}\n\nconst createSerial = (size) => {\n  return crypto.randomBytes(size).toString('hex').slice(0, size)\n  }\n\nvar elit = '*Oʀᴅɴᴀʀʏ ᴀᴅᴠᴇɴᴛᴜʀᴇ*'\nif (isPremium)\n{\nelit = '*Aᴅᴠᴇɴᴛᴜʀᴇ ᴘʀᴏ*'\n}\nif (isCreator)\n{\nelit = '*Aᴅᴍɪɴ ɢᴀᴍᴇ*'\n}\nasync function sendButLoc(from) {\n  reqXp  = 5000 * (Math.pow(2, getLevelingLevel(sender)) - 1)\n  var button = [\n{ urlButton: { displayText: `SCRIPT`, url : `${wame}` } },\n{ quickReplyButton: { displayText: `INVENTORY`, id: `${prefix}inventori` } },\n{ quickReplyButton: { displayText: `OWNER`, id: `${prefix}owner` } }\n]\nbufu = await getBuffer(picak+'RPG GAMES')\nvar DADYDR = `\n ┌───〔 *_◉ᴀʙᴏᴜᴛ◉_* 〕\n ┊ *Nᴀᴍᴇ:* ${pushname}\n ┊ *Rᴀɴᴋ:* ${role}\n ┊ *Sᴛᴀᴛᴜꜱ:* ${elit}\n ┊ *Mᴏɴᴇʏ:* $${(getBalance(sender, balance))}\n ┊ *Xᴘ:* ${getLevelingXp(sender)}/${reqXp}\n ┊ *Lᴇᴠᴇʟ:* ${getLevelingLevel(sender)}\n └───────────●\n\n ┌───〔 *_◉ɪɴꜰᴏ◉_* 〕\n ┊ *Mᴏɴᴇʏ:* $${(getBalance(sender, balance))}\n ┊ *Gᴏʟᴅ:* ${getEmas(sender)}\n ┊ *Iʀᴏɴ:* ${getBesi(sender)}\n ┊ *Fɪꜱʜ:* ${getFish(sender)}\n ┊ *Dɪᴀᴍᴏɴᴅ:* ${getDm(sender)}\n └───────────●\n\n ┌───〔 *_◉ᴍᴇɴᴜ ʀᴘɢ◉_* 〕\n ┊ ${prefix}joinrpg\n ┊ ${prefix}quest \n ┊ ${prefix}mining\n ┊ ${prefix}mancing\n ┊ ${prefix}luckyday\n ┊ ${prefix}luckytime\n ┊ ${prefix}adventure\n ┊ ${prefix}inventori\n └───────────●\n\n ┌───〔 *_◉Fᴀʀᴍ ʀᴘɢ◉_* 〕\n ┊ ${prefix}killslime\n ┊ ${prefix}killgoblin\n ┊ ${prefix}killdevil\n ┊ ${prefix}killbehemoth\n ┊ ${prefix}killdemon\n ┊ ${prefix}killdemonking \n └───────────●\n\n ┌───〔 *_◉Tʀᴀᴅᴇ ʀᴘɢ◉_* 〕\n ┊ ${prefix}sellikan\n ┊ ${prefix}sellbesi\n ┊ ${prefix}sellemas\n ┊ ${prefix}selldiamond\n └───────────●\n\n ┌───〔 *_ᴛʜᴀɴᴋs ᴛᴏ_* 〕\n ┊ʏᴏᴜʀ ᴄʀᴇᴅɪᴛꜱ\n └───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n `\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: DADYDR,\nhydratedFooterText: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`,\nhydratedButtons:  [{        \n    \"urlButton\": {\n      \"displayText\": \"SUBSCRIBE\",\n      \"url\": \"https://youtube.com/@zim-bot\"\n    }\n}, {\nquickReplyButton: {\n    displayText: 'INVENTORY',\n    id: `${prefix}inventori`\n}},{\n  quickReplyButton: {\n      displayText: 'OWNER',\n      id: `${prefix}owner`\n  }\n}\n]\n}\n}\n}), { userJid: m.chat })\nZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n.catch ((err) => reply(err))\n}\nasync function sendButJoin(from, query) {\nreqXp  = 5000 * (Math.pow(2, getLevelingLevel(sender)) - 1)\n _petualang.push(sender)\nfs.writeFileSync('./database/inventori.json', JSON.stringify(_petualang))        \naddInventori(sender)\naddLevelingId(sender) \nvar name = args[0]\nvar serialUser = createSerial(14)\nreqXp  = 5000 * (Math.pow(2, getLevelingLevel(sender)) - 1)\nbufut = await getBuffer(picak+'JOIN RPG')\nvar button = [\n{ urlButton: { displayText: `SOURCE CODE`, url : `${wame}` } },\n{ quickReplyButton: { displayText: `RPG MENU`, id: `${prefix}rpgmenu` } },\n{ quickReplyButton: { displayText: `OWNER`, id: `${prefix}owner` } }\n ]\nvar hg = ` \n ❲ *_Sᴜᴄᴄᴇꜱꜱ Jᴏɪɴ ʀᴘɢ_* ❳\n \n╏ ᴘʀᴏꜰɪʟᴇ ╏\n┊ *Nᴀᴍᴇ :* ${name}\n┊ *Lᴇᴠᴇʟ :* ${getLevelingLevel(sender)}\n┊ *Sᴛᴀᴛᴜꜱ :* ${elit}\n┊ *Xᴘ:*  ${getLevelingXp(sender)}/${reqXp}\n❲ *_ʀᴘɢ ɢᴀᴍᴇ_* ❳`\n  let message = await prepareWAMessageMedia({ image: bufut, jpegThumbnail:bufut }, { upload: ZimBotInc.waUploadToServer })\n  const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n  templateMessage: {\n  hydratedTemplate: {\n  imageMessage: message.imageMessage,\n  hydratedContentText: hg,\n  hydratedFooterText: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`,\n  hydratedButtons:  [{        \n      \"urlButton\": {\n        \"displayText\": \"SUBSCRIBE\",\n        \"url\": \"https://youtube.com/@zim-bot\"\n      }\n  }, {\n  quickReplyButton: {\n      displayText: 'INVENTORY',\n      id: `${prefix}inventori`\n  }},{\n    quickReplyButton: {\n        displayText: 'OWNER',\n        id: `${prefix}owner`\n    }\n  }\n  ]\n  }\n  }\n  }), { userJid: m.chat })\n  ZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n  .catch ((err) => reply(err))\n  }\n          \nasync function sendButslime(from) {\nez = Math.ceil(Math.random() * 400)\naddLevelingXp(sender, ez)\na = randomNomor(55)\nb = randomNomor(400)\nc = randomNomor(80)\nd = randomNomor(3)\naddLevelingXp(sender, ez)\naddBalance(sender, b, balance)\naddEmas(sender, a)\naddBesi(sender, c)\naddDm(sender, d)\nbufutI = await getBuffer(picak+'KILL SLIME')\nvar button = [\n{ urlButton: { displayText: `Script`, url : `${wame}` } },\n{ quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n{ quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n]\nvar hg = `*Mission to kill Slime*\\n\\n🎁 *Reward for killing Slime*\\n ┊ *Money:* $${b}\\n ┊ *Iron:* ${c}\\n ┊ *Gold:* ${a}\\n ┊ *Diamond:* ${d}\\n\\n*Thank you for carrying out this mission*`\n          let message = await prepareWAMessageMedia({ image: bufutI, jpegThumbnail:bufutI }, { upload: ZimBotInc.waUploadToServer })\n          const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n          templateMessage: {\n          hydratedTemplate: {\n          imageMessage: message.imageMessage,\n          hydratedContentText: hg,\n          hydratedFooterText: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`,\n          hydratedButtons:  [{        \n              \"urlButton\": {\n                \"displayText\": \"SUBSCRIBE\",\n                \"url\": \"https://youtube.com/@zim-bot\"\n              }\n          }, {\n          quickReplyButton: {\n              displayText: 'INVENTORY',\n              id: `${prefix}inventori`\n          }},{\n            quickReplyButton: {\n                displayText: 'OWNER',\n                id: `${prefix}owner`\n            }\n          }\n          ]\n          }\n          }\n          }), { userJid: m.chat })\n          ZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n          .catch ((err) => reply(err))\n          }\n          \n            async function sendButgoblin(from) {\n            ez = Math.ceil(Math.random() * 500)\n            addLevelingXp(sender, ez)\n            a = randomNomor(65)\n            b = randomNomor(500)\n            c = randomNomor(90)\n            d = randomNomor(5)\n            addLevelingXp(sender, ez)\n            addBalance(sender, b, balance)\n            addEmas(sender, a)\n            addBesi(sender, c)\n            addDm(sender, d)\n            bufo = await getBuffer(picak+'KILL GLOBIN')\n            var button = [\n                { urlButton: { displayText: `Script`, url : `${wame}` } },\n                { quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n                { quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n                ]\n            var hg = `*Mission To kill Goblin*\\n\\n🎁 *Reward for killing Goblin*\\n ┊ *Money:* $${b}\\n ┊ *Iron:* ${c}\\n ┊ *Gold:* ${a}\\n ┊ *Diamond:* ${d}\\n\\n*Thank you for carrying out this misssion*`\n            let message = await prepareWAMessageMedia({ image: bufo, jpegThumbnail:bufo }, { upload: ZimBotInc.waUploadToServer })\n            const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n            templateMessage: {\n            hydratedTemplate: {\n            imageMessage: message.imageMessage,\n            hydratedContentText: hg,\n            hydratedFooterText: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`,\n            hydratedButtons:  [{        \n                \"urlButton\": {\n                  \"displayText\": \"SUBSCRIBE\",\n                  \"url\": \"https://youtube.com/@zim-bot\"\n                }\n            }, {\n            quickReplyButton: {\n                displayText: 'INVENTORY',\n                id: `${prefix}inventori`\n            }},{\n              quickReplyButton: {\n                  displayText: 'OWNER',\n                  id: `${prefix}owner`\n              }\n            }\n            ]\n            }\n            }\n            }), { userJid: m.chat })\n            ZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n            .catch ((err) => reply(err))\n            }\n          \n            async function sendButdevil(from) {\n            ez = Math.ceil(Math.random() * 600)\n            addLevelingXp(sender, ez)\n            a = randomNomor(70)\n            b = randomNomor(600)\n            c = randomNomor(95)\n            d = randomNomor(6)\n            addLevelingXp(sender, ez)\n            addBalance(sender, b, balance)\n            addEmas(sender, a)\n            addBesi(sender, c)\n            addDm(sender, d)\n            bufas = await getBuffer(picak+'KILL DEVIL')\n            var button = [\n                { urlButton: { displayText: `Script`, url : `${wame}` } },\n                { quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n                { quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n                ]\n            var hg = `*Mission to kill 𝗗𝗲𝘃𝗶𝗹️*\\n\\n🎁 *Reward for killing Devil*\\n ┊ *Money:* $${b}\\n ┊ *Iron:* ${c}\\n ┊ *Gold:* ${a}\\n ┊ *Diamond:* ${d}\\n\\n*Thank you for carrying out this mission*`\n            let message = await prepareWAMessageMedia({ image: bufas, jpegThumbnail:bufas }, { upload: ZimBotInc.waUploadToServer })\n            const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n            templateMessage: {\n            hydratedTemplate: {\n            imageMessage: message.imageMessage,\n            hydratedContentText: hg,\n            hydratedFooterText: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`,\n            hydratedButtons:  [{        \n                \"urlButton\": {\n                  \"displayText\": \"SUBSCRIBE\",\n                  \"url\": \"https://youtube.com/@zim-bot\"\n                }\n            }, {\n            quickReplyButton: {\n                displayText: 'INVENTORY',\n                id: `${prefix}inventori`\n            }},{\n              quickReplyButton: {\n                  displayText: 'OWNER',\n                  id: `${prefix}owner`\n              }\n            }\n            ]\n            }\n            }\n            }), { userJid: m.chat })\n            ZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n            .catch ((err) => reply(err))\n            }\n          \n            async function sendButbehemoth(from) {\n            ez = Math.ceil(Math.random() * 700)\n            addLevelingXp(sender, ez)\n            a = randomNomor(75)\n            b = randomNomor(600)\n            c = randomNomor(100)\n            d = randomNomor(7)\n            addLevelingXp(sender, ez)\n            addBalance(sender, b, balance)\n            addEmas(sender, a)\n            addBesi(sender, c)\n            addDm(sender, d)\n            batai = await getBuffer(picak+'KILL BEHEMOTH')\n            var button = [\n                { urlButton: { displayText: `Script`, url : `${wame}` } },\n                { quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n                { quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n                ]\n            var hg = `*Mission to kill Behemoth*\\n\\n🎁 *Reward for kiling Behemoth*\\n ┊ *Money:* $${b}\\n ┊ *Iron:* ${c}\\n ┊ *Gold:* ${a}\\n ┊ *Diamond:* ${d}\\n\\n*Thank you for carrying out this mission*`\n            let message = await prepareWAMessageMedia({ image: batai, jpegThumbnail: batai }, { upload: ZimBotInc.waUploadToServer })\n            const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n              templateMessage: {\n              hydratedTemplate: {\n              imageMessage: message.imageMessage,\n              hydratedContentText: hg,\n              hydratedFooterText: `${global.botname}`,\n              mentions: [sender],\n              hydratedButtons: [{        \n              \"urlButton\": {\n              \"displayText\": \"SUBSCRIBE\",\n              \"url\": \"https://youtube.com/@zim-bot\"\n              }\n            }, {\n              quickReplyButton: {\n                  displayText: 'INVENTORY',\n                  id: `${prefix}inventori`\n              }},{\n                quickReplyButton: {\n                    displayText: 'OWNER',\n                    id: `${prefix}owner`\n                }\n              }\n              ]\n              }\n              }\n              }), { userJid: m.chat })\n              ZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n                  \n            .catch ((err) => reply(err))\n          }\n          \n            async function sendButdemon(from) {\n            ez = Math.ceil(Math.random() * 850)\n            addLevelingXp(sender, ez)\n            a = randomNomor(90)\n            b = randomNomor(900)\n            c = randomNomor(120)\n            d = randomNomor(10)\n            addLevelingXp(sender, ez)\n            addBalance(sender, b, balance)\n            addEmas(sender, a)\n            addBesi(sender, c)\n            addDm(sender, d)\n            bhuu = await getBuffer(picak+'KILL DEMON')\n            var button = [\n                { urlButton: { displayText: `Script`, url : `${wame}` } },\n                { quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n                { quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n                ]\n            var hg = `*Mission to kill Demon*\\n🎁 *Demon Kill Reward*\\n ┊ *Money:* $${b}\\n ┊ *Iron:* ${c}\\n ┊ *Gold*: ${a}\\n ┊ *Diamond:* ${d}\\n\\n*Thank You for Carrying Out This Mission*`\n            let message = await prepareWAMessageMedia({ image: bhuu, jpegThumbnail: bhuu }, { upload: ZimBotInc.waUploadToServer })\n            const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n              templateMessage: {\n              hydratedTemplate: {\n              imageMessage: message.imageMessage,\n              hydratedContentText: hg,\n              hydratedFooterText: `${global.botname}`,\n              mentions: [sender],\n              hydratedButtons: [{        \n              \"urlButton\": {\n              \"displayText\": \"SUBSCRIBE\",\n              \"url\": \"https://youtube.com/@zim-bot\"\n              }\n            }, {\n              quickReplyButton: {\n                  displayText: 'INVENTORY',\n                  id: `${prefix}inventori`\n              }},{\n                quickReplyButton: {\n                    displayText: 'OWNER',\n                    id: `${prefix}owner`\n                }\n              }\n              ]\n              }\n              }\n              }), { userJid: m.chat })\n              ZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n                  \n            .catch ((err) => reply(err))\n          }\n          \n            async function sendButdemonking(from) {\n            ez = Math.ceil(Math.random() * 1000)\n            addLevelingXp(sender, ez)\n            addLevelingXp(sender, ez)\n            addBalance(sender, 1999, balance)\n            addEmas(sender, 99)\n            addBesi(sender, 99)\n            addDm(sender, 99)\n            bhuud = await getBuffer(picak+'KILL DEMONKING ')\n            var button = [\n                { urlButton: { displayText: `Script`, url : `${wame}` } },\n                { quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n                { quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n                ]\n            var hg = `*Mission to kill DemonKing*\\n\\n🎁 *DemonKing Kill Reward*\\n ┊ *Money* : $${b}\\n ┊ *Iron :* ${c}\\n ┊ *Gold :* ${a}\\n ┊ *Diamond :* ${d}\\n\\n*Thank You for Carrying Out This Mission*`\n            let message = await prepareWAMessageMedia({ image: bhuud, jpegThumbnail:bhuud }, { upload: ZimBotInc.waUploadToServer })\n            const template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n            templateMessage: {\n            hydratedTemplate: {\n            imageMessage: message.imageMessage,\n            hydratedContentText: hg,\n            hydratedFooterText: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`,\n            hydratedButtons:  [{        \n                \"urlButton\": {\n                  \"displayText\": \"SUBSCRIBE\",\n                  \"url\": \"https://youtube.com/@zim-bot\"\n                }\n            }, {\n            quickReplyButton: {\n                displayText: 'INVENTORY',\n                id: `${prefix}inventori`\n            }},{\n              quickReplyButton: {\n                  displayText: 'OWNER',\n                  id: `${prefix}owner`\n              }\n            }\n            ]\n            }\n            }\n            }), { userJid: m.chat })\n            ZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n            .catch ((err) => reply(err))\n            }\n          const emote = (satu, dua) => {\n            try{\t    \n            const { EmojiAPI } = require(\"emoji-api\");\n            const emoji = new EmojiAPI();\n            emoji.get(satu)\n            .then(emoji => {\n            const buttons = [{buttonId: \"y\", buttonText: {displayText:satu}, type: 1}]\n            const buttonMessage = {image: {url: emoji.images[dua].url},caption: \"ᴢɪᴍ ʙᴏᴛ ᴠ5\",footerText: 'Loading...',buttons: buttons,headerType: 4}\n            ZimBotInc.sendMessage(from, buttonMessage, {quoted:m})\n            })\n            } catch (e) {\n            reply(\"Emoji error, please enter another emojinNOTE : Just enter 1 emoji\")\n            }\n            }\n//----ANTILINK AND CHATBOT-----\\\\\nif (db.settings[botNumber].chatgpt) {\nif (m.chat.endsWith(\"@s.whatsapp.net\")) {\nconst { Configuration, OpenAIApi } = require('openai')\nconst configuration = new Configuration({\napiKey: process.env.OPENAI_API_KEY\n})\nconst openai = new OpenAIApi(configuration)\nconst jsonu = await openai.createCompletion({\nmodel: 'text-davinci-003',\nprompt: text,\ntemperature: 0.7,\nmax_tokens: 3500,\ntop_p: 1,\nfrequency_penalty: 0,\npresence_penalty: 0,\n})\nif (jsonu.statusText != 'OK' || jsonu.data.choices.length == 0) return reply('fail')\nlet bhabhi = jsonu.data.choices[0].text.trim()\nZimBotInc.sendMessage(m.chat,{ text: bhabhi},  {quoted: m})\n}\n}\nif (db.settings[botNumber].privatechat) {\nif (m.chat.endsWith(\"@s.whatsapp.net\")) {\nconst got = require('got')\nlet {body} = await got(`http://api.brainshop.ai/get?bid=173030&key=zK0sxNKb6C9pA3gr&uid=[${m.sender}]&msg=[${budy}]`)\n  let value = JSON.parse(body).cnt;\n   m.reply(value)\n }\n }\n if (db.settings[botNumber].chatbot) {\nconst got = require('got')\nlet {body} = await got(`http://api.brainshop.ai/get?bid=173030&key=zK0sxNKb6C9pA3gr&uid=[${m.sender}]&msg=[${budy}]`)\n  let value = JSON.parse(body).cnt;\n   m.reply(value)\n }\n \nif (db.chats[m.chat].antilink) {\nif (budy.includes('https://chat.whatsapp.com/')) {\nif (!m.key.fromMe) {\nreply('[ 𝗭𝗜𝗠 𝗕𝗢𝗧 𝗔𝗡𝗧𝗜𝗟𝗜𝗡𝗞 ]\\n𝗟𝗶𝗻𝗸 𝗻𝗼𝘁 𝗮𝗹𝗹𝗼𝘄𝗲𝗱 𝗵𝗲𝗿𝗲, 𝗢𝗞𝘆?..,\\n𝗚𝗼𝗼𝗱 𝗯𝘆𝗲 𝗜𝗺 𝗸𝗶𝗰𝗸𝗶𝗻𝗴 𝘂𝗿 𝗮𝘀𝘀 𝗻𝗼𝘄👋🏻')\nlet sianj = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [sianj], 'remove').then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n}\n}\n}\nif (db.chats[m.chat].wame) {\nif (budy.match(`wa.me/`)) {\nreply(`「 𝗭𝗜𝗠 𝗕𝗢𝗧 𝗔𝗡𝗧𝗜𝗟𝗜𝗡𝗞 」\\n\\n𝗬𝗼𝘂 𝗵𝗮𝘃𝗲 𝘀𝗲𝗻𝗱 𝘄𝗮.𝗺𝗲 𝗹𝗶𝗻𝗸, 𝗻𝗼 𝘁𝗶𝗺𝗲 𝘁𝗼 𝘄𝗮𝘀𝘁𝗲 𝘂𝗮 𝗼𝘂𝘁!`)\nif (!isBotAdmins) return reply(`𝘡𝘪𝘮 𝘉𝘰𝘵 𝘮𝘶𝘴𝘵 𝘣𝘦 𝘢𝘥𝘮𝘪𝘯 𝘧𝘪𝘳𝘴𝘵😚`)\nlet gclink = (`https://wa.me/`)\nlet isLinkThisGc = new RegExp(gclink, 'i')\nlet isgclink = isLinkThisGc.test(m.text)\nif (isgclink) return reply(`𝘖𝘏 𝘠𝘦𝘢𝘩 𝘪𝘵 𝘥𝘪𝘥𝘯𝘵 𝘩𝘢𝘱𝘱𝘦𝘯, 𝘣𝘦𝘤𝘢𝘶𝘴𝘦 𝘺𝘰𝘶 𝘴𝘦𝘯𝘵 𝘵𝘩𝘪𝘴 𝘸𝘢.𝘮𝘦 𝘭𝘪𝘯𝘬𝘺 𝘰𝘬𝘢𝘺😌`)\nif (isAdmins) return reply(`𝘏𝘦𝘭𝘭 𝘯𝘰😱 𝘺𝘰𝘶 𝘢𝘥𝘮𝘪𝘯`)\nif (isCreator) return reply(`𝘖𝘰𝘰𝘰𝘩 𝘴𝘩𝘪𝘵😩 𝘴𝘰𝘳𝘳𝘺 𝘺𝘶 𝘢𝘳𝘦 𝘵𝘩𝘦 𝘰𝘸𝘯𝘦𝘳 𝘭𝘶𝘤𝘬𝘺 𝘺𝘰𝘶`)\nZimBotInc.groupParticipantsUpdate(m.chat, [m.sender], 'remove')\n}\n}\nif (db.chats[m.chat].antiinstagram) {\n    if (budy.includes(\"https://www.instagram.com/\")){\n if (!isBotAdmins) return\n zimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n\\n*you are admn okay*`\n if (isAdmins) return reply(zimbotv3)\n if (m.key.fromMe) return reply(zimbotv3)\n if (isCreator) return reply(zimbotv3)\n kice = m.sender\n await ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\n ZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no ig links here okay, now get out* `, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n }\n}\n\nif (db.chats[m.chat].antisticker) {\nlet isSticker = m.mtype\nif(isSticker === \"stickerMessage\"){\t\t  \nif (!m.key.fromMe) {\nif (isAdmins) return reply(`*you are admin lucky you dont send stickers here*`)\nif (isCreator) return reply(`*𝘖𝘰𝘰𝘰𝘩 𝘴𝘩𝘪𝘵😩 𝘴𝘰𝘳𝘳𝘺 𝘺𝘶 𝘢𝘳𝘦 𝘵𝘩𝘦 𝘰𝘸𝘯𝘦𝘳 𝘭𝘶𝘤𝘬𝘺 𝘺𝘰𝘶*`)\nreply('*ANTI STICKER*\\n\\n*NO STICKERS  ALLOWED HERE OKAY GOODBYE*')\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no stickers here okay, now get out* `, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n}\n\nif (db.chats[m.chat].antivn) {\nlet isAudio = m.mtype\nif(isAudio === \"audioMessage\"){\t\t  \nif (!m.key.fromMe) {\nif (isAdmins) return reply(`*you are admin lucky you dont send voice note here*`)\nif (isCreator) return reply(`*𝘖𝘰𝘰𝘰𝘩 𝘴𝘩𝘪𝘵😩 𝘴𝘰𝘳𝘳𝘺 𝘺𝘶 𝘢𝘳𝘦 𝘵𝘩𝘦 𝘰𝘸𝘯𝘦𝘳 𝘭𝘶𝘤𝘬𝘺 𝘺𝘰𝘶*`)\nreply('*ANTI VOICE NOTE*\\n\\n*NO VOICE ALLOWED HERE  OKAY GOODBYE*')\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no voice note here okay, now get out* `, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n}\n\nif (db.chats[m.chat].antivideo) {\nlet isVideo = m.mtype\nif(isVideo === \"videoMessage\"){\t\t  \nif (!m.key.fromMe) {\nif (isAdmins) return reply(`*you are admin lucky you dont send videos here*`)\nif (isCreator) return reply(`*𝘖𝘰𝘰𝘰𝘩 𝘴𝘩𝘪𝘵😩 𝘴𝘰𝘳𝘳𝘺 𝘺𝘶 𝘢𝘳𝘦 𝘵𝘩𝘦 𝘰𝘸𝘯𝘦𝘳 𝘭𝘶𝘤𝘬𝘺 𝘺𝘰𝘶*`)\nreply('*ANTI VIDEO*\\n\\n*NO VIDEOS ALLOWED HERE  OKAY GOODBYE*')\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no videos here okay, now get out* `, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n}\n\nif (db.chats[m.chat].antiphoto) {\nlet isPhoto = m.mtype\nif(isPhoto === \"imageMessage\"){\t\t  \nif (!m.key.fromMe) {\nif (isAdmins) return reply(`*you are admin lucky you dont send photos here*`)\nif (isCreator) return reply(`*𝘖𝘰𝘰𝘰𝘩 𝘴𝘩𝘪𝘵😩 𝘴𝘰𝘳𝘳𝘺 𝘺𝘶 𝘢𝘳𝘦 𝘵𝘩𝘦 𝘰𝘸𝘯𝘦𝘳 𝘭𝘶𝘤𝘬𝘺 𝘺𝘰𝘶*`)\nreply('*ANTI PHOTOS*\\n\\n*NO PHOTOS ALLOWED HERE  OKAY GOODBYE*')\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no photos here okay, now get out* `, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n}\n\nif (db.chats[m.chat].antifb) {\nif(budy.includes(\"https://facebook.com/\")){\nif (!isBotAdmins) return\nzimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n\\n*you are admin okay*`\nif (isAdmins) return reply(zimbotv3)\nif (m.key.fromMe) return reply(zimbotv3)\nif (isCreator) return reply(zimbotv3)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\n ZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no fb links here okay, now get out*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n} \n }\n\n if (db.chats[m.chat].antitelegram) {\n if (budy.includes(\"https://t.me/\")){\n if (!isBotAdmins) return\n zimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n*you are admin okay*`\n if (isAdmins) return reply(zimbotv3)\n if (m.key.fromMe) return reply(zimbotv3)\n if (isCreator) return reply(zimbotv3)\n kice = m.sender\n await ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\n ZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no telegram links here okay, now get out*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n} \n }\n\nif (db.chats[m.chat].antitiktok) {\nif (budy.includes(\"https://www.tiktok.com/\")){\nif (!isBotAdmins) return\nzimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n\\n*you are bot admin okay*`\nif (isAdmins) return m.reply(zimbotv3)\nif (m.key.fromMe) return m.reply(zimbotv3)\nif (isCreator) return m.reply(zimbotv3)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no tiktok links here okay, now get out*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n\nif (db.chats[m.chat].antitwitter) {\nif (budy.includes(\"https://twitter.com/\")){\nif (!isBotAdmins) return\nzimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n *you are bot admin okay*`\nif (isAdmins) return reply(zimbotv3)\nif (m.key.fromMe) return reply(zimbotv3)\nif (isCreator) return reply(zimbotv3)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no twittwer link here okay, now get out*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n\nif (db.chats[m.chat].antilinkall) {\nif (budy.includes(\"http\")){ \nif (!isBotAdmins) return\nzimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n *you are bot admin okay*`\nif (isAdmins) return reply(zimbotv3)\nif (m.key.fromMe) return reply(zimbotv3)\nif (isCreator) return reply(zimbotv3)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(m.chat, {text:`*▊▊▊DETECTED▊▊▊*\\n@${kice.split(\"@\")[0]} *I said dont send any links okay*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n\n\nif (m.mtype == 'viewOnceMessage') {\nif (!db.chats[m.chat].antionce) return\nteks = `*▊▊▊DETECTED ONCE▊▊▊*\n\n`\nZimBotInc.sendTextWithMentions(m.chat, teks, m)\nawait sleep(500)\nm.copyNForward(m.chat, true, { readViewOnce: true }).catch(_ => reply(`*I opened it by force*`))\n}\n\n\n\nif (db.chats[m.chat].antilinkyt) {\nif (budy.includes(\"https://youtube.com/\")){ \nif (!isBotAdmins) return\nzimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n*you are admin okay*`\nif (isAdmins) return reply(zimbotv3)\nif (m.key.fromMe) return reply(zimbotv3)\nif (isCreator) return reply(zimbotv3)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no yt links here okay, now get out*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n} \n}\n\nif (db.chats[m.chat].antilink) {\nif (budy.match(`chat.whatsapp.com`)) {\nreply(`*▊▊▊ ANTILINK ▊▊▊*\\n\\n*You have been detected sending a group link, sorry you will be kicked!*`)\nif (!isBotAdmins) return reply(`*Bbot must be admin okay*`)\nlet gclink = (`https://chat.whatsapp.com/`+await ZimBotInc.groupInviteCode(m.chat))\nlet isLinkThisGc = new RegExp(gclink, 'i')\nlet isgclink = isLinkThisGc.test(m.text)\nif (isgclink) return reply(`*sorry I didn't kick you, because you sent the link of this group lucky you*`)\nif (isAdmins) return reply(`*Ehh sorry you admin*`)\nif (isCreator) return reply(`*whoa you are  bot creator i wont kick you okay*`)\nZimBotInc.groupParticipantsUpdate(m.chat, [m.sender], 'remove')\n}\n}\nif (budy.length > 3500) {\nif (!m.isGroup) return\nif (!isAntiVirtex) return\nif (groupAdmins) return\nreply('Mark as read\\n'.repeat(300))\nreply(`*▊▊▊DETECTED▊▊▊*\\n\\n*You sent a virtex, sorry you will be kicked from the group*`)\nconsole.log(('[KICK]', 'red'), color('Received a text virus!', 'yellow'))\nZimBotInc.groupParticipantsUpdate(m.chat, [m.sender], 'remove')\n}  \n\n\nif (db.chats[m.chat].antiwame) {\nif (budy.includes(`http://wa.me`)) {\nif (!isBotAdmins) return\nzimbotv3 = `*▊▊▊DETECTED▊▊▊*\\n\\n*you are admin okay*`\nif (isAdmins) return reply(zimbotv3)\nif (m.key.fromMe) return reply(zimbotv3)\nif (isCreator) return reply(zimbotv3)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\nZimBotInc.sendMessage(from, {text:`*▊▊▊DETECTED▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *I said no links okay, now get out*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n\nif (db.settings[botNumber].autoblock) {\nif (m.chat.endsWith(\"@s.whatsapp.net\")) {\nif (isCreator) reply('*you are bot creator okay*')\nblock = m.sender\nawait ZimBotInc.sendMessage(from, {text:`*▊▊▊AUTO BLOCK▊▊▊*\\n\\n@${block.split(\"@\")[0]} *today I'm blocking dumps bye you are _blocked_* *if you want to use bot join this group* ${global.group1}\\n\\n${global.group2}`, m})\nZimBotInc.updateBlockStatus(m.sender,'block')\n}\n}\n\nif (db.chats[m.chat].antilinkyt) {\nif (budy.includes(`https://nando.com`)) {\nif (!isBotAdmins) return reply('*BOT MUST BE ADMIN OKAY*')\nreply(`*▊▊▊ ANTIYT ▊▊▊*\\n\\n*SOrry ${botname} will kick you out because what you sent is a youtube link in this group*`)\nif (isAdmins) return reply(`*Ehh sorry you admin*`)\n if (isCreator) return reply(`*whoa you are  bot creator i wont kick you okay*`)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))\nZimBotInc.sendMessage(m.chat, {text:`*▊▊▊ ANTILINK ▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *Has been kicked for sending the youtube link in this group*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\n\n\nif (db.chats[m.chat].antibule)  {\nif (m.sender.includes(`+212`)) {\nif (!isBotAdmins) return reply('*BOT MUST BE ADMIN OKAY*')\nreply(`*▊▊▊ ANTIBULE ▊▊▊*\\n\\n*Sorry ${botname} will kick you out because you are a stranger in this group*`)\nif (isAdmins) return reply(`*Ehh sorry you admin*`)\nif (isCreator) return reply(`*whoa you are  bot creator i wont kick you okay*`)\nkice = m.sender\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove').then((res) => m.reply(jsonformat(res))).catch((err) => m.reply(jsonformat(err)))\nZimBotInc.sendMessage(m.chat, {text:`*▊▊▊ ANTILINK ▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *You shouldn't be in this group*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})\n}\n}\nif (db.settings[botNumber].grouponly) {\n  if (!m.isGroup) {\n    let a = 'a'\n    if (!isCreator) throw `*INBOX NOT ALLOWED*`\n    if (budy === a) \n    throw  '*inbox not allowed*'\n   \n    }\n  }\nvar Apik = ''\nvar socket = fetchJson('wss://wss.allsportsapi.com/live_events?widgetKey='+ 'db7fca1f4dfd0fa8b50c30c3b4569a61e0c5c93a79c18864bf9c9b6ab635c427' +'&timezone=+02:00');\nsocket.onmessage = function(e) {\n  if (e.data) {\n    var matcheData = JSON.parse(e.data);\n    console.log(`*JUST IN:*` + matcheData)\n  }\n}\n//mute chat\n if (db.chats[m.chat].mute && !isAdmins && !isCreator) {\n return\n }\n//write database every 1minute\nsetInterval(() => {\n fs.writeFileSync('./src/database.json', JSON.stringify(global.db, null, 2))\n}, 60 * 1000)\n//But5Loc\nvar nextMinutes = Math.random() * 300 + 1000;\nsetTimeout(function(){\n  ZimBotInc.sendMessage(ZimBotInc.user.id, {text: `*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ ANNOUNCEMENT:* *SUBSCRIBE TO DRIPS OFC*\\n\\n*YOUTUBE:* https://youtube.com/@zim-bot\\n\\n*NEW FEATURES COMING SOON SO STAY TUNED*\\n\\n*FEEL FREE TO BRING IDEAS OF THE FEATURES ON THE TABLE*\\n\\n*IF YOU WANT TO CONTRUBUTE FORK THE REPO, MAKE CHANGES PUSH YOUR CHANGES TO THE ORIGIN BRANCH AND WAIT FOR YOUR PULL REQUEST TO BE VERIFIED*\\n\\n*Thanks for choosing zim-bot*`,contextInfo: { externalAdReply:{title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",body:\"SUBSCRIBE DRIPS OFC\",showAdAttribution: true,mediaType:2,thumbnail: fs.readFileSync(`./drips.jpg`) ,mediaUrl:`https://youtu.be/KNu-gr2h7bo`, sourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\n  //anouncement by drips \n}, nextMinutes * 300 * 1000);\nconst send5Butlmg = async (jid , text = '' , footer = '', img, but = [], options = {}) =>{\n    var template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\ntemplateMessage: {\n hydratedTemplate: {\n   locationMessage: { degreesLatitude: 0, degreesLongtitude: 0, jpegThumbnail: img },\n \"hydratedContentText\": text,\n \"hydratedFooterText\": footer,\n \"hydratedButtons\": but\n   }\n   }\n   }), options)\n    return ZimBotInc.relayMessage(jid, template.message, { messageId: template.key.id })\n    }\n//reset limit every 12hrs\nlet cron = require('node-cron')\ncron.schedule('00 12 * * *', () => {\n let user = Object.keys(global.db.users)\n let limitUser = isPremium ? global.limitawal.premium : global.limitawal.free\n for (let jid of user) global.db.users[jid].limit = limitUser\n console.log('Reseted Limit')\n}, {\n scheduled: true,\n timezone: \"Africa/Harare\"\n})\n//script by drips   \n//respond to cmd\nif (isMedia && m.msg.fileSha256 && (m.msg.fileSha256.toString('base64') in global.db.sticker)) {\nlet hash = global.db.sticker[m.msg.fileSha256.toString('base64')]\nlet { text, mentionedJid } = hash\nlet messages = await generateWAMessage(m.chat, { text: text, mentions: mentionedJid }, {\n userJid: ZimBotInc.user.id,\n quoted: m.quoted && m.quoted.fakeObj\n})\nmessages.key.fromMe = areJidsSameUser(m.sender, ZimBotInc.user.id)\nmessages.key.id = m.key.id\nmessages.pushName = m.pushName\nif (m.isGroup) messages.participant = m.sender\nlet msg = {\n ...chatUpdate,\n messages: [proto.WebMessageInfo.fromObject(messages)],\n type: 'append'\n}\nZimBotInc.ev.emit('messages.upsert', msg)\n}\n    \n\n\n\n    \nlet mentionUser = [...new Set([...(m.mentionedJid || []), ...(m.quoted ? [m.quoted.sender] : [])])]\nfor (let jid of mentionUser) {\n let user = global.db.users[jid]\n if (!user) continue\n let afkTime = user.afkTime\n if (!afkTime || afkTime < 0) continue\n let reason = user.afkReason || ''\n reply(`\nDon't tag him!\nHe's in Offline/AFK, ${reason ? 'with reason ' + reason : 'no reason'}\nIts been ${clockString(new Date - afkTime)}\n`.trim())\n}\n\nif (db.users[m.sender].afkTime > -1) {\n let user = global.db.users[m.sender]\n reply(`\nYou came back online from AFK${user.afkReason ? ' after ' + user.afkReason : ''}\nIn ${clockString(new Date - user.afkTime)}\n`.trim())\n user.afkTime = -1\n user.afkReason = ''\n}\n    \nswitch(command) {\n  case 'quest':\n    let sectionnya= [\n    {\n    \"title\": `MISSION 1`,\n     rows: [\n    {\n    \"title\": `KILLING SLIME`,\n    \"description\": `Hunting Slimes For Rewards`,\n    \"rowId\": `${prefix}slime`\n    }\n    ]\n    }\n    ,\n    {\n    \"title\": `MISSION 2`,\n     rows: [\n    {\n    \"title\": `KILLING GOBLIN`,\n    \"description\": `Hunt Globin To Get Rewards`,\n    \"rowId\": `${prefix}goblin`\n    }\n    ]\n    }\n    ,\n    {\n    \"title\": `MISSION 3`,\n     rows: [\n    {\n    \"title\": `KILLING DEVIL`,\n    \"description\": `Hunt Devils To Get Rewards`,\n    \"rowId\": `${prefix}devil`\n    }\n    ]\n    }\n    ,\n    {\n    \"title\": `MISSION 4`,\n     rows: [\n    {\n    \"title\": `KILLING BEHEMOTH`,\n    \"description\": `Hunting Behemoths To Earn Rewards`,\n    \"rowId\": `${prefix}behemoth`\n    }\n    ]\n    }\n    ,\n    {\n    \"title\": `MISSION 5`,\n     rows: [\n    {\n    \"title\": `KILLING DEMONS`,\n    \"description\": `Hunt Demons To Get Rewards`,\n    \"rowId\": `${prefix}demon`\n    }\n    ]\n    }\n    ,\n    {\n    \"title\": `MISSION 6`,\n     rows: [\n    {\n    \"title\": `KILLING DEMONKING`,\n    \"description\": `DemonKing Hunting To Earn Rewards`,\n    \"rowId\": `${prefix}demonking`\n    }\n    ]\n    }\n    ]\n    ZimBotInc.sendList(m.chat, `Hi Chomie *${pushname}*`, `Please Select Below`, \"CLICK\", \"ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ \", sectionnya, { quoted: m})\n    break\n    case 'slime':\n    case 'killslime':\n    if (!m.isGroup) return reply(mess.group) \n    if (!isPetualang) return reply(mess.noPetualang)\n    await sendButslime(from)\n    break\n    case 'goblin':\n    case 'killgoblin':\n    if (!m.isGroup) return reply(mess.group) \n    if (!isPetualang) return reply(mess.noPetualang)\n    await sendButgoblin(from)\n    break\n    case 'devil':\n    case 'killdevil':\n    if (!m.isGroup) return reply(mess.group) \n    if (!isPetualang) return reply(mess.noPetualang)\n    await sendButdevil(from)\n    break\n    case 'behemoth':\n    case 'killbehemoth':\n    if (!m.isGroup) return reply(mess.group) \n    if (!isPetualang) return reply(mess.noPetualang)\n    await sendButbehemoth(from)\n    break\n    case 'demon':\n    case 'killdemon':\n    if (!m.isGroup) return reply(mess.group) \n    if (!isPetualang) return reply(mess.noPetualang)\n    await sendButdemon(from)\n    break\n    case 'demonking':\n    case 'killdemonking':\n    if (!m.isGroup) return reply(mess.group) \n    if (!isPetualang) return reply(mess.noPetualang)\n    await sendButdemonking(from)\n    break\n    case 'rpgmenu':\ncase 'profile':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nawait sendButLoc(from)\nbreak\ncase 'joinrpg':\nif (!m.isGroup) return reply(mess.group)  \nif (isPetualang) return reply(' *Youve Become an Adventurer*')\nif (args.length < 1) return reply(`*Send a command ${prefix + command} name*`)\nawait sendButJoin(from, q)\nbreak\ncase 'mining':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\npp = randomNomor(75)\nemas = randomNomor(15)\ndm = randomNomor(3)\nbesi = randomNomor(50)\naddBalance(sender, pp, balance)\naddBesi(sender, besi)\naddEmas(sender, emas)\naddDm(sender, dm)\nmining = ('*Wait mining......*')\nsetTimeout( () => {\nbuttons = [\n{ buttonId: 'mining', buttonText: { displayText: 'Mining' }, type: 1 }\n]\nZimBotInc.sendButtonText(m.chat, buttons, `*Completed Mining🚧nlist results:*\\n*Gold* ${emas}🪙\\n*Money:* $${pp}💰\\n*Iron:* ${besi}⛓️\\n*Diamond:* ${dm}💎`, ZimBotInc.user.name, m)\n}, 9000) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: '🚧 Finished Kneading . . .🪙👷' }, { quoted: m })\n}, 7000) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: '🚧 Finding Gold . . .⚒️🏔️️️' }, { quoted: m })\n}, 4000) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: '🚧 Start Mining . . .⚒️🏔️️' }, { quoted: m })\n}, 1500) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: mining }, {quoted: m}) \n}, 0) // 1000 = 1s,\nbreak\ncase 'inventori':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nvar reqXp  = 5000 * (Math.pow(2, getLevelingLevel(sender)) - 1)\nbuttons = [\n{ buttonId: 'adventure', buttonText: { displayText: 'Adventure' }, type: 1 }\n]\nZimBotInc.sendButtonText(m.chat, buttons, `📍 𝗣𝗿𝗼𝗳𝗶𝗹𝗲 𝗣𝗹𝗮𝘆𝗲𝗿\\n ┊ Name: ${pushname}\\n ┊ Rank : ${role}\\n ┊ Status : ${elit}\\n ┊ Xp : ${getLevelingXp(sender)}/${reqXp}\\n ┊ Level : ${getLevelingLevel(sender)}\\n🎒 𝗜𝗻𝘃𝗲𝗻𝘁𝗼𝗿𝗶 :\\n ┊ Gold : ${getEmas(sender)}🪙\\n ┊ Money : $${(getBalance(sender, balance))}💰\\n ┊ Iron : ${getBesi(sender)}⛓️\\n ┊ Diamond : ${getDm(sender)}💎\\n ┊ Fish : ${getFish(sender)}🎣`, ZimBotInc.user.name, m)\nbreak\ncase 'sellikan':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nif (args.length < 1) return reply(`Send command *${prefix + command}* amount to sell`)\njmlh = body.slice(10)\nrp = 5 * jmlh\nif (getFish(sender) < jmlh) return reply(`*Your Fish Isn't Enough*`)\nsellFish(sender, jmlh, balance)\naddBalance(sender, rp, balance) \nbuttons = [\n{ buttonId: 'inventori', buttonText: { displayText: 'Inventori' }, type: 1 }\n]\nZimBotInc.sendButtonText(m.chat, buttons, `🛒 *MARKET*\\n ┊ Seller : ${pushname}\\n ┊ Buyer : Admin\\n ┊ Price/Fish : 5\\n ┊ Status : Success\\n ┊ Left FishPrice/Fish : ${getFish(sender)}\\n ┊ Sales Results : $${rp}`,  ZimBotInc.user.name, m)\nbreak\ncase 'sellbesi':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nif (args.length < 1) return reply(`Send command *${prefix + command}* amount to sell`)\njmlh = body.slice(10)\nrp = 10 * jmlh\nif (getBesi(sender) < jmlh) return reply(`Besi Isn't Enough`)\nsellBesi(sender, jmlh, balance)\naddBalance(sender, rp, balance) \nbuttons = [\n{ buttonId: 'inventori', buttonText: { displayText: 'Inventori' }, type: 1 }\n]\nZimBotInc.sendButtonText(m.chat, buttons, `🛒 MARKET\\n ┊ Seller : ${pushname}\\n ┊ Buyer : Admin\\n ┊ Harga/Besi : 10\\n ┊ Status : Sukses\\n ┊ Sisa Besi : ${getBesi(sender)}\\n ┊ Sales Results : $${rp}`, ZimBotInc.user.name, m)\nbreak\ncase 'sellemas':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nif (args.length < 1) return reply(`Send command *${prefix + command}* amount to sell`)\njmlh = body.slice(10)\nrp = 25 * jmlh\nif (getEmas(sender) < jmlh) return reply(`Your Gold Isn't Enough`)\nsellEmas(sender, jmlh, balance)\naddBalance(sender, rp, balance) \nbuttons = [\n{ buttonId: 'inventori', buttonText: { displayText: 'Inventori' }, type: 1 }\n]\nZimBotInc.sendButtonText(m.chat, buttons, `🛒 MARKET\\n ┊ Seller : ${pushname}\\n ┊ Buyer : Admin\\n ┊ Harga/Emas : 25\\n ┊ Status : Sukses\\n ┊ Sisa Emas : ${getEmas(sender)}\\n ┊ Sales Results : $${rp}`, ZimBotInc.user.name, m)\nbreak \ncase 'selldiamond':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nif (args.length < 1) return reply(`Send command *${prefix + command}* amount to sell`)\nttl = body.slice(13)\nvar etoo = 75 * ttl\nif (getDm(sender) < ttl) return reply(`Iron Isn't Enough`)\nsellDm(sender, ttl)\naddBalance(sender, etoo, balance) \nbuttons = [\n{ buttonId: 'inventori', buttonText: { displayText: 'Inventori' }, type: 1 }\n]\nZimBotInc.sendButtonText(m.chat, buttons, `🛒 MARKET\\n ┊ Seller : ${pushname}\\n ┊ Buyer : Admin\\n ┊ Harga/Dm : 75\\n ┊ Status : Sukses\\n ┊ Sisa Diamond : ${getDm(sender)}\\n ┊ Sales Results : $${etoo}`, ZimBotInc.user.name, m)\nbreak \ncase 'mancing':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nikannya = ikan[Math.floor(Math.random() * ikan.length)]\nxp = Math.ceil(Math.random() * 350)\ncoin = randomNomor(50)\t    \nditangkap = Math.ceil(Math.random() * 50)\ncing = await getBuffer(`https://telegra.ph/file/d9b15de4f661808dfd0b9.jpg`)\nsetTimeout( () => {\nvar button = [\n\t\t{ urlButton: { displayText: `Script`, url : `${wame}` } },\n\t\t{ quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n\t\t{ quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n\t\t]\n        var hg = `「 Memancing 」\\n\\n ┊ *Capture:* ${ikannya}\\n ┊ *Total Get:* ${ditangkap} *Fish*\\n ┊ MONEY : $${coin}\\n ┊ EXP : ${xp}Xp`\n        ZimBotInc.sendMessage(from, { caption: hg, location: { jpegThumbnail: cing }, templateButtons: button, footer: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`, mentions: [sender] })\n        .catch ((err) => reply(mess.error))\n}, 6000)\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: 'Managed to Get a Fish . . .' }, { quoted: m })\n}, 5000) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: '🎣 Attracting Kail. . .' }, { quoted: m })\n}, 3000) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: '🎣 Start Fishing . . .' }, { quoted: m })\n}, 1500) // 1000 = 1s,\naddFish(sender, ditangkap)\naddLevelingXp(sender, xp)\naddBalance(sender, coin, balance) \nbreak\ncase 'adventure':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\nngab = ['Avalanche','Volcanic Eruption','Tsunami','Earthquake','Meteor','Demon']\nvar sesuatu = ngab[Math.floor(Math.random() * ngab.length)]\nvar dungeon =['Whetstone','Willow Field','Rodeo','Verdant Blufs','Bull Holland','Fallen Tree','Dellnort','Verona Lush','Leafy Hollow','Chilliad Dome','Garcia','Pine Valley','Santa Florals','Guvero East','Cranbarry','Junever','Aldea Malvada','Green Palms','Green Oasis','Fort Carson','Prickel Pine','Pilson Meadow','Boca Roca','Rocksore East','Camel Toe','Hanky Panky','Fern Ridge','Montgomerry','Flint Yankton','Vespucci','fortress city', 'ravines valley', 'horizon valley', 'cyber city', 'end city', 'templar city', 'pochinki', 'peak','Vertical Zone','Sentainel Country','Night City','Flush City','Royals Canyon','Blackburn','Peterborough','Tarnstead','Jarren’s','Outpost','Landow','Nearon','Kincardine','Aysgarth','Veritas','Openshaw','Bredwardine','Berkton','Wolford','Norwich','Kald','Solaris','Kilead','Pitmerden','Acomb','Eldham','Warcester','Lingmell','Kilead','Cromerth','Wingston','Garmsby','Kingcardine','Perthlochry','Frostford','Hillford','Hardersfield','Tarrin','Holmfirth','Caerleon','Elisyum','Ballaeter','Penshaw','Bradford','Wigston','Accreton','Kameeraska','Ferncombe','Kilerth','Erostey','Carran','Jongvale','Larnwick','Queenstown','Whaelrdrake','Baerney','Wingston','Arkney','Strongfair','Lowestoft','Beggar’s Hole','Shepshed','Perthlochry','Ironforge','Tywardreath','Pontheugh','Foolshope','Hull','Dalmerlington','Aucteraden','Woodpine','Millstone','Windermere','Lancaster','Kirkwall','Rotherhithe','Astrakhan','Watford','Ritherhithe','Krosstoen','Pella’s','Wish','Grimsby','Ayrith','Ampleforth','Skystead','Eanverness','Penshaw','Peatsland','Astrakane','Pontybridge','Caershire','Snowbush','Sutton','Northwich','Hogsfeet','Claethorpes','Sudbury','Cherrytown','Blue Field','Orrinshire','Aempleforth','Garrigill','Jedburgh','Eastbourne','Taedmorden','Venzor','Grasmere','Ubbin','Falls','Violl’s Garden','Glanchester','Bailymena','Arkkukari','Skargness','Cardend','Llanybydder','Faversham','Yellowseed','Carlisle','Cirencester','Aramoor','Furness','Kincardine','Rotherham','Emelle','Boroughton','Carran','Ffestiniog','Mansfield','Huthwaite','Marclesfield','Pavv','Squall’s End','Glenarm','Dragontail','Moressley','Hardersfield','Gilramore','Aria','Ecrin','Clare View Point','Blackburn','Oakheart','Doonatel','Broughton','Carlisle','Murlayfield','Nuxvar']\nanu = fs.readFileSync('./lib/dungeon.js');\nvar ad = dungeon[Math.floor(Math.random() * dungeon.length)]\njsonData = JSON.parse(anu);\nrandIndex = Math.floor(Math.random() * jsonData.length);\nrandKey = jsonData[randIndex];\nhasm = await getBuffer(randKey.result)  \nvar adven = Math.ceil(Math.random() * 1000)\nvar money = Math.ceil(Math.random() * 300)\nsetTimeout( () => {\t\t\nvar button = [\n\t\t{ urlButton: { displayText: `Script`, url : `${wame}` } },\n\t\t{ quickReplyButton: { displayText: `Inventori`, id: `${prefix}inventori` } },\n\t\t{ quickReplyButton: { displayText: `Owner`, id: `${prefix}owner` } }\n\t\t]\n        var hg = `「 DEATH 」\\n\\n *┊ Place*  ${ad}\\n ┊ *MONEY :* $${money}\\n ┊ *EXP :* ${adven}Xp`\n        ZimBotInc.sendMessage(from, { caption: hg, location: { jpegThumbnail: hasm }, templateButtons: button, footer: `ʀᴘɢ ɢᴀᴍᴇ ʙʏ ᴢɪᴍʙᴏᴛ`, mentions: [sender] })\n        .catch ((err) => reply(mess.error))\n}, 7000)\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: `Awass` }, { quoted: m })\n}, 5000) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: `Suddenly There ${sesuatu}` }, { quoted: m })\n}, 3000) // 1000 = 1s,\nsetTimeout( () => {\nZimBotInc.sendMessage(from, { text: `${pushname} On an Adventure` }, { quoted: m })\n}, 1500) // 1000 = 1s,\naddLevelingXp(sender, adven)\naddBalance(sender, money, balance)\nbreak\ncase 'luckyday':\ncase 'luckytime':\nif (!m.isGroup) return reply(mess.group) \nif (!isPetualang) return reply(mess.noPetualang)\n{\nez = Math.ceil(Math.random() * 450)\na = randomNomor(99)\nb = randomNomor(500)\nc = randomNomor(150)\naddBalance(sender, b, balance)\naddLevelingXp(sender, ez)\naddEmas(sender, a)\naddBesi(sender, c)\nbuttons = [\n{ buttonId: `${command}`, buttonText: { displayText: `TRY LUCKY` }, type: 1 }\n]\nZimBotInc.sendButtonText(m.chat, buttons, `🎰 *Lucky*\\n┊ *Money:* $${b}\\n┊ *Gold :* ${a}\\n┊ *Iron :* ${c}\\n┊ *XP :* ${ez}`, ZimBotInc.user.name, m)\n}\nbreak\ncase 'afk': {\n   let user = global.db.users[m.sender]\n   user.afkTime = + new Date\n   user.afkReason = text\n   reply(`${m.pushName} Already Afk${text ? ': ' + text : ''}`)\n }\n break\n/* case 'anyapk': \n const anyApkDl = require(\"any-apk-dl\")\nconst provider = anyApkDl()\n\nprovider.download(\"com.fmwhatsapp\",\"./apks/\").then(res=>{\n    console.log(res);\n})\ncase 'apktes': //Script by zim-bot\n  const downloader = require(\"apk-downloader\")\n\ndownloader.downloadAPK(\"com.microbees.floatingapp\")\n*/\n\n \n \n  /*  case 'donasi': case 'donate': case 'sewabot': case 'sewa': case 'buypremium': case 'donate': {\n   ZimBotInc.sendMessage(m.chat, { image: { url: 'https://i.imgur.com/TfI3QYW.jpg' }, caption: `*𝗛𝗜 𝗕𝗥𝗢 ${m.pushName}*\\n\\n 𝗕𝗢𝗧 𝗥𝗘𝗡𝗧𝗔𝗟 𝗣𝗥𝗜𝗖𝗘\\n 250rands Per Group via Gpay/paytm/phonepe 1 Month\\n\\nFor more details, you can chat with the owner\\nhttps://wa.me/2+447441437150 (ZIM BOT OWNER)\\n\\n𝗗𝗢𝗡𝗔𝗧𝗘 : \\n\\n 𝗙𝗔𝗠𝗣𝗔𝗬 : https://i.imgur.com/TfI3QYW.jpg\\n` }, { quoted: m })\n }\n */\n break\n case 'sc': case 'script': case 'donate': case 'donasi': case 'donate': case 'sewabot': case 'sewa': case 'buypremium': case 'donate': {\n\n  teks = `\n  *ZIM-BOT-V4*\\n\\n*YOUTUBE:* https://youtu.be/KNu-gr2h7bo\\n*GITHUB:* https://youtube.com/@zim-bot\\n\\n*DONATE:* https://www.paypal.com/paypalme/zimbotinc`\n  let buttons = [\n  {buttonId: `rpgmenu`, buttonText: {displayText: 'RPG'}, type: 1}\n  ]\n  let buttonMessage = {\n  image: thumb,\n  jpegThumbnail: global.thumb,\n  caption: teks,\n  footer: `${botname}`,\n  buttons: buttons,\n  headerType: 4,\n  contextInfo:{externalAdReply:{\n  title:\"DONATE ME\",\n  body: \"DRIPS OFC\", \n  showAdAttribution: true,\n  thumbnail: fs.readFileSync(\"Zimbot/drips.jpg\"),\n  mediaType:1,\n  mediaUrl: 'https://youtu.be/KNu-gr2h7bo',\n  sourceUrl: \"https://youtu.be/KNu-gr2h7bog\"\n  }}\n  }\n  ZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })\n  }\n break\n case 'forex': case 'broker': case 'binary': case 'trading': {\n  bentoforex = await getBuffer(picak+'LIVE FOREX')\n  teks = `\n  *ZIM-BOT-V4 FOREX TRADING*\\n\\n*DESCRIPTION:* _Trade with Deriv broker ( formerly called Binary ) link above. Create a Real Synthetic account  You will get to trade famous indices like Volatility 75 Index, Crash, Boom and others. -Minimum deposit as low as 5 dollars.  -You can trade even in weekends,  these indices are available to trade 24 hours a day, 365 days a year. -No noise, Trade with Deriv broker ( formerly called Binary ) link above. The best Forex broker since year 2000. Create a Real Financial or Financial STP account  for currency pairs._\\n\\n*GET STARTED TODAY:*\\n\\n*LINK:* https://track.deriv.com/_hx9O43AkP_tBMfcXPt5VjGNd7ZgqdRLk/1\\n\\n*LINK2:* https://record.binary.com/_Mxrjb7udl0q6tyDIijdDK2Nd7ZgqdRLk/1/\\n\\n*CONTACT:* https://wa.me/+263775482759 or https://wa.me/263784675236_*for help*_`\n  let buttons = [\n  {buttonId: `alive`, buttonText: {displayText: 'BACK'}, type: 1}\n  ]\n  let buttonMessage = {\n  image: bentoforex,\n  jpegThumbnail: bentoforex,\n  caption: teks,\n  footer: `${botname}`,\n  buttons: buttons,\n  headerType: 4,\n  contextInfo:{externalAdReply:{\n  title:\"DONATE ME\",\n  body: \"DRIPS OFC\", \n  showAdAttribution: true,\n  thumbnail: fs.readFileSync(\"Zimbot/drips.jpg\"),\n  mediaType:1,\n  mediaUrl: 'https://youtu.be/KNu-gr2h7bo',\n  sourceUrl: \"https://youtu.be/KNu-gr2h7bog\"\n  }}\n  }\n  ZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })\n  }\n  break\n case 'chat': {\n   if (!isCreator) throw global.owner\n   if (!q) throw 'Option : 1. mute\\n2. unmute\\n3. archive\\n4. unarchive\\n5. read\\n6. unread\\n7. delete'\n   if (args[0] === 'mute') {\n  ZimBotInc.chatModify({ mute: 'Infinity' }, m.chat, []).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'unmute') {\n  ZimBotInc.chatModify({ mute: null }, m.chat, []).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'archive') {\n  ZimBotInc.chatModify({  archive: true }, m.chat, []).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'unarchive') {\n  ZimBotInc.chatModify({ archive: false }, m.chat, []).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'read') {\n  ZimBotInc.chatModify({ markRead: true }, m.chat, []).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'unread') {\n  ZimBotInc.chatModify({ markRead: false }, m.chat, []).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'delete') {\n  ZimBotInc.chatModify({ clear: { message: { id: m.quoted.id, fromMe: true }} }, m.chat, []).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   }\n }\n \n break\n case 'mathquiz': case 'math': {\n   if (kuismath.hasOwnProperty(m.sender.split('@')[0])) throw \"*There are still unfinished match*\"\n   let { genMath, modes } = require('./src/math')\n   if (!text) throw `Mode: ${Object.keys(modes).join(' | ')}\\nExample: ${prefix}math medium`\n   let result = await genMath(text.toLowerCase())\n   ZimBotInc.sendText(m.chat, `*What is the result of: ${result.soal.toLowerCase()}*?\\n\\nTime: ${(result.waktu / 1000).toFixed(2)} seconds`, m).then(() => {\n  kuismath[m.sender.split('@')[0]] = result.jawaban\n   })\n   await sleep(result.waktu)\n   if (kuismath.hasOwnProperty(m.sender.split('@')[0])) {\n  console.log(\"Answer: \" + result.jawaban)\n  reply(\"Time Out\\nAnswer: \" + kuismath[m.sender.split('@')[0]])\n  delete kuismath[m.sender.split('@')[0]]\n   }\n }\n break\n case 'mysoulmate': {\n if (!m.isGroup) throw mess.group\n let member = participants.map(u => u.id)\n let me = m.sender\n let jodoh = member[Math.floor(Math.random() * member.length)]\n let jawab = `👫Your match is\n\n@${me.split('@')[0]} ❤️ @${jodoh.split('@')[0]}`\n let ments = [me, jodoh]\n let buttons = [\n{ buttonId: '❤️', buttonText: { displayText: 'LOVE♥️' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, buttons, jawab, ZimBotInc.user.name, m, {mentions: ments})\n }\n break\n case 'couple': {\n if (!m.isGroup) throw mess.group\n let member = participants.map(u => u.id)\n let orang = member[Math.floor(Math.random() * member.length)]\n let jodoh = member[Math.floor(Math.random() * member.length)]\n let jawab = `@${orang.split('@')[0]} ❤️ @${jodoh.split('@')[0]}\nCiee Whats Going On💖👀`\n let menst = [orang, jodoh]\n let buttons = [\n{ buttonId: '❤️', buttonText: { displayText: 'DATING♥️' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, buttons, jawab, ZimBotInc.user.name, m, {mentions: menst})\n }\n break\n case 'join': {\n   if (!isCreator) throw global.owner\n   if (!text) throw 'Enter the group link!'\n   if (!isUrl(args[0]) && !args[0].includes('whatsapp.com')) throw '*LINK INVALID*'\n   replay(mess.wait)\n   let result = args[0].split('https://chat.whatsapp.com/')[1]\n   await ZimBotInc.groupAcceptInvite(result).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n }\n break\n case 'leave': {\n   if (!isCreator) throw global.owner\n   await ZimBotInc.groupLeave(m.chat).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n }\n break\ncase 'kick': {\nif (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\nlet users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [users], 'remove')\n}\nbreak\ncase 'add': {\nif (!m.isGroup) throw mess.group\nif (!isCreator) throw global.owner\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\nlet users = m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [users], 'add')\n}\nbreak\ncase 'promote': {\nif (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\nlet users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [users], 'promote')\n}\nbreak\ncase 'demote': {\nif (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\nlet users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'\nawait ZimBotInc.groupParticipantsUpdate(m.chat, [users], 'demote')\n}\nbreak\ncase 'block': {\nif (!isCreator) throw global.owner\nlet users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'\nawait ZimBotInc.updateBlockStatus(users, 'block').then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n}\nbreak\ncase 'unblock': {\nif (!isCreator) throw global.owner\nlet users = m.mentionedJid[0] ? m.mentionedJid[0] : m.quoted ? m.quoted.sender : text.replace(/[^0-9]/g, '')+'@s.whatsapp.net'\nawait ZimBotInc.updateBlockStatus(users, 'unblock').then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n}\nbreak\n    case 'setname': case 'setsubject': {\n   if (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\n   if (!text) throw 'Text ?'\n   await ZimBotInc.groupUpdateSubject(m.chat, text).then((res) => reply(mess.success)).catch((err) => reply(jsonformat(err)))\n }\n break\n  case 'setdesc': case 'setdesk': {\n   if (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\n   if (!text) throw 'Text ?'\n   await ZimBotInc.groupUpdateDescription(m.chat, text).then((res) => reply(mess.success)).catch((err) => reply(jsonformat(err)))\n }\n break\n  case 'setppbot': case 'setbotpp': {\n   if (!isCreator) throw global.owner\n   if (!quoted) throw `Send/Reply Image With Caption ${prefix + command}`\n   if (!/image/.test(mime)) throw `Send/Reply Image With Caption ${prefix + command}`\n   if (/webp/.test(mime)) throw `Send/Reply Image With Caption ${prefix + command}`\n   let media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\n   await ZimBotInc.updateProfilePicture(botNumber, { url: media }).catch((err) => fs.unlinkSync(media))\n   reply(mess.success)\n   }\n   break\ncase 'setppgroup': case 'setgrouppp': case 'setgcpp': case 'setppgrup': case 'setppgc': {\n   if (!m.isGroup) throw mess.group\n   if (!isAdmins) throw mess.admin\n   if (!quoted) throw `Send/Reply Image With Caption ${prefix + command}`\n   if (!/image/.test(mime)) throw `Send/Reply Image With Caption ${prefix + command}`\n   if (/webp/.test(mime)) throw `Send/Reply Image With Caption ${prefix + command}`\n   let media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\n   await ZimBotInc.updateProfilePicture(m.chat, { url: media }).catch((err) => fs.unlinkSync(media))\n   reply(mess.success)\n   }\n   break\n   case 'setbio':\n   reply(mess.wait)\nif (!q) return reply('Send orders *#setbio text*')\nZimBotInc.setStatus(`${q}`)\nreply(mess.success)\nbreak\n\ncase 'grupinfo': case 'groupinfo':\ntry{\n var pic = await ZimBotInc.getProfilePicture(m.chat)\n  } catch {\n var pic = 'https://i.ibb.co/Tq7d7TZ/age-hananta-495-photo.png'\n  }\nlet ingfo = `*𝗚𝗥𝗢𝗨𝗣 𝗜𝗡𝗙𝗢*\\n\\n*𝗡𝗔𝗠𝗘 :* ${groupName}\\n*𝗜𝗗 𝗚𝗥𝗢𝗨𝗣:* ${m.chat}\\n*𝗠𝗔𝗗𝗘 :* ${moment(`${groupMetadata.creation}` * 1000).tz('Africa/Harare').format('DD/MM/YYYY HH:mm:ss')}\\n*𝗚𝗥𝗢𝗨𝗣 𝗢𝗪𝗡𝗘𝗥:* @${groupMetadata.owner.split('@')[0]}\\n*𝗔𝗗𝗠𝗜𝗡𝗦 :* ${groupAdmins.length}\\n*𝗠𝗘𝗠𝗕𝗘𝗥𝗦 :* ${participants.length}\\n*𝗗𝗘𝗦𝗖 :* \\n${groupMetadata.desc}`\nds = await getBuffer(pic)\nZimBotInc.sendMessage(m.chat, { image: ds,caption: ingfo, mentions: [groupMetadata.owner] }, { quoted: m})\nbreak\n case 'tagall': case 'tag': {\n   if (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\nlet teks = ` \n ┃*𝐌𝐄𝐒𝐒𝐀𝐆𝐄 : ${q ? q : 'blank'}*\\n\\n\n`\n for (let mem of participants) {\n   teks += `BOTTAG @${mem.id.split('@')[0]}\\n`\n   }\n   ZimBotInc.sendMessage(m.chat, { text: teks, mentions: participants.map(a => a.id) }, { quoted: m })\n   }\n   break\n   case 'hidetag': {\n if (!m.isGroup) throw mess.group\n if (!isAdmins) throw mess.admin\n ZimBotInc.sendMessage(m.chat, { text : q ? q : '' , mentions: participants.map(a => a.id)}, { quoted: m })\n }\n break\n    case 'style': case 'styletext': {\nif (!isPremium && global.db.users[m.sender].limit < 1) return reply(mess.endLimit) // response when limit runs out\ndb.users[m.sender].limit -= 1 // -1 limit\nlet { styletext } = require('./lib/scraper')\nif (!text) throw 'Enter Query text!'\n   let anu = await styletext(text)\n   let teks = `Entered Text:  ${text}\\n\\n`\n   for (let i of anu) {\n  teks += `🔏 *${i.name}* : ${i.result}\\n\\n`\n   }\n   reply(teks)\n    }\n    break\n  case 'vote': {\n if (!m.isGroup) throw mess.group\n if (m.chat in vote) throw `_There are still votes in this chat!_\\n\\n*${prefix}deletevote* - to delete votes`\n if (!text) throw `Enter Reason for Vote, Example: *${prefix + command} Owner is handsome*`\n reply(`Voting starts!\\n\\n*${prefix}upvote* - for yes\\n*${prefix}devote* - for no\\n*${prefix}checkvote* - to check the votes\\n*${prefix}deletevote* - to delete vote`)\n vote[m.chat] = [q, [], []]\n await sleep(1000)\n upvote = vote[m.chat][1]\n devote = vote[m.chat][2]\n teks_vote = `\n┏━━━━━━━━━━⧁\n┃ 𝗨𝗣𝗩𝗢𝗧𝗘\n┃\n┃𝗥𝗘𝗔𝗦𝗢𝗡: ${vote[m.chat][0]} \n┃\n┃*Total:* ${vote[m.chat][1].length}\n┗━━━━━━━━━━⧁\n \n┏━━━━━━━━━━⧁\n┃𝗗𝗘𝗩𝗢𝗧𝗘 \n┃\n┃ *Total:* ${vote[m.chat][2].length}\n┗━━━━━━━━━━⧁\n\n*${prefix}deletevote* - to delete votes`\nlet buttonsVote = [\n  {buttonId: `${prefix}upvote`, buttonText: {displayText: '𝗨𝗣𝗩𝗢𝗧𝗘'}, type: 1},\n  {buttonId: `${prefix}devote`, buttonText: {displayText: '𝗗𝗘𝗩𝗢𝗧𝗘'}, type: 1}\n]\n\n let buttonMessageVote = {\n   text: teks_vote,\n   footer: ZimBotInc.user.name,\n   buttons: buttonsVote,\n   headerType: 1\n }\n ZimBotInc.sendMessage(m.chat, buttonMessageVote)\n    }\n break\n  case 'upvote': {\n if (!m.isGroup) throw mess.group\n if (!(m.chat in vote)) throw `_*no voting in this group!*_\\n\\n*Type ${prefix}vote* - to start voting`\n isVote = vote[m.chat][1].concat(vote[m.chat][2])\n wasVote = isVote.includes(m.sender)\n if (wasVote) throw 'You have Voted'\n vote[m.chat][1].push(m.sender)\n menvote = vote[m.chat][1].concat(vote[m.chat][2])\n teks_vote = `\n┏━⧀ *VOTE* ⧁\n┃*𝗥𝗘𝗔𝗦𝗢𝗡:* ${vote[m.chat][0]}\n┃\n┃ 𝗨𝗣𝗩𝗢𝗧𝗘 ༻\n┃\n┃ Total: ${vote[m.chat][1].length}\n┃${vote[m.chat][1].map((v, i) => `├ ${i + 1}. @${v.split`@`[0]}`).join('\\n')}\n┃\n╰━━━━━━━━━━━━⧁\n\n┏━━⧀𝗗𝗘𝗩𝗢𝗧𝗘⧁\n┃ \n┃ Total: ${vote[m.chat][2].length}\n┃${vote[m.chat][2].map((v, i) => `├ ${i + 1}. @${v.split`@`[0]}`).join('\\n')}\n┃\n╰━━━━━━━━━━━━━⧁\n\n*${prefix}hapusvote* - to delete votes`\n let buttonsUpvote = [\n {buttonId: `${prefix}upvote`, buttonText: {displayText: 'UPVOTE'}, type: 1},\n {buttonId: `${prefix}devote`, buttonText: {displayText: 'DEVOTE'}, type: 1}\n ]\n\n let buttonMessageUpvote = {\n   text: teks_vote,\n   footer: ZimBotInc.user.name,\n   buttons: buttonsUpvote,\n   headerType: 1,\n   mentions: menvote\n}\n ZimBotInc.sendMessage(m.chat, buttonMessageUpvote)\n    }\nbreak\n   case 'devote': {\n if (!m.isGroup) throw mess.group\n if (!(m.chat in vote)) throw `_*no voting in this group!*_\\n\\n*${prefix}vote* - to start voting`\n isVote = vote[m.chat][1].concat(vote[m.chat][2])\n wasVote = isVote.includes(m.sender)\n if (wasVote) throw 'You Have Voted'\n vote[m.chat][2].push(m.sender)\n menvote = vote[m.chat][1].concat(vote[m.chat][2])\n teks_vote = `\n\n*𝗗𝗘𝗩𝗢𝗧𝗘:* ${vote[m.chat][0]}\n\n┏༺ 𝗨𝗣𝗩𝗢𝗧𝗘 ༻\n┃\n┃ Total: ${vote[m.chat][1].length}\n${vote[m.chat][1].map((v, i) => `├ ${i + 1}. @${v.split`@`[0]}`).join('\\n')}\n┃\n╰━━━━━━━━━━\n\n┏༺ 𝗗𝗘𝗩𝗢𝗧𝗘 ༻\n┃\n┃ Total: ${vote[m.chat][2].length}\n${vote[m.chat][2].map((v, i) => `├ ${i + 1}. @${v.split`@`[0]}`).join('\\n')}\n┃\n┗━━━━━━━━━━━━\n\n*${prefix}hapusvote* - to delete votes`\n let buttonsDevote = [\n {buttonId: `${prefix}upvote`, buttonText: {displayText: 'UPVOTE'}, type: 1},\n {buttonId: `${prefix}devote`, buttonText: {displayText: 'DEVOTE'}, type: 1}\n ]\n\n let buttonMessageDevote = {\n   text: teks_vote,\n   footer: ZimBotInc.user.name,\n   buttons: buttonsDevote,\n   headerType: 1,\n   mentions: menvote\n }\n ZimBotInc.sendMessage(m.chat, buttonMessageDevote)\n}\n break\n    \ncase 'checkvote':\nif (!m.isGroup) throw mess.group\nif (!(m.chat in vote)) throw `_*no voting in this group!*_\\n\\n*${prefix}vote* - to start voting`\nteks_vote = `༼༺⋋ 𝗩𝗢𝗧𝗘 ⋌༻༽\n\n*𝗥𝗘𝗔𝗦𝗢𝗡:* ${vote[m.chat][0]}\n\n┌༺ 𝗨𝗣𝗩𝗢𝗧𝗘 ༻\n \n├ Total: ${upvote.length}\n${vote[m.chat][1].map((v, i) => `├ ${i + 1}. @${v.split`@`[0]}`).join('\\n')}\n \n└────\n\n┌༺ 𝗗𝗘𝗩𝗢𝗧𝗘 ༻\n \n├ Total: ${devote.length}\n${vote[m.chat][2].map((v, i) => `├ ${i + 1}. @${v.split`@`[0]}`).join('\\n')}\n \n└────\n\n*${prefix}hapusvote* - to delete votes\n\n\n©${ZimBotInc.user.id}\n`\nZimBotInc.sendTextWithMentions(m.chat, teks_vote, m)\nbreak\ncase 'deletevote': case'delvote': case 'hapusvote': {\n if (!m.isGroup) throw mess.group\n if (!(m.chat in vote)) throw `_*tidak ada voting digrup ini!*_\\n\\n*${prefix}vote* - to start voting`\n delete vote[m.chat]\n reply('*Successfully deleted vote session in this group*')\n    }\n break\n  case 'group': case 'grup': {\n   if (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\n   if (args[0] === 'close'){\n  await ZimBotInc.groupSettingUpdate(m.chat, 'announcement').then((res) => reply(`Successful closing the group`)).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'open'){\n  await ZimBotInc.groupSettingUpdate(m.chat, 'not_announcement').then((res) => reply(`Successful Opening The Group`)).catch((err) => reply(jsonformat(err)))\n   } else {\n   let buttons = [\n{ buttonId: 'group open', buttonText: { displayText: 'OPEN' }, type: 1 },\n{ buttonId: 'group close', buttonText: { displayText: 'CLOSE' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, buttons, `Group Mode`, ZimBotInc.user.name, m)\n\n}\n }\n break\n case 'editinfo': {\n   if (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\nif (args[0] === 'open'){\n   await ZimBotInc.groupSettingUpdate(m.chat, 'unlocked').then((res) => reply(`Successfully opened edit group Info`)).catch((err) => reply(jsonformat(err)))\n} else if (args[0] === 'close'){\n   await ZimBotInc.groupSettingUpdate(m.chat, 'locked').then((res) => reply(`Successfully Close Edit Group Info`)).catch((err) => reply(jsonformat(err)))\n} else {\nlet buttons = [\n{ buttonId: 'editinfo open', buttonText: { displayText: 'OPEN' }, type: 1 },\n{ buttonId: 'editinfo close', buttonText: { displayText: 'CLOSE' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, buttons, `*GROUP SESSION*`, ZimBotInc.user.name, m)\n\n }\n }\n break\n /*\ncase 'chatbot':\nif (isCreator) throw mess.owner\nif (args[0] === 'on') {\nif (isChatbot) return reply('*already activated*')\nchatbot.push(botNumber)\nreply('*chatbot on*')\n} else if (args[0] === 'off') {\nif (!isChatbot) return reply('*already deactivated*')\nvar ini = chatbot.indexOf(botNumber)\nchatbot.splice(ini, 1)\nreply('*chatbot off*')\n} else  {\nlet buttons = [\n{ buttonId: 'chatbot on', buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: 'chatbot off', buttonText: { displayText: 'OFF' }, type: 1 }\n ]\n await ZimBotInc.sendButtonText(m.chat, buttons, `*CHATBOT SESSION*`, ZimBotInc.user.name, m)\n}\n*/\n break\ncase 'chatbot': {\nif (!isCreator) throw mess.owner\nif (args[0] === \"on\") {\nif (db.settings[botNumber].chatbot) return reply(`*chatbot already on okay*`)\ndb.settings[botNumber].chatbot = true\nreply(`*chatbot on enjoy talking to me okay*`)\n} else if (args[0] === \"off\") {\nif (!db.settings[botNumber].chatbot) return reply(`*Already off okay*`)\ndb.settings[botNumber].chatbot = false\nreply(`*It was nice to chat with you goodbye _chatbot off_*`)\n} else {\n let drips = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ʟᴏᴄᴀʟ ᴏɴʟʏ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n  } \nbreak\ncase 'privatechat': {\nif (!isCreator) throw mess.owner\nif (args[0] === \"on\") {\nif (db.settings[botNumber].privatechat) return reply(`*chatbot already on okay*`)\ndb.settings[botNumber].privatechat = true\nreply(`*chatbot on enjoy talking to me okay*`)\n} else if (args[0] === \"off\") {\nif (!db.settings[botNumber].privatechat) return reply(`*Already off okay*`)\ndb.settings[botNumber].privatechat = false\nreply(`*It was nice to chat with you goodbye _chatbot off_*`)\n} else {\n let dripsu = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, dripsu, `*┃🔏ʟᴏᴄᴀʟ ᴏɴʟʏ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n  } \ncase 'chatgpt': {\nif (!isCreator) throw mess.owner\nif (args[0] === \"on\") {\nif (db.settings[botNumber].chatgpt) return reply(`*Artificial Intelligence(AI) chatgpt already on okay*`)\ndb.settings[botNumber].chatgpt = true\nreply(`*Artificial Intelligence(AI) chatgpt on enjoy learning from me okay*`)\n} else if (args[0] === \"off\") {\nif (!db.settings[botNumber].chatgpt) return reply(`*Artificial Intelligence(AI) chatgpt off okay*`)\ndb.settings[botNumber].chatgpt = false\nreply(`*It was nice to chat with you goodbye _Artificial Intelligence(AI) chatgpt off_*`)\n} else {\n let dripsu = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, dripsu, `*┃🔏ᴄʜᴀᴛɢᴘᴛ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n}\nbreak \ncase 'welcome': {\n  if (!m.isGroup) throw mess.group\n  if (!isAdmins)  throw mess.admin\n  if (args[0] === \"on\") {\n  if (db.chats[m.chat].isWelcome) return reply(`*Welcome already on okay*`)\n  db.chats[m.chat].isWelcome = true\n  reply(`*welcome on*`)\n  } else if (args[0] === \"off\") {\n  if (!db.chats[m.chat].isWelcome) return reply(`*Already off okay*`)\n  db.chats[m.chat].isWelcome = false\n  reply(`*welcome off*`)\n  } else {\n   let drips = [\n  { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n  { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n    ]\n    await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴡᴇʟᴄᴏᴍᴇ ᴍᴏᴅᴇ🔏┃**`, ZimBotInc.user.name, m)\n  }\n    }   \n  break\n case 'localonly': {\n  if (!m.isGroup) throw mess.group\n  if (!isAdmins)  throw mess.admin\n  if (args[0] === \"on\") {\n  if (db.chats[m.chat].localonly) return reply(`*🤖ʟᴏᴄᴀʟ ᴏɴʟʏ ᴀʟʀᴇᴀᴅʏ ᴏɴ ᴏᴋᴀʏ*`)\n  db.chats[m.chat].localonly = true\n  reply(`*🤖ʟᴏᴄᴀʟ ᴏɴʟʏ ᴏɴ*`)\n  } else if (args[0] === \"off\") {\n  if (!db.chats[m.chat].localonly) return reply(`*🧸ᴀʟʀᴇᴀᴅʏ ᴏғғ ᴏᴋᴀʏ*`)\n  db.chats[m.chat].localonly = false\n  reply(`*🤖ʟᴏᴄᴀʟ ᴏɴʟʏ ᴏғғ*`)\n  } else {\n   let drips = [\n  { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n  { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n    ]\n    await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ʟᴏᴄᴀʟ ᴏɴʟʏ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n  }\n    }   \n  break \n  case 'grouponly': {\n    if (!isCreator) throw mess.owner\n    if (args[0] === \"on\") {\n    if (db.settings[botNumber].grouponly) return reply(`*Grouponly already on okay*`)\n    db.settings[botNumber].grouponly = true\n    reply(`*grouponly on*`)\n    } else if (args[0] === \"off\") {\n    if (!db.settings[botNumber].grouponly) return reply(`*Grouponly Already off okay*`)\n    db.settings[botNumber].grouponly = false\n    reply(`*Grouponly off*`)\n    } else {\n     let drips = [\n    { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n    { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n      ]\n      await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ɢʀᴏᴜᴘ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n    }\n      } \n  break\n  case 'autoblock': {\n    if (!isCreator) throw mess.owner\n    if (args[0] === \"on\") {\n    if (db.settings[botNumber].autoblock) return reply(`*Autoblock already on okay*`)\n    db.settings[botNumber].autoblock = true\n    reply(`*Autoblock on*`)\n    } else if (args[0] === \"off\") {\n    if (!db.settings[botNumber].autoblock) return reply(`*Autoblock Already off okay*`)\n    db.settings[botNumber].autoblock = false\n    reply(`*Autoblock off*`)\n    } else {\n     let drips = [\n    { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n    { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n      ]\n      await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀᴜᴛᴏʙʟᴏᴄᴋ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n    }\n      } \n  break\n//-----GROUP---\\\\\n\n//--CREATED BY DRIPS--\\\\\n\ncase 'antiwame': {\n   if (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\n   if (args[0] === \"on\") {\n   if (db.chats[m.chat].wame) return reply(`Already Activated`)\n   db.chats[m.chat].wame = true\n   reply(`Anti Wa.me Activated!`)\n   } else if (args[0] === \"off\") {\n   if (!db.chats[m.chat].wame) return reply(`Already deactivated`)\n   db.chats[m.chat].wame = false\n   reply(`Anti Wa.me is not activated!`)\n   } else {\n    let buttons = [\n{ buttonId: 'antiwame on', buttonText: { displayText: 'On' }, type: 1 },\n{ buttonId: 'antiwame off', buttonText: { displayText: 'Off' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, buttons, `Mode Anti Wa.me`, ZimBotInc.user.name, m)\n   }\n}\nbreak\n   case 'mute': {\n   if (!m.isGroup) throw mess.group\n   if (!isAdmins) throw mess.admin\n   if (args[0] === \"on\") {\n   if (db.chats[m.chat].mute) return reply(`Already activated`)\n   db.chats[m.chat].mute = true\n   reply(`${ZimBotInc.user.name} has been muted in this group !`)\n   } else if (args[0] === \"off\") {\n   if (!db.chats[m.chat].mute) return reply(`Already deactivated`)\n   db.chats[m.chat].mute = false\n   reply(`${ZimBotInc.user.name} has been unmuted in this group!`)\n   } else {\n    let buttons = [\n{ buttonId: 'mute on', buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: 'mute off', buttonText: { displayText: 'OFF' }, type: 1 }\n  ]\n  await ZimBotInc.sendButtonText(m.chat, buttons, `Mute Bot`, ZimBotInc.user.name, m)\n   }\n}\nbreak\ncase 'antilink': {\n if (!m.isGroup) throw mess.group\n if (!isBotAdmins) throw mess.botAdmin\n if (!isAdmins) throw mess.admin\n if (args[0] === \"on\") {\n if (db.chats[m.chat].antilink) return reply(`*Already on umm okay*`)\n db.chats[m.chat].antilink = true\n reply(`*Antilink active*`)\n } else if (args[0] === \"off\") {\n if (!db.chats[m.chat].antilink) return reply(`*Already off okay*`)\n db.chats[m.chat].antilink = false\n reply(`*Antilink disabled*`)\n } else {\nlet drips = [\n{ buttonId: 'antilink on', buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: 'antilink off', buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪʟɪɴᴋ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n}\nbreak\ncase 'antiytchannel': case 'antilinkyoutubechannel': case 'antiytchannel': {\nif (!m.isGroup) throw mess.group\nif (!isBotAdmins) throw mess.botAdmin\nif (!isAdmins) throw mess.admin\nif (args[0] === \"on\") {\nif (db.chats[m.chat].antiytchannel) return reply(`*Already on umm okay*`)\ndb.chats[m.chat].antiytchannel = true\nreply(`*Antilink active*`)\n} else if (args[0] === \"off\") {\nif (!db.chats[m.chat].antiytchannel) return reply(`*Already off okay*`)\ndb.chats[m.chat].antiytchannel = false\nreply(`*Antilink disabled*`)\n} else {\nlet drips = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪʏᴛ ʟɪɴᴋ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n}\nbreak\n case 'antilinkinstagram': case 'adripsantiig': case 'antiinsta': {\nif (!m.isGroup) throw mess.group\nif (!isBotAdmins) throw mess.botAdmin\nif (!isAdmins) throw mess.admin\nif (args[0] === \"on\") {\nif (db.chats[m.chat].antiinstagram) return reply(`*Already on umm okay*`)\ndb.chats[m.chat].antiinstagram= true\nreply(`*Antilink active*`)\n} else if (args[0] === \"off\") {\nif (!db.chats[m.chat].antiinstagram) return reply(`*Already off okay*`)\ndb.chats[m.chat].antiinstagram = false\nreply(`*Antilink disabled*`)\n} else {\n let drips = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n ]\n await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪ ɪɴsᴛᴀ ʟɪɴᴋ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n}\nbreak\ncase 'antilinkfacebook': case 'antifb': {\n if (!m.isGroup) throw mess.group\n if (!isBotAdmins) throw mess.botAdmin\n if (!isAdmins) throw mess.admin\n if (args[0] === \"on\") {\n if (db.chats[m.chat].antifb) return reply(`*Already on umm okay*`)\n db.chats[m.chat].antifb = true\n reply(`*Antilink active*`)\n } else if (args[0] === \"off\") {\n if (!db.chats[m.chat].antifb) return reply(`*Already off okay*`)\n db.chats[m.chat].antifb = false\n reply(`*Antilink disabled*`)\n } else {\n  let drips = [\n    { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n    { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪ ғʙ ʟɪɴᴋs ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n }\n  }\nbreak\ncase 'antitelegram': case 'adripsantitele': {    \n if (!m.isGroup) throw mess.group\n if (!isBotAdmins) throw mess.botAdmin\n if (!isAdmins) throw mess.admin\n if (args[0] === \"on\") {\n if (db.chats[m.chat].antitelegram) return reply(`*Already on umm okay*`)\n db.chats[m.chat].antitelegram = true\n reply(`*Antilink active*`)\n } else if (args[0] === \"off\") {\n if (!db.chats[m.chat].antitelegram) return reply(`*Already off okay*`)\n db.chats[m.chat].antitelegram = false\n reply(`*Antilink disabled*`)\n } else {\nlet drips = [\n  { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n  { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n   ]\n   await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪ ᴛᴇʟᴇ ʟɪɴᴋs ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n }\n}\nbreak\ncase 'antivn': case 'antiaudio': case 'antivoicenote': case 'antivoice': {\n  if (!m.isGroup) throw mess.group\n  if (!isBotAdmins) throw mess.botAdmin\n  if (!isAdmins) throw mess.admin\n  if (args[0] === \"on\") {\n  if (db.chats[m.chat].antivn) return reply(`*Already on umm okay*`)\n  db.chats[m.chat].antivn = true\n  reply(`*Antivn active*`)\n  } else if (args[0] === \"off\") {\n  if (!db.chats[m.chat].antivn) return reply(`*Already off okay*`)\n  db.chats[m.chat].antivn = false\n  reply(`*Antivn disabled*`)\n  } else {\n   let drips = [\n     { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n     { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n ]\n await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪ ᴠɴ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n  }\n   }\n break\n case 'antisticker': case 'nostickers': {\nif (!m.isGroup) throw mess.group\nif (!isBotAdmins) throw mess.botAdmin\nif (!isAdmins) throw mess.admin\nif (args[0] === \"on\") {\nif (db.chats[m.chat].antisticker) return reply(`*Already on umm okay*`)\ndb.chats[m.chat].antisticker = true\nreply(`*Antisticker active*`)\n} else if (args[0] === \"off\") {\nif (!db.chats[m.chat].antisticker) return reply(`*Already off okay*`)\ndb.chats[m.chat].antisticker = false\nreply(`*Antisticker disabled*`)\n} else {\nlet drips = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪ sᴛɪᴄᴋᴇʀ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n}\nbreak\ncase 'antiphoto': case 'antipic': {\nif (!m.isGroup) throw mess.group\nif (!isBotAdmins) throw mess.botAdmin\nif (!isAdmins) throw mess.admin\nif (args[0] === \"on\") {\nif (db.chats[m.chat].antiphoto) return reply(`*Already on umm okay*`)\ndb.chats[m.chat].antiphoto = true\nreply(`*Antiphoto active*`)\n} else if (args[0] === \"off\") {\nif (!db.chats[m.chat].antiphoto) return reply(`*Already off okay*`)\ndb.chats[m.chat].antiphoto = false\nreply(`*Antiphoto disabled*`)\n} else {\nlet drips = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ʟᴏᴄᴀʟ ᴏɴʟʏ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n}\nbreak\ncase 'antivideo': case 'antivid': {\n  if (!m.isGroup) throw mess.group\n  if (!isBotAdmins) throw mess.botAdmin\n  if (!isAdmins) throw mess.admin\n  if (args[0] === \"on\") {\n  if (db.chats[m.chat].antivideo) return reply(`*Already on umm okay*`)\n  db.chats[m.chat].antivideo = true\n  reply(`*Antivideo active*`)\n  } else if (args[0] === \"off\") {\n  if (!db.chats[m.chat].antivideo) return reply(`*Already off okay*`)\n  db.chats[m.chat].antivideo = false\n  reply(`*Antivideo disabled*`)\n  } else {\n   let drips = [\n     { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n     { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n ]\n await ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪᴠɪᴅᴇᴏ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n  }\n   }\n break\ncase 'antiviewonce': case 'antionce':\n\nif (!m.key.fromMe && !isCreator)  throw mess.owner\nif (args[0] === \"on\") {\nif (global.db.chats[m.chat].antionce) return reply(`*Already activated*`)\nglobal.db.chats[m.chat].antionce = true\nreply(`${command} *Successfully Activated*`)\n} else if (args[0] === \"off\") {\n  if (!global.db.chats[m.chat].antionce) return reply(`*Already deactivated*`)\nglobal.db.chats[m.chat].antionce = false\nreply(`${command} *Successfully Deactivated*`)\n   } else {\nlet drips = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪᴠɪᴇᴡ ᴏɴᴄᴇ ᴍᴏᴅᴇ🔏┃*`, `${global.botname}`, m)\n}\nbreak\ncase 'antitiktok': case 'aantitik': {\nif (!m.isGroup) throw mess.group\nif (!isBotAdmins) throw mess.botAdmin\nif (!isAdmins) throw mess.admin\nif (args[0] === \"on\") {\nif (db.chats[m.chat].antitiktok) return reply(`*Already on umm okay*`)\ndb.chats[m.chat].antitiktok = true\nreply(`*Antilink active*`)\n} else if (args[0] === \"off\") {\nif (!db.chats[m.chat].antitiktok) return reply(`*Already off okay*`)\ndb.chats[m.chat].antitiktok = false\nreply(`*Antilink disabled*`)\n} else {\nlet drips = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪᴛɪᴋᴛᴏᴋ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n}\n}\nbreak\ncase 'antilinkall': {\nif (!m.isGroup) throw mess.group\nif (!isBotAdmins) throw mess.botAdmin\nif (!isAdmins) throw mess.admin\nif (args[0] === \"on\") {\n if (db.chats[m.chat].antilinkall) return reply(`*Already on umm okay*`)\n db.chats[m.chat].antilinkall = true\n reply(`*Antilink active*`)\n } else if (args[0] === \"off\") {\n if (!db.chats[m.chat].antilinkall) return reply(`*Already off okay*`)\n db.chats[m.chat].antilinkall = false\n reply(`*Antilink disabled*`)\n } else {\n  let drips = [\n    { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n    { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, drips, `*┃🔏ᴀɴᴛɪʟᴏɴᴋ ᴀʟʟ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n }\n }\nbreak\ncase 'adripsantitwt': case 'antitwitter': case 'antilinktwit': {\nif (!m.isGroup) throw mess.group\nif (!isBotAdmins) throw mess.botAdmin\nif (!isAdmins) throw mess.admin\nif (args[0] === \"on\") {\nif (db.chats[m.chat].antitwitter) return reply(`*Already on umm okay*`)\ndb.chats[m.chat].antitwitter = true\nreply(`*Antilink active*`)\n} else if (args[0] === \"off\") {\nif (!db.chats[m.chat].antitwitter) return reply(`*Already off okay*`)\ndb.chats[m.chat].antitwitter = false\nreply(`*Antilink disabled*`)\n} else {\n let dripsi = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n ]\n await ZimBotInc.sendButtonText(m.chat, dripsi, `*┃🔏ᴀɴᴛɪ ᴛᴡɪᴛᴛᴇʀ ʟɪɴᴋ ᴍᴏᴅᴇ🔏┃*`, ZimBotInc.user.name, m)\n }\n}\nbreak\ncase 'antibadword': {\t\t\nif (!m.isGroup) return reply(mess.group)\nif (!isBotAdmins) return reply(mess.botAdmin)\nif (!isAdmins && !isCreator) return reply(mess.admin)\nif (args[0] === \"on\") {\nif (antiToxic) return reply('*Already activated*')\ndripsanti.push(from)\nreply('*Success turning on anti rude in this group*')\nvar group = await ZimBotInc.groupMetadata(from)\nvar members = group['participants']\nvar mems = []\nmembers.map(async adm => {\nmems.push(adm.id.replace('c.us', 's.whatsapp.net'))\n})\nZimBotInc.sendMessage(from, {text: `*▊▊▊ANTILINK RUDE▊▊▊*\\n\\n*no hate speech anymore, watch space im going to kick dumps*`, contextInfo: { mentionedJid : mems }}, {quoted:m})\n} else if (args[0] === \"off\") {\nif (!antiToxic) return reply('*Already deactivated*')\nlet off = dripsanti.indexOf(from)\ndripsanti.splice(off, 1)\nreply('*Success in turning off antirude in this group happy now*')\n} else {\n let buttons = [\n { buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n { buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n ]\n await ZimBotInc.sendButtonText(m.chat, buttons, `*▊▊▊ANTI BADWORDS▊▊▊*\\n\\n.`, `${global.botname}`, m)\n }\n }\n \nbreak\n case 'linkgroup': case 'grouplink': case 'gclink': case 'linkgc':{ \n   if (!m.isGroup) throw mess.group\n   let response = await ZimBotInc.groupInviteCode(m.chat)\n   ZimBotInc.sendText(m.chat, `https://chat.whatsapp.com/${response}\\n\\nLink of: ${groupMetadata.subject} Group`,m ,{ detectLink: true })\n}\n   break\n case 'nsfw': {\t \t\t\t\n if (!m.isGroup) return reply(mess.group)\n if (!isBotAdmins) return reply(mess.botAdmin)\n if (!isAdmins && !isCreator) return reply(mess.admin)\n if (args[0] === \"on\") {\n if (isAntinsfw) return reply('*Already activated*')\n dripsno.push(from)\n reply('*hahaha turning on horny mood in this group happy now*')\n var group = await ZimBotInc.groupMetadata(from)\n var members = group['participants']\n var mems = []\n members.map(async adm => {\n mems.push(adm.id.replace('c.us', 's.whatsapp.net'))\n })\n ZimBotInc.sendMessage(from, {text: `*horny mood activated everyone be ready for masturbation*`, contextInfo: { mentionedJid : mems }}, {quoted:m})\n } else if (args[0] === \"off\") {\n if (!isAntinsfw) return reply('*Already deactivated*')\n let off = dripsno.indexOf(from)\n dripsno.splice(off, 1)\n reply('*Success turning off horny mood in this group*')\n } else {\nlet button = [\n{ buttonId: `${command} on`, buttonText: { displayText: 'ON' }, type: 1 },\n{ buttonId: `${command} off`, buttonText: { displayText: 'OFF' }, type: 1 }\n]\nawait ZimBotInc.sendButtonText(m.chat, button, `*▊▊▊HORNY MOOD▊▊▊*\\n\\n*TURN IT ON SO PEOPLE THEY WILL START TO MASTURBATE LOL*`, `${global.botname}`, m)\n}\n}\nbreak\n case 'ephemeral': {\n   if (!m.isGroup) throw mess.group\n   if (!isBotAdmins) throw mess.botAdmin\n   if (!isAdmins) throw mess.admin\n   if (!text) throw 'Enter the enable/disable value, For Example ${prefix}ephemeral enable'\n   if (args[0] === 'enable') {\n  await ZimBotInc.sendMessage(m.chat, { disappearingMessagesInChat: WA_DEFAULT_EPHEMERAL }).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   } else if (args[0] === 'disable') {\n  await ZimBotInc.sendMessage(m.chat, { disappearingMessagesInChat: false }).then((res) => reply(jsonformat(res))).catch((err) => reply(jsonformat(err)))\n   }\n }\n break\n case 'translate': case 'terjemahan': case 'tr': {\n   tes = await fetchJson (`https://megayaa.herokuapp.com/api/translate?to=en&kata=${args.join(\" \")}`)\n   Infoo = tes.info\n   Detek = tes.translate\n   reply(`🌐Translate : ${Detek}\\n`)\n   }\n   break\n  /* case 'translate': case 'terjemahan': case 'tr': {\n    tes = await fetchJson (`https://soccer.sportmonks.com/api/v2.0/livescores&api_token=y5TQaQFczQuU3awKmWEi1eD1Sy3U6WuTkNZAw2fdQEtHDRwgJpkCZVUf9DYb`)\n    Infoo = tes.info\n    Detek = tes.translate\n    reply(`🌐Translate : ${Detek}\\n`)\n    }\n*/\nbreak\n\n break\n case 'git': case 'gitclone':\nreply(mess.wait)\n let regex1 = /(?:https|git)(?::\\/\\/|@)github\\.com[\\/:]([^\\/:]+)\\/(.+)/i\n if(!args[0]) throw 'link github  EXAMPLE: https://youtube.com/@zim-bot/zim-bot-md'\nif (!regex1.test(args[0])) throw 'link!'\n   let [, user, repo] = args[0].match(regex1) || []\n    repo = repo.replace(/.git$/, '')\n    let url = `https://api.github.com/repos/${user}/${repo}/zipball`\n    let filename = (await fetch(url, {method: 'HEAD'})).headers.get('content-disposition').match(/attachment; filename=(.*)/)[1]\n    // 'attachment; filenameq=ZidniGanz.zip'\n    reply(`*Please wait, sending repository..*`)\n    ZimBotInc.sendMessage(m.chat, { document: { url: url }, fileName: filename+'.zip', mimetype: 'application/zip' , quoted: m,contextInfo: { externalAdReply:{\n      title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n      body:\"SUB DRIPS OFC\",\n      showAdAttribution: true,\n      mediaType:2,\n      thumbnail: fs.readFileSync('./drips.jpg'),\n      mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \n      sourceUrl: `https://youtu.be/KNu-gr2h7bo`,\n      }}\n      })\n \n break\n case 'tagme': {\n   ZimBotInc.sendMessage(m.chat, {text:`@${m.sender.split(\"@\")[0]}`, contextInfo:{mentionedJid:[m.sender]}}, {quoted:m})\n   }\n break\n case 'truth':\n\t\t\t\tconst trut =['Have you loved anyone? How long?','If you can or if you want, outside school/college Who will you make friends? (May be different / high school)','What is your biggest fear?','Have you liked a people and felt that person likes you too?','Who is your ex-girlfriend?','What makes you happy when you are sad?','Ever loved someone? what does it feels like?','Have you ever been in an affair?','The most feared thing','Who is the most influential person to your life?','What is the proud thing you did this year?',' Who can make you smile?','Who is the person you truly love? What is the reason? ','Mention the incident that makes you hurt that you still remember','What are the achievements that have been crushed on this year?','What is your worst habit when at school?']\n\t\t\t\tconst ttrth = trut[Math.floor(Math.random() * trut.length)]\n\t\t\t\ttruteh = await getBuffer(`https://i.ibb.co/305yt26/bf84f20635dedd5dde31e7e5b6983ae9.jpg`)\n\t\t\tZimBotInc.sendMessage(m.chat, {image: truteh, caption: '*Truth*\\n\\n'+ ttrth, quoted: m,contextInfo: { externalAdReply:{\n        title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n        body:\"SUB DRIPS OFC\",\n        showAdAttribution: true,\n        mediaType:2,\n        thumbnail: fs.readFileSync(`./drips.jpg`) ,\n        mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \n        sourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\nbreak\ncase 'ghsearch': \n       case 'githubsearch': \n       case 'searchgithub':\n             if (!q) return reply('*What are you looking for?*')\n             let pomi = await fetch('https://api.github.com/search/repositories?q='+q)\n            let dhumi = await pomi.json()\n             if (pomi.status !== 200) throw dhumi\n             str = dhumi.items.map((repo, index) => {\n             return `\n${1 + index}. *${repo.full_name}*${repo.fork ? '*FORKS*' : ''}\n${repo.html_url}\n*CREATED ON:* ${formatDate(repo.created_at)}\n*LAST UPDATED ON:* ${formatDate(repo.updated_at)}\n👁  ${repo.watchers}   🍴  ${repo.forks}   ⭐ ${repo.stargazers_count}\n${repo.open_issues} *ISSUES:*${repo.description ? `\n*DESCRIPTION:*\\n${repo.description}` : ''}\n*CLONE:* $ git clone ${repo.clone_url}\n`.trim()\n}).join('\\n\\n')\n            reply(str)\nbreak\n case 'delete': case 'del': {\n   if (!m.quoted) throw false\n   let { chat, fromMe, id, isBaileys } = m.quoted\n   if (!isBaileys) throw '*The message was not sent by a bot💥*'\n   ZimBotInc.sendMessage(m.chat, { delete: { remoteJid: m.chat, fromMe: true, id: m.quoted.id, participant: m.quoted.sender } })\n }\n break\n case 'bcgc': case 'bcgroup': {\n   if (!isCreator) throw global.owner\n   if (!text) throw `Where is the text?\\n\\nExample : ${prefix + command} hello guys, am back`\n   let getGroups = await ZimBotInc.groupFetchAllParticipating()\n   let groups = Object.entries(getGroups).slice(0).map(entry => entry[1])\n   let anu = groups.map(v => v.id)\n   reply(`Send Broadcast To ${anu.length} Group Chat, Finish Time ${anu.length * 1.5} second`)\n   for (let i of anu) {\n  await sleep(1500)\n  let btn = [{\n urlButton: {\n  displayText: 'SUBSCRIBE',\n  url: 'https://youtube.ccom/c/DRIPSOFC'\n }\n  }, {\n callButton: {\n  displayText: 'OWNER',\n  phoneNumber: '+27 634-090-0203'\n }\n  }, {\n quickReplyButton: {\n  displayText: 'PING',\n  id: 'ping'\n }\n  }, {\n quickReplyButton: {\n  displayText: 'OWNER',\n  id: 'owner'\n }  \n  }, {\n quickReplyButton: {\n  displayText: 'SCRIPT',\n  id: 'sc'\n }\n  }]\n fatihgans = fs.readFileSync('./Zimbot/drips.jpg')\n let txt = `「 ZimBot Broadcast 」\\n\\n${text}`\n ZimBotInc.send5ButImg(i, txt, ZimBotInc.user.name, fatihgans, btn)\n  }\n   reply(`Successful Sending Broadcast To ${anu.length} Group(s)`)\n }\n break\n case 'bc': case 'broadcast': case 'bcall': {\n   if (!isCreator) throw global.owner\n   if (!text) throw `Where is the text?\\n\\nExample : ${prefix + command} Zimbot here`\n   let anu = await store.chats.all().map(v => v.id)\n   reply(`Mengirim Broadcast Ke ${anu.length} Chat\\nWaktu Selesai ${anu.length * 1.5} second`)\nfor (let yoi of anu) {\n    await sleep(1500)\n    let btn = [{\n urlButton: {\n  displayText: 'GITHUB',\n  url: 'https://youtube.com/@zim-bot/zimbot-v2'\n }\n  }, {\n quickReplyButton: {\n  displayText: 'OWNER',\n  id: 'owner'\n }\n  }]\n fatihgans = fs.readFileSync('./Zimbot/drips.jpg')\n let txt = `「 ZIM BOT BROADCAST 」\\n\\n${text}`\n ZimBotInc.send5ButImg(yoi, txt, `Broadcast By ${global.pengguna}`, fatihgans, btn)\n}\nreply('*Broadcast Success*')\n }\n break\n case 'chatinfo': {\n   if (!m.quoted) reply('*Reply to mesaage👀*')\n   let msg = await m.getQuotedObj()\n   if (!m.quoted.isBaileys) throw '*The message was not sent by a bot!💥*'\n   let teks = ''\n   for (let i of msg.userReceipt) {\n  let read = i.readTimestamp\n  let unread = i.receiptTimestamp\n  let waktu = read ? read : unread\n  teks += `🔏 @${i.userJid.split('@')[0]}\\n`\n  teks += `🔏 *𝗧𝗜𝗠𝗘 :* ${moment(waktu * 1000).format('DD/MM/YY HH:mm:ss')} 🔏 *𝗦𝗧𝗔𝗧𝗨𝗦 :* ${read ? 'Read' : 'Unread'}\\n\\n`\n   }\n   ZimBotInc.sendTextWithMentions(m.chat, teks, m)\n }\n break\n case 'q': case 'quoted': {\nif (!m.quoted) return reply('Reply Message!!')\nlet wokwol = await ZimBotInc.serializeM(await m.getQuotedObj())\nif (!wokwol.quoted) return reply('*The message you replied to does not contain a reply💫*')\nawait wokwol.quoted.copyNForward(m.chat, true)\n }\n    break\n case 'listpc': {\n  let anu = await store.chats.all().filter(v => v.id.endsWith('.net')).map(v => v.id)\n  let teks = `⬣ *LIST PERSONAL CHAT*\\n\\nTotal Chat : ${anu.length} Chat\\n\\n`\n  for (let i of anu) {\n      let nama = store.messages[i].array[0].pushName\n      teks += `⬡ *NAME :* ${nama}\\n⬡ *USER :* @${i.split('@')[0]}\\n⬡ *CHAT :* https://wa.me/${i.split('@')[0]}\\n\\n━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n`\n  }\n  ZimBotInc.sendTextWithMentions(m.chat, teks, m)\n}\nbreak\nbreak\n   case 'listgc': {\n    let anu = await store.chats.all().filter(v => v.id.endsWith('@g.us')).map(v => v.id)\n    let teks = `🔏𝗚𝗥𝗢𝗨𝗣 𝗖𝗛𝗔𝗧 𝗟𝗜𝗦𝗧\\n\\n𝗧𝗢𝗧𝗔𝗟 𝗚𝗥𝗢𝗨𝗣 : ${anu.length} Group\\n\\n`\n    for (let i of anu) {\nlet metadata = await ZimBotInc.groupMetadata(i)\nteks += `🔏𝗡𝗔𝗠𝗘 : ${metadata.subject}\\n🔏𝗢𝗪𝗡𝗘𝗥 : @${metadata.owner.split('@')[0]}\\n🔏𝗜𝗗 : ${metadata.id}\\n🔏 𝗠𝗔𝗗𝗘 : ${moment(metadata.creation * 1000).tz('Africa/Harare').format('DD/MM/YYYY HH:mm:ss')}\\n🔏 𝗠𝗘𝗠𝗕𝗘𝗥 : ${metadata.participants.length}\\n\\n────────────────────────\\n\\n`\n    }\n    ZimBotInc.sendTextWithMentions(m.chat, teks, m)\n}\nbreak\ncase 'listonline': case 'onlinelist': case 'liston': {\n  let id = args && /\\d+\\-\\d+@g.us/.test(args[0]) ? args[0] : m.chat\n  let online = [...Object.keys(store.presences[id]), botNumber]\n  ZimBotInc.sendText(m.chat, '*LIST ONLINE*:\\n\\n' + online.map(v => '> @' + v.replace(/@.+/, '')).join`\\n`, m, { mentions: online })\n}\nbreak\n case 'sticker': case 's': case 'stickergif': case 'sgif': {\n if (!quoted) throw `Reply Video/Image With Caption ${prefix + command}`\n replay(mess.wait)\n  if (/image/.test(mime)) {\n   let media = await quoted.download()\n   let encmedia = await ZimBotInc.sendImageAsSticker(m.chat, media, m, { packname: global.packname, author: global.author })\n   await fs.unlinkSync(encmedia)\n } else if (/video/.test(mime)) {\n   if ((quoted.msg || quoted).seconds > 11) return reply('Maximum 10 seconds!')\n   let media = await quoted.download()\n   let encmedia = await ZimBotInc.sendVideoAsSticker(m.chat, media, m, { packname: global.packname, author: global.author })\n   await fs.unlinkSync(encmedia)\n } else {\n   throw `Send Image/Video With Caption ${prefix + command}\\nVideo Duration 1-9 Seconds`\n   }\n }\n break\n case 'stickerslap':\n const  { sticker } = require('./plugins/sticker.js')\n if(m.quoted?.sender) m.mentionedJid.push(m.quoted.sender)\nif(!m.mentionedJid.length) m.mentionedJid.push(m.sender)\nlet res = await fetch('https://nekos.life/api/kiss')\nlet jsonk = await res.json()\nlet { uri } = jsonk\nlet stiker = await sticker(null, uri, `+${m.sender.split('@')[0]} le dio una bofetada a ${m.mentionedJid.map((user)=>(user === m.sender)? 'alguien ': `+${user.split('@')[0]}`).join(', ')}`)\nZimBotInc.sendVideoAsSticker(m.chat, stiker, m, { packname: global.packname, author: global.author })\n break\n case 'ebinary': {\n if (!m.quoted.text && !text) throw `Send/reply text with caption ${prefix + command}`\n let { eBinary } = require('./lib/binary')\n let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text\n let eb = await eBinary(teks)\n reply(eb)\n}\nbreak\n case 'dbinary': {\n if (!m.quoted.text && !text) throw `Send/reply text with caption ${prefix + command}`\n let { dBinary } = require('./lib/binary')\n let teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : m.text\n let db = await dBinary(teks)\n reply(db)\n}\nbreak\n case 'emojimix': {\nif (!text) throw `Example : ${prefix + command} 😅+🤔`\nlet [emoji1, emoji2] = text.split`+`\nlet anu = await fetchJson(`https://tenor.googleapis.com/v2/featured?key=AIzaSyAyimkuYQYF_FXVALexPuGQctUWRURdCYQ&contentfilter=high&media_filter=png_transparent&component=proactive&collection=emoji_kitchen_v5&q=${encodeURIComponent(emoji1)}_${encodeURIComponent(emoji2)}`)\nfor (let res of anu.results) {\n    let encmedia = await ZimBotInc.sendImageAsSticker(m.chat, res.url, m, { packname: global.packname, author: global.author, categories: res.tags })\n    await fs.unlinkSync(encmedia)\n}\n    }\n    break\n case 'toimage': case 'toimg': {\n   if (!quoted) throw '*Reply Image*'\n   if (!/webp/.test(mime)) throw `balas stiker dengan caption *${prefix + command}*`\n   replay(mess.wait)\n   let media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\n   let ran = await getRandom('.png')\n   exec(`ffmpeg -i ${media} ${ran}`, (err) => {\n  fs.unlinkSync(media)\n  if (err) throw err\n  let buffer = fs.readFileSync(ran)\n  ZimBotInc.sendMessage(m.chat, { image: buffer }, { quoted: m })\n  fs.unlinkSync(ran)\n   })\n }\n break\ncase 'tomp4': case 'tovideo': {\n   if (!quoted) throw 'Reply Image'\n   if (!/webp/.test(mime)) throw `balas stiker dengan caption *${prefix + command}*`\n   replay(mess.wait)\nlet { webp2mp4File } = require('./lib/uploader')\n   let media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\n   let webpToMp4 = await webp2mp4File(media)\n   await ZimBotInc.sendMessage(m.chat, { video: { url: webpToMp4.result, caption: '*Convert webp to video*' } }, { quoted: m })\n   await fs.unlinkSync(media)\n }\n break\n case 'tts':\n  const gtts = require('./Zimbot/gtts')(args[0])\n  if (args.length < 1) return ZimBotInc.sendMessage(from, `ᴇxᴀᴍᴘʟᴇ: ${prefix}ᴇɴ ʜᴇʟʟᴏ`, text, {quoted: m})\n  if (args.length < 2) return ZimBotInc.sendMessage(from, `ᴇxᴀᴍᴘʟᴇ: ${prefix}ᴇɴ ʜᴇʟʟᴏ`, text, {quoted: m})\n var dtt = body.slice(20)\n  reply(mess.wait)\n  var ranm = getRandom('.mp3')\n\t\tvar\trano = getRandom('.ogg')\n\t\t\t\tdtt.length > 300\n         gtts.save(ranm, dtt, function() {\n          exec(`ffmpeg -i ${ranm} -ar 48000 -vn -c:a libopus ${rano}`, (err) => {\n          fs.unlinkSync(ranm)\n          buffer = fs.readFileSync(rano)\n          if (err) return reply('error')\n          Ruri.sendMessage(from,  audio, {quoted: freply, ptt:true})\n          ZimBotInc.sendMessage(m.chat, { audio: buffer, mimetype: 'audio/mp4', ptt: true, quoted: mudratunha})\n          fs.unlinkSync(rano)\n          })\n          })\n  break\n case 'toaud': case 'toaudio': {\n if (!/video/.test(mime) && !/audio/.test(mime)) throw `Send/Reply Video/Audio You Want Audio With Caption ${prefix + command}`\n if (!quoted) throw `Send/Reply Video/Audio You Want to Use as Audio With Caption ${prefix + command}`\n replay(mess.wait)\n let media = await quoted.download()\n let { toAudio } = require('./lib/converter')\n let audio = await toAudio(media, 'mp4')\n ZimBotInc.sendMessage(m.chat, {audio: audio, mimetype: 'audio/mpeg'}, { quoted : m })\n }\n break\n case 'tomp3': {\n if (/document/.test(mime)) throw `Send/Reply Video/Audio You Want to Convert into MP3 With Caption ${prefix + command}`\n if (!/video/.test(mime) && !/audio/.test(mime)) throw `Send/Reply Video/Audio You Want To Convert Into MP3 With Caption ${prefix + command}`\n if (!quoted) throw `Send/Reply Video/Audio You Want To Convert Into MP3 With Caption ${prefix + command}`\n replay(mess.wait)\n let media = await quoted.download()\n let { toAudio } = require('./lib/converter')\n let audio = await toAudio(media, 'mp4')\n ZimBotInc.sendMessage(m.chat, {document: audio, mimetype: 'audio/mpeg', fileName: `Converted By ${ZimBotInc.user.name}.mp3`}, { quoted : m })\n }\n break\n case 'tovn': case 'toptt': {\n if (!/video/.test(mime) && !/audio/.test(mime)) throw `Reply Video/Audio That You Want To Be VN With Caption ${prefix + command}`\n if (!quoted) throw `Reply Video/Audio That You Want To Be VN With Caption ${prefix + command}`\n replay(mess.wait)\n let media = await quoted.download()\n let { toPTT } = require('./lib/converter')\n let audio = await toPTT(media, 'mp4')\n ZimBotInc.sendMessage(m.chat, {audio: audio, mimetype:'audio/mpeg', ptt:true }, {quoted:m})\n }\n break\n case 'togif': {\n   if (!quoted) throw 'Reply Image'\n   if (!/webp/.test(mime)) throw `balas stiker dengan caption *${prefix + command}*`\n   replay(mess.wait)\nlet { webp2mp4File } = require('./lib/uploader')\n   let media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\n   let webpToMp4 = await webp2mp4File(media)\n   await ZimBotInc.sendMessage(m.chat, { video: { url: webpToMp4.result, caption: 'Convert Webp To Video' }, gifPlayback: true }, { quoted: m })\n   await fs.unlinkSync(media)\n }\n break\ncase 'tourl': {\n   replay(mess.wait)\nlet { UploadFileUgu, webp2mp4File, TelegraPh } = require('./lib/uploader')\n   let media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\n   if (/image/.test(mime)) {\n  let anu = await TelegraPh(media)\n  reply(util.format(anu))\n   } else if (!/image/.test(mime)) {\n  let anu = await UploadFileUgu(media)\n  reply(util.format(anu))\n   }\n   await fs.unlinkSync(media)\n }\n break\n case 'imagenobg': case 'removebg': case 'remove-bg': {\n    if (!quoted) throw `Send/Reply Image With Caption ${prefix + command}`\n    if (!/image/.test(mime)) throw `Send/Reply Image With Caption ${prefix + command}`\n    if (/webp/.test(mime)) throw `Send/Reply Image With Caption ${prefix + command}`\n    let remobg = require('remove.bg')\n    let apirnobg = ['q61faXzzR5zNU6cvcrwtUkRU','S258diZhcuFJooAtHTaPEn4T','5LjfCVAp4vVNYiTjq9mXJWHF','aT7ibfUsGSwFyjaPZ9eoJc61','BY63t7Vx2tS68YZFY6AJ4HHF','5Gdq1sSWSeyZzPMHqz7ENfi8','86h6d6u4AXrst4BVMD9dzdGZ','xp8pSDavAgfE5XScqXo9UKHF','dWbCoCb3TacCP93imNEcPxcL']\n    let apinobg = apirnobg[Math.floor(Math.random() * apirnobg.length)]\n    hmm = await './src/remobg-'+getRandom('')\n    localFile = await ZimBotInc.downloadAndSaveMediaMessage(quoted, hmm)\n    outputFile = await './src/hremo-'+getRandom('.png')\n    replay(mess.wait)\n    remobg.removeBackgroundFromImageFile({\n path: localFile,\n apiKey: apinobg,\n size: \"regular\",\n type: \"auto\",\n scale: \"100%\",\n outputFile \n    }).then(async result => {\n    ZimBotInc.sendMessage(m.chat, {image: fs.readFileSync(outputFile), caption: mess.success}, { quoted : m })\n    await fs.unlinkSync(localFile)\n    await fs.unlinkSync(outputFile)\n    })\n    }\n    break\n \n    case 'yts1': case 'ytsearch': {\n   if (!text) throw `Example : ${prefix + command} story wa anime`\n   let yts = require(\"yt-search\")\n   let search = await yts(text)\n   let teks = 'SUBSCRIBE Search\\n\\n Result From '+text+'\\n\\n'\n   let no = 1\n   for (let i of search.all) {\n  teks += `🔏No: ${no++}\\n🧸𝗧𝗬𝗣𝗘 : ${i.type}\\n🔳𝗩𝗜𝗗𝗘𝗢 𝗜𝗗: ${i.videoId}\\n🔴𝗧𝗜𝗧𝗟𝗘 : ${i.title}\\n🔏𝗩𝗜𝗘𝗪𝗦 : ${i.views}\\n🎬𝗗𝗨𝗥𝗔𝗧𝗜𝗢𝗡 : ${i.timestamp}\\n📡𝗨𝗣𝗟𝗢𝗔𝗗 𝗔𝗧 : ${i.ago}\\n🎰𝗔𝗨𝗧𝗛𝗢𝗥 : ${i.author.name}\\n📌𝗨𝗥𝗟 : ${i.url}\\n\\n─────────────────\\n\\n`\n   }\n   ZimBotInc.sendMessage(m.chat, { image: { url: search.all[0].thumbnail },  caption: teks }, { quoted: m })\n }\n break\n\ncase 'google': {\n    reply(mess.wait)\n    const { googleIt } = require('@bochilteam/scraper')\n    let full = /f$/i.test(command)\n    let text = args.join` `\n    if (!text) return reply(m.chat, 'No text to search', m)\n    let url = 'https://google.com/search?q=' + encodeURIComponent(text)\n    let search = await googleIt(text)\n    let msg = search.articles.map(({\n        // header,\n        title,\n        url,\n        description\n    }) => {\n        return `*${title}*\\n_${url}_\\n_${description}_`\n    }).join('\\n\\n')\n    try {\n        let ss = await (await fetch(('nrtm', '/api/ssweb', { delay: 1000, url, full }))).arrayBuffer()\n        if (/<!DOCTYPE html>/i.test(ss.toBuffer().toString())) throw ''\n        await ZimBotInc.sendFile(m.chat, ss, 'screenshot.png', url + '\\n\\n' + msg, m)\n    } catch (e) {\n        reply(msg)\n    }\n}\n   break\ncase 'gimage': case 'googleimage': {\nreply(mess.wait)\nif (!text) throw `Example : ${prefix + command} ml nana`\nlet gis = require('g-i-s')\ngis(text, async (error, result) => {\nn = result\nimages = n[Math.floor(Math.random() * n.length)].url\nlet buttons = [\n  {buttonId: `gimage ${text}`, buttonText: {displayText: 'Next Image'}, type: 1}\n   ]\n   let buttonMessage = {\n  image: { url: images },\n  caption: `❰ 𝗚𝗢𝗢𝗚𝗟𝗘 𝗜𝗠𝗔𝗚𝗘 ❱\n*𝗤𝗨𝗘𝗥𝗬* : ${text}\n*𝗠𝗘𝗗𝗜𝗔 𝗨𝗥𝗟* : ${images}`,\n  footer: ZimBotInc.user.name,\n  buttons: buttons,\n  headerType: 4\n   }\n   ZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })\n})\n}\nbreak\n    \n case 'lyrics':\nreply(mess.wait)\nif (args.length < 1) return reply('What is the name of the song?')\nteks = body.slice(7)\nlirikLagu(teks).then((res) => {\nlet lirik = `${res[0].result}`\nreply(lirik)\n})\n break\n \n case 'apk':\nreply(mess.wait)\nif (args.length == 0) return reply(`Example: ${prefix + command} WhatsApp`)\nlet jsonl = await Api.apk(text)\nif (!jsonl.status) return reply('failed')\nlet rows = []\njsonl.data.map(async (v, i) => {\nrows.push({\ntitle: v.name,\nrowId: `${prefix}getapk ${text}—${v.no}`,\ndescription: `[ ${v.size} | ${v.version} ]`\n })\n })\nZimBotInc.sendList(m.chat, '', `Hey zim-bot user here are your results: showing search results for : “${text}”, select below the application you want to download. 🍻`, '', 'OPTIONS', [{\nrows\n}], m)\nbreak\ncase 'ytshorts': case 'shorts': {\n  \nif (!text) return m.reply(`*Use ${prefix + command} enter pin link*`)\nif (!isUrl(args[0]) && !args[0].includes('youtube')) throw '*The link you provided is not valid*'                \nxa.Youtube(`${text}`).then(async (data) => {\nif (data.medias[0].formattedSize.split('MB')[0] >= 100) return reply('*File Over Limit* '+util.format(data)) \ncap = `\n*▊▊▊YOUTUBE SHORTS▊▊▊*\n\n*⬤▶━━━━━━━━━2:30*\\n\\n\\n\\n*⬤TITLE:* ${data.title}\\n*⬤QUALITY:* ${data.medias[0].quality}\\n*⬤SIZE:* ${data.medias[0].formattedSize}\\n*⬤DURATION* ${data.duration}\\n*⬤ID:* ${data.medias[0].cached}\\n*⬤LINK:* ${data.url}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nbuf = await getBuffer(data.thumbnail)\nZimBotInc.sendMessage(m.chat, { image: { url: data.thumbnail }, jpegThumbnail:buf, caption: `${cap}` }, { quoted: m })\nZimBotInc.sendMessage(m.chat, { video: { url: data.medias[0].url }, jpegThumbnail:buf, caption: `*⬤TITLE:* ${data.title}\\n*⬤QUALITY:* ${data.medias[0].quality}\\n*⬤SIZE:* ${data.medias[0].formattedSize}` }, { quoted: m })  \n            }).catch((err) => {\n                reply(`*Failed to download and send media*`)\n            })\n        }\n        break\n case 'pinterest': case 'pndl': case 'pin': {\nreplay(mess.wait)\n if (!args.join(\" \")) return reply(\"What picture are you looking for?\")\n try {\n hx.pinterest(args.join(\" \")).then(async(res) => {\n dripdako = res[Math.floor(Math.random() * res.length)]\n let buttons = [\n {buttonId: `pinterest ${args.join(\" \")}`, buttonText: {displayText: 'NEXT'}, type: 1}\n ]\n let buttonMessage = {\n image: { url: dripdako },\n caption:  `\n *TITLE:*`  + args.join(\" \") \n \n `*PHOTO URL:* `+dripdako,\n\n footer: `${global.botname}`,\n buttons: buttons,\n headerType: 4,\n contextInfo:{externalAdReply:{\n title:`ᴢɪᴍ ʙᴏᴛ ᴠ5`,\n body:`DRIPS OFC`,\n showAdAttribution: true,\n thumbnail: global.thumb,\n mediaType:2,\n mediaUrl: `https://youtu.be/KNu-gr2h7bo`,\n sourceUrl: `https://youtu.be/KNu-gr2h7bo`\n }}\n }\n ZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })\n }).catch(_ => _)\n } catch {\n reply(\"Error\")\n }\n }\n \n break\n    case 'couplepp': case 'ppcouple': {\n   replay(mess.wait)\n   let anu = await fetchJson('https://raw.githubusercontent.com/iamriz7/kopel_/main/kopel.json')\n   let random = anu[Math.floor(Math.random() * anu.length)]\n   ZimBotInc.sendMessage(m.chat, { image: { url: random.male }, caption: `Couple Male` }, { quoted: m })\n   ZimBotInc.sendMessage(m.chat, { image: { url: random.female }, caption: `*Couple Female*` }, { quoted: m })\n }\nbreak\n//------ANIME FESTURES------\\\\\ncase 'cry': \ncase 'kill':\ncase 'hug':\ncase 'pat':\ncase 'lick':\ncase 'kiss':\ncase 'bite':\ncase 'yeet':\ncase 'neko':\ncase 'bully':\ncase 'bonk':\ncase 'wink':\ncase 'poke':\ncase 'nom':\ncase 'slap':\ncase 'smile':\ncase 'wave':\ncase 'awoo':\ncase 'blush':\ncase 'smug':\ncase 'glomp':\ncase 'happy':\ncase 'dance':\ncase 'cringe':\ncase 'cuddle':\ncase 'highfive':\ncase 'shinobu':\ncase 'megumin':\ncase 'handhold':\nreply(mess.wait)\naxios.get(`https://api.waifu.pics/sfw/${command}`)\n.then(({data}) => {\nZimBotInc.sendImageAsSticker(m.chat, data.url, m, { packname: global.packname, author: global.author })\n})\nbreak  \ncase 'animeslap':\nreply(mess.wait)\n stantontunha = await axios.get(`https://nekos.life/api/v2/img/slap`)\nvar garo = [\n{buttonId: `.${command}`, buttonText: {displayText: `NEXT`}, type: 1},\n]\nlet tunhamasawi = {\nimage: {url:stantontunha.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: garo,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, tunhamasawi,{ quoted:m }).catch(err => {\nreturn('Error!')\n})\n\nbreak\ncase 'animepat':\nreply(mess.wait)\n lioneltunha = await axios.get(`https://nekos.life/api/v2/img/pat`)\nvar tunhabee = [\n{buttonId: `.${command}`, buttonText: {displayText: `NEXT`}, type: 1},\n]\nlet masawitunha = {\nimage: {url:lioneltunha.data.url},\ncaption:  `DATA OBTAINED!`,\nfooter: `${global.botname}`,\nbuttons: tunhabee,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, masawitunha,{ quoted:m }).catch(err => {\nreturn('Error!')\n})\nbreak\ncase 'animeneko':\nreply(mess.wait)\nprincetunha = await axios.get(`https://nekos.life/api/v2/img/neko`)\nvar tunhaprince = [\n{buttonId: `.${command}`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet tanaka = {\nimage: {url:princetunha.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: tunhaprince,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, tanaka,{ quoted:m }).catch(err => {\nreturn('Error!')\n})\nbreak\ncase 'animehug':\nreply(mess.wait)\ntunha = await axios.get(`https://nekos.life/api/v2/img/hug`)\nvar madeline = [\n{buttonId: `.${command}`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet magwetta = {\nimage: {url:tunha.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: madeline,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, magwetta,{ quoted:m }).catch(err => {\nreturn('Error!')\n})\nbreak\ncase 'animekiss':\nreply(mess.wait)\ntunha = await axios.get(`https://nekos.life/api/v2/img/kiss`)\nvar blessedtuna2 = [\n{buttonId: `.${command}`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet sekedema = {\nimage: {url:tunha.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: blessedtuna2,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, sekedema,{ quoted:m }).catch(err => {\nreturn('Error!')\n})\nbreak\ncase 'animewlp':\nreply(mess.wait)\nmhofu = await axios.get(`https://nekos.life/api/v2/img/wallpaper`)\nvar wati = [\n{buttonId: `.${command}`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet sekeMutema = {\nimage: {url:mhofu.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: wati,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, sekeMutema,{ quoted:m }).catch(err => {\nreturn('Error!')\n})\nbreak\ncase 'animespank':\nreply(mess.wait)\nmhofu = await axios.get(`https://nekos.life/api/v2/img/spank`)\nvar wati = [\n{buttonId: `.${command}`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet edzai = {\nimage: {url:mhofu.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: wati,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, edzai,{ quoted:m }).catch(err => {\nreturn('Error!')\n})\nbreak\ncase 'shinobu2': \nreply(mess.wait)\ndhoti = await axios.get('https://waifu.pics/api/sfw/shinobu')\nvar wati = [\n{buttonId: `.shinobu`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet haha = {\nimage: {url:dhoti.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: wati,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat,haha, { quoted:m }).catch(err => {\nreturn('Error!')\n})  \nbreak\ncase 'megumin2':\nreply(mess.wait)\nsaka = await axios.get('https://waifu.pics/api/sfw/megumin')\nvar wati = [\n{buttonId: `.megumin`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet kuku = {\nimage: {url:saka.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: wati,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat,kuku, { quoted:m }).catch(err => {\nreturn('Error!')\n})  \nbreak\ncase 'update':\n  const heroku = new Heroku({ token: Config.HEROKU_API_KEY })\n  await git.fetch();\n  var commits = await git.log(['main' + '..origin/' + 'main']);\n  if (commits.total === 0) {\n    reply(\"*No pending updates!*\")\n  } else {\n    var changelog = \"_Pending updates:_\\n\\n\";\n    commits['all'].map(\n        (commit) => {\n            reply(`• *${commit.message}* _[${commit.date.substring(0, 10)}]_ \\n`)\n          }\n          );\n          mss = changelog;\n          var img = \"\"\n       var buttons = [{\n        urlButton: {\n            displayText: 'DRIPS',\n            url: 'tes'\n        }\n    },// By drips \n    {\n        quickReplyButton: {\n            displayText: 'lol',\n            id: `${prefix}upd`\n        }\n    }];\n    }\n    await ZimBotInc.sendMessage(m.chat, {text: ` *type updatenow to update the bot*`});\n    \n\nbreak\ncase 'updatenow':\n  \n    await git.fetch();\n    var commits = await git.log(['main' + '..origin/' + 'main']);\n    if (commits.total === 0) {\n      return await ZimBotInc.sendMessage(m.chat, { text:\"_Bot up to date_\"})\n    } else {\n      await ZimBotInc.sendMessage(m.chat, {text: \"_Build started ⏫_\"})\n      try {\n        var app = await heroku.get('/apps/' + Config.HEROKU_APP_NAME)\n        var git_url = await heroku.get(app.git_url)\n    } catch {\n        await ZimBotInc.sendMessage(m.chat, { text:\"*Heroku app name/api key wrong*\"})\n\n        await new Promise(r => setTimeout(r, 1000));\n      }\n      git.fetch('upstream', 'main');\n      git.reset('hard', ['FETCH_HEAD']);//lols\n\n    git_url =  git_url.replace(\"https://\", \"https://api:\" + Config.HEROKU_API_KEY + \"@\")//drips\n      try {\n        await git.addRemote('heroku', git_url);\n    } catch {console.log('Deploy error catched. Retrying...')}\n    try { await git.push('heroku', 'main'); } catch(e){ \n    if (e.message.includes(\"concurrent\")) return reply(\"Your account has reached in-parallel build limit! Please wait for the other app to finish its deploy ❗\"); \n    }\n    await ZimBotInc.sendMessage(m.chat, {text:\"_Finished build! Restarting.._\"})\n //\n\n  }\n\nbreak\ncase 'awoo2':\nreply(mess.wait)\nbhingo = await axios.get(`https://waifu.pics/api/sfw/awoo`)\nvar pulo = [\n{buttonId: `.${command}`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet tidza = {\nimage: {url:bhingo.data.url},\ncaption:  `Here you go!`,\nfooter: `${global.botname}`,\nbuttons: pulo,\nheaderType: 2\n}  \nawait ZimBotInc.sendMessage(m.chat, tidza, { quoted:m }).catch(err => {\nreturn('Error!')\n})\nbreak\ncase 'animewall2': case 'animewallpaper2':\nreply(mess.wait)\nconst { AnimeWallpaper } =require(\"anime-wallpaper\")\nif(!q) return reply('What wallpaper do you want?')\nconst wall = new AnimeWallpaper();\nconst pages = [1,2,3,4];\nconst random=pages[Math.floor(Math.random() * pages.length)]\nconst wallpaper = await wall\n.getAnimeWall4({ title: q, type: \"sfw\", page: pages })\n.catch(() => null);\nconst i = Math.floor(Math.random() * wallpaper.length);\nvar francisca = [\n{buttonId: `.${command} ${q}`, buttonText: {displayText: `Next `}, type: 1},\n]\nlet tunhastallone = {\nimage: {url:wallpaper[i].image},\ncaption: `*QUERY :* ${q}`,\nfooter: `${global.botname}`,\nbuttons: francisca,\nheaderType: 4\n}\nawait ZimBotInc.sendMessage(m.chat, tunhastallone, {quoted: m}) \n//-----END HERE-----\\\\\n\n\n\n//----DOWNLOAD FEATURES---\\\\\nbreak\ncase 'play': {\nlet { yta } = require('./lib/y2mate')\nif (!text)  reply(`Example : ${prefix + command} story wa anime`)\nlet yts = require(\"yt-search\")\nlet search = await yts(text)\nlet anu = search.videos[Math.floor(Math.random() * search.videos.length)]\nlet buf = await getBuffer(anu.thumbnail)\nlet muziq = [\n                    {buttonId: `audio ${anu.url}`, buttonText: {displayText: 'AUDIO'}, type: 1},\n                    {buttonId: `ytmp4 ${anu.url}`, buttonText: {displayText: 'VIDEO'}, type: 1},\n                     {buttonId: `ytmp3 ${anu.url}`, buttonText: {displayText: 'DOCUMENT'}, type: 1}\n                ]\nlet caption = `\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓\n       ⟮ _*◉ʏᴏᴜᴛᴜʙᴇ ᴍᴜꜱɪᴄ◉*_ ⟯ \n   \n0.02━◉━━━━━━━━━━━━3.26\n      🔂   ⏪   ⏸️     ⏩  🎵\n\n*◉Tɪᴛʟᴇ :* ${anu.title}\n*◉Sɪᴢᴇ :* ${anu.filesize}\n*◉Uʀʟ :* ${anu.url}\n*◉Dᴇꜱᴄʀɪᴘᴛɪᴏɴ :* ${anu.description}\n ©ᴢɪᴍʙᴏᴛɪɴᴄ\n\n`\nmessage = await prepareWAMessageMedia({ image : { url: anu.thumbnail } }, { upload:   ZimBotInc.waUploadToServer })\nlet buttonMessage = {\n        image: buf,\n        jpegThumbnail:buf,\n        caption: caption,\n        footer: ` ⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\n        buttons: muziq,\n        headerType: 4,\n        contextInfo: { externalAdReply:{\n        title:\"ZIM BOT♡\",\n        body:\"SUB DRIPS OFC\",\n        mediaType:2,\n        thumbnail: fs.readFileSync(`./drips.jpg`),\n        }}\n        }\n        ZimBotInc.sendMessage(m.chat, buttonMessage)\n      \n   }\nbreak\n/*\ncase 'yt3':  case 'ytmusc': \nif (!text) throw `Example : ${prefix + command} https://youtube.com/watch?v=PtFMh6Tccag%27 128kbps`\nconst dripsmp3 = require ('./lib/ytdl2')\nlet yts = require(\"youtube-yts\")\nlet search = await yts(text)\nlet bhingu = search.videos[0]\nconst kudzi = await dripsmp3.mp3(bhingu.url)\nlet caption = `\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\n    ⟮ _*◉ʏᴏᴜᴛᴜʙᴇ ᴅᴏᴡɴʟᴏᴀᴅ◉*_ ⟯ \n   \n0.02━◉━━━━━━━━━━━━3.26\n      🔂   ⏪   ⏸️     ⏩  🎵\\n\\n*◉TITLE :* ${bhingu.title}\\n*◉FILESIZE :*\\n*◉URL :* ${isUrl(text)}\\n*◉EXT :* MP3\\n*\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nbuf = await getBuffer(kudzi.meta.image)\nawait ZimBotInc.sendMessage(m.chat, {text: `*ɪᴍ sᴇɴᴅɪɴɢ ʏᴏᴜʀ sᴏɴɢ📻ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...* `}, {quoted: m})\nZimBotInc.sendMessage(m.chat, { document: fs.readFileSync(kudzi.path),\n    fileName: bhingu.title + '.mp3',\n    mimetype: 'audio/mp4', quoted: m, contextInfo: { externalAdReply:{\ntitle:\"◉ʏᴏᴜᴛᴜʙᴇ ᴅᴏᴡɴʟᴏᴀᴅ◉\",\nbody:\"SUB DRIPS OFC\",\nshowAdAttribution: true,\nmediaType:2,\nthumbnail: fs.readFileSync(`./drips.jpg`) ,\nmediaUrl:`https://wa.me/447441437150`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo` }\n},\n}, {quoted: m})\n\nawait fs.unlinkSync(kudzi.path)\n*/\nbreak\ncase 'ytmp3':\nif (!args || !args[0]) throw 'need a link'\nif (!/^(?:https?:\\/\\/)?(?:www\\.|m\\.|music\\.)?youtu\\.?be(?:\\.com)?\\/?.*(?:watch|embed)?(?:.*v=|v\\/|\\/)([\\w\\-_]+)\\&?/.test(args[0])) throw `Invalid link`\nZimBotInc.sendMessage(m.chat, { react: { text: `🕒`, key: m.key }})\nconst jsoni = await fetchJson('https://yt.nxr.my.id/yt2?url=' + args[0] + '&type=audio')\nawait ZimBotInc.sendMessage(m.chat, {text: `*ɪᴍ sᴇɴᴅɪɴɢ ʏᴏᴜʀ sᴏɴɢ📻ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...* `}, {quoted: m})\nif (!jsoni.status || !jsoni.data.url) throw `failed to download your music`\nlet captiono = `*Y T - P L A Y*\\n\\n`\ncaptiono += `\t◦  *Title* : ${jsoni.title}\\n`\ncaptiono += `\t◦  *Size* : ${jsoni.data.size}\\n`\ncaptiono += `\t◦  *Duration* : ${jsoni.duration}\\n`\ncaptiono += `\t◦  *Bitrate* : ${jsoni.data.quality}\\n\\n`\ncaptiono += 'ZIMBOT'\nzimbotu =  `${jsoni.data.url}`\n\nZimBotInc.sendMessage(m.chat,{document: {url:jsoni.data.url}, fileName: `${jsoni.title}`, mimetype: 'audio/mp3', quoted: m, contextInfo: { externalAdReply:{\ntitle:\"◉ʏᴏᴜᴛᴜʙᴇ ᴅᴏᴡɴʟᴏᴀᴅ◉\",\nbody:\"SUB DRIPS OFC\",\nshowAdAttribution: true,\nmediaType:2,\nthumbnail: fs.readFileSync(`./drips.jpg`) ,\nmediaUrl:`https://wa.me/447441437150`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo` }\n}}, {quoted: m})\nbreak\ncase 'ytmp4': case 'ytvideo': \nconst dripsvideo = require('./lib/ytdl2')\nif (args.length < 1 || !isUrl(text) || !dripsvideo.isYTUrl(text)) throw `Where is the link?🤪`\nZimBotInc.sendMessage(m.chat, { react: { text: `🕒`, key: m.key }})\nconst v5=await dripsvideo.mp4(text)\n/*var capti = `\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\n    ⟮ _*◉ʏᴏᴜᴛᴜʙᴇ ᴅᴏᴡɴʟᴏᴀᴅ◉*_ ⟯ \n   \n0.02━◉━━━━━━━━━━━━3.26\n      🔂   ⏪   ⏸️     ⏩  🎵\\n\\n*◉Title* : ${media.title}\\n*◉FILESIZE* : ${media.filesizeF}\\n*◉URL* : ${isUrl(text)}\\n*◉EXT* : MP3\\n*◉RESOLUTION* : ${args[1] || '360p'}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\n*/\nvar buf = await getBuffer(v5.thumb)\nlet hobho = ('*ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ʏᴏᴜʀ ᴠɪᴅᴇᴏ🎬ᴡᴀɪᴛ...*')\nawait ZimBotInc.sendMessage(m.chat, {text: `*ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ʏᴏᴜʀ ᴠɪᴅᴇᴏ🎬ᴡᴀɪᴛ...* `}, {quoted: m})\nZimBotInc.sendMessage(m.chat, { video: { url:v5.videoUrl }, mimetype: 'video/mp4', fileName: `${v5.title}.mp4`, caption: `*ᴛɪᴛʟᴇ:* ${v5.title} \\n\\n *ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot*` , quoted: m,contextInfo: { externalAdReply:{\nshowAdAttribution: true,\n},\n}},{ quoted: m})\nbreak\ncase 'audio':   \nif (!text) throw `Example : ${prefix + command} https://youtube.com/watch?v=PtFMh6Tccag%27 128kbps`\nconst dripsmp4 = require ('./lib/ytdl2')\nlet ytss = require(\"youtube-yts\")\nlet searchi  = await ytss(text)\nlet bhinguu = searchi.videos[0]\nconst kudzii = await dripsmp4.mp3(bhinguu.url)\nlet captionu = `\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\n    ⟮ _*◉ʏᴏᴜᴛᴜʙᴇ ᴅᴏᴡɴʟᴏᴀᴅ◉*_ ⟯ \n   \n0.02━◉━━━━━━━━━━━━3.26\n      🔂   ⏪   ⏸️     ⏩  🎵\\n\\n*◉TITLE :* ${bhinguu.title}\\n*◉FILESIZE :*\\n*◉URL :* ${isUrl(text)}\\n*◉EXT :* MP3\\n*\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nbuf = await getBuffer(kudzii.meta.image)\nawait ZimBotInc.sendMessage(m.chat, {text: `*ɪᴍ sᴇɴᴅɪɴɢ ʏᴏᴜʀ sᴏɴɢ📻ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...* `}, {quoted: m})\nZimBotInc.sendMessage(m.chat, { audio: fs.readFileSync(kudzii.path), fileName: bhinguu.title + '.mp3', mimetype: 'audio/mp4', quoted: m, contextInfo: { externalAdReply:{\ntitle:\"◉ʏᴏᴜᴛᴜʙᴇ ᴅᴏᴡɴʟᴏᴀᴅ◉\",\nbody:\"SUB DRIPS OFC\",\nshowAdAttribution: true,\nmediaType:2,\nthumbnail: fs.readFileSync(`./drips.jpg`) ,\nmediaUrl:`https://wa.me/447441437150`, \nsourceUrl: `https://wa.me/447441437150` }\n},\n}, {quoted: m})\n\nawait fs.unlinkSync(kudzii.path)\nbreak\ncase 'ytshorts': case 'shorts': {\nif (!text) return reply(`*Use ${prefix + command} enter pin link*`)\nif (!isUrl(args[0]) && !args[0].includes('youtube')) throw '*The link you provided is not valid*'  \nxa.Youtube(`${text}`).then(async (data) => {\nif (data.medias[0].formattedSize.split('MB')[0] >= 100) return m.reply('*File Over Limit* '+util.format(data)) \ncap = `\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\n    ⟮ _*◉Yᴏᴜᴛᴜʙᴇ Sʜᴏʀᴛꜱ◉*_ ⟯ \n   \n0.02━◉━━━━━━━━━━━━3.26\n      🔂   ⏪   ⏸️     ⏩  🎵\\n\\n\\n\\n*◉TITLE:* ${data.title}\\n*◉QUALITY:* ${data.medias[0].quality}\\n*◉SIZE:* ${data.medias[0].formattedSize}\\n*◉DURATION* ${data.duration}\\n*◉ID:* ${data.medias[0].cached}\\n*◉LINK:* ${data.url}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nbuf = await getBuffer(data.thumbnail)\nZimBotInc.sendMessage(m.chat, { image: { url: data.thumbnail }, jpegThumbnail:buf, caption: `${cap}` }, { quoted: m })\nZimBotInc.sendMessage(m.chat, { video: { url: data.medias[0].url }, jpegThumbnail:buf, caption: `*◉TITLE:* ${data.title}\\n*◉QUALITY:* ${data.medias[0].quality}\\n*◉SIZE:* ${data.medias[0].formattedSize}` }, { quoted: m })  \n}).catch((err) => {\nreply(`*Failed to download and send media*`)\n})\n}\nbreak\ncase 'getmusic': {\nlet { yta } = require('./lib/y2mate')   \nif (!text) throw `Example : ${prefix + command} 1`\nif (!m.quoted) return m.reply('*Reply message*')\nif (!m.quoted.isBaileys) throw `*Can only reply to messages from bots*`\nlet urls = quoted.text.match(new RegExp(/(?:https?:\\/\\/)?(?:youtu\\.be\\/|(?:www\\.|m\\.)?youtube\\.com\\/(?:watch|v|embed|shorts)(?:\\.php)?(?:\\?.*v=|\\/))([a-zA-Z0-9\\_-]+)/, 'gi'))\nif (!urls) throw `*Maybe the message you replied does not contain the ytsearch results`\nlet quality = args[1] ? args[1] : '128kbps'\nlet media = await yta(urls[text - 1], quality)\nif (media.filesize >= 100000) return m.reply('*File Over Limit* '+util.format(media))\nZimBotInc.sendImage(m.chat, media.thumb, `*◉TITLE* : ${media.title}\\n*◉FILE SIZE :* ${media.filesizeF}\\n*◉URL :* ${urls[text - 1]}\\n*◉EXT :* MP3\\n*◉RESOLUTION :* ${args[1] || '128kbps'}`, m)\nZimBotInc.sendMessage(m.chat, { audio: { url: media.dl_link }, mimetype: 'audio/mpeg', fileName: `${media.title}.mp3` }, { quoted: m })\n}\nbreak\ncase 'getvideo': { \nlet { ytv } = require('./lib/y2mate')  \nif (!text) throw `Example : ${prefix + command} 1`\nif (!m.quoted) return m.reply('Reply Message')\nif (!m.quoted.isBaileys) throw `*Can only reply to messages from bots8`\nlet urls = quoted.text.match(new RegExp(/(?:https?:\\/\\/)?(?:youtu\\.be\\/|(?:www\\.|m\\.)?youtube\\.com\\/(?:watch|v|embed|shorts)(?:\\.php)?(?:\\?.*v=|\\/))([a-zA-Z0-9\\_-]+)/, 'gi'))\nif (!urls) throw `*Maybe the message you replied does not contain the ytsearch result*`\nlet quality = args[1] ? args[1] : '360p'\nlet media = await ytv(urls[text - 1], quality)\nif (media.filesize >= 100000) return m.reply('*File Over Limit* '+util.format(media))\nZimBotInc.sendMessage(m.chat, { video: { url: media.dl_link }, mimetype: 'video/mp4', fileName: `${media.title}.mp4`, caption: `*◉TITLE :* ${media.title}\\n*◉FILESIZE :* ${media.filesizeF}\\n*◉URL :* ${urls[text - 1]}\\n*◉EXT:* MP3\\n*◉RESOLUTION :* ${args[1] || '360p'}` }, { quoted: m })\n}\ncase 'mediafire': {  \nreply(mess.wait)         \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('mediafire.com')) throw '*The link you provided is not valid*'\nconst baby1 = await mediafireDl(text)\nif (baby1[0].size.split('MB')[0] >= 100) return m.reply('*File Over Limit* '+util.format(baby1))\nconst result4 = `\n▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\n    ⟮ _*◉Mᴇᴅɪᴀꜰɪʀᴇ Dᴏᴡɴʟᴏᴀᴅ◉*_ ⟯ \n          \n*NAME* : ${baby1[0].nama}\n*SIZE* : ${baby1[0].size}\n*MIME* : ${baby1[0].mime}\n*LINK* : ${baby1[0].link}\\n\n\n _scraping metadata...._ \n*${botname}*`\nreply(`${result4}`)\nZimBotInc.sendMessage(m.chat, { document : { url : baby1[0].link}, fileName : baby1[0].nama, mimetype: baby1[0].mime ,  quoted : mudratunha, contextInfo: { externalAdReply:{\n  title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n  body:\"SUBSCRIBE DRIPS OFC\",\n  showAdAttribution: true,\n  mediaType:2,\n  thumbnail: fs.readFileSync(`./drips.jpg`) ,\n  mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\n}\nbreak\ncase 'song': {\n  reply(mess.wait)\n  if (!text) throw `Example : ${prefix + command} story wa anime`\n  let yts = require(\"yt-search\")\n  let search = await yts(text)                   \nlet sections = []   \nlet listmenu = [`ytmp4 ${search.all[0].url}`,`ytmp3 ${search.all[1].url}`,`ytmp4 ${search.all[2].url}`,`ytmp3 ${search.all[3].url}`,`ytmp4 ${search.all[4].url}`,`ytmp3 ${search.all[5].url}`,`ytmp4 ${search.all[6].url}`,`ytmp3 ${search.all[7].url}`,`ytmp4 ${search.all[8].url}`,`ytmp3 ${search.all[9].url}`,`ytmp4 ${search.all[10].url}`,`ytmp3 ${search.all[11].url}`,`ytmp4 ${search.all[12].url}`,`ytmp3 ${search.all[13].url}`,`ytmp4 ${search.all[14].url}`,`ytmp3 ${search.all[15].url}`,`ytmp4 ${search.all[16].url}`,`ytmp3 ${search.all[17].url}`,`ytmp4 ${search.all[18].url}`,`ytmp3 ${search.all[19].url}`]\n      let listmenuu = [`VIDEO MP4⬤: ${search.all[0].title}`,`SONG MP3⬤: ${search.all[1].title}`,`VIDEO MP4⬤: ${search.all[2].title}`,`SONG MP3⬤: ${search.all[3].title}`,`VIDEO MP4⬤: ${search.all[4].title}`,`SONG MP3⬤: ${search.all[5].title}`,`VIDEO MP4⬤: ${search.all[6].title}`,`SONG MP3⬤: ${search.all[7].title}`,`VIDEO MP4⬤: ${search.all[8].title}`,`SONG MP3⬤: ${search.all[9].title}`,`VIDEO MP4⬤: ${search.all[10].title}`,`SONG MP3⬤: ${search.all[11].title}`,`VIDEO MP4⬤: ${search.all[12].title}`,`SONG MP3⬤: ${search.all[13].title}`,`VIDEO MP4⬤: ${search.all[14].title}`,`SONG MP3⬤: ${search.all[15].title}`,`VIDEO MP4⬤: ${search.all[16].title}`,`SONG MP3⬤: ${search.all[17].title}`,`VIDEO MP4⬤: ${search.all[18].title}`,`SONG MP3⬤: ${search.all[19].title}`]\n      let listmenuuu = [`\\n${search.all[0].description}`,`\\n${search.all[1].description}`,`\\n${search.all[2].description}`,`\\n${search.all[3].description}`,`\\n${search.all[4].description}`,`\\n${search.all[5].description}`,`\\n${search.all[6].description}`,`\\n${search.all[7].description}`,`\\n${search.all[8].description}`,`\\n${search.all[9].description}`,`\\n${search.all[10].description}`,`\\n${search.all[11].description}`,`\\n${search.all[12].description}`,`\\n${search.all[13].description}`,`\\n${search.all[14].description}`,`\\n${search.all[15].description}`,`\\n${search.all[16].description}`,`\\n${search.all[17].description}`,`\\n${search.all[18].description}`,`\\n${search.all[19].description}`]\n      let nombor = 1\n      let startnum = 0\n      let startnumm = 0\n      for (let x of listmenu) {\n      const list = {title: 'RESULT NUMBER ' + nombor++,\n      rows: [\n         {\n          title: `${listmenuu[startnum++]}`,\n          description: `${listmenuuu[startnumm++]}`,\n          rowId: `${prefix}${x}`\n}, \n]\n}\nsections.push(list)   \n}\nconst sendm =  ZimBotInc.sendMessage(\nm.chat, \n{\ntext: \"\\n\\n*_DONE SCRAPING DATA_*\",\nfooter: botname,\ntitle: `HERE IS YOUR RESULTS CHOMIE FROM *${text}* _select song or video below_`,\nbuttonText: \"CLICK HERE\",\nsections\n}, { quoted : m })\n}\nbreak\ncase 'ytsaudio': case 'ytsmusic': case 'ytsearchmusic': {\n                   reply(mess.wait)\n                  if (!text) throw `Example : ${prefix + command} guspy warior ita seunononga`\n                  let yts = require(\"yt-search\")\n                  let search = await yts(text)                \n                  let no = 1\n                  let sections = []   \n                  for (let i of search.all) {\n                  const list = {title: `${i.title}`,\n                  rows: [\n                      {\n                      title: `${i.title}\\n`, \n                      rowId: `${prefix}ytmp3 ${i.url}`,\n                      description: `${i.description}\\n*UPLOAD:* ${i.ago}\\n*CHANNEL:* ${i.author.name}\\n*VIEWS:* ${i.views}\\n*DURATION:* ${i.timestamp}\\n*LINK:* ${i.url}`\n                      }, \n                      ]\n                        }\n                        sections.push(list)   \n                        }\n                        const sendm =  ZimBotInc.sendMessage(\n                        m.chat, \n                        {\n                        text: ` ${text}`,\n                        footer: botname,\n                        title: `${ucapannya2} ${pushname} Here are the search results from ytsaudio`,\n                        buttonText: \"LIST OF AUDIOS\",\n                        sections\n                        }, { quoted : m })\n                        }\n                    break\n  case 'ytsvideo': case 'ytsearchvideo': {\n                  reply(mess.wait)\n                  if (!text) throw `Example : ${prefix + command} seh calaz takambo tamba munyika`\n                  let yts = require(\"yt-search\")\n                  let search = await yts(text)                \n                  let no = 1\n                  let sections = []   \n                  for (let i of search.all) {\n                  const list = {title: `${i.title}`,\n                  rows: [\n                      {\n                      title: `${i.title}\\n`, \n                      rowId: `${prefix}ytmp4 ${i.url}`,\n                      description: `${i.description}\\n*UPLOAD:* ${i.ago}\\n*CHANNEL:* ${i.author.name}\\n*VIEWS:* ${i.views}\\n*DURATION* ${i.timestamp}\\n*LINK:* ${i.url}`\n                      }, \n                      ]\n                        }\n                        sections.push(list)   \n                        }\n                        const sendm =  ZimBotInc.sendMessage(\n                        m.chat, \n                        {\n                        text: ` ${text}`,\n                        footer: botname,\n                        title: `${ucapannya2} ${pushname} *Here are the search results from ytsvideo*`,\n                        buttonText: \"LIST OF VIDEOS\",\n                        sections\n                        }, { quoted : m })\n                        }\n                    break\n  case 'yts': case 'youtubesearch': case 'ytsearch': {\n    \n                  await ZimBotInc.sendMessage(m.chat, {text: `*sᴇᴀʀᴄʜɪɴɢ🔎 ʏᴏᴜʀ ᴠɪᴅᴇᴏs🎬ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...* `}, {quoted: m})\n                  if (!text) throw `Example : ${prefix + command} story wa anime`\n                  let yts = require(\"youtube-yts\")\n                  let search = await yts(text)                \n                  let no = 1\n                  let sections = []   \n                  for (let i of search.all) {\n                  const list = {title: `${i.title}`,\n                  rows: [\n                      {\n                      title: `${i.title}\\n\\n`, \n                      rowId: `${prefix}ytmp3 ${i.url}`,\n                      description: `${i.url}`\n                      }, \n                      ]\n                        }\n                        sections.push(list)   \n                        }\n                        const sendm =  ZimBotInc.sendMessage(\n                        m.chat, \n                        {\n                        text: `*ϙᴜᴇʀʏ:* \\n${text}🎛️`,\n                        footer: ` ⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023` ,\n                        title: `*ʏᴏᴜᴛᴜʙᴇ sᴇᴀʀᴄʜ*`,\n                        buttonText: \"CLICK HERE\",\n                        sections\n                        }, { quoted : m })\n                        }\n                    break\ncase 'fbdl': case 'fb': case 'facebook': case 'fbvideo': {     \t    \n  reply(mess.wait)        \n  if (!text) throw '*Enter a Link Query!*'\n     if (!isUrl(args[0]) && !args[0].includes('facebook.com')) throw '*The link you provided is not valid*'         \n let bocil = require('@bochilteam/scraper')  \n     bocil.facebookdlv2(`${text}`).then(async (data) => {                   \n\n         let txt = `*\n         ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\n             ⟮ _*◉FB Dᴏᴡɴʟᴏᴀᴅ◉*_ ⟯ *\\n\\n`\n\n         txt += `*◉TITLE :* ${data.title}\\n`\n\n         txt += `*◉QUALITY :* ${data.result[0].quality}\\n`\n\n         txt += `*◉DESCRIPTION :* ${data.description}\\n`\n\n         txt += `*◉ID :* ᴢɪᴍ ʙᴏᴛ ɪɴᴄ\\n`\n\n         txt += `*◉URL :* ${text}\\n\\n`\n\n         txt += `*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`                \n\n     buf = await getBuffer(data.thumbnail)    \n\n     ZimBotInc.sendMessage(m.chat, { image: { url: data.thumbnail }, jpegThumbnail:buf, caption: `${txt}` }, {quoted: mudratunha})\n     for (let i of data.result) {  \n    ZimBotInc.sendMessage(m.chat, { video: { url: i.url }, jpegThumbnail:buf, mimetype: 'video/mp4', caption: `*◉ Quality :* ${i.quality}` ,  quoted: m,contextInfo: { externalAdReply:{\n      title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n      body:\"SUBSCRIBE DRIPS OFC\",\n      showAdAttribution: true,\n      mediaType:2,\n      thumbnail: fs.readFileSync(`./drips.jpg`) ,\n      mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \n      sourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\n     \n       \n     }\n    \n  }).catch((err) => {\n\n      reply(`*Failed When Downloading Media and Sending Files*`)\n\n  })\n\n}\n\n              \n\nbreak\ncase 'savefrom': {\n\n  \n\nif (!text) return m.reply(`Failed to download media and send audio ${prefix + command} link url`) \n\nif (!isUrl(args[0]) && !args[0].includes('facebook.com')) throw '*The link you provided is not valid*'\nlet noh = require('@bochilteam/scraper')                \n\nnoh.savefrom(`${text}`).then(async (data) => {\n\nlet sections = []   \n\nfor (let i of data.url) {\n\nconst list = {title: `${i.type}`,\n\nrows: [\n\n  {\n\n   title: `Quality ${i.subname}`, \n\n   rowId: `${prefix}get ${text}`,\n\n   description: `${data.hosting}`\t     \n\n  }, \n\n  ]\n\n }\n\n sections.push(list)   \n\n }\n\nconst sendm =  ZimBotInc.sendMessage(\n\n  m.chat, \n\n  {\n\n   text: `${data.meta.title} *Here is the list of videos, click the button below to choose, here is the list of videos, click the button below to choose*`,\n\n   footer: `©ᴢɪᴍ ʙᴏᴛ ɪɴᴄ 2023`,\n\n   title: \"**▊▊▊SAVEFROM DL▊▊▊**\",\n\n   buttonText: \"CLICK HERE\",\n\n   sections\n\n  }, { quoted : m })                 \n\n            }).catch((err) => {\n\n                reply(`*Sorry An Error Occurred*`)\n\n            })\n\n        }\n\nbreak\ncase 'fb2': case 'facebook2': case 'fb': {\n  //\n    if (!text) throw '*Enter a Link Query!*'\n    if (!isUrl(args[0]) && !args[0].includes('facebook.com')) throw '*The link you provided is not valid*'\n    anu = await fetchJson(`https://violetics.pw/api/downloader/facebook?apikey=beta&url=${text}`)\n    tummb = await getBuffer('https://telegra.ph/file/9789a09c964cee5597a05.jpg')    \n    ZimBotInc.sendMessage(m.chat, { video: { url: anu.result.url[0].url }, jpegThumbnail:tummb, caption: `*📽️ FACEBOOK DOWNLOADER*\\n\\n*Name* : ${anu.result.meta.title}\\n*Quality* : ${anu.result.url[0].subname}\\n*Ext* : ${anu.result.url[0].ext}\\n`}, { quoted: m }).catch((err) => m.reply('*Sorry, the feature is in error*'))\n}\nbreak\ncase 'get': {\n\n  \n\n      if (!text) throw 'Enter a Link' \n\n  \n\n      let bicil = require('@bochilteam/scraper')\n\n      let urlnya = text\n\n    bicil.savefrom(urlnya)\n\n    .then(async(result) => {\t  \t                                \t                      \t            \n\n  for(let i of result.url) {\t\t\n\n  if(i.url.includes('mp4')){\t\t           \t\t\t    \t\t\t\t\n\nlet link = await getBuffer(i.url)\n\n      ZimBotInc.sendMessage(m.chat, { video: link, caption: `*quality ${i.subname}*` }, { quoted: m })                  \n\n     }\n\n    }\n\n  }).catch((err) => reply(`*Sorry Future Error*`))\n\n  }\t\t\nbreak\ncase 'tiktok4': { //DOWNLOADER\n  // //if \n   if (!text) throw '*Enter a Link Query!*'                \n   if (!isUrl(args[0]) && !args[0].includes('tiktok.com')) throw '*The link you provided is not valid*'\n   \n   reply(mess.wait)\n   hx.ttdownloader(`${text}`).then(async (data) => {                      \n       let buttons = [                    \n       {buttonId: `${prefix}tiktokmp3 ${text}`, buttonText: {displayText: 'AUDIO'}, type: 1}\n   ]\n   let buttonMessage = {\n       video: { url: data.nowm },                    \n       caption: `${util.format(data)}`,\n       footer: 'Please Select Below',\n       buttons: buttons,\n       headerType: 5\n   }\n   ZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })                \n   }).catch((err) => {\n       reply(`*Failed to download media and send videos*`)\n   })\n}\nbreak\ncase 'tiktok2': {\nif (!text) throw `Use example ${prefix + command} https://www.tiktok.com/@omagadsus/video/7025456384175017243`\nif (!isUrl(args[0]) && !args[0].includes('tiktok.com')) throw '*The link you provided is not valid*'\n\nanu = await fetchJson(`https://violetics.pw/api/downloader/tiktok?apikey=df7d-425a-3bc8&url=${text}`)\nlet listmn = `*▊▊▊TIKTOK DL▊▊▊*\\n\\n*Title:* ${anu.result.title}\\n*Author:* ${anu.result.id}\\n*Url:* ${anu.result.url}`\nbuf = await getBuffer(anu.result.thumb)\nbuf2 = await getBuffer(anu.result.link_dl2)\nlet message = await prepareWAMessageMedia({ video: buf2, gifPlayback:false, jpegThumbnail:buf }, { upload: ZimBotInc.waUploadToServer })\nconst template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\ntemplateMessage: {\nhydratedTemplate: {\nvideoMessage: message.videoMessage,\nhydratedContentText: listmn,\nhydratedFooterText: `${botname}`,\nhydratedButtons: [{\nurlButton: {\ndisplayText: 'SUBSCRIBE',\nurl: 'https://youtube.com/@zim-bot'\n}\n}, {\nurlButton: {\ndisplayText: 'GITHUB',\nurl: 'https://youtube.com/@zim-bot'\n}\n}, {\nquickReplyButton: {\ndisplayText: 'PING',\nid: 'ping'\n}\n}, {\nquickReplyButton: {\ndisplayText: 'OWNER',\nid: 'owner'\n}  \n}, {\nquickReplyButton: {\ndisplayText: 'DONATE',\nid: 'donadi'\n}\n}]\n}\n}\n}), { userJid: m.chat, quoted: m })\nZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })\n}\nbreak\ncase 'tiktok': case 'tiktoknowm': case 'tiktokwm': case 'tt': case 'ttnowm': case 'ttwm': {\n\n  // //if \n   if (!text) throw '*Enter a Link Query!*'            \n   \n   let bocil = require('@bochilteam/scraper')    \n   if (!isUrl(args[0]) && !args[0].includes('tiktok.com')) throw '*The link you provided is not valid*'                \n   bocil.tiktokdlv3(`${text}`).then(async (video) => {           \n     var hadi = randomNomor(100)        \n      var hadie = randomNomor(200)     \n      var hadir = randomNomor(300)\n       var memek = randomNomor(1000)                      \n     let caption = `\n     *▊▊▊TIKTOK DL▊▊▊*\\n\\n*AUTHOR* : DRIPS\\n*NICKNAME* : ${video.author.nickname}\\n*CAPTION* : ${video.description}\\n*QUALITY* : nowatermark\\n*COMMENTS* : ${memek}\\n*CREATE* ${hadir} Ago\\n*LIKES* : ${hadi}\\n*DISLIKE* : ${hadie}\\n*SOURCE* : ${text}\\n\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\n     buf = await getBuffer(video.author.avatar)                \n     ZimBotInc.sendMessage(m.chat, { image: { url: video.author.avatar }, jpegThumbnail:buf, caption: `${caption}` }, { quoted: m })\n     ZimBotInc.sendMessage(m.chat, { video: { url: video.video.no_watermark }, jpegThumbnail:buf, mimetype: 'video/mp4', caption: `*Downloading From ${text}*` }, { quoted: m })               \n   }).catch((err) => {\n       reply(`*Failed to download media and send videos*`)\n   })\n}\nbreak\ncase 'tiktok5': case 'tt5': {\n  // //if \nif (!text) throw '*Enter a Link Query!*'            \n   \nlet bocil = require('@bochilteam/scraper')    \nif (!isUrl(args[0]) && !args[0].includes('tiktok.com')) throw '*The link you provided is not valid*'                \nbocil.tiktokdlv3(`${text}`).then(async (video) => {           \nvar hadi = randomNomor(100)        \nvar hadie = randomNomor(200)     \nvar hadir = randomNomor(300)\nvar memek = randomNomor(1000)                      \nlet caption = `*▊▊▊TIKTOK DL▊▊▊*\\n\\n*AUTHOR* : DRIPS\\n*NICKNAME* : ${video.author.nickname}\\n*CAPTION* : ${video.description}\\n*COMMENTS* : ${memek}\\n*CREATE* ${hadir} Ago\\n*LIKES* : ${hadi}\\n*DISLIKES* : ${hadie}\\n*SOURCE* : ${text}\\n\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nbuf = await getBuffer(video.author.avatar)                \nZimBotInc.sendMessage(m.chat, { image: { url: video.author.avatar }, jpegThumbnail:buf, caption: `${caption}` }, { quoted: m })\nZimBotInc.sendMessage(m.chat, { video: { url: video.video.no_watermark }, jpegThumbnail:buf, mimetype: 'video/mp4', caption: `*Downloading From ${text}*` }, { quoted: m })               \n}).catch((err) => {\nreply(`*Failed to download media and send videos*`)\n})\n}\nbreak\ncase 'tt3': case 'tiktok3': {\n  // //if \nif (!text) throw '*Enter a Link Query!*'            \n   \nlet bocil = require('@bochilteam/scraper')    \nif (!isUrl(args[0]) && !args[0].includes('tiktok.com')) throw '*The link you provided is not valid*'                \nbocil.tiktokdlv3(`${text}`).then(async (video) => {           \nvar hadi = randomNomor(100)        \nvar hadie = randomNomor(200)     \nvar hadir = randomNomor(300)\nvar memek = randomNomor(1000)                      \nlet caption = `**▊▊▊TIKTOK DL▊▊▊**\\n\\n*⬤AUTHOR* : DRIPS\\n*⬤NICKNAME* : ${video.author.nickname}\\n*⬤CAPTION* : ${video.description}\\n*⬤COMMENTS* : ${memek}\\n*⬤CREATE* ${hadir} Ago\\n*⬤LIKES* : ${hadi}\\n*⬤DISLIKES* : ${hadie}\\n*⬤ SOURCE* : ${text}`\nbuf = await getBuffer(video.author.avatar)                \nlet message = await prepareWAMessageMedia({ image: buf, jpegThumbnail: buf }, { upload: ZimBotInc.waUploadToServer })\nconst template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: caption,\nhydratedFooterText: `${botname}`,\nhydratedButtons: [{\nurlButton: {\ndisplayText: 'SOURCE',\nurl: `${text}`\n}\n}, {\nurlButton: {\ndisplayText: 'GITHUB',\nurl: 'https://youtube.com/@zim-bot'\n}\n}, {\nquickReplyButton: {\ndisplayText: 'WATERMARK',\nid: `ttwm ${text}`\n}\n}, {\nquickReplyButton: {\ndisplayText: 'NOWATERMARK',\nid: `tiktoknowm ${text}`\n}  \n}, {\nquickReplyButton: {\ndisplayText: 'AUDIO',\nid: `tiktokmp3 ${text}`\n}\n}]\n}\n}\n}), { userJid: m.chat, quoted: m })\nZimBotInc.relayMessage(m.chat, template.message, { messageId: template.key.id })                \n}).catch((err) => {\nreply(`*Failed to download media and send videos*`)\n})\n}\nbreak\ncase 'tiktokmp3': case 'tiktokaudio': { \t   \n\nif (!text) throw '*Enter Link Tiktok!*'\nif (!isUrl(args[0]) && !args[0].includes('tiktok.com')) throw '*The link you provided is not valid*'\nlet got = require('./lib/tiktok.js')\n   \ngot.tiktokDown(`${text}`).then(async (data) => {\nZimBotInc.sendMessage(m.chat, { audio: { url: data.result.nowatermark }, mimetype: 'audio/mp4'}, { quoted: m })\n}).catch((err) => {\nreply(`*Failed to download media and send audio*`)\n})\n}\nbreak\ncase 'ttmp3': {\nif (!text) throw `*Enter link tiktok example ${prefix + command} https://vt.tiktok.com/zgjbtcsdq/`  \nif (!isUrl(args[0]) && !args[0].includes('tiktok.com')) throw '*The link you provided is not valid*'\nlet get = require('./lib/scraper.js')\n                                  \nget.aiovideodl(`${text}`).then(async (res) => {        \nvar anu = await getBuffer(res.medias[2].url)         \nZimBotInc.sendMessage(m.chat, { audio: anu, mimetype: 'audio/mpeg'}, { quoted: m })\n}).catch((err) => {\nreply(`*Failed to download media and send videos*`)\n})\n}\nbreak\ncase 'igt': case 'igtdl': case 'instagrtam': {\n\n  \n\nif (!text) throw '*Please Enter Instagarm Link*' \n\nif (!isUrl(args[0]) && !args[0].includes('instagram.com')) throw '*The link you provided is not valid*'\n\n   \n\n                \n\nlet urlnya = text\n\n hx.igdl(urlnya)\n\n .then(async(result) => {\t  \n\n\n var halo = 0\t\t\n\n\nZimBotInc.sendMessage(m.chat, { image: { url: result.user.profilePicUrl }, jpegThumbnail: await getBuffer(result.user.profilePicUrl), caption: `*----「 INSTAGRAM DOWNLOADER 」----*\\n\\n*⬤ Username :* ${result.user.username}\\n*⬤ Fullname :* ${result.user.fullName}\\n*⬤ Followers :* ${result.user.followers}\\n*⬤ Following :* ${result.user.following}\\n*⬤ ID :* ${result.user.id}\\n*⬤ Filetype :* ${result.medias[0].fileType}\\n*⬤ Type :* ${result.medias[0].type}\\n*⬤ Jumlah Media :* ${result.medias.length}\\n*⬤ Url :* ${text}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*` }, { quoted: m })\t                                  \t                      \t            \n\n\nfor(let i of result.medias) {\t\t\n\n\nif(i.url.includes('mp4')){\t\t           \t\t\t    \t\t\t\t\n\n\nlet link = await getBuffer(i.url)\n\nZimBotInc.sendMessage(m.chat, { video: link, jpegThumbnail: await getBuffer(i.preview), caption: `*Instagram ${i.type}*` }, { quoted: m })\n\n} else {\n\n\nlet link = await getBuffer(i.url)\n\nZimBotInc.sendMessage(m.chat, { image: link, jpegThumbnail: await getBuffer(i.preview), caption: `*Instagram ${i.type}*` }, { quoted: m })          \n\n\n}\n\n\n }\n\n}).catch((err) => reply(`*Sorry Instagram Instagram ${text} Not found*`))\n\n}\t\t\nbreak\ncase 'ig':{\nif (args.length === 0) throw `Where is the link?\\nSend ${prefix + command} url`\nlet urlInsta = args[0];\nif (!(urlInsta.includes(\"instagram.com/p/\") ||\nurlInsta.includes(\"instagram.com/reel/\") ||\nurlInsta.includes(\"instagram.com/tv/\")))\nreturn ZimBotInc.sendMessage(m.chat,{ text: `The link you provided is not a instagram link` },{ quoted: m });      \nif (urlInsta.includes(\"?\"))\nurlInsta = urlInsta.split(\"/?\")[0];\nig.fetchPost(urlInsta).then((res) => {\nif (res.media_count == 1) {\nif (res.links[0].type == \"video\") {\nZimBotInc.sendMessage(m.chat,{video: { url: res.links[0].url }},{ quoted: m })\n}else if (res.links[0].type == \"image\") {\nZimBotInc.sendMessage(m.chat,{image: { url: res.links[0].url }},{ quoted: m })\n}\n}\nelse if (res.media_count > 1) {\nfor (let i = 0; i < res.media_count; i++) {\nif (res.links[i].type == \"video\") {\nZimBotInc.sendMessage(m.chat,{video: { url: res.links[i].url }},{ quoted: m })\n} else if (res.links[i].type == \"image\") {\nZimBotInc.sendMessage(m.chat,{image: { url: res.links[i].url }},{ quoted: m })\n}\n}\n}            \n}).catch((error) => {\nreply(error);\nZimBotInc.sendMessage(m.chat, { text: `sorry zimbot user must be private or unavailable` }, { quoted: m })\n});\n\n}\nbreak\ncase 'tinyurl':{\n   if(!q) return m.reply('link?')\n   request(`https://tinyurl.com/api-create.php?url=${q}`, function (error, response, body) {\n   try {\n  m.reply(body)\n  } catch (e) {\n  m.reply(e)\n  }\n  })\n  }\nbreak\ncase 'creategroup':\nif (!isCreator) return m.reply(mess.owner)\nif (!q) return reply(\"Enter text\")\nconst groupu = await ZimBotInc.groupCreate(q, [owner + \"@s.whatsapp.net\"])\nm.reply('done 👍')\nbreak\ncase 'ig3': case 'igdl3': case 'instagram3': {\n\n   ////if \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('instagram.com')) throw '*The link you provided is not valid*'\n   \nlet bicil = require('@bochilteam/scraper')\nlet urlnya = text\n bicil.instagramdlv4(urlnya)\n .then(async(result) => {\nfor(let i of result){\nif(i.url.includes('mp4')){\nlet link = await getBuffer(i.url)\nZimBotInc.sendMessage(m.chat, { video: link, jpegThumbnail: await getBuffer(i.thumbnail), caption: `*${botname}*` }, { quoted: m }) \n} else {\nlet link = await getBuffer(i.url)\nZimBotInc.sendMessage(m.chat, { image: link, jpegThumbnail: await getBuffer(i.thumbnail), caption: `*${botname}*` }, { quoted: m })                  \n}\n}\n}).catch((err) => reply(`*Failed When Downloading And Sending Media*`))\n}\t\t\nbreak\ncase 'ig2': case 'igdl2': case 'instagram2': {\t            \n   if (!text) throw '*Enter a Link Query!*'                \n   if (!isUrl(args[0]) && !args[0].includes('instagram.com')) throw '*The link you provided is not valid*'\n   \nanu = await fetchJson(`https://api.akuari.my.id/downloader/igdl?link=${text}`)\nvar oi = 1\nfor(let i of anu.medias){                \nvar txt = `*▊▊▊INSTA DL▊▊▊*\\n\\n*Username:* ${anu.user.username}\\n*Fullname:* ${anu.user.fullName}\\n*Followers:* ${anu.user.followers}\\n*Type:* ${anu.medias[0].type}\\n*Tipe:* ${anu.medias[0].fileType}\\n*ID:* ${anu.user.id}\\n*Jumlah Media:* ${oi++}\\n*Url:* ${text}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nvar buf = await getBuffer(anu.user.profilePicUrl)        \nZimBotInc.sendMessage(m.chat, { image: { url: anu.user.profilePicUrl }, jpegThumbnail:buf, caption: `${txt}` }, { quoted: m }).catch((err) => m.reply('error'))\nZimBotInc.sendMessage(m.chat, { video: { url: i.url }, jpegThumbnail:buf, caption: `${botname}`}, { quoted: m }).catch((err) => m.reply('error'))\n}\n}\nbreak\ncase 'igimage': {\t            \nif (!text) throw '*Enter a Link Query!*'\nconst { instagramdl, instagramdlv2, instagramdlv3 } = require('@bochilteam/scraper')\nif (!isUrl(args[0]) && !args[0].includes('instagram.com')) throw '*The link you provided is not valid*'\n   \ninstagramdlv3(`${text}`).then(async (data) => {\nfor (let f of data) {                                      \nZimBotInc.sendMedia(m.chat, f.url, '', `Download Url Instagram From ${text}`, m)\n}\n}).catch((err) => {\nreply(`*Failed to download media and send videos*`)\n})\n}\nbreak\ncase 'igs': case 'igstory': case 'instagramstory': {\n\n   \n\nif (!text) throw 'Type  Username!' \n\n                 \n\nlet urlnya = text\n\n hx.igstory(urlnya)\n\n .then(async(result) => {\n\nvar halo = 0\t\t\n\nZimBotInc.sendMessage(m.chat, { image: { url: result.user.profilePicUrl }, jpegThumbnail: await getBuffer(result.user.profilePicUrl), caption: `*----「 INSTAGRAM STORY 」----*\\n\\n*⬤ Username :* ${result.user.username}\\n*⬤ Fullname :* ${result.user.fullName}\\n*⬤ Followers :* ${result.user.followers}\\n*⬤ Following :* ${result.user.following}\\n*⬤ ID :* ${result.user.id}\\n*⬤ Filetype :* ${result.medias[0].fileType}\\n*⬤ Type :* ${result.medias[0].type}\\n*⬤ Media :* ${result.medias.length}\\n*⬤ Bio :* ${result.user.biography}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*` }, { quoted: m })\t                                  \t                      \t            \n\nfor(let i of result.medias) {\n\nif(i.url.includes('mp4')){\n\nlet link = await getBuffer(i.url)\n\nZimBotInc.sendMessage(m.chat, { video: link, jpegThumbnail: await getBuffer(i.preview), caption: `*Story ${i.type}*` }, { quoted: m }) \n\n} else {\n\nlet link = await getBuffer(i.url)\n\nZimBotInc.sendMessage(m.chat, { image: link, jpegThumbnail: await getBuffer(i.preview), caption: `*Story ${i.type}*` }, { quoted: m })                  \n\n}\n\n}\n\n}).catch((err) => reply(`*Sorry Story Instagram ${text} not found*`))\n\n}\t\t\n\nbreak\ncase 'igs2': case 'igstory2': case 'instagramstory2':{\n////if you (copy.codes) .then(give a credit)\nif (!text) throw '*Enter a Link Query!*'\n//   if (!isUrl(args[0]) && !args[0].includes('facebook.com')) throw '*The link you provided is not valid*'\n   \nanu = await fetchJson(`https://api.akuari.my.id/downloader/igStory?username=${text}`)        \nfor (let i of anu) {\ntummb = await getBuffer(i.preview)         \nZimBotInc.sendMessage(m.chat, { video: { url: i.url }, jpegThumbnail:tummb, caption: `*${botname}*`}, { quoted: m }).catch((err) => m.reply('*Sorry, the feature is in error*'))\n}\n}\nbreak\ncase 'igs3': case 'igstory3': case 'instagramstory3': {\n  \nif (!text) throw 'Enter Username!' \n   \nlet bicil = require('@bochilteam/scraper')\nlet urlnya = text\nbicil.instagramStoryv2(urlnya)\n.then(async(result) => {\t  \nvar halo = 1\t\t\nZimBotInc.sendMessage(m.chat, { image: { url: result.user.profilePicUrl }, jpegThumbnail: await getBuffer(result.user.profilePicUrl), caption: `*----「 INSTA DOWNLOADER 」----*\\n\\n*⬤ Username :* ${result.user.username}\\n*⬤ Fullname :* ${result.user.fullName}\\n*⬤ Followers :* ${result.user.followers}\\n*⬤ Following :* ${result.user.following}\\n*⬤ ID :* ${result.user.id}\\n*⬤ Jumlah Media :* ${halo++}\\n*⬤ Bio :* ${result.user.biography}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*` }, { quoted: m })\t                                  \t                      \t            \nfor(let i of result.results) {\t\t\nif(i.url.includes('mp4')){\t\t           \t\t\t    \t\t\t\t\nlet link = await getBuffer(i.sourceUrl)\nZimBotInc.sendMessage(m.chat, { video: link, jpegThumbnail: await getBuffer(i.thumbnail), caption: `*Story ${i.type}*` }, { quoted: m })\n} else {\nlet link = await getBuffer(i.url)\nZimBotInc.sendMessage(m.chat, { image: link, jpegThumbnail: await getBuffer(i.thumbnail), caption: `*Story ${i.type}*` }, { quoted: m })          \n}\n}\n}).catch((err) => reply(`*Sorry Story Instagram ${text} Tnot found*`))\n}\t\t\nbreak\ncase 'igtv': {\t            \nif (!text) throw '*Enter a Link Query!*'\nconst { instagramdl, instagramdlv2, instagramdlv3 } = require('@bochilteam/scraper')\nif (!isUrl(args[0]) && !args[0].includes('instagram.com')) throw '*The link you provided is not valid*'\n   \ninstagramdlv3(`${text}`).then(async (data) => {            \nvar buf = await getBuffer(data[0].thumbnail)        \nZimBotInc.sendMessage(m.chat, { video: { url: data[0].url }, jpegThumbnail:buf, caption: `${botname}`}, { quoted: m })\n}).catch((err) => {\nreply(`*Failed to download media and send videos*`)\n})\n}\nbreak\ncase 'twitter': case 'td': case 'twitterdl': {     \t             \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('twitter.com')) throw '*The link you provided is not valid*'\n     \nxa.Twitter(`${text}`).then(async (data) => {                    \nlet txt = `*▊▊▊TWITTER DL▊▊▊*\\n\\n`\ntxt += `*⬤TITLE :* ${data.title}\\n`\ntxt += `*⬤QUALITY :* ${data.medias[1].quality}\\n`\ntxt += `*⬤TYPE :* ${data.medias[1].extension}\\n`\ntxt += `*⬤SIZE :* ${data.medias[1].formattedSize}\\n`\ntxt += `*⬤DURATION :* ${data.medias.length}\\n`\ntxt += `*⬤URL :* ${data.url}\\n\\n`\ntxt += `*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nbuf = await getBuffer(data.thumbnail)    \nZimBotInc.sendMessage(m.chat, { image: { url: data.thumbnail }, jpegThumbnail:buf, caption: `${txt}` }, { quoted: m })\nfor (let i of data.medias) {\nZimBotInc.sendMessage(m.chat, { video: { url: i.url }, jpegThumbnail:buf, caption: `*Downloading From ${text}*`}, { quoted: m })\n}\n}).catch((err) => {\nreply(`*Failed to download media and send videos*`)\n})\n }\n break\ncase 'twitter2': case 'td2': case 'twitterdl2': {     \t             \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('twitter.com')) throw '*The link you provided is not valid*'\n     \nxa.Twitter(`${text}`).then(async (data) => {\nfor (let x of data.medias) {\nlet txt = `*▊▊▊TWITTER DL▊▊▊*n\\n`\ntxt += `*⬤TITLE :* ${data.title}\\n`\ntxt += `*⬤QUALITY :* ${x.quality}\\n`\ntxt += `*⬤TYPE:* ${x.extension}\\n`\ntxt += `*⬤SIZE:* ${x.formattedSize}\\n`\ntxt += `*⬤URL :* ${data.url}\\n\\n`\ntxt += `*Hi ${pushname}The bot is doing great job dont forget to subcribe*`\nbuf = await getBuffer(data.thumbnail)    \nZimBotInc.sendMessage(m.chat, { video: { url: x.url }, jpegThumbnail:buf, caption: `${txt}`}, { quoted: m })\n}\n}).catch((err) => m.reply(`Sorry the faiture is error`))   \n }\n break\n\ncase 'twittermp3': case 'twitteraudio': { \t             \n  if (!text) throw '*Enter a Link Query!*'\n  if (!isUrl(args[0]) && !args[0].includes('twitter.com')) throw '*The link you provided is not valid*'\n     \n  xa.Twitter(`${text}`).then(async (data) => {\n  ZimBotInc.sendMessage(m.chat, { audio: { url: data.medias[1].url }, mimetype: 'audio/mp4'}, { quoted: m })\n  }).catch((err) => {\n  reply(`*Failed to download media and send audio*`)\n})\n }\nbreak\ncase 'fbdl': case 'facebook': case 'pesbuk': {     \t    \n         \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('facebook.com')) throw '*The link you provided is not valid*'\n              \nlet bocil = require('@bochilteam/scraper')  \nbocil.facebookdlv2(`${text}`).then(async (data) => {                   \n\nlet txt = `*▊▊▊FB DOWNLOAD▊▊▊*\\n\\n`\n\ntxt += `*⬤TITLE :* ${data.title}\\n`\n\ntxt += `*⬤QUALITY :* ${data.result[0].quality}\\n`\n\ntxt += `*⬤DESCRIPTION :* ${data.description}\\n`\n\ntxt += `*⬤ID :* ᴢɪᴍ ʙᴏᴛ ɪɴᴄ\\n`\n\ntxt += `*⬤URL :* ${text}\\n\\n`\n\ntxt += `*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`                \n\nbuf = await getBuffer(data.thumbnail)    \n\nZimBotInc.sendMessage(m.chat, { image: { url: data.thumbnail }, jpegThumbnail:buf, caption: `${txt}` }, { quoted: m })         \n\nfor (let i of data.result) {     \n\nZimBotInc.sendMessage(m.chat, { video: { url: i.url }, jpegThumbnail:buf, caption: `*⬤ Quality :* ${i.quality}`}, { quoted: m })\n\n}          \n\n}).catch((err) => {\n\nreply(`*Failed When Downloading Media and Sending Files*`)\n\n})\n\n }\n\n break\ncase 'fbmp3': case 'facebookmp3': case 'facebookaudio': {\n\nif (!text) return m.reply(`Use${prefix + command} enter facebook link`)\nif (!isUrl(args[0]) && !args[0].includes('facebook.com')) throw '*The link you provided is not valid*'\n     \nlet noh = require('@bochilteam/scraper')                \nnoh.savefrom(`${text}`).then(async (anu) => {  \nZimBotInc.sendMessage(m.chat, { audio: { url: anu.url[0].url }, mimetype: 'audio/mp4' }, { quoted: m })      \n}).catch((err) => {\nreply(`*Failed to link to audio*`)\n})\n}\n break\ncase 'fb6': {   \t            \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('facebook.com')) throw '*The link you provided is not valid*'\n                 \nxa.Facebook(`${text}`).then(async (data) => {                   \nlet txt = `*▊▊▊FB6 DOWNLOAD▊▊▊*\\n\\n`\ntxt += `*⬤TITLE :* ${data.title}\\n`\ntxt += `*⬤QUALITY :* ${data.medias[1].quality}\\n`\ntxt += `*:⬤TYPE* ${data.medias[1].extension}\\n`\ntxt += `*⬤SIZE :* ${data.medias[1].formattedSize}\\n`\ntxt += `*⬤URL :* ${data.url}\\n\\n`\ntxt += `*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`\nbuf = await getBuffer(data.thumbnail)    \nZimBotInc.sendMessage(m.chat, { image: { url: data.thumbnail }, jpegThumbnail:buf, caption: `${txt}` }, { quoted: m })              \nZimBotInc.sendMessage(m.chat, { video: { url: data.medias[1].url }, jpegThumbnail:buf, caption: `*⬤ Quality :* ${data.medias[1].quality}`}, { quoted: m })                \n}).catch((err) => {\nreply(`*Failed When Downloading Media and Sending Files*`)\n})\n}\nbreak\ncase 'youtube': case 'ytdl': {\n   ////if \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('youtube.com')) throw '*The link you provided is not valid*'\n    \nanu = await fetchJson(`https://api.akuari.my.id/downloader/youtube?link=${text}`)        \nif (anu.filesize_video >= 100000) return m.reply('*File Over Limit* '+util.format(anu))\ntummb = await getBuffer(anu.thumb)\naudio = await getBuffer(anu.audio)        \nZimBotInc.sendMessage(m.chat, {document: audio, mimetype: 'audio/mpeg', fileName: `${anu.title}`}, { quoted : m }).catch((err) => m.reply('*Sorry, the feature is in error*'))\nZimBotInc.sendMessage(m.chat, { video: { url: anu.video }, jpegThumbnail:tummb, caption: `${util.format(anu)}`}, { quoted: m }).catch((err) => m.reply('*Sorry, the feature is in error*'))\n }\n break\n case 'igreal': case 'instagramreal': {\n   ////if \nif (!text) throw '*Enter a Link Query!*'\nif (!isUrl(args[0]) && !args[0].includes('instagram.com')) throw '*The link you provided is not valid*'\n     \nanu = await fetchJson(`https://api.akuari.my.id/downloader/igdl?link=${text}`)        \ntummb = await getBuffer(anu.medias[0].preview)         \nZimBotInc.sendMessage(m.chat, { video: { url: anu.medias[0].url }, jpegThumbnail:tummb, caption: `${util.format(anu)}`}, { quoted: m }).catch((err) => m.reply('*Sorry, the feature is in error*'))\n }\n break\n case 'cuttly': {\n  //if \nif (!text) throw `Example : ${prefix + command} https://github.com`\nanu = await fetchJson(`https://xteam.xyz/shorturl/cuttly?url=${text}&nama=alyabot&APIKEY=${setting.riy}`)\nm.reply(`${anu.result}`)\n}\nbreak\ncase 'speedtest': {\n  reply('Testing Speed...')\n  let cp = require('child_process')\n  let { promisify } = require('util')\n  let exec = promisify(cp.exec).bind(cp)\n  let o\n  try {\n  o = await exec('python speed.py')\n  } catch (e) {\n  o = e\n  } finally {\n  let { stdout, stderr } = o\n  if (stdout.trim()) m.reply(stdout)\n  if (stderr.trim()) m.reply(stderr)\n  }\n  }\n  break\n  case 'report': {\n    if (!args.join(\" \")) return m.reply(`Example : \\n- ${prefix + command} feature ig error min\\n- ${prefix + command} this user is spamming min`)\n    teks = `*▊▊▊REPORT FEATURE▊▊▊*`\n    teks1 = `\\n\\nNUMBER : @${m.sender.split(\"@\")[0]}\\n*REPORT :* ${args.join(\" \")}`\n    teks2 = `\\n\\nSucces send to owner`\n    for (let i of owner) {\n    ZimBotInc.sendMessage(i + \"@s.whatsapp.net\", {text: teks + teks1, mentions:[m.sender]}, {quoted:m})\n    }\n    ZimBotInc.sendMessage(m.chat, {text: teks + teks2 + teks1, mentions:[m.sender]}, {quoted:m})\n    }\n    break\n    case 'request': case 'suggest': {\n    if (!args.join(\" \")) return m.reply(`Example : ${prefix + command} min add a downloader feature`)\n    teks = `*▊▊▊REQUEST FEATURE▊▊▊*`\n    teks1 = `\\n\\n*NUMBER :* @${m.sender.split(\"@\")[0]}\\n*REQUEST :* ${args.join(\" \")}`\n    teks2 = `\\n\\nSucces send to owner`\n    for (let i of owner) {\n    ZimBotInc.sendMessage(i + \"@s.whatsapp.net\", {text: teks + teks1, mentions:[m.sender]}, {quoted:m})\n    }\n    ZimBotInc.sendMessage(m.chat, {text: teks + teks2 + teks1, mentions:[m.sender]}, {quoted:m})\n    }\n    break\n    case 'amino': {\n      if (!text) throw `what are you looking for!, example : ${prefix + command} naruto`\n      \n      let anu = await fetchJson(`https://violetics.pw/api/search/amino?apikey=beta&query=${text}`)\n      m.reply(`${util.format(anu)}`)\n      }\n  break\ncase 'anime': {\n\n \n\nif (!text) return m.reply(`you are looking for what anime apa?\\n\\nEXAMPLE ${prefix}anime naruto`)\n\n\nanu = await fetchJson(`https://api.jikan.moe/v4/anime?q=${text}`)\n\nlet sections = []   \n\nfor (let i of anu.data) {\n\nconst list = {title: `${i.title}`,\n\nrows: [\n\n{\n\ntitle: `${i.title}`, \n\nrowId: `${prefix}animee ${i.mal_id}`,\n\ndescription: `${i.synopsis}`\n\n}, \n\n]\n\n}\n\nsections.push(list)   \n\n}\n\nconst sendm =  ZimBotInc.sendMessage(\n\nm.chat, \n\n{\n\ntext: `*Search Results From* ${text}`,\n\nfooter: botname,\n\ntitle: \"*▊▊▊ANIME▊▊▊*\",\n\nbuttonText: \"CLICK HERE\",\n\nsections\n\n}, { quoted : m })\n\n}\n\nbreak\ncase 'animee': {\n\nres = await fetchJson(`https://api.jikan.moe/v4/anime/${q}`)\nlet txt = `𝗔𝗻𝗶𝗺𝗲 𝗜𝗻𝗳𝗼\\n\\n*TITLE:* *${res.data.title}*\\n*ENGLISH:* *${res.data.title_english}*\\n*JAPANESE:* *${res.data.title_japanese}*\\n*TYPE ANIME:* *${res.data.type}*\\n*ADAPTER:* *${res.data.source}*\\n*TOTAL EPISODE:* *${res.data.episodes}*\\n*STATUS:* *${res.data.status}*\\n*ONGOING:* *${res.data.airing ? 'Ya' : 'DRIS'}*\\n*AIRED:* *${res.data.aired.string}*\\n*DURATION:* *${res.data.duration}*\\n*RATING:* *${res.data.rating}*\\n*SCORE:* *${res.data.score}*\\n*RANK:* *${res.data.rank}*\\n*STUDIO:* *${res.data.studios[0].name}* `\nZimBotInc.sendMessage(m.chat, { image : { url : res.data.images.jpg.image_url}, caption : txt}, {quoted :m }).catch((err) => m.reply('sorry error'))\n}\nbreak\ncase 'bcgc': case 'bcgroup': {\nif (!isCreator) throw mess.owner\nif (!text) throw `*Type some text*\\n\\nExample : ${prefix + command} ZIM-BOT-INC`\nlet getGroups = await ZimBotInc.groupFetchAllParticipating()\nlet groups = Object.entries(getGroups).slice(0).map(entry => entry[1])\nlet anu = groups.map(v => v.id)\nreply(`*Send Broadcast To* ${anu.length} *Group Chat, Time ${anu.length * 1.5} second*`)\nfor (let i of anu) {\nawait sleep(1500)\nlet btn = [{\nurlButton: {\ndisplayText: 'GITHUB',\nurl: 'https://youtube.com/@zim-bot'\n}\n}]\nlet txt = `「 *ZIMBOT BROADCAST* 」\\n\\n${text}`\nZimBotInc.send5ButImg(i, txt, botname, global.bc, btn)\n}\nreply(` *Send Broadcast To* ${anu.length} *Group*`)\n}\nbreak\ncase 'bc': case 'broadcast': case 'bcall': {\nif (!isCreator) throw mess.owner\nif (!text) throw `*Type some text*\\n\\nExample : ${prefix + command} ZIM-BOT-INC`\nlet anu = await store.chats.all().map(v => v.id)\nreply(`*Send Broadcast To* ${anu.length} Chat\\nTime ${anu.length * 1.5} second`)\nfor (let yoi of anu) {\nawait sleep(1500)\nlet btn = [{\nurlButton: {\ndisplayText: 'GITHUB',\nurl: 'https://youtube.com/@zim-bot'\n}\n}]\nlet txt = `「 *ZIMBOT BROADCAST* 」\\n\\n${text}`\nZimBotInc.send5ButImg(yoi, txt, botname, global.bc, btn)\n}\nreply('*Success Broadcast*')\n}\nbreak\ncase 'bc2': case 'bcloc': {\nif (!isCreator) throw mess.owner\nif (!text) throw `*Type some text*\\n\\nExample : ${prefix + command} drips|hi5`\nlet anu = await store.chats.all().map(v => v.id)\nlet [melo, melo2] = text.split`|`\nreply(`*Send Broadcast To* ${anu.length} Chat\\nTime ${anu.length * 1.5} minutes`)\nfor (let yoi of anu) {\nawait sleep(1500)\nvar button = [{ buttonId: `${prefix}ho`, buttonText: { displayText: `${melo2}` }, type: 1 }]              \nZimBotInc.sendMessage(yoi, { caption: `${melo}`, location: { jpegThumbnail: await getBuffer(picak+'Brodcast') }, buttons: button, footer: `${botname}`, mentions: [m.sender] })\n}\t\t\n}\nbreak\ncase 'bcimage': case 'bcvideo': case 'bcaudio': {\nif (!isCreator) throw mess.owner\nif (!/video/.test(mime) && !/image/.test(mime) && !/audio/.test(mime)) throw `*Send/Reply Video/Audio/Image You Want to Broadcast With Caption* ${prefix + command}`\nlet anu = await store.chats.all().map(v => v.id)\nlet ftroli ={key: {fromMe: false,\"participant\":\"0@s.whatsapp.net\", \"remoteJid\": \"6289523258649-1604595598@g.us\"}, \"message\": {orderMessage: {itemCount: 2022,status: 200, thumbnail: fs.readFileSync('./drips.jpg'), surface: 200, message: `ZIM-BOT-INC`, orderTitle: 'ZIM-BOT-INC', sellerJid: '0@s.whatsapp.net'}}, contextInfo: {\"forwardingScore\":999,\"isForwarded\":true},sendEphemeral: true}\nreply(`*Send Broadcast To* ${anu.length} *Group Chat, Time ${anu.length * 1.5} minutes*`)\nfor (let i of anu) {\nawait sleep(1500)\nlet butoon = [{\nurlButton: {\ndisplayText: `GITHUB`,\nurl: 'https://youtube.com/@zim-bot'\n}\n},\n{\nquickReplyButton: {\ndisplayText: 'MENU',\nid: 'menu'\n}\n}]\nlet media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\nlet buffer = fs.readFileSync(media)\nif (/webp/.test(mime)) {\nZimBotInc.sendMessage(i, { sticker: { url: media } }, { quoted: ftroli })\n} else if (/image/.test(mime)) {\nlet junn = `*_BROADCAST IMAGE_*${text ? '\\n\\n' + text : ''}`\nZimBotInc.send5ButImg(i, junn, `${global.botname}`, buffer, butoon)\n} else if (/video/.test(mime)) {\nlet junn = `*_BROADCAST VIDIO_*${text ? '\\n\\n' + text : ''}`\nZimBotInc.sendMessage(i, {video: buffer, caption: `${junn}`}, { quoted: ftroli })\n} else if (/audio/.test(mime)) {\nZimBotInc.sendMessage(i, {audio: buffer, mimetype: 'audio/mpeg'}, { quoted : ftroli })\n} else {\nreply(`*Send/Reply Video/Audio/Image You Want to Broadcast With Caption* ${prefix + command}`)\n}\nawait fs.unlinkSync(media)\n}\nreply(` *Send Broadcast To* ${anu.length} *Chats*`)\n}\nbreak\ncase 'bctext': {\nif (!isCreator) throw mess.owner\nif (!text) throw `*Type some text*\\n\\nExample : ${prefix + command} zim-ot`\n//let ftroli ={key: {fromMe: false,\"participant\":\"0@s.whatsapp.net\", \"remoteJid\": \"6289523258649-1604595598@g.us\"}, \"message\": {orderMessage: {itemCount: 666666666,status: 200, thumbnail: await getBuffer(picak+'Brodcast'), surface: 200, message: `© ${botname}`, orderTitle: 'memek', sellerJid: '0@s.whatsapp.net'}}, contextInfo: {\"forwardingScore\":999,\"isForwarded\":true},sendEphemeral: true}\nlet ftroli = {key: {participant: `0@s.whatsapp.net`, ...(m.chat ? { remoteJid: `6283136505591-1614953337@g.us` } : {}) }, message: { 'contactMessage': { 'displayName': `© ${botname}`, 'vcard': `BEGIN:VCARD\\nVERSION:3.0\\nN:XL;${ZimBotInc.user.name},;;;\\nFN:${botname},\\nitem1.TEL;waid=${m.sender.split('@')[0]}:${m.sender.split('@')[0]}\\nitem1.X-ABLabel:Ponsel\\nEND:VCARD`, 'jpegThumbnail': await getBuffer(picak+'Brodcast'), thumbnail: await getBuffer(picak+'Brodcast'),sendEphemeral: true}}}\nlet anu = await store.chats.all().map(v => v.id)\nreply(`*Send Broadcast To* ${anu.length} Chat\\n*Time ${anu.length * 1.5} seconds*`)\nfor (let yoi of anu) {\nawait sleep(1500)\nZimBotInc.sendMessage(yoi, {text:`${text}`}, {quoted:blessedtuna})\n}\nreply('*Success Broadcast*')\n}\nbreak\ncase 'bcvid': case 'bcvideo': {\nif (!isCreator) throw mess.owner\nif (!text) throw `*use ${prefix + command}|text*`\nlet buf = `https://telegra.ph/file/f8b17ce3b28bb5f25f5e1.mp4`\nlet ftroli ={key: {fromMe: false,\"participant\":\"0@s.whatsapp.net\", \"remoteJid\": \"6289523258649-1604595598@g.us\"}, \"message\": {orderMessage: {itemCount: 999999999999,status: 200, thumbnail: await getBuffer(picak+'Brodcast'), surface: 200, message: `© ${botname}`, orderTitle: 'memek', sellerJid: '0@s.whatsapp.net'}}, contextInfo: {\"forwardingScore\":999,\"isForwarded\":true},sendEphemeral: true}                \nlet anu = await store.chats.all().map(v => v.id)\nreply(`*Send Broadcast To* ${anu.length} Chat\\n*Time ${anu.length * 1.5} minute*`)\nfor (let yoi of anu) {\nawait sleep(1500)\t\t    \nZimBotInc.sendMessage(yoi, { video: await getBuffer(buf), jpegThumbnail: await getBuffer(picak+'Brodcast'), caption: `${text}` }, { quoted: ftroli}).catch ((err) => m.reply('*Sorry, failed to send the video*'))\n}\nreply('*Sucecess Broadcast*')\n}\nbreak\ncase 'swm': case 'stickerwm': case 'wm': {\n  reply(mess.wait)\n  if (!args.join(\" \")) return m.reply(`Example :\\n${prefix}swm drips love | tuna`)\n  const swn = args.join(\" \")\n  const pcknm = swn.split(\"|\")[0];\n  const atnm = swn.split(\"|\")[1];\n  if (!/webp/.test(mime)) throw `*reply sticker with caption* *${prefix + command}*`\n  if (m.quoted.isAnimated === true) {\n  ZimBotInc.downloadAndSaveMediaMessage(quoted, \"gifee\")\n  ZimBotInc.sendMessage(m.chat, {sticker:fs.readFileSync(\"gifee.webp\")},{quoted:m})\n  } else if (/image/.test(mime)) {\n  let media = await quoted.download()\n  let encmedia = await ZimBotInc.sendImageAsSticker(m.chat, media, m, { packname: pcknm, author: atnm })\n  await fs.unlinkSync(encmedia)\n  } else if (/video/.test(mime)) {\n  if ((quoted.msg || quoted).seconds > 11) return m.reply('Maksimal 10 detik!')\n  let media = await quoted.download()\n  let encmedia = await ZimBotInc.sendVideoAsSticker(m.chat, media, m, { packname: pcknm, author: atnm })\n  await fs.unlinkSync(encmedia)\n  } else {\n  reply(`*Send Image/Video With Caption* ${prefix + command}\\n*Duration Video 1-9 seconds*`)\n  }\n  }\nbreak\ncase 'smeme': case 'stickmeme': case 'stikmeme': case 'stickermeme': case 'stikermeme': {\nreply(mess.wait)\nif (!/image/.test(mime)) throw respond\nif (!text) throw respond\nreply(mess.wait)\natas = text.split('|')[0] ? text.split('|')[0] : '-'\nbawah = text.split('|')[1] ? text.split('|')[1] : '-'\nlet dwnld = await quoted.download()\nlet { floNime } = require('./lib/uploader')\nlet fatGans = await floNime(dwnld)\nlet smeme = `https://api.memegen.link/images/custom/${encodeURIComponent(atas)}/${encodeURIComponent(bawah)}.png?background=${fatGans.result.url}`\nlet FaTiH = await ZimBotInc.sendImageAsSticker(m.chat, smeme, m, { packname: global.packname, author: global.auhor })\nawait fs.unlinkSync(FaTiH)\n}\nbreak\ncase 'brainly': {\nreply(mess.wait)\nif (!text) throw `Example : ${prefix + command} apa itu wibu`           \nx = await fetchJson(`https://api.violetics.pw/api/media/brainly?apikey=beta&query=${text}`)                       \nini_txt = '*BRAINLY SEARCH*\\n\\n'\nfor (let i of x.result) {       \nini_txt += `*QUESTION* : ${i.pertanyaan}\\n`\nini_txt += `*ANSWER* : ${i.jawaban}\\n`                     \n}   \nreply(`${ini_txt}`)\n}\nbreak\ncase 'searchanime': {\nreply(mess.wait)\nif (!text) throw `Example : ${prefix + command} nama anime`\nanu = await getBuffer(`https://api.akuari.my.id/search/konachan?query=${text}`)\nZimBotInc.sendMessage(m.chat, { image: anu, caption: `${command}` }, { quoted: m}).catch((err) => m.reply('*Sorry Xteam server is down*'))\n}\nbreak\n\n//----END HERE------\\\\\n\n//CREATED BY ᴢɪᴍ ʙᴏᴛ ɪɴᴄ\n\n//----PHOT FILTER-----\\\\\nbreak\ncase 'angie': \ncase 'aria':\ncase 'attic': \ncase 'blackandwhite': \ncase 'chorme1977': \ncase 'constrastbandw':\ncase 'creamy': \ncase 'duotone': \ncase 'eva': \ncase 'goldenhour': \ncase 'hana': \ncase 'hdr': \ncase 'japanese':\ncase 'lana': \ncase 'lavander': \ncase 'lemonande': \ncase 'lightleak': \ncase 'lisa': \ncase 'lomo': \ncase 'milk': \ncase 'molly':\ncase 'monochrome': \ncase 'morning': \ncase 'movie': \ncase 'orton': \ncase 'paretro': \ncase 'perfectbandw': \ncase 'plumy': \ncase 'retrolga': \ncase 'ruby': \ncase 'sand': \ncase 'sapphire': \ncase 'sepia': \ncase 'softsepia': \ncase 'solarize': \ncase 'sphinx':\ncase 'venus': \ncase 'viewfinder': \ncase 'warmsunset': {\nif (!/image/.test(mime)) throw `*Send/Reply Image With Caption* ${prefix + command}`\nlet { UploadFileUgu, webp2mp4File, TelegraPh } = require('./lib/uploader')\nlet media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)   \nlet anu = await TelegraPh(media)\nlet buf = await getBuffer(`https://violetics.pw/api/photofilter/${command}?apikey=beta&image=${anu}`)\nZimBotInc.sendMessage(m.chat, { image: buf, jpegThumbnail:buf, caption: `PhotoFilter ${command}` ,  quoted: m, contextInfo: { externalAdReply:{\n  title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n  body:\"SUBSCRIBE DRIPS OFC\",\n  showAdAttribution: true,\n  mediaType:2,\n  thumbnail: fs.readFileSync(`./drips.jpg`) ,\n  mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\n}\n \n//----END HERE-------\\\\\n\n//CREATED BY ᴢɪᴍ ʙᴏᴛ ɪɴᴄ\n\n//----TEXTPRO--------\\\\\ncase 'candy':\ncase 'christmas': \ncase '3dchristmas': \ncase 'sparklechristmas':\ncase 'deepsea': \ncase 'scifi': \ncase 'rainbow2': \ncase 'waterpipe': \ncase 'spooky': \ncase 'pencil': \ncase 'circuit': \ncase 'discovery': \ncase 'metalic': \ncase 'fiction': \ncase 'demon': \ncase 'transformer': \ncase 'berry': \ncase 'thunder': \ncase '3dstone2': \ncase 'neonlight': \ncase 'glitch': \ncase 'harrypotter': \ncase 'brokenglass': \ncase 'papercut': \ncase 'watercolor': \ncase 'multicolor': \ncase 'neondevil': \ncase 'underwater': \ncase 'graffitibike':\ncase 'snow': \ncase 'cloud': \ncase 'honey': \ncase 'ice': \ncase 'fruitjuice': \ncase 'biscuit': \ncase 'wood': \ncase 'chocolate': \ncase 'strawberry': \ncase 'matrix': \ncase 'blood': \ncase 'dropwater': \ncase 'toxic': \ncase 'lava': \ncase 'rock': \ncase 'bloodglas': \ncase 'halloween': \ncase 'darkgold': \ncase 'joker': \ncase 'wicker':\ncase 'firework': \ncase 'skeleton': \ncase 'blackpink': \ncase 'sand': \ncase 'glue': \ncase '1917': \ncase 'leaves': \ncase 'demon': {\nif (!q) return reply(`Example : ${prefix + command} ${global.ownername}`) \nreply(mess.wait)\nlet link\nif (/candy/.test(command)) link = 'https://textpro.me/create-christmas-candy-cane-text-effect-1056.html'\nif (/christmas/.test(command)) link = 'https://textpro.me/christmas-tree-text-effect-online-free-1057.html'\nif (/3dchristmas/.test(command)) link = 'https://textpro.me/3d-christmas-text-effect-by-name-1055.html'\nif (/sparklechristmas/.test(command)) link = 'https://textpro.me/sparkles-merry-christmas-text-effect-1054.html'\nif (/deepsea/.test(command)) link = 'https://textpro.me/create-3d-deep-sea-metal-text-effect-online-1053.html'\nif (/scifi/.test(command)) link = 'https://textpro.me/create-3d-sci-fi-text-effect-online-1050.html'\nif (/rainbow/.test(command)) link = 'https://textpro.me/3d-rainbow-color-calligraphy-text-effect-1049.html'\nif (/waterpipe/.test(command)) link = 'https://textpro.me/create-3d-water-pipe-text-effects-online-1048.html'\nif (/spooky/.test(command)) link = 'https://textpro.me/create-halloween-skeleton-text-effect-online-1047.html'\nif (/pencil/.test(command)) link = 'https://textpro.me/create-a-sketch-text-effect-online-1044.html'\nif (/circuit/.test(command)) link = 'https://textpro.me/create-blue-circuit-style-text-effect-online-1043.html'\nif (/discovery/.test(command)) link = 'https://textpro.me/create-space-text-effects-online-free-1042.html'\nif (/metalic/.test(command)) link = 'https://textpro.me/creat-glossy-metalic-text-effect-free-online-1040.html'\nif (/fiction/.test(command)) link = 'https://textpro.me/create-science-fiction-text-effect-online-free-1038.html'\nif (/demon/.test(command)) link = 'https://textpro.me/create-green-horror-style-text-effect-online-1036.html'\nif (/transformer/.test(command)) link = 'https://textpro.me/create-a-transformer-text-effect-online-1035.html'\nif (/berry/.test(command)) link = 'https://textpro.me/create-berry-text-effect-online-free-1033.html'\nif (/thunder/.test(command)) link = 'https://textpro.me/online-thunder-text-effect-generator-1031.html'\nif (/magma/.test(command)) link = 'https://textpro.me/create-a-magma-hot-text-effect-online-1030.html'\nif (/3dstone2/.test(command)) link = 'https://textpro.me/create-a-3d-stone-text-effect-online-for-free-1073.html'\nif (/neonlight/.test(command)) link = 'https://textpro.me/create-3d-neon-light-text-effect-online-1028.html'\nif (/glitch/.test(command)) link = 'https://textpro.me/create-impressive-glitch-text-effects-online-1027.html'\nif (/harrypotter/.test(command)) link = 'https://textpro.me/create-harry-potter-text-effect-online-1025.html'\nif (/brokenglass/.test(command)) link = 'https://textpro.me/broken-glass-text-effect-free-online-1023.html'\nif (/papercut/.test(command)) link = 'https://textpro.me/create-art-paper-cut-text-effect-online-1022.html'\nif (/watercolor/.test(command)) link = 'https://textpro.me/create-a-free-online-watercolor-text-effect-1017.html'\nif (/multicolor/.test(command)) link = 'https://textpro.me/online-multicolor-3d-paper-cut-text-effect-1016.html'\nif (/neondevil/.test(command)) link = 'https://textpro.me/create-neon-devil-wings-text-effect-online-free-1014.html'\nif (/underwater/.test(command)) link = 'https://textpro.me/3d-underwater-text-effect-generator-online-1013.html'\nif (/graffitibike/.test(command)) link = 'https://textpro.me/create-wonderful-graffiti-art-text-effect-1011.html'\nif (/snow/.test(command)) link = 'https://textpro.me/create-snow-text-effects-for-winter-holidays-1005.html'\nif (/cloud/.test(command)) link = 'https://textpro.me/create-a-cloud-text-effect-on-the-sky-online-1004.html'\nif (/honey/.test(command)) link = 'https://textpro.me/honey-text-effect-868.html'\nif (/ice/.test(command)) link = 'https://textpro.me/ice-cold-text-effect-862.html'\nif (/fruitjuice/.test(command)) link = 'https://textpro.me/fruit-juice-text-effect-861.html'\nif (/biscuit/.test(command)) link = 'https://textpro.me/biscuit-text-effect-858.html'\nif (/wood/.test(command)) link = 'https://textpro.me/wood-text-effect-856.html'\nif (/chocolate/.test(command)) link = 'https://textpro.me/chocolate-cake-text-effect-890.html'\nif (/strawberry/.test(command)) link = 'https://textpro.me/strawberry-text-effect-online-889.html'\nif (/matrix/.test(command)) link = 'https://textpro.me/matrix-style-text-effect-online-884.html'\nif (/blood/.test(command)) link = 'https://textpro.me/horror-blood-text-effect-online-883.html'\nif (/dropwater/.test(command)) link = 'https://textpro.me/dropwater-text-effect-872.html'\nif (/toxic/.test(command)) link = 'https://textpro.me/toxic-text-effect-online-901.html'\nif (/lava/.test(command)) link = 'https://textpro.me/lava-text-effect-online-914.html'\nif (/rock/.test(command)) link = 'https://textpro.me/rock-text-effect-online-915.html'\nif (/bloodglas/.test(command)) link = 'https://textpro.me/blood-text-on-the-frosted-glass-941.html'\nif (/halloween/.test(command)) link = 'https://textpro.me/halloween-fire-text-effect-940.html'\nif (/darkgold/.test(command)) link = 'https://textpro.me/metal-dark-gold-text-effect-online-939.html'\nif (/joker/.test(command)) link = 'https://textpro.me/create-logo-joker-online-934.html'\nif (/wicker/.test(command)) link = 'https://textpro.me/wicker-text-effect-online-932.html'\nif (/firework/.test(command)) link = 'https://textpro.me/firework-sparkle-text-effect-930.html'\nif (/skeleton/.test(command)) link = 'https://textpro.me/skeleton-text-effect-online-929.html'\nif (/blackpink/.test(command)) link = 'https://textpro.me/create-blackpink-logo-style-online-1001.html'\nif (/sand/.test(command)) link = 'https://textpro.me/write-in-sand-summer-beach-free-online-991.html'\nif (/glue/.test(command)) link = 'https://textpro.me/create-3d-glue-text-effect-with-realistic-style-986.html'\nif (/1917/.test(command)) link = 'https://textpro.me/1917-style-text-effect-online-980.html'\nif (/leaves/.test(command)) link = 'https://textpro.me/natural-leaves-text-effect-931.html'\nlet anu = await maker.textpro(link, q)\nZimBotInc.sendMessage(m.chat, { image: { url: anu }, caption: `Made by ${global.botname}` ,  quoted: m, contextInfo: { externalAdReply:{\n  title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n  body:\"SUBSCRIBE DRIPS OFC\",\n  showAdAttribution: true,\n  mediaType:2,\n  thumbnail: fs.readFileSync(`./drips.jpg`) ,\n  mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\n}\n//----END HERE--------\\\\\n\n//CREATED BY DRIPS\n\n//----PHOTOOXY------\\\\\ncase 'silk':  \ncase '3dnature': \ncase 'bevel': \ncase 'birthdaycake': \ncase  'burnpaper':  \ncase 'coffee': \ncase 'coffee-heartcup': \ncase 'embroiderytext': \ncase 'flaming': \ncase 'flowertypo': \ncase 'funnycup': \ncase 'fur': \ncase 'gerbang': \ncase 'glowrainbow': \ncase 'gradientavatar': \ncase 'graffititext': \ncase 'harrypotter': \ncase 'lovemessage': \ncase 'luxuryroyal': \ncase 'neonlight': \ncase 'sweetcandy': \ncase 'summertext': \ncase 'woodheart': \ncase 'woodblock': \ncase 'yellowroses': \ncase 'wolfmetal': \ncase 'underwaterocean': {\nif (!text) throw `Example : ${prefix + command} text`\nanu = await getBuffer(`https://violetics.pw/api/photooxy/${command}?apikey=beta&text=${text}`)\nZimBotInc.sendMessage(m.chat, { image: anu, caption: `*PHOTO OXY ${command}*` , quoted: m, contextInfo: { externalAdReply:{\n  title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n  body:\"SUBSCRIBE DRIPS OFC\",\n  showAdAttribution: true,\n  mediaType:2,\n  thumbnail: fs.readFileSync(`./drips.jpg`) ,\n  mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\n}\nbreak\n\n//---END HERE------\\\\\n\n//CREATED BY DRIPS\n\n//----EPHOTO-------\\\\\ncase '3d-wood': \ncase 'angels-wings': \ncase 'snake-text': \ncase 'redhot-metal2': \ncase 'sandsummer-beach': \ncase 'snow-text': \ncase 'water-3d': \ncase 'water-effect': \ncase 'wet-glass': \ncase 'status-mood2': \ncase 'summerysand': {\nif (!text) throw `Example : ${prefix + command} nama anime`\nanu = await getBuffer(`https://violetics.pw/api/ephoto360/${command}?apikey=beta&text=${text}`)\nZimBotInc.sendMessage(m.chat, { image: anu, caption: `*EPHOTO ${command}*` ,  quoted: m, contextInfo: { externalAdReply:{\n  title:\"ᴢɪᴍ ʙᴏᴛ ᴠ5\",\n  body:\"SUBSCRIBE DRIPS OFC\",\n  showAdAttribution: true,\n  mediaType:2,\n  thumbnail: fs.readFileSync(`./drips.jpg`) ,\n  mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo` }}}, {quoted: m})\n}\nbreak\n\ncase 'once': case 'toonce': { //by DRIPS\nif (!quoted) throw 'Reply Image'\nif (/image/.test(mime)) {\nanu = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\nZimBotInc.sendMessage(from, {image: {url: anu},viewOnce : true},{quoted: m })\n} else if (/video/.test(mime)) {\nanu = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\nZimBotInc.sendMessage(m.chat, {video: {url: anu},viewOnce : true},{quoted: m })\n}\n}\nbreak\n\ncase 'ary': \ncase 'arygameplays': {\nreplay(mess.wait)\nlet buttons = [\n{buttonId: `ary`, buttonText: {displayText: 'NEXT'}, type: 1}\n]\nlet anu = await fetchJson(`https://wallebotapi.mitomods.com/docs/random/arygameplays?apikey=Donitas`)\nlet buttonMessage = {\nimage: { url: `${anu.result}` },\ncaption: `Arygameplays`,\nfooter: global.botnma,\nbuttons: buttons,\nheaderType: 4\n}\nZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })\n}\nbreak\nbreak\ncase 'emojiapple':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"0\")\nbreak\ncase 'emojigoogle':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"1\")\nbreak\ncase 'emojisamsung':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"2\")\nbreak\ncase 'emojimicrosoft':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"3\")\nbreak\ncase 'emojiwhatsapp':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"4\")\nbreak\ncase 'emojitwitter':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"5\")\nbreak\ncase 'emojifecabook':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"6\")\nbreak\ncase 'emojiskype':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"7\")\nbreak\ncase 'emojijoy':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"8\")\nbreak\ncase 'emojimoji':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"9\")\ncase 'emojipedia':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"10\")\nbreak\ncase 'emojilg':\nif (!q) return reply(\"*Insert emoji, maximum 1 emoji, example?*\" + ` ${prefix + command} 😀`)\nreply(\"[❗] *BEING PROCESSED*\")\nemote(q, \"11\")\nbreak\ncase 'news':\n// and we need jsdom and Readability to parse the article HTML\n\nlet urltt = 'https://newsapi.org/v2/everything?' +\n`q=${text}&` +\n'sortBy=publishedAt&' +\n'apiKey=306032cefd134ab38660d7db51dd18d1';\n// First lets get some search data from News API\n\n// Build the URL we are going request. This will get articles related to Apple and sort them newest first\n\n// Make the request with axios' get() function\naxios.get(urltt).then(function(r1) {\n\n  // At this point we will have some search results from the API. Take the first search result...\n  let firstResult = r1.data.articles[0];\n\n  // ...and download the HTML for it, again with axios\n  axios.get(firstResult.url).then(function(r2) {\n\n    // We now have the article HTML, but before we can use Readability to locate the article content we need jsdom to convert it into a DOM object\n    let dom = new JSDOM(r2.data, {\n      url: firstResult.url\n    });\n\n    // now pass the DOM document into readability to parse\n    let article = new Readability(dom.window.document).parse();\n\n    // Done! The article content is in the textContent property\n    console.log(color(article.textContent));\n    reply(article.textContent)\n  })\n})\nbreak\n/* case 'drips':\n  // First lets get some search data from News API\n\n// Build the URL we are going request. This will get articles related to Apple and sort them newest first\nlet urlttt = 'https://newsapi.org/v2/top-headlines?' +\n`country=za&apiKey=` +\n'306032cefd134ab38660d7db51dd18d1';\n\n// Make the request with axios' get() function\naxios.get(urlttt).then(function(r1) {\n\n  // At this point we will have some search results from the API. Take the first search result...\n  let firstResult = r1.data.articles[0];\n\n  // ...and download the HTML for it, again with axios\n  axios.get(firstResult.url).then(function(r2) {\n\n    // We now have the article HTML, but before we can use Readability to locate the article content we need jsdom to convert it into a DOM object\n    let dom = new JSDOM(r2.data, {\n      url: firstResult.url\n    });\n\n    // now pass the DOM document into readability to parse\n    let article = new Readability(dom.window.document).parse();\n\n    // Done! The article content is in the textContent property\n    console.log(color(article.textContent));\n    reply(article.textContent)\n  })\n})\n    break\n    */\ncase 'topheadlines':\n  \n  // First lets get some search data from News API\n\n// Build the URL we are going request. This will get articles related to Apple and sort them newest first\nlet dhongi = 'https://newsapi.org/v2/top-headlines/sources?bbc-news&apiKey=' +\n'306032cefd134ab38660d7db51dd18d1';\n\n// Make the request with axios' get() function\naxios.get(dhongi).then(function(r1) {\n\n  // At this point we will have some search results from the API. Take the first search result...\n  let firstResult = r1.data.articles[0];\n\n  // ...and download the HTML for it, again with axios\n  axios.get(firstResult.url).then(function(r2) {\n\n    // We now have the article HTML, but before we can use Readability to locate the article content we need jsdom to convert it into a DOM object\n    let dom = new JSDOM(r2.data, {\n      url: firstResult.url\n    });\n\n    // now pass the DOM document into readability to parse\n    let article = new Readability(dom.window.document).parse();\n\n    // Done! The article content is in the textContent property\n    console.log(color(article.textContent));\n    reply(article.textContent)\n  })\n})\n  break\n  case 'googlenews':\n  const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://google-news1.p.rapidapi.com/search',\n  qs: {\n    q: `${text}`,\n    country: 'ZW',\n    lang: 'en',\n    source: 'iharare.com',\n    limit: '100',\n    when: '30d'\n  },\n  headers: {\n    'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',\n    'X-RapidAPI-Host': 'google-news1.p.rapidapi.com',\n    useQueryString: true\n  }\n};\n\nrequest(options, function (error, response, body) {\n\tif (error) throw new Error(error);\n\n\treply(body);\n});\nbreak\ncase 'hackernews':\nconst drips = {\n  method: 'GET',\n  url: 'https://community-hacker-news-v1.p.rapidapi.com/topstories.json',\n  qs: {print: 'pretty'},\n  headers: {\n    'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',\n    'X-RapidAPI-Host': 'community-hacker-news-v1.p.rapidapi.com',\n    useQueryString: true\n  }\n};\nlet dhuripi = require('request')\ndhuripi(drips, function (error, response, body) {\n\tif (error) throw new Error(error);\nreply(body)\n\tconsole.log(body);\n});\nbreak\ncase 'gnews':\nreply(mess.wait)\nconst dripbabe = {\n  method: 'GET',\n  url: 'https://google-news.p.rapidapi.com/v1/search',//By drips \n  qs: {q: `${text}`, country: 'ZW', lang: 'en'}, //put your country on string: country://\n  headers: {\n    'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',// 3 request per hour\n    'X-RapidAPI-Host': 'google-news.p.rapidapi.com',// if you with more request please visit https://rapidapi.com/newscatcher-api-newscatcher-api-default/api/google-news/pricing\n    useQueryString: true\n  }\n};\nlet gnews = require('request')\ngnews(dripbabe, function (error, response, body) {//removing credits is not an option\n\tif (error) throw new Error(error);\n  reply(body);\n\tconsole.log(body);\n});\nbreak\n\ncase 'news2':\n  reply(mess.wait)\nconst luckysure = {\n  method: 'GET',\n  url: 'https://free-news.p.rapidapi.com/v1/search',//By DRIPS\n  qs: {q: `${text}`, lang: 'en'},\n  headers: {\n    'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',// 1 request per second (unlimited)\n    'X-RapidAPI-Host': 'free-news.p.rapidapi.com',//removing credtis is not an option\n    useQueryString: true\n  }\n};\nlet stanto = require('request')\nstanto(luckysure, function (error, response, body) {\n\tif (error) throw new Error(error);\n   reply(body);\n\tconsole.log(body);\n});\nbreak\ncase 'playstore': case 'apk':\nreply(mess.wait)\nif(!q) return reply('what are you looking for?')\nlet play = await hx.playstore(q)\nlet storup = ''\nfor (let i of play){\n storup += `\\n*「 *PLAY STORE* 」*\\n\n- *Name* : ${i.name}\n- *Link* : ${i.link}\\n\n- *Dev* : ${i.developer}\n- *Dev Link* : ${i.link_dev}\\n❉─────────────────────❉`\n}\nreply(storup)\nbreak\ncase 'igsearch':\n  const dripsig = {\n    method: 'GET',\n    url: 'https://instagram-data1.p.rapidapi.com/user/search',//By Drips\n    qs: {keyword: `${text}`},\n    headers: {\n      'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',// 25 request per month if you unlimited requests buy api here visit https://rapidapi.com/logicbuilder/api/instagram-data1/pricing\n      'X-RapidAPI-Host': 'instagram-data1.p.rapidapi.com',//removing credits is not an option\n      useQueryString: true\n    }\n  };\n  let magwettta = require('request')\n  magwettta(dripsig, function (error, response, body) {\n    if (error) throw new Error(error);\n    reply(body);\n    console.log(body);\n  });\n  break\n  case 'apkdl': case 'apkmod': case 'apkd': {      \n  \n  if (!text) return m.reply(`Use${prefix + command} vpn`) \n  let noh = require('./lib/myfunc2')                \n  noh.rexdl(`${text}`).then(async (data) => {\n  let sections = []   \n  for (let i of data) {\n  const list = {title: `${i.judul}`,\n  rows: [\n\t    {\n\t     title: `${i.judul}`, \n\t     rowId: `${prefix}donlod ${i.link}`,\n\t     description: `CATEGORY: ${i.kategori}\\nPUBLISH: ${i.upload_date}\\nINFORMATION: ${i.deskripsi}`\n\t    }, \n\t    ]\n     }\n     sections.push(list)   \n     }\n  const sendm =  ZimBotInc.sendMessage(\n      m.chat, \n      {\n       text: `${ucapannya2} ${pushname} *Search Results From ${text} Click the button below to choose*`,\n       footer: `© ᴢɪᴍ ʙᴏᴛ ɪɴᴄ`,\n       title: \"*▊▊▊APK DOWNLOAD▊▊▊*\",\n       buttonText: \"CLICK HERE\",\n       sections\n      }, { quoted : m })                 \n                }).catch((err) => {\n                    reply(`*${text} Not found*`)\n                })\n            }\n            break\n            case 'donlod':  {  \n              let dhupi = require('./lib/index.js')             \n                              if (!text) return m.reply(`Use${prefix + command} whatsapp`)\n                              if (!isUrl(args[0]) && !args[0].includes('https://rexdl.com/'))\n                              \n                         dhupi.rexdldown(`${text}`).then(async (anu) => {        \n                         if (anu[0].size.split('MB')[0] >= 150) return reply('*File Over Limit* '+util.format(anu))\n                         for (let i of anu) {    \n                         linkye = `*▊▊▊APK DOWNLOAD▊▊▊*\\n\\n*TITLE:* ${i.title}\\n*UPDATE:* ${i.up}\\n*VERSION:* ${i.vers}\\n*FILESIZE:* ${i.size}\\n*URL:* \\n*DESCRIPTION:* ${i.desc}\\n\\n*ᴢɪᴍ ʙᴏᴛ ɪɴᴄ*`         \n                              ZimBotInc.sendMessage(m.chat, { image: await getBuffer(i.thumb), jpegThumbnail: await getBuffer(i.thumb), caption: `${linkye}` }, { quoted: m })\n                              ZimBotInc.sendMessage(m.chat, {document: await getBuffer(i.link), mimetype: `application/vnd.android.package-archive`, fileName: `${i.title}`}, {quoted:m})  \n                              }  \n                              }).catch((err) => {\n                                  reply(`*Failed When Downloading Media and Sending Files*`)\n                              }) \n                            }\n                              break\n// https://hardianto.xyz/api/beta/hacker2?apikey=hardianto&pp=https://i.ibb.co/1s8T3sY/48f7ce63c7aa.jpg\n  case 'ripmaker':\n  if (!text) throw '*Enter a Link Query! Example: https://i.imgur.com/rANDwCP.jpeg*'\n  var dripa = `https://hardianto.xyz/api/rip?image=${text}&apikey=hardianto` \n  dri = await getBuffer(dripa)\n  ZimBotInc.sendMessage(m.chat, { image: dri,caption:'ZIM-BOT-V4' }, { quoted: m})\n\nbreak// https://hardianto.xyz/api/beta/hacker2?apikey=hardianto&pp=https://i.ibb.co/1s8T3sY/48f7ce63c7aa.jpg\n  case 'hackermaker':\n  if (!text) throw '*Enter a Link Query! Example: https://i.imgur.com/rANDwCP.jpeg*'\n  var dripa = `https://hardianto.xyz/api/beta/hacker2?apikey=hardianto&pp=${text}` \n  dri = await getBuffer(dripa)\n  ZimBotInc.sendMessage(m.chat, { image: dri,caption:'ZIM-BOT-V4' }, { quoted: m})\nbreak //https://hardianto.xyz/api/maker/carbon?code=const%20anto%20=%20require(%27pahala%27)&color=cyan&apikey=hardianto\n case 'codecolor':\n    if (!text) throw '*Enter a text*'\n    var dripa = `https://hardianto.xyz/api/maker/carbon?code=${text}&color=cyan&apikey=hardianto` \n    dri = await getBuffer(dripa)\n    ZimBotInc.sendMessage(m.chat, { image: dri,caption:'ZIM-BOT-V4' }, { quoted: m})\n  break \ncase 'ipdomain':\n    reply(mess.wait)\n    const driphacker = {\n      method: 'GET',\n      url: 'https://find-any-ip-address-or-domain-location-world-wide.p.rapidapi.com/iplocation',\n      qs: {ip: `${text}`, apikey: '873dbe322aea47f89dcf729dcc8f60e8'},\n      headers: {\n        'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',\n        'X-RapidAPI-Host': 'find-any-ip-address-or-domain-location-world-wide.p.rapidapi.com',\n        useQueryString: true\n      }\n    };\n    let mhamha = require('request')\n    mhamha(driphacker, function (error, response, body) {\n      if (error) throw new Error(error);\n       reply(body);\n      console.log(body);\n    });\n    break\n    case 'ip':\n      reply(mess.wait)\n      const dripsba = {\n        method: 'GET',\n        url: 'https://find-any-ip-address-or-domain-location-world-wide.p.rapidapi.com/iplocation',\n        qs: {apikey: '873dbe322aea47f89dcf729dcc8f60e8'},\n        headers: {\n          'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',\n          'X-RapidAPI-Host': 'find-any-ip-address-or-domain-location-world-wide.p.rapidapi.com',\n          useQueryString: true\n        }\n      };\n      let bhudhi = require('request')\n      bhudhi(dripsba, function (error, response, body) {\n        if (error) throw new Error(error);\n        reply(body);\n        console.log(body);\n      });\nbreak\ncase 'checknumber':\n  reply(mess.wait)\n  const dripska = {\n    method: 'GET',\n    url: 'https://phonenumbervalidatefree.p.rapidapi.com/ts_PhoneNumberValidateTest.jsp',\n    qs: {number: `${text}`},\n    headers: {\n      'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',\n      'X-RapidAPI-Host': 'phonenumbervalidatefree.p.rapidapi.com',\n      useQueryString: true\n    }\n  };\n  let dhidhi = require('request')\n  dhidhi(dripska, function (error, response, body) {\n    if (error) throw new Error(error);\n    reply(body);\n    console.log(body);\n  });\nbreak\ncase 'veriphone':\n  reply(mess.wait)\n  const dripdrop = {\n    method: 'GET',\n    url: 'https://veriphone.p.rapidapi.com/verify',\n    qs: {phone: `${text}`},\n    headers: {\n      'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',\n      'X-RapidAPI-Host': 'veriphone.p.rapidapi.com',\n      useQueryString: true\n    }\n  };\n  let mhati = require('request')\n  mhati(dripdrop, function (error, response, body) {\n    if (error) throw new Error(error);\n    reply(body);\n    console.log(body);\n  });\n  break\n  \ncase 'cry':case 'kill':case 'hug':case 'pat':case 'lick':case 'kiss':case 'bite':case 'yeet':case 'neko':case 'bully':case 'bonk':case 'wink':case 'poke':case 'nom':case 'slap':case 'smile':case 'wave':case 'awoo':case 'blush':case 'smug':case 'glomp':case 'happy':case 'dance':case 'cringe':case 'cuddle':case 'highfive':case 'shinobu':case 'megumin':case 'handhold':\nreply(mess.wait)\naxios.get(`https://api.waifu.pics/sfw/${command}`)\n.then(({data}) => {\nZimBotInc.sendImageAsSticker(m.chat, data.url, m, { packname: global.packname, author: global.author })\n})\nbreak\ncase 'whois':\n  reply(mess.wai)\n  var ip = ''; // Leave blank to lookup current IP address\nvar XMLHttp = new XMLHttpRequest();\nXMLHttp.onreadystatechange = function() {\n\tif(this.readyState == 4 && this.status == 200) {\n\t\tvar ipwhois = JSON.parse(this.responseText);\n\t\tconsole.log(ipwhois.country + ' ' + ipwhois.flag.emoji); // Output: United States 🇺🇸\n\t}\n};\nXMLHttp.open('GET', 'https://ipwho.is/' + ip, true);\nXMLHttp.send();\nbreak\n// Upload status\ncase 'upsw': case 'uploadstatus': {\nif (!isCreator) return reply(global.owner)\n ZimBotInc.sendMessage(\"status@broadcast\", { text: q })\n reply(\"*Uploaded Status*\")\n }\n break\n//----OTHERS---\\\\\ncase 'weather':\n  if (!args[0]) throw \" please provide place or location name\"\n  try {\n    const response = axios.get(\n      `https://api.openweathermap.org/data/2.5/weather?q=${args}&units=metric&appid=060a6bcfa19809c2cd4d97a212b19273`\n    )\n    const res = await response\n    const name = res.data.name\n    const Country = res.data.sys.country\n    const Weather = res.data.weather[0].description\n    const Temperature = res.data.main.temp + \"°C\"\n    const Minimum_Temperature = res.data.main.temp_min + \"°C\"\n    const Maximum_Temperature = res.data.main.temp_max + \"°C\"\n    const Humidity = res.data.main.humidity + \"%\"\n    const Wind = res.data.wind.speed + \"km/h\"\n    const wea = `*📍PLACE:* ${name}\\n*COUNTRY:* ${Country}\\n*WEATHER:* ${Weather}\\n*TEMPERATURE:* ${Temperature}\\nMINIMUM TEMPERATURE: ${Minimum_Temperature}\\n*📛MAX TEMPERATURE:* ${Maximum_Temperature}\\n*HUMIDITY:* ${Humidity}\\n*WIND:* ${Wind}\n  `\n\n    reply(wea)\n  } catch (e) {\n    return \"Error location not found!!!\"\n  }\nbreak\ncase 'wiki':\n  const { wikipedia } = require('@bochilteam/scraper')\n  if (!text) throw `Exapmle: ${command} Minecraft`\n  let jsonp = await wikipedia(text)\n  reply(`\n🔎${r} Ressult from: *${text}*\n🖼️${r} Image: ${jsonp.img}\n📖${r} Articles: \n${jsonp.articles}\n`.trim())\n\nbreak\ncase 'ytcoment':\n  if (!text) throw 'No Text'\nZimBotInc.sendMessage(m.chat, ('https://some-random-api.ml', '/canvas/youtube-comment', {\navatar: await ZimBotInc.profilePictureUrl(m.sender, 'image').catch(_ => 'https://telegra.ph/file/24fa902ead26340f3df2c.png'),\ncomment: text,\nusername: ZimBotInc.getName(m.sender)\n}), 'error.png', '*Nih Kak*', m)\nbreak\n // Send image or video from url\n case 'sendimage':\n ZimBotInc.sendMessage(m.chat, { image: { url: q }, fileLength: \"5000000000\"}, { m })\n break\n case 'sendvideo':\n ZimBotInc.sendMessage(m.chat, { video: { url: q }, fileLength: \"5000000000\" }, { m })\n \nbreak\ncase 'todocument': {\nif (/document/.test(mime)) throw `Kirim/Reply Video/Audio Yang Ingin Dijadikan MP3 Dengan Caption ${prefix + command}`\nif (!/video/.test(mime) && !/audio/.test(mime)) throw `Kirim/Reply Video/Audio Yang Ingin Dijadikan MP3 Dengan Caption ${prefix + command}`\nif (!quoted) throw `Kirim/Reply Video/Audio Yang Ingin Dijadikan MP3 Dengan Caption ${prefix + command}`\nm.reply(mess.wait)\nlet media = await quoted.download()\nlet { toAudio } = require('./lib/converter')\nlet audio = await toAudio(media, 'mp4')\nZimBotInc.sendMessage(m.chat, {document: audio, mimetype: 'audio/mpeg', fileName: `Convert By ${ZimBotInc.user.name}.mp3`}, { quoted : m })\n}\nbreak\n\ncase 'searchgroups':\nif (!q) return reply(`Example: ${prefix}searchgroups hacker`)\nmel.linkwa(q)\n.then(result => {\nlet res = '❰ *WHATSAPP GROUP LINKS* ❱\\n\\n'\nfor (let i of result) {\nres += `*NAME*: *${i.nama}\\n*Link*: ${i.link}\\n\\n`\n}\nreply(res)\n});\nbreak\n\n case 'wallpaper': {\n   if (!text) throw '*give me text to search👀*'\nlet { wallpaper } = require('./lib/scraper')\n   anu = await wallpaper(text)\n   result = anu[Math.floor(Math.random() * anu.length)]\nlet buttons = [\n  {buttonId: `wallpaper ${text}`, buttonText: {displayText: 'NEXT'}, type: 1}\n   ]\n   let buttonMessage = {\n  image: { url: result.image[0] },\n  caption: `🔮𝗧𝗜𝗧𝗟𝗘 : ${result.title}\\n🔮𝗖𝗔𝗧𝗘𝗚𝗢𝗥𝗬 : ${result.type}\\n🔮𝗗𝗘𝗧𝗔𝗜𝗟 : ${result.source}\\n🔮𝗠𝗘𝗗𝗜𝗔 𝗨𝗥𝗟 : ${result.image[2] || result.image[1] || result.image[0]}`,\n  footer: ZimBotInc.user.name,\n  buttons: buttons,\n  headerType: 4\n   }\n   ZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })\n }\n break\n case 'wikimedia': {\n   if (!text) throw '*give me text so search👀*'\nlet { wikimedia } = require('./lib/scraper')\n   anu = await wikimedia(text)\n   result = anu[Math.floor(Math.random() * anu.length)]\n   let buttons = [\n  {buttonId: `wikimedia ${text}`, buttonText: {displayText: 'Next Image'}, type: 1}\n   ]\n   let buttonMessage = {\n  image: { url: result.image },\n  caption: `🔮 𝗧𝗜𝗧𝗟𝗘 : ${result.title}\\n🔮 𝗦𝗢𝗨𝗥𝗖𝗘 : ${result.source}\\n🔮 𝗠𝗘𝗗𝗜𝗔 𝗨𝗥𝗟 : ${result.image}`,\n  footer: ZimBotInc.user.name,\n  buttons: buttons,\n  headerType: 4\n   }\n   ZimBotInc.sendMessage(m.chat, buttonMessage, { quoted: m })\n }\n \nbreak\n\n\n   case 'bass': case 'blown': case 'deep': case 'earrape': case 'fast': case 'fat': case 'nightcore': case 'reverse': case 'robot': case 'slow': case 'smooth': case 'squirrel':\n   try {\n   let set\n   if (/bass/.test(command)) set = '-af equalizer=f=54:width_type=o:width=2:g=20'\n   if (/blown/.test(command)) set = '-af acrusher=.1:1:64:0:log'\n   if (/deep/.test(command)) set = '-af atempo=4/4,asetrate=44500*2/3'\n   if (/earrape/.test(command)) set = '-af volume=12'\n   if (/fast/.test(command)) set = '-filter:a \"atempo=1.63,asetrate=44100\"'\n   if (/fat/.test(command)) set = '-filter:a \"atempo=1.6,asetrate=22100\"'\n   if (/nightcore/.test(command)) set = '-filter:a atempo=1.06,asetrate=44100*1.25'\n   if (/reverse/.test(command)) set = '-filter_complex \"areverse\"'\n   if (/robot/.test(command)) set = '-filter_complex \"afftfilt=real=\\'hypot(re,im)*sin(0)\\':imag=\\'hypot(re,im)*cos(0)\\':win_size=512:overlap=0.75\"'\n   if (/slow/.test(command)) set = '-filter:a \"atempo=0.7,asetrate=44100\"'\n   if (/smooth/.test(command)) set = '-filter:v \"minterpolate=\\'mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120\\'\"'\n   if (/squirrel/.test(command)) set = '-filter:a \"atempo=0.5,asetrate=65100\"'\n   if (/audio/.test(mime)) {\n   replay(mess.wait)\n   let media = await ZimBotInc.downloadAndSaveMediaMessage(quoted)\n   let ran = getRandom('.mp3')\n   exec(`ffmpeg -i ${media} ${set} ${ran}`, (err, stderr, stdout) => {\n   fs.unlinkSync(media)\n   if (err) return reply(err)\n   let buff = fs.readFileSync(ran)\n   ZimBotInc.sendMessage(m.chat, { audio: buff, mimetype: 'audio/mpeg' }, { quoted : m })\n   fs.unlinkSync(ran)\n   })\n   } else reply(`Reply to the audio you want to change with caption *${prefix + command}*`)\n   } catch (e) {\n   reply(e)\n   }\n   break\n case 'setcmd': {\n   if (!m.quoted) throw 'Reply Message!'\n   if (!m.quoted.fileSha256) throw 'SHA256 Hash Missing'\n   if (!text) throw `where is the command`\n   let hash = m.quoted.fileSha256.toString('base64')\n   if (global.db.sticker[hash] && global.db.sticker[hash].locked) throw 'You have no permission to change this sticker command'\n   global.db.sticker[hash] = {\n  text,\n  mentionedJid: m.mentionedJid,\n  creator: m.sender,\n  at: + new Date,\n  locked: false,\n   }\n   reply(`Done!`)\n }\n break\n case 'delcmd': {\n   let hash = m.quoted.fileSha256.toString('base64')\n   if (!hash) throw `No hashes`\n   if (global.db.sticker[hash] && global.db.sticker[hash].locked) throw 'You have no permission to delete this sticker command' \n   delete global.db.sticker[hash]\n   reply(`Done!`)\n }\n break\n case 'listcmd': {\n   let teks = `\n*Hash List*\nInfo: *bold* hash is locked\n${Object.entries(global.db.sticker).map(([key, value], index) => `${index + 1}. ${value.locked ? `*${key}*` : key} : ${value.text}`).join('\\n')}\n`.trim()\n   ZimBotInc.sendText(m.chat, teks, m, { mentions: Object.values(global.db.sticker).map(x => x.mentionedJid).reduce((a,b) => [...a, ...b], []) })\n }\n break\n case 'lockcmd': {\n   if (!isCreator) throw global.owner\n   if (!m.quoted) throw 'Reply Message!'\n   if (!m.quoted.fileSha256) throw 'SHA256 Hash Missing'\n   let hash = m.quoted.fileSha256.toString('base64')\n   if (!(hash in global.db.sticker)) throw 'Hash not found in database'\n   global.db.sticker[hash].locked = !/^un/i.test(command)\n   reply('Done!')\n }\n break\n case 'addmsg': {\n   if (!m.quoted) throw 'Reply Message You Want To Save In Database'\n   if (!text) throw `Example : ${prefix + command} message name`\n   let msgs = global.db.database\n   if (text.toLowerCase() in msgs) throw `'${text}' telah terdaftar di list pesan`\n   msgs[text.toLowerCase()] = quoted.fakeObj\nreply(`Successfully added message in message list as '${text}'\n    \nAccess with ${prefix}getmsg ${text}\n\nView list of message with ${prefix}listmsg`)\n }\n break\n case 'getmsg': {\n   if (!text) throw `Example : ${prefix + command} msg name\\n\\nView message list with ${prefix}listmsg`\n   let msgs = global.db.database\n   if (!(text.toLowerCase() in msgs)) throw `'${text}' not registered in message list`\n   ZimBotInc.copyNForward(m.chat, msgs[text.toLowerCase()], true)\n }\n break\n case 'listmsg': {\n   let msgs = JSON.parse(fs.readFileSync('./src/database.json'))\nlet seplit = Object.entries(global.db.database).map(([nama, isi]) => { return { nama, ...isi } })\nlet teks = '❰ *LIST DATABASE* ❱\\n\\n'\nfor (let i of seplit) {\n    teks += `🧸*𝗡𝗔𝗠𝗘 :* ${i.nama}\\n🧸*𝗧𝗬𝗣𝗘 :* ${getContentType(i.message).replace(/Message/i, '')}\\n────────────────────────\\n\\n`\n}\nreply(teks)\n    }\n    \nbreak\n  \n  \n case 'delmsg': case 'deletemsg': {\nlet msgs = global.db.database\nif (!(text.toLowerCase() in msgs)) return reply(`'${text}' not listed in the message list`)\ndelete msgs[text.toLowerCase()]\nreply(`Successfully deleted '${text}' from the message list`)\n }\n   \nbreak\n\n case 'public': {\n   if (!isCreator) throw global.owner\n   ZimBotInc.public = true\n   reply('𝗭𝗶𝗺 𝗯𝗼𝘁 𝗻𝗼𝘄 𝘄𝗼𝗿𝗸𝗶𝗻𝗴 𝗮𝘀 𝗽𝘂𝗯𝗹𝗶𝗰')\n }// https://hardianto.xyz/api/rip?image=https://i.imgur.com/rANDwCP.jpeg&apikey=hardianto\n break\n case 'attp': {\n  reply(mess.wait)\n  if (!text) throw `*Example : ${prefix + command} drips hi*`\n  await ZimBotInc.sendMedia(m.chat, `https://hardianto.xyz/api/maker/attp?text=${text}&apikey=hardianto`,'ZIM', 'BOT M D', m, {asSticker: true}).catch((err) => m.reply('*error while sending sticker*'))\n            }\n            break\n/*case 'ripmaker':\n  reply(mess.wait)\n  try{\n  ripdri = await axios(`https://hardianto.xyz/api/rip?image=https://i.imgur.com/rANDwCP.jpeg&apikey=hardianto`)\n  stalloni = await getBuffer(ripdri)\n  ZimBotInc.sendMessage(from, {image:stalloni},{quoted:m})\n  } catch (e) {error(\"Error\")}\n    reply(mess.wait)*/\n            \n case 'self': {\n   if (!isCreator) throw global.owner\n   ZimBotInc.public = false\n   reply('𝗭𝗶𝗺 𝗯𝗼𝘁 𝗻𝗼𝘄 𝘄𝗼𝗿𝗸𝗶𝗻𝗴 𝗮𝘀 𝗽𝗿𝗶𝘃𝗮𝘁𝗲')\n }\n break\n case 'ping': case 'botstatus': case 'statusbot': {\n   const used = process.memoryUsage()\n   const cpus = os.cpus().map(cpu => {\n  cpu.total = Object.keys(cpu.times).reduce((last, type) => last + cpu.times[type], 0)\nreturn cpu\n   })\n   const cpu = cpus.reduce((last, cpu, _, { length }) => {\n  last.total += cpu.total\n  last.speed += cpu.speed / length\n  last.times.user += cpu.times.user\n  last.times.nice += cpu.times.nice\n  last.times.sys += cpu.times.sys\n  last.times.idle += cpu.times.idle\n  last.times.irq += cpu.times.irq\n  return last\n   }, {\n  speed: 0,\n  total: 0,\n  times: {\n user: 0,\n nice: 0,\n sys: 0,\n idle: 0,\n irq: 0\n   }\n   })\n   let timestamp = speed()\n   let latensi = speed() - timestamp\n   neww = performance.now()\n   oldd = performance.now()\n   respon = `\n*RESPONSE SPEED* ${latensi.toFixed(4)} *SECONDS \\n ${oldd - neww} _miliseconds_\\n\\n*RUNTIME* : ${runtime(process.uptime())}\n\n*OCEAN SERVERS*\n*RAM:* ${formatp(os.totalmem() - os.freemem())} / ${formatp(os.totalmem())}\n\n*NODEJS SERVERS*\n${Object.keys(used).map((key, _, arr) => `${key.padEnd(Math.max(...arr.map(v=>v.length)),' ')}: ${formatp(used[key])}`).join('\\n')}\n\n${cpus[0] ? `_Total CPU Usage_\n${cpus[0].model.trim()} (${cpu.speed} MHZ)\\n${Object.keys(cpu.times).map(type => `- *${(type + '*').padEnd(6)}: ${(100 * cpu.times[type] / cpu.total).toFixed(2)}%`).join('\\n')}\n_CPU Core(s) Usage (${cpus.length} Core CPU)_\n${cpus.map((cpu, i) => `${i + 1}. ${cpu.model.trim()} (${cpu.speed} MHZ)\\n${Object.keys(cpu.times).map(type => `- *${(type + '*').padEnd(6)}: ${(100 * cpu.times[type] / cpu.total).toFixed(2)}%`).join('\\n')}`).join('\\n\\n')}` : ''}\n   `.trim()\n   reply(respon)\n }\n break\n case 'owner': case 'creator': {\n ZimBotInc.sendContact(m.chat, global.pemilik, m)\nconst devsound = fs.readFileSync('./Zimbot/bot.mp3')\nZimBotInc.sendMessage(m.chat, { audio: devsound, mimetype: 'audio/mp4', ptt: true, quoted: mudratunha})\n }\n \n break\n case 'beetunha':\nconst hahahe = {\n  method: 'GET',\n  url: 'https://anime-quotes1.p.rapidapi.com/api/available/anime',\n  headers: {\n    'X-RapidAPI-Key': '837661b454msh274b6753ca80823p11c653jsn973bb2a55a34',\n    'X-RapidAPI-Host': 'anime-quotes1.p.rapidapi.com'\n  }\n};\nlet requestt = require('request')\nrequestt(hahahe, function (error, response, body) {\n\tif (error) throw new Error(error);\n   reply(body);\n\tconsole.log(body);\n});\nbreak\ncase 'tes': case 'test': case 'alive': case 'bot': case 'robot': case 'zimbot': case 'drips': case 'menu': {\nram9000 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\ntimestampe = speed();\nlatensie = speed() - timestampe\n  anu = `\n*ᴜᴘᴛɪᴍᴇ :* ${runtime(process.uptime())}\n\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram9000}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n└───────────●\n`\nconst aliveer = fs.readFileSync('./Zimbot/alive.mp3')\nZimBotInc.sendMessage(m.chat, { audio: aliveer, mimetype: 'audio/mp4', ptt: true, quoted: mudratunha})\nlet buttoni = [\n        {buttonId: `sc`, buttonText: {displayText: 'SOURCE CODE'}, type: 1},\n        {buttonId: `owner`, buttonText: {displayText: 'OWNER'}, type: 1},\n        {buttonId: `allmenu`, buttonText: {displayText: '©MENU'}, type: 1},\n        ]\n        let buttonMessage = {\n        document: fs.readFileSync('./lib/tes.xlsx'),\n        mimetype: dripsee,\n        jpegThumbnail: fs.readFileSync('./drips.jpg'),\n        fileName: `ᴢɪᴍ ʙᴏᴛ ɪɴᴄ`,\n        fileLength: 99999999999999,\n        caption: anu,\n        footer: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\n        buttons: buttoni,\n        headerType: 4,\n        contextInfo: { externalAdReply:{\n        title:\"ᴢɪᴍ ʙᴏᴛ ɪɴᴄ\",\n        body:\"SUB DRIPS OFC\",\n        showAdAttribution: true,\n        mediaType:2,\n        thumbnail: fs.readFileSync('./drips.jpg'),\n        mediaUrl:`https://youtu.be/KNu-gr2h7bo`, \n        sourceUrl: `https://youtu.be/KNu-gr2h7bo`,\n        }}\n        }\n        ZimBotInc.sendMessage(m.chat, buttonMessage)\n      \n    }\nbreak\n  case 'bug': case 'report': {\n  if(!text) throw `Enter The Bug Example\\n\\n${command} Menu Error `\n  ZimBotInc.sendMessage(`447441437150@s.whatsapp.net`, {text: `*Bug Report From:* wa.me/${m.sender.split(\"@\")[0]}\nReport Message: ${text}` })\nreply(`*Successfully reported to the owner\\n\\nPlease make sure the bug is valid, if you play with this, use this feature again and again for no reason, you will be banned for using zim bot*`)\n  }\nbreak \ncase 'listmenu':             \n  let sections = []   \n  let listmenu = [`allmenu`,`animemenu`,`groupmenu`,`toolmenu`,`downloadmenu`,`searchmenu`,`photofiltermenu`,`textpromenu`,`photooxymenu`,`ownermenu`,`ephotomenu`,`convertmenu`,`databasemenu`,`rpgmenu`,`donasi`]\n  let listmenuu = [`ALL MENU`,`ANIME MENU`,`GROUP MENU`,`TOOL MENU`,`DOWNLOAD MENU`,`SEARCH MENU`,`PHOTOFILTER MENU`,`TEXTPRO MENU`,`PHOTOOXY MENU`,`OWNER MENU`,`EPHOTO MENU`,`CONVERT MENU`,`DATABASE MENU`,`RPG MENU`,`DONATE`]\n  \n  let nombor = 1\n  let startnum = 0\n  \n  for (let x of listmenu) {\n  const list = {title: 'MENU NUMBER ' + nombor++,                                                                             //by drips\n  rows: [\n  {\n  title: `${listmenuu[startnum++]}`,\n  \n  rowId: `${prefix}${x}`\n  }, \n  ]\n  }\n  sections.push(list)   \n  }\n  const sendm =  ZimBotInc.sendMessage(\n  m.chat, \n  {\n  text: `\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n┌───〔 *_◉ᴜsᴇʀ ɪɴғᴏ◉_* 〕\n┊ *NAME:* ${pushname}\n┊  ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊ *RANK:* ${role}\n┊ *STATUS:* ${elit}\n┊ *MONEY:* $${(getBalance(sender, balance))}\n┊ *XP:* ${getLevelingXp(sender)}/${reqXp}\n┊ *LEVEL:* ${getLevelingLevel(sender)}\n┊ *MONEY:* $${(getBalance(sender, balance))}\n┊ *GOLD:* ${getEmas(sender)}\n┊ *IRON:* ${getBesi(sender)}\n┊ *FISH:* ${getFish(sender)}\n┊ *DIAMOND:* ${getDm(sender)}\n┊ *ᴠᴇʀꜱɪᴏɴ:* ${os.version()}\n┊ *ᴛᴏᴛᴀʟ ᴜsᴇʀs:* ${Object.keys(global.db.users).length}\n└───────────●\n`,\n  footer: `ᴢɪᴍ ʙᴏᴛ ɪɴᴄ`,\n  title: `*LIST MENU*`,\n  jpegThumbnail: fs.readFileSync('./drips.jpg'),\n  buttonText: \"CLICK HERE\",\n  sections\n  }, { quoted : m })\n  break\n  case 'allmenu': case 'zimbotmenu': {\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nlet datane = fs.readFileSync('./lib/random.js')\njsonData = JSON.parse(datane)\nrandIndex = Math.floor(Math.random() * jsonData.length)\nrandKey = jsonData[randIndex];\nbuffer = await getBuffer(randKey.result)\nconst { device_manufacturer } = require('os')\nram2 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\ntimestampe = speed();\nlatensie = speed() - timestampe\nanu = `\n*ᴜᴘᴛɪᴍᴇ :* ${runtime(process.uptime())}\n\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram2}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n└───────────●\n\n┌───〔 *_◉ᴍᴇɴᴜ◉_* 〕\n┊🪨downloadmenu\n┊🪨groupmenu\n┊🪨animemenu\n┊🪨searchmenu\n┊🪨ownermenu\n┊🪨databasemenu\n┊🪨textpromenu\n┊🪨ephotomenu\n┊🪨toolsmenu\n┊🪨convertmenu\n└───────────●\n\n┌───〔 *_ᴛᴏᴏʟᴍᴇɴᴜ_* 〕\n┊🪨ip ->-\n┊🪨ipdomain -domain name-\n┊🪨codecolor -text-\n┊🪨hackermaker -pic url-\n┊🪨checknumber -number-\n┊🪨veriphone -number-\n┊🪨weather -place-\n┊🪨attp -text-\n┊🪨ssweb-hp -url-\n┊🪨shortlink -url-\n┊🪨ssweb-pc -url-\n┊🪨shortlinkcuttly -url-\n┊🪨shortlinkisgd -url-\n┊🪨brainly -query-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_◉ᴏᴡɴᴇʀᴍᴇɴᴜ◉_* 〕\n┊🪨chatbot on/off\n┊🪨setmenu -option-\n┊🪨checkupdate \n┊🪨updatenow\n┊🪨bc -text-\n┊🪨bcall -text-\n┊🪨bctext -text-\n┊🪨bcvideo -media-\n┊🪨bcaudio -media-\n┊🪨bcimage -media-\n┊🪨bcloc  -text-\n┊🪨bcgc -text-\n┊🪨lockcmd\n┊🪨setstatus -text-\n┊🪨setppbot -owner-\n┊🪨block -owner-\n┊🪨unblock -owner-\n┊🪨join -owner-\n┊🪨leave -owner-\n┊🪨chat -owner-\n┊🪨public\n┊🪨self\n┊🪨grouponly\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_◉ɢʀᴏᴜᴘᴍᴇɴᴜ◉_* 〕\n┊🪨add -admin-\n┊🪨kick -admin-\n┊🪨welcome on/off -admin-\n┊🪨listpc \n┊🪨listgc\n┊🪨groupinfo -admin-\n┊🪨antivn -admin-\n┊🪨antiphoto -admin-\n┊🪨antisticker -admin-\n┊🪨antivideo -admin-\n┊🪨antilinkall -admin-\n┊🪨antiinstagram -admin-\n┊🪨antitelegram -admin-\n┊🪨antilink -admin-\n┊🪨antiyt -admin-\n┊🪨antibule -admin-\n┊🪨antitiktok -admin-\n┊🪨antifacebook -admin-\n┊🪨antivirus -admin-\n┊🪨antibadword -admin-\n┊🪨antiwame -admin-\n┊🪨group -options-\n┊🪨mute\n┊🪨groupinfo\n┊🪨truth \n┊🪨dare\n┊🪨slot\n┊🪨math\n┊🪨vote\n┊🪨devote\n┊🪨cekvote\n┊🪨deletevote\n┊🪨upvote\n┊🪨setsubject -admin-\n┊🪨setdesc -admin-\n┊🪨setppgroup -admin-\n┊🪨tagall -admin-\n┊🪨hidetag -admin-\n┊🪨ephemeral\n┊🪨demote -admin-\n┊🪨promote -admin-\n┊🪨editinfo -admin-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_◉ᴛᴇxᴛᴘʀᴏᴍᴇɴᴜ◉_* 〕\n┊🪨candy -text-\n┊🪨christmas -text-\n┊🪨3dchristmas -text-\n┊🪨sparklechristmas -text-\n┊🪨deepsea -text-\n┊🪨scifi -text-\n┊🪨rainbow2 -text-\n┊🪨waterpipe -text-\n┊🪨spooky -text-\n┊🪨pencil -text-\n┊🪨circuit -text-\n┊🪨discovery -text-\n┊🪨metalic -text-\n┊🪨fiction -text-\n┊🪨demon -text-\n┊🪨transformer -text-\n┊🪨berry -text-\n┊🪨thunder -text-\n┊🪨3dstone2 -text-\n┊🪨neonlight -text-\n┊🪨glitch -text-\n┊🪨harrypotter -text-\n┊🪨brokenglass -text-\n┊🪨papercut -text-\n┊🪨watercolor -text-\n┊🪨multicolor -text-\n┊🪨neondevil -text-\n┊🪨underwater -text-\n┊🪨graffitibike -text-\n┊🪨snow -text-\n┊🪨cloud -text-\n┊🪨honey -text-\n┊🪨ice -text-\n┊🪨fruitjuice -text-\n┊🪨biscuit -text-\n┊🪨wood -text-\n┊🪨chocolate -text-\n┊🪨strawberry -text-\n┊🪨matrix -text-\n┊🪨blood -text-\n┊🪨dropwater -text-\n┊🪨toxic -text-\n┊🪨lava -text-\n┊🪨rock -text-\n┊🪨bloodglass -text-\n┊🪨halloween -text-\n┊🪨darkgold -text-\n┊🪨joker -text-\n┊🪨wicker -text-\n┊🪨firework -text-\n┊🪨skeleton -text-\n┊🪨blackpink -text-\n┊🪨sand -text-\n┊🪨glue -text-\n┊🪨1917 -text-\n┊🪨leaves -text-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_ᴅᴏᴡɴʟᴏᴀᴅᴍᴇɴᴜ_* 〕\n┊🪨ytmp3 -link-\n┊🪨ytmp4 -link-\n┊🪨audio  -link-\n┊🪨play -query-\n┊🪨song -query-\n┊🪨play2 -query-\n┊🪨mediafire -link-\n┊🪨fb -link-\n┊🪨fb2 -link-\n┊🪨ytsvideo -query-\n┊🪨getmusic -query-\n┊🪨getvideo -query-\n┊🪨savefrom -query-\n┊🪨pindl -query-\n┊🪨joox -query-\n┊🪨tiktok -link-\n┊🪨tiktok2 -link-\n┊🪨twitter -link-\n┊🪨twitter2 -link-\n┊🪨tiktok3 -link-\n┊🪨tiktok4 -link-\n┊🪨ig -link-\n┊🪨instagramstory -link-\n┊🪨instagramstory2 -link-\n┊🪨igimage -link-\n┊🪨instagramreal -link-\n┊🪨soundcloud -link-\n┊🪨ytshorts -link-\n┊🪨unma -link-\n┊🪨twitteraudio -link-\n┊🪨ytsaudio -query-\n┊🪨ytsvideo -query-\n┊🪨yts2 -query-\n┊🪨fbdl -link-\n┊🪨fbvideo -link-\n┊🪨get -link-\n┊🪨tiktok5 -link-\n┊🪨titktok3 -link-\n┊🪨tiktokmp3 -link-\n┊🪨ttmp3 -link-\n┊🪨ig2 -link-\n┊🪨ig3 -link-\n┊🪨igimage -link-\n┊🪨igtv -link-\n┊🪨fbmp3 -link-\n┊🪨ytdl -link-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_ᴘʜᴏᴛꜰɪʟᴛᴇʀᴍᴇɴᴜ_* 〕\n┊🪨angie -photo-\n┊🪨aria -photo-\n┊🪨attic -photo-\n┊🪨blackandwhite -photo-\n┊🪨chorme1977 -photo-\n┊🪨constrastbandw -photo-\n┊🪨creamy -photo-\n┊🪨duotone -photo-\n┊🪨eva -photo-\n┊🪨goldenhour -photo-\n┊🪨hana -photo-\n┊🪨lavander -photo-\n┊🪨lemonande -photo-\n┊🪨lightleak -photo-\n┊🪨lisa -photo-\n┊🪨lomo -photo-\n┊🪨milk -photo-\n┊🪨molly -photo-\n┊🪨monochrome -photo-\n┊🪨morning -photo-\n┊🪨movie -photo-\n┊🪨orton -photo-\n┊🪨paretro -photo-\n┊🪨perfectbandw -photo-\n┊🪨plumy -photo-\n┊🪨retrolga -photo-\n┊🪨ruby -photo-\n┊🪨sand -photo-\n┊🪨sapphire -photo-\n┊🪨sepia -photo-\n┊🪨softsepia -photo-\n┊🪨solarize -photo-\n┊🪨sphinx -photo-\n┊🪨venus -photo-\n┊🪨japanese -photo-\n┊🪨hdr -photo-\n┊🪨viewfilter -photo-\n┊🪨warmsunset -photo-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_ɴꜱꜰᴡᴍᴇɴᴜ_* 〕\n┊🪨masturbation\n┊🪨jahy\n┊🪨hentai\n┊🪨glasses\n┊🪨gangbang\n┊🪨foot\n┊🪨femdom\n┊🪨cum\n┊🪨ero\n┊🪨cuckhold\n┊🪨blowjob\n┊🪨bdsm\n┊🪨ahegao\n┊🪨ass\n┊🪨orgy\n┊🪨panties\n┊🪨pussy\n┊🪨yuri\n┊🪨thighs\n┊🪨tentacles\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_ᴀɴɪᴍᴇᴍᴇɴᴜ_* 〕\n┊🪨cry\n┊🪨kill\n┊🪨hug\n┊🪨pat\n┊🪨lick\n┊🪨kiss\n┊🪨bite\n┊🪨yeet\n┊🪨neko\n┊🪨bully\n┊🪨bonk\n┊🪨wink\n┊🪨poke\n┊🪨nom\n┊🪨slap\n┊🪨smile\n┊🪨wave\n┊🪨awoo\n┊🪨blush\n┊🪨smug\n┊🪨glomp\n┊🪨happy\n┊🪨dance\n┊🪨cringe\n┊🪨cuddle\n┊🪨highfive\n┊🪨shinobu\n┊🪨megumin\n┊🪨handhold\n┊🪨animeslap\n┊🪨animepat\n┊🪨animeneko\n┊🪨animehug\n┊🪨animekiss\n┊🪨animewlp\n┊🪨animespank\n┊🪨shinobu2\n┊🪨megumin2\n┊🪨awoo2\n┊🪨animewall2\n┊🪨searchanime -query-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_ꜱᴇᴀʀᴄʜᴍᴇɴᴜ_* 〕\n┊🪨lyrics -query-\n┊🪨linkwa -query-\n┊🪨apk -query-\n┊🪨happymod -query-\n┊🪨apkupro -query-\n┊🪨google -query-\n┊🪨wiki -query-\n┊🪨ytsearch -query-\n┊🪨recipe -query-\n┊🪨playstore -query-\n┊🪨wikimedia -query-\n┊🪨news -query-\n┊🪨news2 -query-\n┊🪨animee -query-\n┊🪨anime -query-\n┊🪨amino -query-\n┊🪨googleimage -query-\n┊🪨apkdone -query-\n┊🪨githubsearch -query->\n┊🪨igsearch -username-\n┊🪨googlenews -query-\n┊🪨gnews -query-\n┊🪨wallpaper -query-\n┊🪨searchgroups -query-\n┊🪨qoutesanime -query-\n┊🪨gmsarena -query-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n┌───〔*_◉ᴇᴘʜᴏᴛᴏ-ᴍᴇɴᴜ◉_*〕\n┊🪨3d-wood\n┊🪨angels-wings\n┊🪨snake-text\n┊🪨redhot-metal2\n┊🪨sandsummer-beach\n┊🪨snow-text\n┊🪨water-3d\n┊🪨water-effect\n┊🪨wet-glass\n┊🪨status-mood2\n┊🪨summerysand\n└───────────●\n\n┌───〔 *_ᴄᴏɴᴠᴇʀᴛᴍᴇɴᴜ_* 〕\n┊🪨toimg -quote sticker-\n┊🪨togif -quote video-\n┊🪨todocument -media-\n┊🪨bass -audio-\n┊🪨blown -audio-\n┊🪨deep -audio-\n┊🪨earape -audio-\n┊🪨fast -audio-\n┊🪨fat -audio-\n┊🪨nightcore -audio-\n┊🪨reverse -audio-\n┊🪨robot -audio-\n┊🪨slow -audio-\n┊🪨smooth -audio-\n┊🪨squirrel -audio-\n┊🪨sticker -media-\n┊🪨smeme -media-\n┊🪨stickermeme -media-\n┊🪨swm -sticker-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n┌───〔 *_◉ᴅᴀᴛᴀʙᴀꜱᴇᴍᴇɴᴜ◉_* 〕\n┊🪨addmsg -msg-\n┊🪨delmsg -msg-\n┊🪨listmsg -msg-\n┊🪨getmsg -msg-\n┊🪨setcmd -msg-\n┊🪨delcmd -msg-\n┊🪨listcmd -msg-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n┌───〔 *_◉Photooxyᴍᴇɴᴜ◉_* 〕\n┊🪨silk -text-\n┊🪨3dnature -text-\n┊🪨bevel -text-\n┊🪨birthdaycake -text-\n┊🪨burnpaper -text-\n┊🪨coffee -text-\n┊🪨coffee-heartcup -text-\n┊🪨embroiderytext -text-\n┊🪨flaming -text-\n┊🪨flowertypo -text-\n┊🪨funnycup -text-\n┊🪨fur -text-\n┊🪨gerbang -text-\n┊🪨glowrainbow -text-\n┊🪨gradientavatar -text-\n┊🪨graffititext -text-\n┊🪨harrypotter -text-\n┊🪨lovemessage -text-\n┊🪨neonlight -text-\n┊🪨sweetcandy -text-\n┊🪨summertext -text-\n┊🪨woodheart -text-\n┊🪨yellowroses -text-\n┊🪨wolfmetal -text-\n┊🪨underwaterocean -text-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n\n┌───〔 *_◉ᴍᴇɴᴜ ʀᴘɢ◉_* 〕\n┊🪨joinrpg\n┊🪨quest \n┊🪨mining\n┊🪨mancing\n┊🪨luckyday\n┊🪨luckytime\n┊🪨adventure\n┊🪨inventori\n└───────────●\n\n┌───〔 *_◉Fᴀʀᴍ ʀᴘɢ◉_* 〕\n┊🪨killslime\n┊🪨killgoblin\n┊🪨killdevil\n┊🪨killbehemoth\n┊🪨killdemon\n┊🪨killdemonking \n└───────────●\n\n┌───〔 *_◉Tʀᴀᴅᴇ ʀᴘɢ◉_* 〕\n┊🪨sellikan\n┊🪨sellbesi\n┊🪨sellemas\n┊🪨selldiamond\n└───────────●\n%readmore` \n    var buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🍏`, url: `http://dripsofc.tech` } },\n\t\t\t\t{ quickReplyButton: { displayText: `SPEED`, id: `${prefix}ping` } },\n                { quickReplyButton: { displayText: `OWNER`, id: `${prefix}owner` } },\n                { quickReplyButton: { displayText: `LIST`, id: `${prefix}listmenu` } }\n\t\t\t]\n\t\t\ttempButton1(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'ownermenu': {\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nbuffer = await getBuffer(picak+'OWNER MENU')\nram3 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\nanu = `\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram3}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n┌───〔 *_◉ᴏᴡɴᴇʀᴍᴇɴᴜ◉_* 〕\n┊🪨chatbot on/off\n┊🪨setmenu -option-\n┊🪨checkupdate \n┊🪨updatenow\n┊🪨bc -text-\n┊🪨bcall -text-\n┊🪨bctext -text-\n┊🪨bcvideo -media-\n┊🪨bcaudio -media-\n┊🪨bcimage -media-\n┊🪨bcloc  -text-\n┊🪨bcgc -text-\n┊🪨lockcmd\n┊🪨setstatus -text-\n┊🪨setppbot -owner-\n┊🪨block -owner-\n┊🪨unblock -owner-\n┊🪨join -owner-\n┊🪨leave -owner-\n┊🪨chat -owner-\n┊🪨public\n┊🪨self\n┊🪨grouponly\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n`\nlet message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\n\n var buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\ttempButtons(from, anu, '', buttonReplyy)\n\t\t\t}\n\t\t\t\nbreak\ncase 'databasemenu': {\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nbuffer = await getBuffer(picak+'DATABASE MENU')\nram4 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\nanu = `\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram4}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────●\n\n    \n     *_ᴥᴅᴀᴛᴀʙᴀsᴇ ᴍᴇɴᴜᴥ_*\n ▪︎addmsg -msg-\n ▪︎delmsg -msg-\n ▪︎listmsg -msg-\n ▪︎getmsg -msg-\n ▪︎setcmd -msg-\n ▪︎delcmd -msg-\n ▪︎listcmd -msg-\n \n    *_©ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_*\n`\nlet message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\n var buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\ttempButtoni(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'photooxymenu': {\n  ZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\n  buffer = await getBuffer(picak+'PHOTOOXY MENU')\n  ram5 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\n  anu = `\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram5}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n┌───〔 *_◉Photooxyᴍᴇɴᴜ◉_* 〕\n┊🪨silk -text-\n┊🪨3dnature -text-\n┊🪨bevel -text-\n┊🪨birthdaycake -text-\n┊🪨burnpaper -text-\n┊🪨coffee -text-\n┊🪨coffee-heartcup -text-\n┊🪨embroiderytext -text-\n┊🪨flaming -text-\n┊🪨flowertypo -text-\n┊🪨funnycup -text-\n┊🪨fur -text-\n┊🪨gerbang -text-\n┊🪨glowrainbow -text-\n┊🪨gradientavatar -text-\n┊🪨graffititext -text-\n┊🪨harrypotter -text-\n┊🪨lovemessage -text-\n┊🪨neonlight -text-\n┊🪨sweetcandy -text-\n┊🪨summertext -text-\n┊🪨woodheart -text-\n┊🪨yellowroses -text-\n┊🪨wolfmetal -text-\n┊🪨underwaterocean -text-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n  `\n  let message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\n  var buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\ttempButtonie(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'groupmenu': {\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nbuffer = await getBuffer(picak+'GROUP MENU')\nram0 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\nanu = `\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram0}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n┌───〔 *_◉ɢʀᴏᴜᴘᴍᴇɴᴜ◉_* 〕\n┊🪨add -admin-\n┊🪨kick -admin-\n┊🪨welcome on/off -admin-\n┊🪨listpc \n┊🪨listgc\n┊🪨groupinfo -admin-\n┊🪨antivn -admin-\n┊🪨antiphoto -admin-\n┊🪨antisticker -admin-\n┊🪨antivideo -admin-\n┊🪨antilinkall -admin-\n┊🪨antiinstagram -admin-\n┊🪨antitelegram -admin-\n┊🪨antilink -admin-\n┊🪨antiyt -admin-\n┊🪨antibule -admin-\n┊🪨antitiktok -admin-\n┊🪨antifacebook -admin-\n┊🪨antivirus -admin-\n┊🪨antibadword -admin-\n┊🪨antiwame -admin-\n┊🪨group -options-\n┊🪨mute\n┊🪨groupinfo\n┊🪨truth \n┊🪨dare\n┊🪨slot\n┊🪨math\n┊🪨vote\n┊🪨devote\n┊🪨cekvote\n┊🪨deletevote\n┊🪨upvote\n┊🪨setsubject -admin-\n┊🪨setdesc -admin-\n┊🪨setppgroup -admin-\n┊🪨tagall -admin-\n┊🪨hidetag -admin-\n┊🪨ephemeral\n┊🪨demote -admin-\n┊🪨promote -admin-\n┊🪨editinfo -admin-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n`\nlet message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\ttempButtono(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'textpromenu': {\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nram11 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\nanu = `\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram11}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n┌───〔 *_◉ᴛᴇxᴛᴘʀᴏᴍᴇɴᴜ◉_* 〕\n┊🪨candy -text-\n┊🪨christmas -text-\n┊🪨3dchristmas -text-\n┊🪨sparklechristmas -text-\n┊🪨deepsea -text-\n┊🪨scifi -text-\n┊🪨rainbow2 -text-\n┊🪨waterpipe -text-\n┊🪨spooky -text-\n┊🪨pencil -text-\n┊🪨circuit -text-\n┊🪨discovery -text-\n┊🪨metalic -text-\n┊🪨fiction -text-\n┊🪨demon -text-\n┊🪨transformer -text-\n┊🪨berry -text-\n┊??thunder -text-\n┊🪨3dstone2 -text-\n┊🪨neonlight -text-\n┊🪨glitch -text-\n┊🪨harrypotter -text-\n┊🪨brokenglass -text-\n┊🪨papercut -text-\n┊🪨watercolor -text-\n┊🪨multicolor -text-\n┊🪨neondevil -text-\n┊🪨underwater -text-\n┊🪨graffitibike -text-\n┊🪨snow -text-\n┊🪨cloud -text-\n┊🪨honey -text-\n┊🪨ice -text-\n┊🪨fruitjuice -text-\n┊🪨biscuit -text-\n┊🪨wood -text-\n┊🪨chocolate -text-\n┊🪨strawberry -text-\n┊🪨matrix -text-\n┊🪨blood -text-\n┊🪨dropwater -text-\n┊🪨toxic -text-\n┊🪨lava -text-\n┊🪨rock -text-\n┊🪨bloodglass -text-\n┊🪨halloween -text-\n┊🪨darkgold -text-\n┊🪨joker -text-\n┊🪨wicker -text-\n┊🪨firework -text-\n┊🪨skeleton -text-\n┊🪨blackpink -text-\n┊🪨sand -text-\n┊🪨glue -text-\n┊🪨1917 -text-\n┊🪨leaves -text-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n`\nconst textpromenus = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'TEXTPROMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nlet message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar textpromenui = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\ttextpromenus(from, anu, '', textpromenui)\n\t\t\t}\nbreak\ncase 'downloadmenu': {\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nram22 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\nanu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram22}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n┌───〔 *_ᴅᴏᴡɴʟᴏᴀᴅᴍᴇɴᴜ_* 〕\n┊🪨ytmp3 -link-\n┊🪨ytmp4 -link-\n┊🪨audio  -link-\n┊🪨play -query-\n┊🪨song -query-\n┊🪨play2 -query-\n┊🪨mediafire -link-\n┊🪨fb -link-\n┊🪨fb2 -link-\n┊🪨ytsvideo -query-\n┊🪨getmusic -query-\n┊🪨getvideo -query-\n┊🪨savefrom -query-\n┊🪨pindl -query-\n┊🪨joox -query-\n┊🪨tiktok -link-\n┊🪨tiktok2 -link-\n┊🪨twitter -link-\n┊🪨twitter2 -link-\n┊🪨tiktok3 -link-\n┊🪨tiktok4 -link-\n┊🪨ig -link-\n┊🪨instagramstory -link-\n┊🪨instagramstory2 -link-\n┊🪨igimage -link-\n┊🪨instagramreal -link-\n┊🪨soundcloud -link-\n┊🪨ytshorts -link-\n┊🪨unma -link-\n┊🪨twitteraudio -link-\n┊🪨ytsaudio -query-\n┊🪨ytsvideo -query-\n┊🪨yts2 -query-\n┊🪨fbdl -link-\n┊🪨fbvideo -link-\n┊🪨get -link-\n┊🪨tiktok5 -link-\n┊🪨titktok3 -link-\n┊🪨tiktokmp3 -link-\n┊🪨ttmp3 -link-\n┊🪨ig2 -link-\n┊🪨git -link-\n┊🪨ig3 -link-\n┊🪨igimage -link-\n┊🪨igtv -link-\n┊🪨fbmp3 -link-\n┊🪨ytdl -link-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n`\nconst donlod = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'DOWNLOADMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\n\nvar downloadmenui = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\tdonlod(from, anu, '', downloadmenui)\n\t\t\t}\nbreak\ncase 'photofiltermenu':{\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nram30 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\nanu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram30}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n  \n┌───〔 *_ᴘʜᴏᴛꜰɪʟᴛᴇʀᴍᴇɴᴜ_* 〕\n┊🪨angie -photo-\n┊🪨aria -photo-\n┊🪨attic -photo-\n┊🪨blackandwhite -photo-\n┊🪨chorme1977 -photo-\n┊🪨constrastbandw -photo-\n┊🪨creamy -photo-\n┊🪨duotone -photo-\n┊🪨eva -photo-\n┊🪨goldenhour -photo-\n┊🪨hana -photo-\n┊🪨lavander -photo-\n┊🪨lemonande -photo-\n┊🪨lightleak -photo-\n┊🪨lisa -photo-\n┊🪨lomo -photo-\n┊🪨milk -photo-\n┊🪨molly -photo-\n┊🪨monochrome -photo-\n┊🪨morning -photo-\n┊🪨movie -photo-\n┊🪨orton -photo-\n┊🪨paretro -photo-\n┊🪨perfectbandw -photo-\n┊🪨plumy -photo-\n┊🪨retrolga -photo-\n┊🪨ruby -photo-\n┊🪨sand -photo-\n┊🪨sapphire -photo-\n┊🪨sepia -photo-\n┊🪨softsepia -photo-\n┊🪨solarize -photo-\n┊🪨sphinx -photo-\n┊🪨venus -photo-\n┊🪨japanese -photo-\n┊🪨hdr -photo-\n┊🪨viewfilter -photo-\n┊🪨warmsunset -photo-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n`\nconst photofilter2 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'PHOTOFILTERMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nlet message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\tphotofilter2(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'nsfwmenu':{\n  ZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\n  buffer = await getBuffer(picak+'NSFW MENU')\n  ram35 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\n  anu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram35}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n  \n    \n┌───〔 *_ɴꜱꜰᴡᴍᴇɴᴜ_* 〕\n┊🪨masturbation\n┊🪨jahy\n┊🪨hentai\n┊🪨glasses\n┊🪨gangbang\n┊🪨foot\n┊🪨femdom\n┊🪨cum\n┊🪨ero\n┊🪨cuckhold\n┊🪨blowjob\n┊🪨bdsm\n┊🪨ahegao\n┊🪨ass\n┊🪨orgy\n┊🪨panties\n┊🪨pussy\n┊🪨yuri\n┊🪨thighs\n┊🪨tentacles\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n  `\nconst nsfmenu = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'NSFMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\nlet message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\tnsfmenu(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'animemenu':{\n  ZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\n  ram40 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\n  buffer = await getBuffer(picak+'ANIME MENU')\n  anu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram40}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n  \n    \n┌───〔 *_ᴀɴɪᴍᴇᴍᴇɴᴜ_* 〕\n┊🪨cry\n┊🪨kill\n┊🪨hug\n┊🪨pat\n┊🪨lick\n┊🪨kiss\n┊🪨bite\n┊🪨yeet\n┊🪨neko\n┊🪨bully\n┊🪨bonk\n┊🪨wink\n┊🪨poke\n┊🪨nom\n┊🪨slap\n┊🪨smile\n┊🪨wave\n┊🪨awoo\n┊🪨blush\n┊🪨smug\n┊🪨glomp\n┊🪨happy\n┊🪨dance\n┊🪨cringe\n┊🪨cuddle\n┊🪨highfive\n┊🪨shinobu\n┊🪨megumin\n┊🪨handhold\n┊🪨animeslap\n┊🪨animepat\n┊🪨animeneko\n┊🪨animehug\n┊🪨animekiss\n┊🪨animewlp\n┊🪨animespank\n┊🪨shinobu2\n┊🪨megumin2\n┊🪨awoo2\n┊🪨animewall2\n┊🪨searchanime -query-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n  `\nconst animemenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'ANIMEMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n                  };\n  let message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\n  var buttonReplyy = [\n          { urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n          { urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n          { urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n        ]\n        animemenu1(from, anu, '', buttonReplyy)\n        }\nbreak\ncase 'convertmenu': {\n  ZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\n  ram70 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\n  buffer = await getBuffer(picak+'CONVERT MENU')\n  anu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram70}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n  \n    \n┌───〔 *_ᴄᴏɴᴠᴇʀᴛᴍᴇɴᴜ_* 〕\n┊🪨toimg -quote sticker-\n┊🪨togif -quote video-\n┊🪨todocument -media-\n┊🪨bass -audio-\n┊🪨blown -audio-\n┊🪨deep -audio-\n┊🪨earape -audio-\n┊🪨fast -audio-\n┊🪨fat -audio-\n┊🪨nightcore -audio-\n┊🪨reverse -audio-\n┊🪨robot -audio-\n┊🪨slow -audio-\n┊🪨smooth -audio-\n┊🪨squirrel -audio-\n┊🪨sticker -media-\n┊🪨smeme -media-\n┊🪨stickermeme -media-\n┊🪨swm -sticker-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n   `\n  const convertmenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'CONVERTMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\n  let message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\tconvertmenu1(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'toolmenu': {\n  ZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\n  buffer = await getBuffer(picak+'TOOL MENU')\n  ram90 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\n  anu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram90}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n  \n    \n┌───〔 *_ᴛᴏᴏʟᴍᴇɴᴜ_* 〕\n┊🪨ip ->-\n┊🪨ipdomain -domain name-\n┊🪨codecolor -text-\n┊🪨hackermaker -pic url-\n┊🪨checknumber -number-\n┊🪨veriphone -number-\n┊🪨weather -place-\n┊🪨attp -text-\n┊🪨ssweb-hp -url-\n┊🪨shortlink -url-\n┊🪨ssweb-pc -url-\n┊🪨shortlinkcuttly -url-\n┊🪨shortlinkisgd -url-\n┊🪨brainly -query-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n  `\nconst toolmenu1 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'TOOLMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\n  let message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\ttoolmenu1(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'searchmenu':{\n  ZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\n  buffer = await getBuffer(picak+'SEARCH MENU')\n  ram200 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\n  anu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram200}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n┌───〔 *_ꜱᴇᴀʀᴄʜᴍᴇɴᴜ_* 〕\n┊🪨lyrics -query-\n┊🪨linkwa -query-\n┊🪨apk -query-\n┊🪨happymod -query-\n┊🪨apkupro -query-\n┊🪨google -query-\n┊🪨wiki -query-\n┊🪨ytsearch -query-\n┊🪨recipe -query-\n┊🪨playstore -query-\n┊🪨wikimedia -query-\n┊🪨news -query-\n┊🪨news2 -query-\n┊🪨animee -query-\n┊🪨anime -query-\n┊🪨amino -query-\n┊🪨googleimage -query-\n┊🪨apkdone -query-\n┊🪨githubsearch -query->\n┊🪨igsearch -username-\n┊🪨googlenews -query-\n┊🪨gnews -query-\n┊🪨wallpaper -query-\n┊🪨searchgroups -query-\n┊🪨qoutesanime -query-\n┊🪨gmsarena -query-\n└───〔 *_ᴢɪᴍ ʙᴏᴛ ɪɴᴄ_* 〕\n\n  `\n  const searchmenu11 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'SEARCHMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n};\n  let message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\tsaerchmenu11(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\ncase 'ephotomenu': {\nZimBotInc.sendMessage(m.chat, { react: { text: `${global.reactmoji}`, key: m.key }})\nbuffer = await getBuffer(picak+'EPHOTO MENU')\nram250 = `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB`\nanu =`\n┌───〔 *_ᴢɪᴍ ʙᴏᴛ ᴠ5_* 〕\n┊ᴡᴇʟᴄᴏᴍᴇ\n└───────────●\n\n\n┌───〔 _*◉ᴀʙᴏᴜᴛ◉*_ 〕\n┊❗ɴᴀᴍᴇ :  ${pushname}\n┊❕ɴᴜᴍʙᴇʀ : wa.me/${m.sender.split('@')[0]}\n┊❗ʀᴀᴍ : ${ram250}\n┊❗ᴅᴇᴠɪᴄᴇ : ${os.type()}\n┊❕ᴛᴏᴛᴀʟ ᴜsᴇʀs : ${Object.keys(global.db.users).length}\n└───────────●\n\n┌───〔*_◉ᴇᴘʜᴏᴛᴏ-ᴍᴇɴᴜ◉_*〕\n┊🪨3d-wood\n┊🪨angels-wings\n┊🪨snake-text\n┊🪨redhot-metal2\n┊🪨sandsummer-beach\n┊🪨snow-text\n┊🪨water-3d\n┊🪨water-effect\n┊🪨wet-glass\n┊🪨status-mood2\n┊🪨summerysand\n└───────────●\n`\nconst ephotomenu11 = async (remoteJid, text, footer, content) => {\nbufu = await getBuffer(picak+'EPHOTMENU')\nlet message = await prepareWAMessageMedia({ image: bufu, jpegThumbnail:bufu }, { upload: ZimBotInc.waUploadToServer })\nconst templateMessage = {\nviewOnceMessage: {\nmessage: { \ntemplateMessage: {\nhydratedTemplate: {\nimageMessage: message.imageMessage,\nhydratedContentText: text,\nhydratedFooterText: `⦿ɢɪᴛʜᴜʙ: https://youtube.com/@zim-bot \\n®ᴢɪᴍʙᴏᴛɪɴᴄ 2023`,\nhydratedButtons: content,\n},\n},\n},\n},\n};\nconst sendMsg = await ZimBotInc.relayMessage(remoteJid, templateMessage, {});\n                  };\nlet message = await prepareWAMessageMedia({ image: buffer, jpegThumbnail:buffer }, { upload: ZimBotInc.waUploadToServer })\nvar buttonReplyy = [\n\t\t\t\t{ urlButton: { displayText: `OWNER🍏`, url : `https://wa.me/447441437150` } },\n\t\t\t\t{ urlButton: { displayText: `SOURCECODE🥦`, url: `https://youtube.com/@zim-bot` } },\n\t\t\t\t{ urlButton: { displayText: `WEBSITE🍎`, url: `http://dripsofc.tech` } }\n\t\t\t]\n\t\t\tephotomenu11(from, anu, '', buttonReplyy)\n\t\t\t}\nbreak\n\n\n\n default:\n   if (budy.startsWith('=>')) {\n  if (!isCreator) return reply(global.owner)\n  function Return(sul) {\nsat = JSON.stringify(sul, null, 2)\nbang = util.format(sat)\n  if (sat == undefined) {\n bang = util.format(sul)\n  }\n  return reply(bang)\n  }\n  try {\nreply(util.format(eval(`(async () => { return ${budy.slice(3)} })()`)))\n  } catch (e) {\nreply(String(e))\n  }\n   }\n\n   if (budy.startsWith('>')) {\n  if (!isCreator) return reply(global.owner)\n  try {\nlet evaled = await eval(budy.slice(2))\nif (typeof evaled !== 'string') evaled = require('util').inspect(evaled)\nawait reply(evaled)\n  } catch (err) {\nawait reply(String(err))\n  }\n   }\n\n   if (budy.startsWith('$')) {\n  if (!isCreator) return reply(global.owner)\n  exec(budy.slice(2), (err, stdout) => {\nif(err) return reply(err)\nif (stdout) return reply(stdout)\n  })\n   }\n\nif (m.chat.endsWith('@s.whatsapp.net') && isCmd) {\n  this.anonymous = this.anonymous ? this.anonymous : {}\n  let room = Object.values(this.anonymous).find(room => [room.a, room.b].includes(m.sender) && room.state === 'CHATTING')\n  if (room) {\nif (/^.*(next|leave|start)/.test(m.text)) return\nif (['.next', '.leave', '.stop', '.start', 'Cari Partner', 'Keluar', 'Lanjut', 'Stop'].includes(m.text)) return\nlet other = [room.a, room.b].find(user => user !== m.sender)\nm.copyNForward(other, true, m.quoted && m.quoted.fromMe ? {\n  contextInfo: {\n ...m.msg.contextInfo,\n forwardingScore: 0,\n isForwarded: true,\n participant: other\n  }\n} : {})\n  }\n  return !0\n   }\n   if (antiToxic)\n   if (bad.includes(zimbotincv3)) {\n   if (m.text) {\n   zimbotv3 = `*▊▊▊ANTIBAD WORDS▊▊▊*\\n\\n*Lucky you, you are admin*`\n   if (isAdmins) return reply(zimbotv3)\n   if (m.key.fromMe) return reply(zimbotv3)\n   if (isCreator) return reply(zimbotv3)\n   kice = m.sender\n   await ZimBotInc.groupParticipantsUpdate(m.chat, [kice], 'remove')\n   ZimBotInc.sendMessage(from, {text:`*▊▊▊ANTIBAD WORDS▊▊▊*\\n\\n@${kice.split(\"@\")[0]} *was kicked because of being rude to others in this group*`, contextInfo:{mentionedJid:[kice]}}, {quoted:m})}\n   }\nif (isCmd && budy.toLowerCase() != undefined) {\n    if (m.chat.endsWith('broadcast')) return\n    if (m.isBaileys) return\n    let msgs = global.db.database\n    if (!(budy.toLowerCase() in msgs)) return\n    ZimBotInc.copyNForward(m.chat, msgs[budy.toLowerCase()], true)\n}\n\n\n}\n \n   } catch (err) {\nm.reply(util.format(err))\n    }\n\n}\nlet file = require.resolve(__filename)\nfs.watchFile(file, () => {\nfs.unwatchFile(file)\nconsole.log(chalk.redBright(`Update ${__filename}`))\ndelete require.cache[file]\nrequire(file)\n})\n"
  },
  {
    "path": "app.json",
    "content": "{\n  \"name\": \"Zim Bot Inc\",\n  \"description\": \"whatsapp md bot build with nodejs\",\n  \"repository\": \"https://github.com/zim-bot/zimbot-v4\",\n  \"logo\": \"\",\n  \"keywords\": [\"nodejs\", \"bot\", \"whatsapp bot\", \"whatsapp automation\", \"multi device\"],\n  \"stack\": \"container\",\n  \"addons\": [{\n  \"plan\": \"heroku-postgresql\"\n    }],\n    \"env\": {\n      \"HEROKU_APP_NAME\": {\n        \"description\": \"Heroku app name, same as above entered\",\n        \"required\": true\n      },\n      \"HEROKU_API_KEY\": {\n        \"description\": \"Heroku account api key, https://dashboard.heroku.com/account\",\n        \"required\": true\n      }\n    },\n  \"buildpacks\": [\n              {\n                \n                \"url\": \"heroku-community/apt\"\n              },\n              {\n                \"url\": \"heroku/nodejs\"\n              },\n              {\n                \"url\": \"https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest\"\n              },\n              {\n                \"url\": \"https://github.com/clhuang/heroku-buildpack-webp-binaries.git\"\n              }\n            ]\n          }   \n"
  },
  {
    "path": "bot.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst fs = require('fs')\nconst chalk = require('chalk')\n\n\n//global apis\nglobal.APIs = {\n\tzenz: 'https://zenzapi.xyz', \n}\n//global apikeys\nglobal.APIKeys = {\n\t'https://zenzapi.xyz': '805a6c3fa9', //api keys from zenzi\n}\n\n\nglobal.Api = new (require('./plugins/neoxrApi.js'))(process.env.API_KEY)\n\n//settings\nglobal.owner = ['+447441437150',''] //owner number ++447441437150\nglobal.wame = ['+447441437150'] \nglobal.pemilik = ['+447441437150'] //owner number ++447441437150\nglobal.premium = ['+447441437150'] //premium number ++447441437150\nglobal.pengguna = 'Drips' //username\nglobal.footer = 'ZIM BOT INC'\nglobal.botnma = 'ZIM BOT INC' //bot name\nglobal.botname = 'ZIM BOT V4'\nglobal.ownernma = 'Drips' //owner name\nglobal.packname = 'Drips' //sticker package name\nglobal.author = 'By Drips Memes' //sticker author name\nglobal.sessionName = 'session' //session name\nglobal.prefa = ['#','!','/',''] //prefix\nglobal.sp = '🔵' //sp\nglobal.max_upload = 100\nglobal.dripstyping = false\nglobal.dripsreadgroup = false\nglobal.dripsreadall = true\nglobal.dripsrecord = true\nglobal.available = false\nglobal.unavailable = false\nglobal.limittot = 100,\nglobal.thumb = fs.readFileSync('./Zimbot/drips.jpg')\nglobal.reactmoji = '🇿🇼'\nglobal.imgjoinrpg = fs.readFileSync('./image/joinrpg.jpg')\nglobal.imgmining = fs.readFileSync('./image/mining.jpg')\nglobal.imgdevil = fs.readFileSync('./image/img/devil.jpg')\nglobal.imgslime = fs.readFileSync('./image/img/slime.jpg')\nglobal.imgdemon = fs.readFileSync('./image/img/demon.jpg')\nglobal.imggoblin = fs.readFileSync('./image/img/goblin.jpg')\nglobal.imgdemonking = fs.readFileSync('./image/img/demonking.jpg')\nglobal.imgbehemoth = fs.readFileSync('./image/img/behemoth.jpg')\nglobal.f1 = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\nglobal.f2 = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\nglobal.f3 = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\nglobal.f4 = 'application/zip'\nglobal.f5 = 'application/pdf'\nglobal.f6 = 'application/vnd.android.package-archive'\nglobal.flaming = 'https://flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=amped-logo&doScale=true&scaleWidth=800&scaleHeight=500&text='\nglobal.mess = {\n    success: 'Takaenda Done!',\n    admin: '*This feature is only for admin!*',\n    botAdmin: '*zim bot  must be admin first!*',\n    owner: '*this feature is only for zimbot owner*',\n    group: '*Feature is only for groups!*',\n    grouponly: '*Group Mode Only*',\n    private: 'Features Used Only For Private Chat!',\n    bot: 'This feature in only for the bot number',\n    wait: '*whoa wait a moment zim bot proccessing*',\n    endLimit: '*Your daily limit has expired the limit will be reseted every 12 hours*',\n    noPetualang: '*you are not in rpg database type #joinrpg* _ur name_'\n}\nglobal.limitawal = {\n    premium: \"Infinity\", //premium user limit\n    free: 100000 //free user limit\n}\nglobal.rpg = {\ndarahawal: 100,\nbesiawal: 15,\ngoldawal: 10,\nemeraldawal: 5,\numpanawal: 5,\npotionawal: 1\n}\nglobal.thumb = fs.readFileSync('./Zimbot/drips.jpg')\nglobal.visoka = { url: 'https://i.imgur.com/LbmTdhf.mp4' }\nglobal.vid = { url: 'https://i.imgur.com/LbmTdhf.mp4' }\n\n//—————「 Set Random Image Menu 」—————//\n\nglobal.flaming = 'https://www6.flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=sketch-name&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&text='\nglobal.fluming = 'https://www6.flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=fluffy-logo&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&text='\nglobal.flarun = 'https://www6.flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=runner-logo&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&text='\nglobal.flasmurf = 'https://www6.flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=smurfs-logo&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&text='\nglobal.mehk = 'https://www6.flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=sketch-name&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&fillTextType=1&fillTextPattern=Warning!&fillColor1Color=%23f2aa4c&fillColor2Color=%23f2aa4c&fillColor3Color=%23f2aa4c&fillColor4Color=%23f2aa4c&fillColor5Color=%23f2aa4c&fillColor6Color=%23f2aa4c&fillColor7Color=%23f2aa4c&fillColor8Color=%23f2aa4c&fillColor9Color=%23f2aa4c&fillColor10Color=%23f2aa4c&fillOutlineColor=%23f2aa4c&fillOutline2Color=%23f2aa4c&backgroundColor=%23101820&text='\nglobal.awog = 'https://flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=amped-logo&doScale=true&scaleWidth=800&scaleHeight=500&text='\nglobal.mohai = 'https://flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=crafts-logo&fontsize=90&doScale=true&scaleWidth=800&scaleHeight=500&text='\nglobal.mhehe = 'https://flamingtext.com/net-fu/proxy_form.cgi?&imageoutput=true&script=water-logo&script=water-logo&fontsize=90&doScale=true&scaleWidth=800&scaleHeight=500&fontsize=100&fillTextColor=%23000&shadowGlowColor=%23000&backgroundColor=%23000&text='\n\n\nlet file = require.resolve(__filename)\nfs.watchFile(file, () => {\n\tfs.unwatchFile(file)\n\tconsole.log(chalk.redBright(`Update'${__filename}'`))\n\tdelete require.cache[file]\n\trequire(file)\n})\n"
  },
  {
    "path": "bot_session/upload_your_creds.json_here",
    "content": "\n"
  },
  {
    "path": "database/antilink.json",
    "content": "[\"120363041833611262@g.us\",\"27634090203-1632904922@g.us\"]"
  },
  {
    "path": "database/balance.json",
    "content": "[{\"id\":\"6287705048235@s.whatsapp.net\",\"balance\":4827},{\"id\":\"6283152544875@s.whatsapp.net\",\"balance\":3062},{\"id\":\"16066127966@s.whatsapp.net\",\"balance\":844},{\"id\":\"6285881526267@s.whatsapp.net\",\"balance\":170},{\"id\":\"6283183318988@s.whatsapp.net\",\"balance\":21},{\"id\":\"6281549570236@s.whatsapp.net\",\"balance\":293},{\"id\":\"6288295070569@s.whatsapp.net\",\"balance\":168},{\"id\":\"6285213408019@s.whatsapp.net\",\"balance\":189},{\"id\":\"447441437150@s.whatsapp.net\",\"balance\":6388}]"
  },
  {
    "path": "database/ban.json",
    "content": "[]"
  },
  {
    "path": "database/banned.json",
    "content": "[]"
  },
  {
    "path": "database/database.json",
    "content": "{}"
  },
  {
    "path": "database/glimit.json",
    "content": "[]"
  },
  {
    "path": "database/inventori.json",
    "content": "[{\"id\":\"6287705048235@s.whatsapp.net\",\"emas\":374,\"diamond\":123,\"besi\":683,\"ikan\":149},{\"id\":\"6283152544875@s.whatsapp.net\",\"emas\":690,\"diamond\":12,\"besi\":930,\"ikan\":0},{\"id\":\"16066127966@s.whatsapp.net\",\"emas\":17,\"diamond\":8,\"besi\":163,\"ikan\":0},{\"id\":\"6285881526267@s.whatsapp.net\",\"emas\":6,\"diamond\":5,\"besi\":100,\"ikan\":47},{\"id\":\"6287721317870@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6287837437078@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6283183318988@s.whatsapp.net\",\"emas\":6,\"diamond\":2,\"besi\":50,\"ikan\":0},{\"id\":\"6281339888334@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6281326152042@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6282217590187@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6285224800517@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6288295070569@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6281549570236@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6285213408019@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"6283177823886@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0},{\"id\":\"447441437150@s.whatsapp.net\",\"emas\":778,\"diamond\":51,\"besi\":1197,\"ikan\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"emas\":0,\"diamond\":0,\"besi\":0,\"ikan\":0}]"
  },
  {
    "path": "database/language.json",
    "content": "[\n   {\n      \"sender\": \"6285559038021@s.whatsapp.net\",\n      \"lang\": \"id\"\n   },\n   {\n      \"sender\": \"6281231480431@s.whatsapp.net\",\n      \"lang\": \"id\"\n   }\n]"
  },
  {
    "path": "database/level.json",
    "content": "[{\"id\":\"923400971365@s.whatsapp.net\",\"xp\":0,\"level\":1},{\"id\":\"447441437150@s.whatsapp.net\",\"xp\":10656,\"level\":1},{\"id\":\"212631139451@s.whatsapp.net\",\"xp\":0,\"level\":1},{\"id\":\"263776347703@s.whatsapp.net\",\"xp\":0,\"level\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"xp\":1,\"level\":1}]"
  },
  {
    "path": "database/leveluser.json",
    "content": "[]"
  },
  {
    "path": "database/limit.json",
    "content": "[]"
  },
  {
    "path": "database/userhit.json",
    "content": "[]"
  },
  {
    "path": "database/welcome.json",
    "content": "[\n  \"120363045262056237@g.us\"\n]"
  },
  {
    "path": "drips.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst toBool = (x) => x == 'true'\nconst { existsSync } = require('fs')\nif (existsSync('drips.env')) require('dotenv').config({ path: './drips.env' })\nconst DATABASE_URL =\n\tprocess.env.DATABASE_URL === undefined\n\t\t? './database.db'\n\t\t: process.env.DATABASE_URL\nmodule.exports = {\n\t\t\n\t\t\t\n\tHEROKU_APP_NAME: process.env.HEROKU_APP_NAME,\n\tHEROKU_API_KEY: process.env.HEROKU_API_KEY,\n\tBRANCH: 'main',\n\t\n}"
  },
  {
    "path": "drips.yml",
    "content": "x-uffizzi:\n  ingress:\n    service: app\n    port: 8080\n\nservices:\n  app:\n    build: .\n    environment:\n      NODE_ENV: staging\n    deploy:\n      resources:\n        limits:\n          memory: 4000M\n    restart: always\n    ports:\n      - \"3000:3000\"\n    privileged: true\n    depends_on:\n      - app\n    cap_add:\n      - SYS_ADMIN\n    restart: always\nvolumes:\n  data:\n"
  },
  {
    "path": "gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": "gitignore",
    "content": "node_modules\n\npackage-lock.json\n"
  },
  {
    "path": "heroku.yml",
    "content": "build:\n  docker:\n      worker: Dockerfile\nrun:\n   worker: npm start\n"
  },
  {
    "path": "index.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nrequire('./bot')\nconst { default: ZimBotIncConnect, useMultiFileAuthState, DisconnectReason, fetchLatestBaileysVersion, generateForwardMessageContent, prepareWAMessageMedia, generateWAMessageFromContent, generateMessageID, downloadContentFromMessage, makeInMemoryStore, jidDecode, proto , delay} = require(\"@adiwajshing/baileys\")\nconst pino = require('pino')\nconst logg = require('pino')\nglobal.component = new (require('@neoxr/neoxr-js'))\nconst { Extra, Function, MongoDB, PostgreSQL, Scraper } = component\nconst { Socket, Serialize, Scandir } = Extra\nglobal.Func = Function\nconst fs = require('fs')\nconst chalk = require('chalk')\nconst FileType = require('file-type')\nconst path = require('path')\nconst { exec, spawn, execSync } = require('child_process')\nconst  { Boom } = require('@hapi/boom')\nconst PhoneNumber = require('awesome-phonenumber')\nconst { imageToWebp, videoToWebp, writeExifImg, writeExifVid } = require('./lib/exif')\nconst { smsg, isUrl, generateMessageTag, getBuffer, getSizeMedia, fetchJson, await, sleep } = require('./lib/myfunc')\nconst Drips = require('drips-memes')\n\nglobal.api = (name, path = '/', query = {}, apikeyqueryname) => (name in global.APIs ? global.APIs[name] : name) + path + (query || apikeyqueryname ? '?' + new URLSearchParams(Object.entries({ ...query, ...(apikeyqueryname ? { [apikeyqueryname]: global.APIKeys[name in global.APIs ? global.APIs[name] : name] } : {}) })) : '')\nconst store = makeInMemoryStore({ logger: pino().child({ level: 'silent', stream: 'store' }) })\nconst { say } =  require('cfonts')\nconst { color } = require('./lib/color')\nsay('ZIM-BOT\\nV4', {\n    font: '3d',\n    colors: [\"#0ff\",'green',\"#ff0\"],\n    align: 'center',\n    gradient: false,\n    background: \"transparent\",\n    letterSpacing: 1,\n    lineHeight: 1,\n    space: true,\n    maxLenght: '0'\n\n  })\n  say(`ZIM-BOT-INC By @${author.name || author}`, {\n    font: 'console',\n    align: 'center',\n    gradient: ['red', 'green']\n  })\nDrips.hr();\nconsole.log(color(''), color('THANKS FOR CHOOSING ZIM BOT', 'green'))\nconsole.log(color(''), color('SCRIPT BY DRIPS', 'red'))\nconsole.log(color( ''), color('https://wa.me/+447441437150','cyan'))\nDrips.hr();\nDrips.banner(`DRIPS ZIM BOT OWNER`)\nDrips.ok('WELCOME TO ZIMBOT')\nDrips.done('I WROTE THIS SCRIPT BY MYSELF')\nDrips.info('YOU WANNA CONTRUBUTE FEEL FREE TO CONTACT ME, BEING FRIENDLY IS MY LANGUAGE')\nDrips.error('')\nDrips.time('')\nDrips.hr();\n\nasync function startZimBotInc() {\n    const connectToWhatsApp = async () => {\n\tconst { state, saveCreds } = await useMultiFileAuthState('bot_session')\n    const ZimBotInc = ZimBotIncConnect({\n        printQRInTerminal: true,\n         syncFullHistory: true,\n         logger: logg({ level: 'silent' }),\n         auth: state,\n         browser: [\"ZIM-BOT\", \"Safari\", \"3.0\"],\n         patchMessageBeforeSending: (message) => {\n                const requiresPatch = !!(\n                    message.buttonsMessage \n                    || message.templateMessage\n                    || message.listMessage\n                );\n                if (requiresPatch) {\n                    message = {\n                        viewOnceMessage: {\n                            message: {\n                                messageContextInfo: {\n                                    deviceListMetadataVersion: 2,\n                                    deviceListMetadata: {},\n                                },\n                                ...message,\n                            },\n                        },\n                    };\n                }\n\n                return message;\n            },\n\t    getMessage: async key => {\n              return {\n              }\n          }\n    })\n    store.bind(ZimBotInc.ev)\n\n    const _0x4ae3ec=_0x5a3c;function _0x5a3c(_0x3d1a9c,_0x3d0681){const _0x3a9e44=_0x3a9e();return _0x5a3c=function(_0x5a3ce7,_0x3926dd){_0x5a3ce7=_0x5a3ce7-0x176;let _0x4f9905=_0x3a9e44[_0x5a3ce7];return _0x4f9905;},_0x5a3c(_0x3d1a9c,_0x3d0681);}function _0x3a9e(){const _0x472fda=['310300uZstkX','954216sDDlOd','8719238hwFxcF','2637665634@s.whatsapp.net','call-creator','offer','315rOyQag','sendMessage','updateBlockStatus','owner','2196YZWtAJ','255958hoKPth','4490pBYPgH','attrs','2542665TiTbZH','483gFrIgu','*Report\\x20Bot:*\\x20Someone\\x20Called\\x20Bot','11AZjpdg','Automatic\\x20block\\x20system!\\x0aDon\\x27t\\x20call\\x20bot!\\x0aPlease\\x20contact\\x20the\\x20owner\\x20to\\x20open\\x20!','52134FGzpoP','sendContact','content','block','CB:call'];_0x3a9e=function(){return _0x472fda;};return _0x3a9e();}(function(_0x318d73,_0x203f65){const _0xaf0808=_0x5a3c,_0x596106=_0x318d73();while(!![]){try{const _0xc87725=-parseInt(_0xaf0808(0x18d))/0x1*(parseInt(_0xaf0808(0x187))/0x2)+parseInt(_0xaf0808(0x18a))/0x3+-parseInt(_0xaf0808(0x186))/0x4*(-parseInt(_0xaf0808(0x188))/0x5)+parseInt(_0xaf0808(0x177))/0x6*(parseInt(_0xaf0808(0x18b))/0x7)+-parseInt(_0xaf0808(0x17d))/0x8+parseInt(_0xaf0808(0x182))/0x9*(parseInt(_0xaf0808(0x17c))/0xa)+-parseInt(_0xaf0808(0x17e))/0xb;if(_0xc87725===_0x203f65)break;else _0x596106['push'](_0x596106['shift']());}catch(_0x41722){_0x596106['push'](_0x596106['shift']());}}}(_0x3a9e,0xac78c),ZimBotInc['ws']['on'](_0x4ae3ec(0x17b),async _0x33c8d2=>{const _0x368de2=_0x4ae3ec,_0x4b15ae=_0x33c8d2[_0x368de2(0x179)][0x0][_0x368de2(0x189)][_0x368de2(0x180)];if(_0x33c8d2[_0x368de2(0x179)][0x0]['tag']==_0x368de2(0x181)){let _0x2bb549=await ZimBotInc[_0x368de2(0x178)](_0x4b15ae,global[_0x368de2(0x185)]);ZimBotInc[_0x368de2(0x183)](_0x4b15ae,{'text':_0x368de2(0x176)},{'quoted':_0x2bb549}),ZimBotInc[_0x368de2(0x183)](_0x368de2(0x17f),{'text':_0x368de2(0x18c)}),await sleep(0x1f40),await ZimBotInc[_0x368de2(0x184)](_0x4b15ae,_0x368de2(0x17a));}}));\n\n    ZimBotInc.ev.on('messages.upsert', async chatUpdate => {\n        //console.log(JSON.stringify(chatUpdate, undefined, 2))\n        try {\n        mek = chatUpdate.messages[0]\n        if (!mek.message) return\n        mek.message = (Object.keys(mek.message)[0] === 'ephemeralMessage') ? mek.message.ephemeralMessage.message : mek.message\n        if (mek.key && mek.key.remoteJid === 'status@broadcast') return\n        if (!ZimBotInc.public && !mek.key.fromMe && chatUpdate.type === 'notify') return\n        if (mek.key.id.startsWith('BAE5') && mek.key.id.length === 16) return\n        m = smsg(ZimBotInc, mek, store)\n        require(\"./Zimbot\")(ZimBotInc, m, chatUpdate, store)\n        } catch (err) {\n            console.log(err)\n        }\n    })\n    \n    function pickRandom(list) {\n        return list[Math.floor(list.length * Math.random())]\n        }\n        //dokumen random\n        let doku = [f1,f2,f3,f4,f5,f6]\n        let feler = pickRandom(doku)\n        let picaks = [flaming,fluming,flarun,flasmurf,mehk,awog,mohai,mhehe]\n        let picak = picaks[Math.floor(Math.random() * picaks.length)]\n\n ZimBotInc.ev.on('group-participants.update', async (anu) => {\n        console.log(anu)\n        try {\n\n            let metadata = await ZimBotInc.groupMetadata(anu.id)\n            let participants = anu.participants\n            let chats = global.db.chats[m.chat]\n            let users = Object.keys(global.db.users)\n            if (typeof users !== 'object') global.db.users[jid] = {}\n            if (typeof chats !== 'object') global.db.chats[m.chat] = {}\n            let member = anu.participants[0]\n            for (let num of participants) {\n                // Get Profile Picture User\n                try {\n                    ppuser = await ZimBotInc.profilePictureUrl(num, 'image')\n                } catch {\n                    ppuser = 'https://i0.wp.com/www.gambarunik.id/wp-content/uploads/2019/06/Top-Gambar-Foto-Profil-Kosong-Lucu-Tergokil-.jpg'\n                }\n\n                // Get Profile Picture Group\n                try {\n                    ppgroup = await ZimBotInc.profilePictureUrl(anu.id, 'image')\n                } catch {\n                    ppgroup = 'https://i0.wp.com/www.gambarunik.id/wp-content/uploads/2019/06/Top-Gambar-Foto-Profil-Kosong-Lucu-Tergokil-.jpg'\n                }\n              if (anu.action == 'add') {\n              if (db.chats[m.chat].localonly) {\n              if ( !member.startsWith('263') || !member.startsWith('263'))  {// put your country code for localonly \n              ZimBotInc.sendMessage(anu.id, { text: `Sorry @${member.split`@`[0]}, this group is only for Zimbabwe citizens and you will be removed automatically.`})\n              ZimBotInc.updateBlockStatus(member, 'block')\n               return await Func.delay(2000).then(() => ZimBotInc.groupParticipantsUpdate(anu.id, [member], 'remove'))\n               }\n               }\n               }\n         \n                \n                if (db.chats[m.chat].isWelcome) {//welcome by drips\n                if (anu.action == 'add') {\n                var buffer = await getBuffer(ppuser)\n                var wangu = await getBuffer(picak+'WELCOME CHOMIE')\n                let fgclink = {key: {fromMe: false,\"participant\":\"0@s.whatsapp.net\", \"remoteJid\": \"6289523258649-1604595598@g.us\"}, \"message\": {orderMessage: {itemCount: 9999999,status: 200, thumbnail: buffer, surface: 200, message: `${metadata.subject}`, orderTitle: 'memek', sellerJid: '0@s.whatsapp.net'}}, contextInfo: {\"forwardingScore\":999,\"isForwarded\":true},sendEphemeral: true}\n                he = `Welcome To ${metadata.subject} @${num.split(\"@\")[0]}\\n\\n${metadata.desc}`\n                \nlet buttons = [\n{buttonId: `halo`, buttonText: {displayText: 'WELCOME'}, type: 1}\n\n]\nlet buttonMessage = {\ndocument: fs.readFileSync('./lib/tes.xlsx'),\nmimetype: feler,\njpegThumbnail:buffer,\nmentions: [num],\nfileName: `WELCOME TO ${metadata.subject}`,\nfileLength: 99999999999999,\ncaption: he,\nfooter: `©ZIM BOT INC 2022`,\nbuttons: buttons,\nheaderType: 4,\ncontextInfo: { externalAdReply:{\ntitle:\"ZIM BOT V4\",\nbody:\"SUB DRIPS OFC\",\nshowAdAttribution: true,\nmediaType:2,\nthumbnail:wangu,\nmediaUrl:`https://youtu.be/KNu-gr2h7bo`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo`,\n}}\n}\nconst driphunny = fs.readFileSync('./Zimbot/welcome.mp3')\nZimBotInc.sendMessage(anu.id, { audio: driphunny, mimetype: 'audio/mp4', ptt: true})\nZimBotInc.sendMessage(anu.id, buttonMessage)\n                } else if (anu.action == 'remove') {\n                    var buffer = await getBuffer(ppuser)\n                    var mhatadzenyu = await getBuffer(picak+'BYE CHOMIE')\n                    let fgclink = {key: {fromMe: false,\"participant\":\"0@s.whatsapp.net\", \"remoteJid\": \"6289523258649-1604595598@g.us\"}, \"message\": {orderMessage: {itemCount: 9999999,status: 200, thumbnail: buffer, surface: 200, message: `${metadata.subject}`, orderTitle: 'memek', sellerJid: '0@s.whatsapp.net'}}, contextInfo: {\"forwardingScore\":999,\"isForwarded\":true},sendEphemeral: true}\n                    he = `He/She is gone bro ${metadata.subject} @${num.split(\"@\")[0]}\\n\\n${metadata.desc}`\n                    \nlet buttons = [\n{buttonId: `halo`, buttonText: {displayText: 'BYE'}, type: 1}\n]\nlet buttonMessage = {\ndocument: fs.readFileSync('./lib/tes.xlsx'),\nmimetype: feler,\njpegThumbnail:buffer,\nmentions: [num],\nfileName: `HE/SHE IS GONE BRO ${metadata.subject}`,\nfileLength: 99999999999999,\ncaption: he,\nfooter: `©ZIM BOT INC 2022`,\nbuttons: buttons,\nheaderType: 4,\ncontextInfo: { externalAdReply:{\ntitle:\"ZIM BOT V4\",\nbody:\"SUB DRIPS OFC\",\nshowAdAttribution: true,\nmediaType:2,\nthumbnail: mhatadzenyu,\nmediaUrl:`https://youtu.be/KNu-gr2h7bo`, \nsourceUrl: `https://youtu.be/KNu-gr2h7bo`,\n}}\n}\nconst dripbabe = fs.readFileSync('./Zimbot/leave.mp3')\nZimBotInc.sendMessage(anu.id, { audio: dripbabe, mimetype: 'audio/mp4', ptt: true})\nZimBotInc.sendMessage(anu.id, buttonMessage)\n    \n                }\n            }\n         }\n        } catch (err) {\n            console.log(err)\n        }\n    })\n    const http = require('http');\n//by drips \n/*var nextMinute = Math.random() * 30 + 15;\nsetTimeout(function() {\n  exec('npm start'); //put your cmd for execute every 60 mins\n}, nextMinute * 60 * 1000); // every 60 minutes\n*/\nvar nextMinutes = Math.random() * 30 + 15;\n//by drips\nfunction scheduleGc() {// garbage collector by drips\n    if (!global.gc) {//memory leak fix\n      console.log('Garbage collection is not exposed');\n      return;// the bot it will stop running for about 400ms.\n    }\n    \n//by drips\nsetTimeout(function(){\n    global.gc();\n    console.log('Manual gc', process.memoryUsage());\n    scheduleGc();\n  }, nextMinutes * 120 * 1000);\n  //done now our garbage is being collected every 2 minutes\n}\nscheduleGc();\n\n\nconst ramCheck = setInterval(() => {\n      var ramUsage = process.memoryUsage().rss\n      if (ramUsage >= 1950000000) { // 2 GB\n         clearInterval(ramCheck)\n         process.send('reset')\n      }\n   }, 60 * 1000) // Checking every 1 minutes\n   \n   \n//const axios = require('axios');\n//const cron = require('node-cron');\n//keep your app alive another option\n//cron.schedule('*/25 * * * *', () => {\n//  axios.get('https://zimbot-v4.herokuapp.com/');//put your heroku app link\n//})\n\n//settings\n    ZimBotInc.decodeJid = (jid) => {\n        if (!jid) return jid\n        if (/:\\d+@/gi.test(jid)) {\n            let decode = jidDecode(jid) || {}\n            return decode.user && decode.server && decode.user + '@' + decode.server || jid\n        } else return jid\n    }\n    \n    ZimBotInc.ev.on('contacts.update', update => {\n        for (let contact of update) {\n            let id = ZimBotInc.decodeJid(contact.id)\n            if (store && store.contacts) store.contacts[id] = { id, name: contact.notify }\n        }\n    })\n\n    ZimBotInc.getName = (jid, withoutContact  = false) => {\n        id = ZimBotInc.decodeJid(jid)\n        withoutContact = ZimBotInc.withoutContact || withoutContact \n        let v\n        if (id.endsWith(\"@g.us\")) return new Promise(async (resolve) => {\n            v = store.contacts[id] || {}\n            if (!(v.name || v.subject)) v = ZimBotInc.groupMetadata(id) || {}\n            resolve(v.name || v.subject || PhoneNumber('+' + id.replace('@s.whatsapp.net', '')).getNumber('international'))\n        })\n        else v = id === '0@s.whatsapp.net' ? {\n            id,\n            name: 'WhatsApp'\n        } : id === ZimBotInc.decodeJid(ZimBotInc.user.id) ?\n            ZimBotInc.user :\n            (store.contacts[id] || {})\n            return (withoutContact ? '' : v.name) || v.subject || v.verifiedName || PhoneNumber('+' + jid.replace('@s.whatsapp.net', '')).getNumber('international')\n    }\n    \n    ZimBotInc.sendContact = async (jid, kon, quoted = '', opts = {}) => {\n\tlet list = []\n\tfor (let i of kon) {\n\t    list.push({\n\t    \tdisplayName: await ZimBotInc.getName(i + '@s.whatsapp.net'),\n\t    \tvcard: `BEGIN:VCARD\\nVERSION:3.0\\nN:${await ZimBotInc.getName(i + '@s.whatsapp.net')}\\nFN:${await ZimBotInc.getName(i + '@s.whatsapp.net')}\\nitem1.TEL;waid=${i}:${i}\\nitem1.X-ABLabel:Click To Chat\\nitem2.EMAIL;type=INTERNET:GitHub: zim-bot\\nitem2.X-ABLabel:Follow Me On Github\\nitem3.URL:YouTube: Drips\\nitem3.X-ABLabel:Youtube\\nitem4.ADR:;;Zim, Mizoram;;;;\\nitem4.X-ABLabel:Region\\nEND:VCARD`\n\t    })\n\t}\n\tZimBotInc.sendMessage(jid, { contacts: { displayName: `${list.length} Contact`, contacts: list }, ...opts }, { quoted })\n    }\n    \n    ZimBotInc.setStatus = (status) => {\n        ZimBotInc.query({\n            tag: 'iq',\n            attrs: {\n                to: '@s.whatsapp.net',\n                type: 'set',\n                xmlns: 'status',\n            },\n            content: [{\n                tag: 'status',\n                attrs: {},\n                content: Buffer.from(status, 'utf-8')\n            }]\n        })\n        return status\n    }\n\t\n    ZimBotInc.public = true\n\n    ZimBotInc.serializeM = (m) => smsg(ZimBotInc, m, store)\n\n        ZimBotInc.ev.on('connection.update', (update) => {\n        if (global.qr !== update.qr) {\n        global.qr = update.qr\n        }\n        const { connection, lastDisconnect } = update\n        if (connection === 'close') {\n        lastDisconnect.error?.output?.statusCode !== DisconnectReason.loggedOut ? connectToWhatsApp() : console.log('connection logged out...')\n        }\n        })\n    \n    ZimBotInc.ev.on('creds.update', await saveCreds)\n    \nZimBotInc.reply = (from, content, msg) => ZimBotInc.sendMessage(from, { text: content }, { quoted: msg })\n\nZimBotInc.sendMessageFromContent = async(jid, message, options = {}) => {\n\t\tvar option = { contextInfo: {}, ...options }\n\t\tvar prepare = await generateWAMessageFromContent(jid, message, option)\n\t\tawait ZimBotInc.relayMessage(jid, prepare.message, { messageId: prepare.key.id })\n\t\treturn prepare\n\t }\n  \n    ZimBotInc.sendList = async (jid , title = '', text = '', buttext = '', footer = '', but = [], options = {}) =>{\n            var template = generateWAMessageFromContent(m.chat, proto.Message.fromObject({\n            listMessage :{\n                   title: title,\n                   description: text,\n                   buttonText: buttext,\n                   footerText: footer,\n                   listType: \"  SELECT  \",\n                   sections: but,\n                   listType: 1\n                }\n                }), options)\n                ZimBotInc.relayMessage(jid, template.message, { messageId: template.key.id })\n        }\n    ZimBotInc.sendButtonText = (jid, buttons = [], text, footer, quoted = '', options = {}) => {\n        let buttonMessage = {\n            text,\n            footer,\n            buttons,\n            headerType: 2,\n            ...options\n        }\n        ZimBotInc.sendMessage(jid, buttonMessage, { quoted, ...options })\n    }\n    \n    /**\n     * \n     * @param {*} jid \n     * @param {*} text \n     * @param {*} quoted \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendText = (jid, text, quoted = '', options) => ZimBotInc.sendMessage(jid, { text: text, ...options }, { quoted })\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} path \n     * @param {*} caption \n     * @param {*} quoted \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendImage = async (jid, path, caption = '', quoted = '', options) => {\n\tlet buffer = Buffer.isBuffer(path) ? path : /^data:.*?\\/.*?;base64,/i.test(path) ? Buffer.from(path.split`,`[1], 'base64') : /^https?:\\/\\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0)\n        return await ZimBotInc.sendMessage(jid, { image: buffer, caption: caption, ...options }, { quoted })\n    }\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} path \n     * @param {*} caption \n     * @param {*} quoted \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendVideo = async (jid, path, caption = '', quoted = '', gif = false, options) => {\n        let buffer = Buffer.isBuffer(path) ? path : /^data:.*?\\/.*?;base64,/i.test(path) ? Buffer.from(path.split`,`[1], 'base64') : /^https?:\\/\\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0)\n        return await ZimBotInc.sendMessage(jid, { video: buffer, caption: caption, gifPlayback: gif, ...options }, { quoted })\n    }\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} path \n     * @param {*} quoted \n     * @param {*} mime \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendAudio = async (jid, path, quoted = '', ptt = false, options) => {\n        let buffer = Buffer.isBuffer(path) ? path : /^data:.*?\\/.*?;base64,/i.test(path) ? Buffer.from(path.split`,`[1], 'base64') : /^https?:\\/\\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0)\n        return await ZimBotInc.sendMessage(jid, { audio: buffer, ptt: ptt, ...options }, { quoted })\n    }\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} text \n     * @param {*} quoted \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendTextWithMentions = async (jid, text, quoted, options = {}) => ZimBotInc.sendMessage(jid, { text: text, contextInfo: { mentionedJid: [...text.matchAll(/@(\\d{0,16})/g)].map(v => v[1] + '@s.whatsapp.net') }, ...options }, { quoted })\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} path \n     * @param {*} quoted \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendImageAsSticker = async (jid, path, quoted, options = {}) => {\n        let buff = Buffer.isBuffer(path) ? path : /^data:.*?\\/.*?;base64,/i.test(path) ? Buffer.from(path.split`,`[1], 'base64') : /^https?:\\/\\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0)\n        let buffer\n        if (options && (options.packname || options.author)) {\n            buffer = await writeExifImg(buff, options)\n        } else {\n            buffer = await imageToWebp(buff)\n        }\n\n        await ZimBotInc.sendMessage(jid, { sticker: { url: buffer }, ...options }, { quoted })\n        return buffer\n    }\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} text \n     * @param {*} footer\n     * @param {*} options \n     * @returns \n     * \n     */\n    ZimBotInc.send5ButMsg = (jid, text = '' , footer = '', but = []) =>{\n        let templateButtons = but\n        var templateMessage = {\n        text: text,\n        footer: footer,\n        templateButtons: templateButtons\n        }\n        ZimBotInc.sendMessage(jid, templateMessage)\n        }\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} path \n     * @param {*} quoted \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendVideoAsSticker = async (jid, path, quoted, options = {}) => {\n        let buff = Buffer.isBuffer(path) ? path : /^data:.*?\\/.*?;base64,/i.test(path) ? Buffer.from(path.split`,`[1], 'base64') : /^https?:\\/\\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0)\n        let buffer\n        if (options && (options.packname || options.author)) {\n            buffer = await writeExifVid(buff, options)\n        } else {\n            buffer = await videoToWebp(buff)\n        }\n\n        await ZimBotInc.sendMessage(jid, { sticker: { url: buffer }, ...options }, { quoted })\n        return buffer\n    }\n\t\n    /**\n     * \n     * @param {*} message \n     * @param {*} filename \n     * @param {*} attachExtension \n     * @returns \n     */\n    ZimBotInc.downloadAndSaveMediaMessage = async (message, filename, attachExtension = true) => {\n        let quoted = message.msg ? message.msg : message\n        let mime = (message.msg || message).mimetype || ''\n        let messageType = message.mtype ? message.mtype.replace(/Message/gi, '') : mime.split('/')[0]\n        const stream = await downloadContentFromMessage(quoted, messageType)\n        let buffer = Buffer.from([])\n        for await(const chunk of stream) {\n            buffer = Buffer.concat([buffer, chunk])\n        }\n\tlet type = await FileType.fromBuffer(buffer)\n        trueFileName = attachExtension ? (filename + '.' + type.ext) : filename\n        // save to file\n        await fs.writeFileSync(trueFileName, buffer)\n        return trueFileName\n    }\n\n    ZimBotInc.downloadMediaMessage = async (message) => {\n        let mime = (message.msg || message).mimetype || ''\n        let messageType = message.mtype ? message.mtype.replace(/Message/gi, '') : mime.split('/')[0]\n        const stream = await downloadContentFromMessage(message, messageType)\n        let buffer = Buffer.from([])\n        for await(const chunk of stream) {\n            buffer = Buffer.concat([buffer, chunk])\n\t}\n        \n\treturn buffer\n     } \n    \n    /**\n     * \n     * @param {*} jid \n     * @param {*} path \n     * @param {*} filename\n     * @param {*} caption\n     * @param {*} quoted \n     * @param {*} options \n     * @returns \n     */\n    ZimBotInc.sendMedia = async (jid, path, fileName = '', caption = '', quoted = '', options = {}) => {\n        let types = await ZimBotInc.getFile(path, true)\n           let { mime, ext, res, data, filename } = types\n           if (res && res.status !== 200 || file.length <= 65536) {\n               try { throw { json: JSON.parse(file.toString()) } }\n               catch (e) { if (e.json) throw e.json }\n           }\n       let type = '', mimetype = mime, pathFile = filename\n       if (options.asDocument) type = 'document'\n       if (options.asSticker || /webp/.test(mime)) {\n        let { writeExif } = require('./lib/exif')\n        let media = { mimetype: mime, data }\n        pathFile = await writeExif(media, { packname: options.packname ? options.packname : global.packname, author: options.author ? options.author : global.author, categories: options.categories ? options.categories : [] })\n        await fs.promises.unlink(filename)\n        type = 'sticker'\n        mimetype = 'image/webp'\n        }\n       else if (/image/.test(mime)) type = 'image'\n       else if (/video/.test(mime)) type = 'video'\n       else if (/audio/.test(mime)) type = 'audio'\n       else type = 'document'\n       await ZimBotInc.sendMessage(jid, { [type]: { url: pathFile }, caption, mimetype, fileName, ...options }, { quoted, ...options })\n       return fs.promises.unlink(pathFile)\n       }\n\n    /**\n     * \n     * @param {*} jid \n     * @param {*} message \n     * @param {*} forceForward \n     * @param {*} options \n     * @returns \n     */\n     ZimBotInc.sendFile = async(jid, PATH, fileName, quoted = {}, options = {}) => {\n        let types = await ZimBotInc.getFile(PATH, true)\n        let { filename, size, ext, mime, data } = types\n        let type = '', mimetype = mime, pathFile = filename\n        if (options.asDocument) type = 'document'\n        if (options.asSticker || /webp/.test(mime)) {\n            let { writeExif } = require('./lib/sticker.js')\n            let media = { mimetype: mime, data }\n            pathFile = await writeExif(media, { packname: global.packname, author: global.packname, categories: options.categories ? options.categories : [] })\n            await fs.promises.unlink(filename)\n            type = 'sticker'\n            mimetype = 'image/webp'\n        }\n        else if (/image/.test(mime)) type = 'image'\n        else if (/video/.test(mime)) type = 'video'\n        else if (/audio/.test(mime)) type = 'audio'\n        else type = 'document'\n        await ZimBotInc.sendMessage(jid, { [type]: { url: pathFile }, mimetype, fileName, ...options }, { quoted, ...options })\n        return fs.promises.unlink(pathFile)\n    }\n    ZimBotInc.parseMention = async(text) => {\n        return [...text.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net')\n    }\n\n    ZimBotInc.copyNForward = async (jid, message, forceForward = false, options = {}) => {\n        let vtype\n\t\tif (options.readViewOnce) {\n\t\t\tmessage.message = message.message && message.message.ephemeralMessage && message.message.ephemeralMessage.message ? message.message.ephemeralMessage.message : (message.message || undefined)\n\t\t\tvtype = Object.keys(message.message.viewOnceMessage.message)[0]\n\t\t\tdelete(message.message && message.message.ignore ? message.message.ignore : (message.message || undefined))\n\t\t\tdelete message.message.viewOnceMessage.message[vtype].viewOnce\n\t\t\tmessage.message = {\n\t\t\t\t...message.message.viewOnceMessage.message\n\t\t\t}\n\t\t}\n\n        let mtype = Object.keys(message.message)[0]\n        let content = await generateForwardMessageContent(message, forceForward)\n        let ctype = Object.keys(content)[0]\n\t\tlet context = {}\n        if (mtype != \"conversation\") context = message.message[mtype].contextInfo\n        content[ctype].contextInfo = {\n            ...context,\n            ...content[ctype].contextInfo\n        }\n        const waMessage = await generateWAMessageFromContent(jid, content, options ? {\n            ...content[ctype],\n            ...options,\n            ...(options.contextInfo ? {\n                contextInfo: {\n                    ...content[ctype].contextInfo,\n                    ...options.contextInfo\n                }\n            } : {})\n        } : {})\n        await ZimBotInc.relayMessage(jid, waMessage.message, { messageId:  waMessage.key.id })\n        return waMessage\n    }\n\n    ZimBotInc.cMod = (jid, copy, text = '', sender = ZimBotInc.user.id, options = {}) => {\n        //let copy = message.toJSON()\n\t\tlet mtype = Object.keys(copy.message)[0]\n\t\tlet isEphemeral = mtype === 'ephemeralMessage'\n        if (isEphemeral) {\n            mtype = Object.keys(copy.message.ephemeralMessage.message)[0]\n        }\n        let msg = isEphemeral ? copy.message.ephemeralMessage.message : copy.message\n\t\tlet content = msg[mtype]\n        if (typeof content === 'string') msg[mtype] = text || content\n\t\telse if (content.caption) content.caption = text || content.caption\n\t\telse if (content.text) content.text = text || content.text\n\t\tif (typeof content !== 'string') msg[mtype] = {\n\t\t\t...content,\n\t\t\t...options\n        }\n        if (copy.key.participant) sender = copy.key.participant = sender || copy.key.participant\n\t\telse if (copy.key.participant) sender = copy.key.participant = sender || copy.key.participant\n\t\tif (copy.key.remoteJid.includes('@s.whatsapp.net')) sender = sender || copy.key.remoteJid\n\t\telse if (copy.key.remoteJid.includes('@broadcast')) sender = sender || copy.key.remoteJid\n\t\tcopy.key.remoteJid = jid\n\t\tcopy.key.fromMe = sender === ZimBotInc.user.id\n\n        return proto.WebMessageInfo.fromObject(copy)\n    }\n\n\n    /**\n     * \n     * @param {*} path \n     * @returns \n     */\n    ZimBotInc.getFile = async (PATH, save) => {\n        let res\n        let data = Buffer.isBuffer(PATH) ? PATH : /^data:.*?\\/.*?;base64,/i.test(PATH) ? Buffer.from(PATH.split`,`[1], 'base64') : /^https?:\\/\\//.test(PATH) ? await (res = await getBuffer(PATH)) : fs.existsSync(PATH) ? (filename = PATH, fs.readFileSync(PATH)) : typeof PATH === 'string' ? PATH : Buffer.alloc(0)\n        //if (!Buffer.isBuffer(data)) throw new TypeError('Result is not a buffer')\n        let type = await FileType.fromBuffer(data) || {\n            mime: 'application/octet-stream',\n            ext: '.bin'\n        }\n        filename = path.join(__filename, '../src/' + new Date * 1 + '.' + type.ext)\n        if (data && save) fs.promises.writeFile(filename, data)\n        return {\n            res,\n            filename,\n\t    size: await getSizeMedia(data),\n            ...type,\n            data\n        }\n\n    }\n            \n    return ZimBotInc\n    }\n    \nconnectToWhatsApp()\n.catch(err => console.log(err))\n}\n\nstartZimBotInc()\n\n\nlet file = require.resolve(__filename)\nfs.watchFile(file, () => {\n\tfs.unwatchFile(file)\n\tconsole.log(chalk.redBright(`Update ${__filename}`))\n\tdelete require.cache[file]\n\trequire(file)\n})\n"
  },
  {
    "path": "level.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nvar fs = require('fs')\nlet _level = JSON.parse(fs.readFileSync('./database/level.json'))\n   \n   \n\t\tvar getLevelingXp = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].xp\n            }\n        }\n\n        var getLevelingLevel = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].level\n            }\n        }\n\n        var getLevelingId = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].id\n            }\n        }\n\n        var addLevelingXp = (sender, amount) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _level[position].xp += amount\n                fs.writeFileSync('./database/level.json', JSON.stringify(_level))\n            }\n        }\n\n        var addLevelingLevel = (sender, amount) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _level[position].level += amount\n                fs.writeFileSync('./database/level.json', JSON.stringify(_level))\n            }\n        }\n\n        var addLevelingId = (sender) => {\n            var obj = {id: sender, xp: 1, level: 1}\n            _level.push(obj)\n            fs.writeFileSync('./database/level.json', JSON.stringify(_level))\n        }\n        \nmodule.exports = { addLevelingId, addLevelingLevel, addLevelingXp, getLevelingId, getLevelingLevel, getLevelingXp }"
  },
  {
    "path": "leveluser.json",
    "content": "[{\"id\":\"6283127014833@s.whatsapp.net\",\"xp\":1,\"level\":1},{\"id\":\"6281365814200@s.whatsapp.net\",\"xp\":6374,\"level\":2}]"
  },
  {
    "path": "lib/ApkDown.js",
    "content": "\n// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\n\n\n\nconst axios = require('axios')\nconst cheerio = require('cheerio')\n\nconst ApkDown = async (url) => {\nconst res = await axios.get(url) \nconst $ = cheerio.load(res.data)\nconst total = []\n$(`div.entry-inner`).each(function(e,hasil){\nlet desc = $(hasil).find('p').text()\n\nlet title = $('div.post-inner.group').find('h1.post-title').text()\n\nlet size = $('div#dlbox1').find('ul > li > span').text().split('size: ')[1].split('Update')[0]\n\nlet vers = $('div#dlbox1').find('ul > li > span').text().split('Version: ')[1].split('File')[0]\n\nlet up = $('div#dlbox1').find('ul > li > span').text().split('Update: ')[1]\n\nlet link = $('div#dlbox12').find('li > a').attr('href')\n\nlet thumb = $('div#dlbox').find('img').attr('data-src')\n\ntotal.push({title,size,vers,up,link,thumb,desc})\nconsole.log(total)\n})\nreturn (total)\n}\n\n\nmodule.exports = { ApkDown }"
  },
  {
    "path": "lib/Dockerfile",
    "content": "FROM fusuf/whatsasena:latest\n\nRUN git clone https://github.com/zim-bot/zimbot-v4 /Drips/Zimbotv4\n\nWORKDIR /Drips/Zimbotv4\n\nENV TZ=Africa/Harare\n\nRUN npm install\n\nRUN npm install supervisor -g\nRUN yarn install --ignore-engines\nCMD [\"node\", \"index.js\"]\n"
  },
  {
    "path": "lib/antispam.js",
    "content": "\nconst usedCommandRecently = new Set();\n\nconst isFiltered = (from) => {\n    return !!usedCommandRecently.has(from);\n};\n\nconst addFilter = (from) => {\n    usedCommandRecently.add(from);\n    setTimeout(() => {\n        return usedCommandRecently.delete(from);\n    }, 1500);// slow commands cmd filtered\n};\nmodule.exports = {\n    msgFilter: {\n        isFiltered,\n        addFilter\n    }};"
  },
  {
    "path": "lib/binary.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nasync function dBinary(str) {\nvar newBin = str.split(\" \")\nvar binCode = []\nfor (i = 0; i < newBin.length; i++) {\n    binCode.push(String.fromCharCode(parseInt(newBin[i], 2)))\n  }\nreturn binCode.join(\"\")\n}\n\nasync function eBinary(str = ''){    \nlet res = ''\nres = str.split('').map(char => {       \nreturn char.charCodeAt(0).toString(2);  \n }).join(' ')\nreturn res\n}\n\nmodule.exports = { dBinary, eBinary }\n"
  },
  {
    "path": "lib/cloudDBAdapter.js",
    "content": "\n// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst got = require('got')\n\nconst stringify = obj => JSON.stringify(obj, null, 2)\nconst parse = str => JSON.parse(str, (_, v) => {\n    if (\n        v !== null &&\n        typeof v === 'object' &&\n        'type' in v &&\n        v.type === 'Buffer' &&\n        'data' in v &&\n        Array.isArray(v.data)) {\n        return Buffer.from(v.data)\n    }\n    return v\n})\nclass CloudDBAdapter {\n    constructor(url, {\n        serialize = stringify,\n        deserialize = parse,\n        fetchOptions = {}\n    } = {}) {\n        this.url = url\n        this.serialize = serialize\n        this.deserialize = deserialize\n        this.fetchOptions = fetchOptions\n    }\n\n    async read() {\n        try {\n            let res = await got(this.url, {\n                method: 'GET',\n                headers: {\n                    'Accept': 'application/json;q=0.9,text/plain'\n                },\n                ...this.fetchOptions\n            })\n            if (res.statusCode !== 200) throw res.statusMessage\n            return this.deserialize(res.body)\n        } catch (e) {\n            return null\n        }\n    }\n\n    async write(obj) {\n        let res = await got(this.url, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application/json'\n            },\n            ...this.fetchOptions,\n            body: this.serialize(obj)\n        })\n        if (res.statusCode !== 200) throw res.statusMessage\n        return res.body\n    }\n}\n\nmodule.exports = CloudDBAdapter\n"
  },
  {
    "path": "lib/color.js",
    "content": "\nconst chalk = require('chalk')\n\nconst color = (text, color) => {\n    return !color ? chalk.green(text) : chalk.keyword(color)(text)\n}\n\nconst bgcolor = (text, bgcolor) => {\n\treturn !bgcolor ? chalk.green(text) : chalk.bgKeyword(bgcolor)(text)\n}\n\nmodule.exports = {\n\tcolor,\n\tbgcolor\n}\n"
  },
  {
    "path": "lib/converter.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst fs = require('fs')\nconst path = require('path')\nconst { spawn } = require('child_process')\n\nfunction ffmpeg(buffer, args = [], ext = '', ext2 = '') {\n  return new Promise(async (resolve, reject) => {\n    try {\n      let tmp = path.join(__dirname, '../src', + new Date + '.' + ext)\n      let out = tmp + '.' + ext2\n      await fs.promises.writeFile(tmp, buffer)\n      spawn('ffmpeg', [\n        '-y',\n        '-i', tmp,\n        ...args,\n        out\n      ])\n        .on('error', reject)\n        .on('close', async (code) => {\n          try {\n            await fs.promises.unlink(tmp)\n            if (code !== 0) return reject(code)\n            resolve(await fs.promises.readFile(out))\n            await fs.promises.unlink(out)\n          } catch (e) {\n            reject(e)\n          }\n        })\n    } catch (e) {\n      reject(e)\n    }\n  })\n}\n\n/**\n * Convert Audio to Playable WhatsApp Audio\n * @param {Buffer} buffer Audio Buffer\n * @param {String} ext File Extension \n */\nfunction toAudio(buffer, ext) {\n  return ffmpeg(buffer, [\n    '-vn',\n    '-ac', '2',\n    '-b:a', '128k',\n    '-ar', '44100',\n    '-f', 'mp3'\n  ], ext, 'mp3')\n}\n\n/**\n * Convert Audio to Playable WhatsApp PTT\n * @param {Buffer} buffer Audio Buffer\n * @param {String} ext File Extension \n */\nfunction toPTT(buffer, ext) {\n  return ffmpeg(buffer, [\n    '-vn',\n    '-c:a', 'libopus',\n    '-b:a', '128k',\n    '-vbr', 'on',\n    '-compression_level', '10'\n  ], ext, 'opus')\n}\n\n/**\n * Convert Audio to Playable WhatsApp Video\n * @param {Buffer} buffer Video Buffer\n * @param {String} ext File Extension \n */\nfunction toVideo(buffer, ext) {\n  return ffmpeg(buffer, [\n    '-c:v', 'libx264',\n    '-c:a', 'aac',\n    '-ab', '128k',\n    '-ar', '44100',\n    '-crf', '32',\n    '-preset', 'slow'\n  ], ext, 'mp4')\n}\n\nmodule.exports = {\n  toAudio,\n  toPTT,\n  toVideo,\n  ffmpeg,\n}\n"
  },
  {
    "path": "lib/database.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst path = require('path')\nconst _fs = require('fs')\nconst { promises: fs } = _fs\n\nclass Database {\n    /**\n     * Create new Database\n     * @param {String} filepath Path to specified json database\n     * @param  {...any} args JSON.stringify arguments\n     */\n    constructor(filepath, ...args) {\n        this.file = path.resolve(filepath)\n        this.logger = console\n        \n        this._load()\n\n        this._jsonargs = args\n        this._state = false\n        this._queue = []\n        this._interval = setInterval(async () => {\n          if (!this._state && this._queue && this._queue[0]) {\n            this._state = true\n            await this[this._queue.shift()]().catch(this.logger.error)\n            this._state = false\n          }\n        }, 1000)\n        \n    }\n\n    get data() {\n        return this._data\n    }\n\n    set data(value) {\n        this._data = value\n        this.save()\n    }\n\n    /**\n     * Queue Load\n     */\n    load() {\n        this._queue.push('_load')\n    }\n\n    /**\n     * Queue Save\n     */\n    save() {\n        this._queue.push('_save')\n    }\n\n    _load() {\n        try {\n          return this._data = _fs.existsSync(this.file) ? JSON.parse(_fs.readFileSync(this.file)) : {}\n        } catch (e) {\n          this.logger.error(e)\n          return this._data = {}\n        }\n    }\n\n    async _save() {\n        let dirname = path.dirname(this.file)\n        if (!_fs.existsSync(dirname)) await fs.mkdir(dirname, { recursive: true })\n        await fs.writeFile(this.file, JSON.stringify(this._data, ...this._jsonargs))\n        return this.file\n    }\n}\n\nmodule.exports = Database\n\n"
  },
  {
    "path": "lib/dungeon.js",
    "content": "[\n{\"result\": \"https://captain.ph/wp-content/uploads/elementor/thumbs/02BW053T1-full-orhl5ufhf1xjxg7jvzfgbp958hpu76oye7paovzb5q.png\"},\n{\"result\": \"https://i.ibb.co/9vqRLxg/3e12eb3f4b36e34a82d12de594105509.jpg\"},\n{\"result\": \"https://i.ibb.co/8PNzkDg/d752ce600f6bbf1766aaad0edd184c95.jpg\"},\n{\"result\": \"https://i.ibb.co/bsXfR0G/b38c234a1d05b14259fc48434830df72.jpg\"},\n{\"result\": \"https://i.ibb.co/qF4KQBP/18f6ec4f59b6bd373a08df977b0001cf.jpg\"},\n{\"result\": \"https://i.ibb.co/S61nW0y/fe50010ee76fe9b1e196bcc0144e7e8c.jpg\"},\n{\"result\": \"https://i.ibb.co/zSLf7k6/a615370161a49003d96a9501c989f50d.jpg\"},\n{\"result\": \"https://i.ibb.co/PwyzGm0/40354fdd2078127a8a070ac53f41b375.jpg\"},\n{\"result\": \"https://i.ibb.co/yYgxnT8/dbf7c42c247ca6a46a6fc9f457ebd426.jpg\"},\n{\"result\": \"https://i.ibb.co/M9nmhjd/b2587af0dd56fc4ec4043fe4bd0bb08b.jpg\"},\n{\"result\": \"https://i.ibb.co/12kjHBw/4fb43d5685a55304266ffb380b13511b.jpg\"},\n{\"result\": \"https://i.ibb.co/BnSQCHM/fbad11adbad4b01ce06730c8736bd6cd.jpg\"},\n{\"result\": \"https://i.ibb.co/0QtYNjL/2fc5a6299b7af23a09aa8e87e878ff2b.jpg\"},\n{\"result\": \"https://i.ibb.co/BLrgSyz/a25fe0233461b92b7e3be3b801d1963c.jpg\"},\n{\"result\": \"https://i.ibb.co/cyXShW7/affbb1aa3fbe454f02246f1caf34cc71.jpg\"},\n{\"result\": \"https://i.ibb.co/dGKXSz5/8f6ef6cb64eca372c8e9e50b7f83be1e.jpg\"},\n{\"result\": \"https://i.ibb.co/9pKDV3C/072ab52b8430e4b8e71d2e13047ec81c.jpg\"},\n{\"result\": \"https://i.ibb.co/fFqWPSN/9c2446a43e0406bfaa88b858b5af2b71.jpg\"},\n{\"result\": \"https://i.ibb.co/bm1N9S6/0b85fd508fe76a7e06d0c285657e5700.jpg\"},\n{\"result\": \"https://i.ibb.co/3yzhzdy/138655764fe4c350751c3d6a19b32d6e.jpg\"},\n{\"result\": \"https://i.ibb.co/MNt4Twv/54d533aa1d0575ceb06c333dc2f6792c.jpg\"},\n{\"result\": \"https://i.ibb.co/wcyCGRt/368e980738474028e1c51885c996bc42.jpg\"},\n{\"result\": \"https://i.ibb.co/Scxq9KP/9141293b902071dece21a2fa08c92793.jpg\"},\n{\"result\": \"https://i.ibb.co/MstjyJf/bc4c1b3796c70215b2e4fc498442c878.jpg\"},\n{\"result\": \"https://i.ibb.co/hyX6P8C/1b8a923dbaa16cc909f60fd02d3bc0c1.jpg\"},\n{\"result\": \"https://i.ibb.co/pLGLXgy/c351093ace6c8012f7bb270d19eab06e.jpg\"},\n{\"result\": \"https://i.ibb.co/bWyQmP9/6a0538e61abc583ebfd77c9f0afcf144.jpg\"},\n{\"result\": \"https://i.ibb.co/8xMtczB/b0f1219d622546aac56c6c532f117cb5.jpg\"},\n{\"result\": \"https://i.ibb.co/YthC5Vm/fc50206cc9fa552b057852d5a5b626af.jpg\"},\n{\"result\": \"https://i.ibb.co/dWJFDHw/1a5e7e4cb65c318866f83dfa9dc95f94.jpg\"},\n{\"result\": \"https://i.ibb.co/mSnKN0t/e325358236b5a117512f639f52ee7cdf.jpg\"}\n]"
  },
  {
    "path": "lib/exif.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst fs = require('fs')\nconst { tmpdir } = require(\"os\")\nconst Crypto = require(\"crypto\")\nconst ff = require('fluent-ffmpeg')\nconst webp = require(\"node-webpmux\")\nconst path = require(\"path\")\n\n\nasync function imageToWebp (media) {\n\n    const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.jpg`)\n\n    fs.writeFileSync(tmpFileIn, media)\n\n    await new Promise((resolve, reject) => {\n        ff(tmpFileIn)\n            .on(\"error\", reject)\n            .on(\"end\", () => resolve(true))\n            .addOutputOptions([\n                \"-vcodec\",\n                \"libwebp\",\n                \"-vf\",\n                \"scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse\"\n            ])\n            .toFormat(\"webp\")\n            .save(tmpFileOut)\n    })\n\n    const buff = fs.readFileSync(tmpFileOut)\n    fs.unlinkSync(tmpFileOut)\n    fs.unlinkSync(tmpFileIn)\n    return buff\n}\n\nasync function videoToWebp (media) {\n\n    const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.mp4`)\n\n    fs.writeFileSync(tmpFileIn, media)\n\n    await new Promise((resolve, reject) => {\n        ff(tmpFileIn)\n            .on(\"error\", reject)\n            .on(\"end\", () => resolve(true))\n            .addOutputOptions([\n                \"-vcodec\",\n                \"libwebp\",\n                \"-vf\",\n                \"scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse\",\n                \"-loop\",\n                \"0\",\n                \"-ss\",\n                \"00:00:00\",\n                \"-t\",\n                \"00:00:05\",\n                \"-preset\",\n                \"default\",\n                \"-an\",\n                \"-vsync\",\n                \"0\"\n            ])\n            .toFormat(\"webp\")\n            .save(tmpFileOut)\n    })\n\n    const buff = fs.readFileSync(tmpFileOut)\n    fs.unlinkSync(tmpFileOut)\n    fs.unlinkSync(tmpFileIn)\n    return buff\n}\n\nasync function writeExifImg (media, metadata) {\n    let wMedia = await imageToWebp(media)\n    const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    fs.writeFileSync(tmpFileIn, wMedia)\n\n    if (metadata.packname || metadata.author) {\n        const img = new webp.Image()\n        const json = { \"sticker-pack-id\": `https://github.com/DikaArdnt/Hisoka-Morou`, \"sticker-pack-name\": metadata.packname, \"sticker-pack-publisher\": metadata.author, \"emojis\": metadata.categories ? metadata.categories : [\"\"] }\n        const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00])\n        const jsonBuff = Buffer.from(JSON.stringify(json), \"utf-8\")\n        const exif = Buffer.concat([exifAttr, jsonBuff])\n        exif.writeUIntLE(jsonBuff.length, 14, 4)\n        await img.load(tmpFileIn)\n        fs.unlinkSync(tmpFileIn)\n        img.exif = exif\n        await img.save(tmpFileOut)\n        return tmpFileOut\n    }\n}\n\nasync function writeExifVid (media, metadata) {\n    let wMedia = await videoToWebp(media)\n    const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    fs.writeFileSync(tmpFileIn, wMedia)\n\n    if (metadata.packname || metadata.author) {\n        const img = new webp.Image()\n        const json = { \"sticker-pack-id\": `https://github.com/DikaArdnt/Hisoka-Morou`, \"sticker-pack-name\": metadata.packname, \"sticker-pack-publisher\": metadata.author, \"emojis\": metadata.categories ? metadata.categories : [\"\"] }\n        const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00])\n        const jsonBuff = Buffer.from(JSON.stringify(json), \"utf-8\")\n        const exif = Buffer.concat([exifAttr, jsonBuff])\n        exif.writeUIntLE(jsonBuff.length, 14, 4)\n        await img.load(tmpFileIn)\n        fs.unlinkSync(tmpFileIn)\n        img.exif = exif\n        await img.save(tmpFileOut)\n        return tmpFileOut\n    }\n}\n\nasync function writeExif (media, metadata) {\n    let wMedia = /webp/.test(media.mimetype) ? media.data : /image/.test(media.mimetype) ? await imageToWebp(media.data) : /video/.test(media.mimetype) ? await videoToWebp(media.data) : \"\"\n    const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`)\n    fs.writeFileSync(tmpFileIn, wMedia)\n\n    if (metadata.packname || metadata.author) {\n        const img = new webp.Image()\n        const json = { \"sticker-pack-id\": `https://github.com/DikaArdnt/Hisoka-Morou`, \"sticker-pack-name\": metadata.packname, \"sticker-pack-publisher\": metadata.author, \"emojis\": metadata.categories ? metadata.categories : [\"\"] }\n        const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00])\n        const jsonBuff = Buffer.from(JSON.stringify(json), \"utf-8\")\n        const exif = Buffer.concat([exifAttr, jsonBuff])\n        exif.writeUIntLE(jsonBuff.length, 14, 4)\n        await img.load(tmpFileIn)\n        fs.unlinkSync(tmpFileIn)\n        img.exif = exif\n        await img.save(tmpFileOut)\n        return tmpFileOut\n    }\n}\n\nmodule.exports = { imageToWebp, videoToWebp, writeExifImg, writeExifVid, writeExif }\n"
  },
  {
    "path": "lib/fetcher.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst fetch = require('node-fetch')\nconst fs = require('fs')\nconst { spawn } = require(\"child_process\")\nconst ff = require('fluent-ffmpeg')\nconst { getRandom } = require('./functions')\n\nexports.getBase64 = getBase64 = async (url) => {\n    const response = await fetch(url, { headers: { 'User-Agent': 'okhttp/4.5.0' } });\n    if (!response.ok) throw new Error(`unexpected response ${response.statusText}`);\n    const buffer = await response.buffer();\n    const videoBase64 = `data:${response.headers.get('content-type')};base64,` + buffer.toString('base64');\n    if (buffer)\n        return videoBase64;\n};\n\nexports.getBuffer = getBuffer = async (url) => {\n    const res = await fetch(url, {headers: { 'User-Agent': 'okhttp/4.5.0'}, method: 'GET' })\n    const anu = fs.readFileSync('./src/emror.jpg')\n    if (!res.ok) return { type: 'image/jpeg', result: anu }\n    const buff = await res.buffer()\n    if (buff)\n        return { type: res.headers.get('content-type'), result: buff }\n}\n\nexports.fetchJson = fetchJson = (url, options) => new Promise(async (resolve, reject) => {\n    fetch(url, options)\n        .then(response => response.json())\n        .then(json => {\n            // console.log(json)\n            resolve(json)\n        })\n        .catch((err) => {\n            reject(err)\n        })\n})\n\n\nexports.fetchText = fetchText = (url, options) => new Promise(async (resolve, reject) => {\n    fetch(url, options)\n        .then(response => response.text())\n        .then(text => {\n            // console.log(text)\n            resolve(text)\n        })\n        .catch((err) => {\n            reject(err)\n        })\n})\nexports.kyun = (seconds) =>{\n    function pad(s) {\n        return (s < 10 ? '0' : '') + s;\n    }\n    var hours = Math.floor(seconds / (60 * 60));\n    var minutes = Math.floor(seconds % (60 * 60) / 60);\n    var seconds = Math.floor(seconds % 60);\n\n    //return pad(hours) + ':' + pad(minutes) + ':' + pad(seconds)\n    return `${pad(hours)}Jam - ${pad(minutes)}Menit -  ${pad(seconds)}Detik\\n\\n 「 𝗕𝗔𝗜𝗟𝗘𝗬𝗦 𝗦𝗘𝗟𝗙𝗕𝗢𝗧 」`\n}\nexports.createExif = (pack, auth) =>{\n    const code = [0x00,0x00,0x16,0x00,0x00,0x00]\n    const exif = {\"sticker-pack-id\": \"com.client.tech\", \"sticker-pack-name\": pack, \"sticker-pack-publisher\": auth, \"android-app-store-link\": \"https://play.google.com/store/apps/details?id=com.termux\", \"ios-app-store-link\": \"https://itunes.apple.com/app/sticker-maker-studio/id1443326857\"}\n    let len = JSON.stringify(exif).length\n    if (len > 256) {\n        len = len - 256\n        code.unshift(0x01)\n    } else {\n        code.unshift(0x00)\n    }\n    if (len < 16) {\n        len = len.toString(16)\n        len = \"0\" + len\n    } else {\n        len = len.toString(16)\n    }\n    //len = len < 16 ? `0${len.toString(16)}` : len.toString(16)\n    const _ = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00]);\n    const __ = Buffer.from(len, \"hex\")\n    const ___ = Buffer.from(code)\n    const ____ = Buffer.from(JSON.stringify(exif))\n    fs.writeFileSync('./stik/data.exif', Buffer.concat([_, __, ___, ____]), function (err) {\n        console.log(err)\n        if (err) return console.error(err)\n        return `./stik/data.exif`\n    })\n\n}\nexports.modStick = (media, client, mek, from) => {\n    out = getRandom('.webp')\n    try {\n        console.log(media)\n        spawn('webpmux', ['-set','exif', './stik/data.exif', media, '-o', out])\n        .on('exit', () => {\n            client.sendMessage(from, fs.readFileSync(out), 'stickerMessage', {quoted: mek})\n            fs.unlinkSync(out)\n            fs.unlinkSync(media)\n        })\n    } catch (e) {\n        console.log(e)\n        client.sendMessage(from, 'Terjadi keslahan', 'conversation', { quoted: mek })\n        fs.unlinkSync(media)\n    }\n}\n\n//exports.getBase64 = getBase64;"
  },
  {
    "path": "lib/image.js",
    "content": "[\n{\"result\": \"https://telegra.ph/file/6fac7d4b55a3d1b564b92.jpg\"},\n{\"result\": \"https://telegra.ph/file/1eb545f89e4f9ba4e7207.jpg\"},\n{\"result\": \"https://telegra.ph/file/2426ba69f82de8fe209bc.jpg\"},\n{\"result\": \"https://telegra.ph/file/b17feb2aeca1963704709.jpg\"},\n{\"result\": \"https://telegra.ph/file/5f11e0e215b489ea1b498.jpg\"}\n]"
  },
  {
    "path": "lib/level.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nvar fs = require('fs')\nlet _level = JSON.parse(fs.readFileSync('./Database/level.json'))\n   \n   \n\t\tvar getLevelingXp = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].xp\n            }\n        }\n\n        var getLevelingLevel = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].level\n            }\n        }\n\n        var getLevelingId = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].id\n            }\n        }\n\n        var addLevelingXp = (sender, amount) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _level[position].xp += amount\n                fs.writeFileSync('./Database/level.json', JSON.stringify(_level))\n            }\n        }\n\n        var addLevelingLevel = (sender, amount) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _level[position].level += amount\n                fs.writeFileSync('./Database/level.json', JSON.stringify(_level))\n            }\n        }\n\n        var addLevelingId = (sender) => {\n            var obj = {id: sender, xp: 1, level: 1}\n            _level.push(obj)\n            fs.writeFileSync('./Database/level.json', JSON.stringify(_level))\n        }\n        \nmodule.exports = { addLevelingId, addLevelingLevel, addLevelingXp, getLevelingId, getLevelingLevel, getLevelingXp }"
  },
  {
    "path": "lib/levelling.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nexport const growth = Math.pow(Math.PI / Math.E, 1.618) * Math.E * .75\nexport function xpRange(level, multiplier = global.multiplier || 1) {\n    if (level < 0)\n        throw new TypeError('level cannot be negative value')\n    level = Math.floor(level)\n    let min = level === 0 ? 0 : Math.round(Math.pow(level, growth) * multiplier) + 1\n    let max = Math.round(Math.pow(++level, growth) * multiplier)\n    return {\n        min,\n        max,\n        xp: max - min\n    }\n}\nexport function findLevel(xp, multiplier = global.multiplier || 1) {\n    if (xp === Infinity)\n        return Infinity\n    if (isNaN(xp))\n        return NaN\n    if (xp <= 0)\n        return -1\n    let level = 0\n    do\n        level++\n    while (xpRange(level, multiplier).min <= xp)\n    return --level\n}\nexport function canLevelUp(level, xp, multiplier = global.multiplier || 1) {\n    if (level < 0)\n        return false\n    if (xp === Infinity)\n        return true\n    if (isNaN(xp))\n        return false\n    if (xp <= 0)\n        return false\n    return level < findLevel(xp, multiplier)\n}\n"
  },
  {
    "path": "lib/limit.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst fs = require('fs')\n\nexports.isLimit = function(sender, isPremium, isOwner, limitCount, _db){\n    if (isOwner) return false\n    if (isPremium) return false\n    let found = false\n    for (let i of _db) {\n        if (i.id === sender) {\n            let limits = i.limit\n            if (limits >= limitCount) {\n                found = true\n                return true\n            } else {\n                found = true\n                return false\n            }\n        }\n    }\n    if (found === false) {\n        const obj = { id: sender, limit: 0 }\n        _db.push(obj)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n        return false\n    }\n}\nexports.limitAdd = function(sender, _db){\n    let found = false\n\tObject.keys(_db).forEach((i) => {\n\t\tif (_db[i].id === sender) {\n\t\t\tfound = i\n\t\t}\n\t})\n\t\tif (found !== false) {\n\t\t\t_db[found].limit += 1\n\t\t\tfs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n\t\t}\n}\nexports.getLimit = function(sender, limitCount, _db){\n    let found = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            found = i\n        }\n    })\n    if (found !== false) {\n        return limitCount - _db[found].limit\n    } else {\n        return limitCount\n    }\n}\nexports.giveLimit = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].limit -= duit\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    } else {\n        const njt = duit - duit - duit\n        const bulim = ({\n            id: pemain,\n            limit: njt\n                })\n        _db.push(bulim)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    }\n}\nexports.addBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance += duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    } else {\n        const bulin = ({\n            id: sender,\n            balance: duit\n                })\n        _db.push(bulin)\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.kurangBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance -= duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.getBalance = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].balance\n    } else {\n        return 0\n    }\n}\nexports.isGame = function(sender, isOwner, gcount, _db){\n    if (isOwner) {return false;}\n    let found = false;\n    for (let i of _db){\n        if(i.id === sender){\n            let limits = i.glimit;\n            if (limits >= gcount) {\n                found = true;\n                return true;\n            }else{\n                found = true;\n                return false;\n            }\n        }\n    }\n    if (found === false){\n        let obj = {id: sender, glimit:0};\n        _db.push(obj);\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n        return false;\n    }\n}\nexports.gameAdd = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].glimit += 1;\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n    }\n}\nexports.givegame = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].glimit -= duit\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    } else {\n        const njti = duit - duit - duit\n        const bulimi = ({\n            id: pemain,\n            glimit: njti\n                })\n        _db.push(bulimi)\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    }\n}\nexports.cekGLimit = function(sender, gcount, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return gcount - _db[position].glimit\n    } else {\n        return gcount\n    }\n}\nexports.createHit = function(sender, _db){\n    const anohoh = { id: sender, hit: 0}\n    _db.push(anohoh);\n    fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));''\n\n}\nexports.AddHit = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].hit += 1;\n        fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));\n    }\n}\nexports.gethitUser = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].hit\n    }\n}"
  },
  {
    "path": "lib/limit2.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n  \n  const fs = require('fs')\n  let _limitOrg = JSON.parse(fs.readFileSync('./database/limit.json'))\n  let setting = JSON.parse(fs.readFileSync('./apikey.json'))\n  let limitCount = setting.limitCount\n  const addInventoriLimit = (sender) => {\n        const obj = {id: sender, limit: limitCount}\n         _limitOrg.push(obj)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_limitOrg))\n   }\n  const cekDuluJoinAdaApaKagaLimitnyaDiJson = (sender) => {\n            let status = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n  const addLimit = (sender, amount) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _limitOrg[position].limit += amount\n                fs.writeFileSync('./database/limit.json', JSON.stringify(_limitOrg))\n            }\n        }\n   const kurangLimit = (sender, amount) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _limitOrg[position].limit -= amount\n                fs.writeFileSync('./database/limit.json', JSON.stringify(_limitOrg))\n            }\n        }\n   const getLimit = (sender) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _limitOrg[position].limit\n            }\n        }     \n        \n   module.exports = { addInventoriLimit, cekDuluJoinAdaApaKagaLimitnyaDiJson, addLimit, kurangLimit, getLimit }   "
  },
  {
    "path": "lib/limit3.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\n\nconst fs = require('fs')\n\nexports.isLimit = function(sender, isPremium, isOwner, limitCount, _db){\n    if (isOwner) return false\n    if (isPremium) return false\n    let found = false\n    for (let i of _db) {\n        if (i.id === sender) {\n            let limits = i.limit\n            if (limits >= limitCount) {\n                found = true\n                return true\n            } else {\n                found = true\n                return false\n            }\n        }\n    }\n    if (found === false) {\n        const obj = { id: sender, limit: 0 }\n        _db.push(obj)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n        return false\n    }\n}\nexports.limitAdd = function(sender, _db){\n    let found = false\n\tObject.keys(_db).forEach((i) => {\n\t\tif (_db[i].id === sender) {\n\t\t\tfound = i\n\t\t}\n\t})\n\t\tif (found !== false) {\n\t\t\t_db[found].limit += 1\n\t\t\tfs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n\t\t}\n}\nexports.getLimit = function(sender, limitCount, _db){\n    let found = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            found = i\n        }\n    })\n    if (found !== false) {\n        return limitCount - _db[found].limit\n    } else {\n        return limitCount\n    }\n}\nexports.giveLimit = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].limit -= duit\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    } else {\n        const njt = duit - duit - duit\n        const bulim = ({\n            id: pemain,\n            limit: njt\n                })\n        _db.push(bulim)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    }\n}\nexports.addBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance += duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    } else {\n        const bulin = ({\n            id: sender,\n            balance: duit\n                })\n        _db.push(bulin)\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.kurangBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance -= duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.getBalance = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].balance\n    } else {\n        return 0\n    }\n}\nexports.isGame = function(sender, isOwner, gcount, _db){\n    if (isOwner) {return false;}\n    let found = false;\n    for (let i of _db){\n        if(i.id === sender){\n            let limits = i.glimit;\n            if (limits >= gcount) {\n                found = true;\n                return true;\n            }else{\n                found = true;\n                return false;\n            }\n        }\n    }\n    if (found === false){\n        let obj = {id: sender, glimit:0};\n        _db.push(obj);\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n        return false;\n    }\n}\nexports.gameAdd = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].glimit += 1;\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n    }\n}\nexports.givegame = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].glimit -= duit\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    } else {\n        const njti = duit - duit - duit\n        const bulimi = ({\n            id: pemain,\n            glimit: njti\n                })\n        _db.push(bulimi)\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    }\n}\nexports.cekGLimit = function(sender, gcount, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return gcount - _db[position].glimit\n    } else {\n        return gcount\n    }\n}\nexports.createHit = function(sender, _db){\n    const anohoh = { id: sender, hit: 0}\n    _db.push(anohoh);\n    fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));''\n\n}\nexports.AddHit = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].hit += 1;\n        fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));\n    }\n}\nexports.gethitUser = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].hit\n    }\n}"
  },
  {
    "path": "lib/limitbb.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\n  const fs = require('fs')\n  let _limitOrg = JSON.parse(fs.readFileSync('./database/limit.json'))\n  const Options = require('../config.js')\n  let limitawal = Options.limitawal\n  const addInventoriLimit = (sender) => {\n        const obj = {id: sender, limit: limitawal}\n         _limitOrg.push(obj)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_limitOrg))\n   }\n  const cekDuluJoinAdaApaKagaLimitnyaDiJson = (sender) => {\n            let status = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n  const addLimit = (sender, amount) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _limitOrg[position].limit += amount\n                fs.writeFileSync('./database/limit.json', JSON.stringify(_limitOrg))\n            }\n        }\n   const kurangLimit = (sender, amount) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _limitOrg[position].limit -= amount\n                fs.writeFileSync('./database/limit.json', JSON.stringify(_limitOrg))\n            }\n        }\n   const getLimit = (sender) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _limitOrg[position].limit\n            }\n        }     \n        \n   module.exports = { addInventoriLimit, cekDuluJoinAdaApaKagaLimitnyaDiJson, addLimit, kurangLimit, getLimit }   "
  },
  {
    "path": "lib/limitc.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst fs = require('fs')\n\nexports.isLimit = function(sender, isPremium, isOwner, limitCount, _db){\n    if (isOwner) return false\n    if (isPremium) return false\n    let found = false\n    for (let i of _db) {\n        if (i.id === sender) {\n            let limits = i.limit\n            if (limits >= limitCount) {\n                found = true\n                return true\n            } else {\n                found = true\n                return false\n            }\n        }\n    }\n    if (found === false) {\n        const obj = { id: sender, limit: 0 }\n        _db.push(obj)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n        return false\n    }\n}\nexports.limitAdd = function(sender, _db){\n    let found = false\n\tObject.keys(_db).forEach((i) => {\n\t\tif (_db[i].id === sender) {\n\t\t\tfound = i\n\t\t}\n\t})\n\t\tif (found !== false) {\n\t\t\t_db[found].limit += 1\n\t\t\tfs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n\t\t}\n}\nexports.getLimit = function(sender, limitCount, _db){\n    let found = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            found = i\n        }\n    })\n    if (found !== false) {\n        return limitCount - _db[found].limit\n    } else {\n        return limitCount\n    }\n}\nexports.giveLimit = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].limit -= duit\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    } else {\n        const njt = duit - duit - duit\n        const bulim = ({\n            id: pemain,\n            limit: njt\n                })\n        _db.push(bulim)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    }\n}\nexports.addBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance += duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    } else {\n        const bulin = ({\n            id: sender,\n            balance: duit\n                })\n        _db.push(bulin)\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.kurangBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance -= duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.getBalance = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].balance\n    } else {\n        return 0\n    }\n}\nexports.isGame = function(sender, isOwner, gcount, _db){\n    if (isOwner) {return false;}\n    let found = false;\n    for (let i of _db){\n        if(i.id === sender){\n            let limits = i.glimit;\n            if (limits >= gcount) {\n                found = true;\n                return true;\n            }else{\n                found = true;\n                return false;\n            }\n        }\n    }\n    if (found === false){\n        let obj = {id: sender, glimit:0};\n        _db.push(obj);\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n        return false;\n    }\n}\nexports.gameAdd = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].glimit += 1;\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n    }\n}\nexports.givegame = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].glimit -= duit\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    } else {\n        const njti = duit - duit - duit\n        const bulimi = ({\n            id: pemain,\n            glimit: njti\n                })\n        _db.push(bulimi)\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    }\n}\nexports.cekGLimit = function(sender, gcount, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return gcount - _db[position].glimit\n    } else {\n        return gcount\n    }\n}\nexports.createHit = function(sender, _db){\n    const anohoh = { id: sender, hit: 0}\n    _db.push(anohoh);\n    fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));''\n\n}\nexports.AddHit = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].hit += 1;\n        fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));\n    }\n}\nexports.gethitUser = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].hit\n    }\n}"
  },
  {
    "path": "lib/lirik.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst cheerio = require('cheerio')\nconst axios = require('axios')\n\nconst lirikLagu = async (query) => {\nconst res = await axios.get(`https://www.musixmatch.com/search/${query}`)\nconst sup = cheerio.load(res.data)\nconst hasil = []\nconst b = sup('#site').find('div > div > div > div > ul > li:nth-child(1) > div > div > div')\nlet link = `https://www.musixmatch.com` + sup(b).find('h2 > a').attr('href')\n\nconst des = await axios.get(link)\n\nconst soup = cheerio.load(des.data)\n\nconst result = soup('#site').find('.mxm-lyrics__content > .lyrics__content__ok').text()\n\nhasil.push({ result})\nreturn hasil\n}\n\nmodule.exports = { lirikLagu }"
  },
  {
    "path": "lib/liyascrape.js",
    "content": "\n// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst axios = require('axios')\nconst cheerio = require('cheerio')\n\n\nfunction pinterest(querry){\n\treturn new Promise(async(resolve,reject) => {\n\t\t axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\n\t\t\theaders: {\n\t\t\t\"cookie\" : \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n\t\t}\n\t\t\t}).then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\tconst hasil = [];\n   \t\t $('div > a').get().map(b => {\n        const link = $(b).find('img').attr('src')\n            result.push(link)\n\t\t});\n   \t\tresult.forEach(v => {\n\t\t if(v == undefined) return\n\t\t hasil.push(v.replace(/236/g,'736'))\n\t\t\t})\n\t\t\thasil.shift();\n\t\tresolve(hasil)\n\t\t})\n\t})\n}\n\nfunction wallpaper(title, page = '1') {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('div.grid-item').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('div.info > a > h3').text(),\n                    type: $(b).find('div.info > a:nth-child(2)').text(),\n                    source: 'https://www.besthdwallpaper.com/'+$(b).find('div > a:nth-child(3)').attr('href'),\n                    image: [$(b).find('picture > img').attr('data-src') || $(b).find('picture > img').attr('src'), $(b).find('picture > source:nth-child(1)').attr('srcset'), $(b).find('picture > source:nth-child(2)').attr('srcset')]\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction wikimedia(title) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let hasil = []\n            $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('img').attr('alt'),\n                    source: $(b).attr('href'),\n                    image: $(b).find('img').attr('data-src') || $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction quotesAnime() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 184)\n        axios.get('https://otakotaku.com/quote/feed/'+page)\n        .then(({ data }) => {\n            const $ = cheerio.load(data)\n            const hasil = []\n            $('div.kotodama-list').each(function(l, h) {\n                hasil.push({\n                    link: $(h).find('a').attr('href'),\n                    gambar: $(h).find('img').attr('data-src'),\n                    karakter: $(h).find('div.char-name').text().trim(),\n                    anime: $(h).find('div.anime-title').text().trim(),\n                    episode: $(h).find('div.meta').text(),\n                    up_at: $(h).find('small.meta').text(),\n                    quotes: $(h).find('div.quote').text().trim()\n                })\n            })\n            resolve(hasil)\n        }).catch(reject)\n    })\n}\n\nfunction aiovideodl(link) {\n    return new Promise((resolve, reject) => {\n        axios({\n            url: 'https://aiovideodl.ml/',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"\n            }\n        }).then((src) => {\n            let a = cheerio.load(src.data)\n            let token = a('#token').attr('value')\n            axios({\n                url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/',\n                method: 'POST',\n                headers: {\n                    \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"   \n                },\n                data: new URLSearchParams(Object.entries({ 'url': link, 'token': token }))\n            }).then(({ data }) => {\n                resolve(data)\n            })\n        })\n    })\n}\n\nfunction umma(url) {\n    return new Promise((resolve, reject) => {\n        axios.get(url)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let image = []\n            $('#article-content > div').find('img').each(function (a, b) {\n                image.push($(b).attr('src')) \n            })\n            let hasil = {\n                title: $('#wrap > div.content-container.font-6-16 > h1').text().trim(),\n                author: {\n                    name: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.user-ame.font-6-16.fw').text().trim(),\n                    profilePic: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.profile-photo > img.photo').attr('src')\n                },\n                caption: $('#article-content > div > p').text().trim(),\n                media: $('#article-content > div > iframe').attr('src') ? [$('#article-content > div > iframe').attr('src')] : image,\n                type: $('#article-content > div > iframe').attr('src') ? 'video' : 'image',\n                like: $('#wrap > div.bottom-btns > div > button:nth-child(1) > div.text.font-6-12').text(),\n            }\n            resolve(hasil)\n        })\n    })\n}\n\nfunction ringtone(title) {\n    return new Promise((resolve, reject) => {\n        axios.get('https://meloboom.com/en/search/'+title)\n        .then((get) => {\n            let $ = cheerio.load(get.data)\n            let hasil = []\n            $('#__next > main > section > div.jsx-2244708474.container > div > div > div > div:nth-child(4) > div > div > div > ul > li').each(function (a, b) {\n                hasil.push({ title: $(b).find('h4').text(), source: 'https://meloboom.com/'+$(b).find('a').attr('href'), audio: $(b).find('audio').attr('src') })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction styletext(teks) {\n    return new Promise((resolve, reject) => {\n        axios.get('http://qaz.wtf/u/convert.cgi?text='+teks)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('table > tbody > tr').each(function (a, b) {\n                hasil.push({ name: $(b).find('td:nth-child(1) > span').text(), result: $(b).find('td:nth-child(2)').text().trim() })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nmodule.exports = { pinterest, wallpaper, wikimedia, quotesAnime, aiovideodl, umma, ringtone, styletext }\n"
  },
  {
    "path": "lib/lol.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst { JSDOM } = require('jsdom')\nconst cheerio = require('cheerio')\nconst fetch = require('node-fetch')\nconst axios = require('axios')\nconst qs = require('qs')\n\nmodule.exports = { \naiovideodl, \nfilmapik, \nssweb, \nhoax, \nsfilesearch, \nhappymod, \nservermc, \ngempa, \nmediafire,\ntelegraph, \nghstalk, \nkomiku, \nlirik, \ncovid, \notaku, \nshoppe, \ninews, \njalantikus, \nkompasnews, \ntribunnews, \ntafsirsurah, \nsurah, \nlistsurah, \nstickersearch, \ndrakor, \nmangatoons, \nwebtoons, \nwattpaduser, \nwattpad, \nfilm, \npinterest, \njadwalsholat, \njadwaltv, \njadwalbola, \ncharacter, \nmanga, \nanime, \nsoundcloud, \nxnxxsearch, \nxnxxdl, \nherodetails, \nherolist, \nplaystore, \ntiktokporn, \nhentai, \nquotesanime, \nwallpaper, \nwikimedia, \nfacebook, \nfacebook2, \n_token, \nquotes, \nigdl, \nigstory, \nigstory2,\nsnaptik, \ntiktok, \ntwitter, \njoox, \npin \n}\n\n\nfunction quotes(input) {\n    return new Promise((resolve, reject) => {\n        fetch('https://jagokata.com/kata-bijak/kata-' + input.replace(/\\s/g, '_') + '.html?page=1')\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res)\n                data = []\n                $('div[id=\"main\"]').find('ul[id=\"citatenrijen\"] > li').each(function (index, element) {\n                    x = $(this).find('div[class=\"citatenlijst-auteur\"] > a').text().trim()\n                    y = $(this).find('span[class=\"auteur-beschrijving\"]').text().trim()\n                    z = $(element).find('q[class=\"fbquote\"]').text().trim()\n                    data.push({ author: x, bio: y, quote: z })\n                })\n                data.splice(2, 1)\n                if (data.length == 0) return resolve({ creator: '@rasel.ganz', status: false })\n                resolve({ creator: '@rasel.ganz', status: true, data })\n            }).catch(reject)\n    })\n}\n\nfunction joox(query) {\n    return new Promise((resolve, reject) => {\n        const time = Math.floor(new Date() / 1000)\n        axios.get('http://api.joox.com/web-fcgi-bin//web_search?lang=id&country=id&type=0&search_input=' + query + '&pn=1&sin=0&ein=29&_=' + time)\n            .then(({ data }) => {\n                let result = []\n                let hasil = []\n                let promoses = []\n                let ids = []\n                data.itemlist.forEach(result => {\n                    ids.push(result.songid)\n                });\n                for (let i = 0; i < data.itemlist.length; i++) {\n                    const get = 'http://api.joox.com/web-fcgi-bin/web_get_songinfo?songid=' + ids[i]\n                    promoses.push(\n                        axios.get(get, {\n                            headers: {\n                                Cookie: 'wmid=142420656; user_type=1; country=id; session_key=2a5d97d05dc8fe238150184eaf3519ad;'\n                            }\n                        })\n                            .then(({ data }) => {\n                                const res = JSON.parse(data.replace('MusicInfoCallback(', '').replace('\\n)', ''))\n                                hasil.push({\n                                    lagu: res.msong,\n                                    album: res.malbum,\n                                    penyanyi: res.msinger,\n                                    publish: res.public_time,\n                                    img: res.imgSrc,\n                                    mp3: res.mp3Url\n                                })\n                                Promise.all(promoses).then(() => resolve({\n                                    creator: \"@rasel.ganz\",\n                                    status: true,\n                                    data: hasil,\n                                }))\n                            }).catch(reject)\n                    )\n                }\n            }).catch(reject)\n    })\n}\n\nfunction tiktok(url) {\n    return new Promise(async (resolve, reject) => {\n        axios.get('https://ttdownloader.com/', {\n            headers: {\n                \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=9ut8phujrprrmll6oc3bist01t; popCookie=1; _ga=GA1.2.1068750365.1625213061; _gid=GA1.2.842420949.1625213061\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                let token = $('#token').attr('value')\n                let config = {\n                    'url': url,\n                    'format': '',\n                    'token': token\n                }\n                axios('https://ttdownloader.com/req/', {\n                    method: 'POST',\n                    data: new URLSearchParams(Object.entries(config)),\n                    headers: {\n                        \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                        \"cookie\": \"PHPSESSID=9ut8phujrprrmll6oc3bist01t; popCookie=1; _ga=GA1.2.1068750365.1625213061; _gid=GA1.2.842420949.1625213061\"\n                    }\n                })\n                    .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        resolve({\n                            nowm: $('div:nth-child(2) > div.download > a').attr('href'),\n                            wm: $('div:nth-child(3) > div.download > a').attr('href'),\n                            audio: $('div:nth-child(4) > div.download > a').attr('href')\n                        })\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nasync function snaptik(url) {\n  try {\n    let results = {}\n    if (/v[tm]\\.tiktok\\.com/g.test(url)) {\n      let res = await axios.get(url)\n      url = res.request.res.responseUrl\n    }\n    let key = await axios.get(`https://api.snaptik.site/video-key?video_url=${url}`)\n    key = JSON.parse(JSON.stringify(key.data, null, 2))\n    if (key.status !== 'success') throw key\n    let data = await axios.get(`https://api.snaptik.site/video-details-by-key?key=${key.data.key}`)\n    data = JSON.parse(JSON.stringify(data.data, null, 2))\n    if (data.status !== 'success') throw data\n    results = {\n      author: { ...data.data.author },\n      description: data.data.description,\n      video: {\n        with_watermark: `https://api.snaptik.site/download?key=${data.data.video.with_watermark}&type=video`,\n        no_watermark: `https://api.snaptik.site/download?key=${data.data.video.no_watermark}&type=video`,\n        no_watermark_raw: data.data.video.no_watermark_raw\n      },\n      music: `https://api.snaptik.site/download?key=${data.data.music}&type=music`\n    }\n    return results\n  } catch (e) {\n    throw `Maaf url tidak valid atau video private`\n  }\n}\n \nfunction twitter(url) {\n    return new Promise((resolve, reject) => {\n        let params = new URLSearchParams()\n        params.append('URL', url)\n        fetch('https://twdown.net/download.php', { method: 'POST', body: params })\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res);\n                data = []\n                $('div.container').find('tbody > tr > td').each(function (index, element) {\n                    x = $(this).find('a').attr('href')\n                    if (x !== '#') {\n                        if (typeof x !== 'undefined') {\n                            data.push({ url: x })\n                        }\n                    }\n                })\n                if (data.length == 0) return resolve({ status: false })\n                resolve({ status: true, data })\n            }).catch(reject)\n    })\n}\n\nfunction igdl(url) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: 'https://www.instagramsave.com/download-instagram-videos.php',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                const token = $('#token').attr('value')\n                let config = {\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n                        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n                        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    },\n                    data: {\n                        'url': url,\n                        'action': 'post',\n                        'token': token\n                    }\n                }\n                axios.post('https://www.instagramsave.com/system/action.php', qs.stringify(config.data), { headers: config.headers })\n                    .then(({ data }) => {\n                        resolve(data.medias)\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nfunction igstory(username) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: 'https://www.instagramsave.com/instagram-story-downloader.php',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                const token = $('#token').attr('value')\n                let config = {\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n                        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n                        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    },\n                    data: {\n                        'url': 'https://www.instagram.com/' + username,\n                        'action': 'story',\n                        'token': token\n                    }\n                }\n                axios.post('https://www.instagramsave.com/system/action.php', qs.stringify(config.data), { headers: config.headers })\n                    .then(({ data }) => {\n                        resolve(data.medias)\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nasync function igstory2(username) {\n  let { data } = await axios.get(`https://www.instadownloader.org/data.php?username=${username}&t=${new Date * 1}`)\n  const $ = cheerio.load(data)\n  let results = []\n  $('body > center').each(function (i, el) {\n    results.push({\n      url: $(el).find('a.download-btn').attr('href'),\n      type: $(el).find('video').html() ? 'video' : 'image'\n    })\n  })\n  return results\n }\n\nfunction pin(url) {\n    return new Promise((resolve, reject) => {\n        function rand() {\n            return `${Math.floor(Math.random() * 1000000)}`\n        }\n        let params = new URLSearchParams()\n        params.append('url', url)\n        fetch('https://www.expertsphp.com/facebook-video-downloader.php', { method: 'POST', body: params })\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res)\n                y = 'pinterest_' + rand() + '.mp4'\n                x = $('video').find('source').attr('src')\n                data = { file: y, url: x }\n                if (typeof x == 'undefined') return resolve({ status: false })\n                resolve({ status: true, data })\n            }).catch(reject)\n    })\n}\n\nlet is = {\n    headers: {\n        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n    }\n}\n\nfunction _token(host) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: host, method: 'GET', headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        }).then(({ data }) => {\n            let $ = cheerio.load(data)\n            let token = $('#token').attr('value')\n            resolve(token)\n        })\n    })\n}\n\nfunction facebook(url){\n\treturn new Promise((resolve,reject) => {\n\tlet config = {\n'url': url\n}\n\taxios('https://www.getfvid.com/downloader',{\n\tmethod: 'POST',\n\tdata: new URLSearchParams(Object.entries(config)),\n\theaders: {\n\"content-type\": \"application/x-www-form-urlencoded\",\n\"user-agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1310699039.1624884412; _pbjs_userid_consent_data=3524755945110770; cto_bidid=rQH5Tl9NNm5IWFZsem00SVVuZGpEd21sWnp0WmhUeTZpRXdkWlRUOSUyQkYlMkJQQnJRSHVPZ3Fhb1R2UUFiTWJuVGlhVkN1TGM2anhDT1M1Qk0ydHlBb21LJTJGNkdCOWtZalRtZFlxJTJGa3FVTG1TaHlzdDRvJTNE; cto_bundle=g1Ka319NaThuSmh6UklyWm5vV2pkb3NYaUZMeWlHVUtDbVBmeldhNm5qVGVwWnJzSUElMkJXVDdORmU5VElvV2pXUTJhQ3owVWI5enE1WjJ4ZHR5NDZqd1hCZnVHVGZmOEd0eURzcSUyQkNDcHZsR0xJcTZaRFZEMDkzUk1xSmhYMlY0TTdUY0hpZm9NTk5GYXVxWjBJZTR0dE9rQmZ3JTNEJTNE; _gid=GA1.2.908874955.1625126838; __gads=ID=5be9d413ff899546-22e04a9e18ca0046:T=1625126836:RT=1625126836:S=ALNI_Ma0axY94aSdwMIg95hxZVZ-JGNT2w; cookieconsent_status=dismiss\"\n\t}\n})\n\t.then(async({ data }) => {\nconst $ = cheerio.load(data);\t\nresolve({\n\tvideo: $('div.col-md-4.btns-download > p:nth-child(1) > a').attr('href'),\n\taudio: $('div.col-md-4.btns-download > p:nth-child(3) > a').attr('href')\n\t})\n})\n\t.catch(reject)\n\t})\n}\n\nfunction facebook2(urls) {\n    return new Promise(async (resolve, reject) => {\n       const data = await axios({\n           url: 'https://downvideo.net/',\n           method: 'GET',\n           headers: {\n            'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',\n           }\n       })\n       const $ = cheerio.load(data.data)\n       const token = $('#token').attr('value')\n       const getPost = await axios({\n           url: 'https://downvideo.net/download.php',\n           method: 'POST',\n           headers: {\n            'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',\n            \"cookie\": '_gid=GA1.2.1321544464.1633811193; _ga=GA1.2.1392580783.1633811193; __gads=ID=c73de99d7fa5c467-226981f63ecc00f1:T=1633811193:RT=1633811193:S=ALNI_MaC9fW2mqfT2hm7zODcNNffab1XLg'\n           },\n           data: new URLSearchParams(Object.entries({ 'URL': urls, 'token': token }))\n       })\n       const c = cheerio.load(getPost.data)\n       const hasil = {\n            author: c('div.row').find('div.col-md-12:nth-child(1)').text(),\n            title: c('div.row').find('div.col-md-12:nth-child(3) > p').text(),\n            thumb: c('div.row').find('div.col-md-12:nth-child(2) > img').attr('src'),\n            link_high: c('div.row').find('div.col-md-3 > a').eq(0).attr('href') || c('div.row').find('#sd > a').attr('href') || '',\n            link_normal: c('div.row').find('div.col-md-3 > a').eq(1).attr('href') || ''\n       }\n       resolve({ status: getPost.status, creator: '@rasel.ganz', hasil: hasil })\n    })\n}\n\nfunction wallpaper(title, page) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('div.grid-item').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('div.info > a > h3').text(),\n                    type: $(b).find('div.info > a:nth-child(2)').text(),\n                    image: $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction wikimedia(title) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let hasil = []\n            $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('img').attr('alt'),\n                    source: $(b).attr('href'),\n                    image: $(b).find('img').attr('src') || $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction tiktokporn() {\n    return new Promise((resolve, reject) => {\n        axios.get('https://tikporntok.com/?random=1')\n        .then((res) => {\n            const $ = cheerio.load(res.data)\n            const hasil = {}\n            hasil.title = $('article > h1').text()\n            hasil.source = $('article > div.video-wrapper.vxplayer').attr('data-post') || 'Web Not Response'\n            hasil.thumb = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-poster') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png'\n            hasil.desc = $('article > div.intro').text()\n            hasil.upload = $('article > div.single-pre-meta.ws.clearfix > time').text()\n            hasil.like = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(1) > span').text()\n            hasil.dislike = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(2) > span').text()\n            hasil.favorite = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(3) > span').text()\n            hasil.views = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(4) > span').text()\n            hasil.tags = $('article > div.post-tags').text()\n            hasil.video = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('src') || $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-src') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png'\n            resolve(hasil)\n        })\n    })\n}\n\nfunction hentai() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 1153)\n        axios.get('https://sfmcompile.club/page/'+page)\n        .then((data) => {\n            const $ = cheerio.load(data.data)\n            const hasil = []\n            $('#primary > div > div > ul > li > article').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('header > h2').text(),\n                    link: $(b).find('header > h2 > a').attr('href'),\n                    category: $(b).find('header > div.entry-before-title > span > span').text().replace('in ', ''),\n                    share_count: $(b).find('header > div.entry-after-title > p > span.entry-shares').text(),\n                    views_count: $(b).find('header > div.entry-after-title > p > span.entry-views').text(),\n                    type: $(b).find('source').attr('type') || 'image/jpeg',\n                    video_1: $(b).find('source').attr('src') || $(b).find('img').attr('data-src'),\n                    video_2: $(b).find('video > a').attr('href') || ''\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction quotesanime() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 184)\n        axios.get('https://otakotaku.com/quote/feed/'+page)\n        .then(({ data }) => {\n            const $ = cheerio.load(data)\n            const hasil = []\n            $('div.kotodama-list').each(function(l, h) {\n                hasil.push({\n                    link: $(h).find('a').attr('href'),\n                    gambar: $(h).find('img').attr('data-src'),\n                    karakter: $(h).find('div.char-name').text().trim(),\n                    anime: $(h).find('div.anime-title').text().trim(),\n                    episode: $(h).find('div.meta').text(),\n                    up_at: $(h).find('small.meta').text(),\n                    quotes: $(h).find('div.quote').text().trim()\n                })\n            })\n            resolve(hasil)\n        }).catch(reject)\n    })\n}\n\nfunction playstore(name) {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://play.google.com/store/search?q='+ name +'&c=apps')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tlet ln = [];\n\t\t\tlet nm = [];\n\t\t\tlet dv = [];\n\t\t\tlet lm = [];\n\t\t\tconst result = [];\n\t\t\t$('div.wXUyZd > a').each(function(a,b){\n\t\t\t\tconst link =  'https://play.google.com' + $(b).attr('href')\n\t\t\t\tln.push(link);\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.Q9MA7b > a > div').each(function(d,e){\n\t\t\t\tconst name = $(e).text().trim()\n\t\t\t\tnm.push(name);\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.KoLSrc > a > div').each(function(f,g){\n\t\t\t\tconst dev = $(g).text().trim();\n\t\t\t\tdv.push(dev)\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.KoLSrc > a').each(function(h,i){\n\t\t\t\tconst limk = 'https://play.google.com' + $(i).attr('href');\n\t\t\t\tlm.push(limk);\n\t\t\t})\t\t\t\n\t\tfor (let i = 0; i < ln.length; i++){\n\t\t\tresult.push({\n\t\t\t\tname: nm[i],\n\t\t\t\tlink: ln[i],\n\t\t\t\tdeveloper: dv[i],\n\t\t\t\tlink_dev: lm[i]\n\t\t\t})\n\t}\n\t\tresolve(result)\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nfunction herolist() {\n            return new Promise((resolve, reject) => {\n                  Axios.get('https://mobile-legends.fandom.com/wiki/Mobile_Legends:_Bang_Bang_Wiki')\n                  .then(({ data }) => {\n                       const $ = cheerio.load(data)\n                       let data_hero = []\n                       let url = []\n                       $('div > div > span > span > a').get().map((result) => {\n                            const name = decodeURIComponent($(result).attr('href').replace('/wiki/',''))\n                            const urln = 'https://mobile-legends.fandom.com' + $(result).attr('href')\n                            data_hero.push(name)\n                            url.push(urln)\n                       })\n                       resolve({ status: 200, hero: data_hero })\n                  }).catch((e) => reject({ status: 404, message: e.message }))\n             })\n        }\nfunction herodetails(name) {\n             return new Promise((resolve, reject) => {\n                  var splitStr = name.toLowerCase().split(' ');\n                  for (var i = 0; i < splitStr.length; i++) {\n                       splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);     \n                  }\n                  const que = splitStr.join(' ')\n                  Axios.get('https://mobile-legends.fandom.com/wiki/' + que)\n                  .then(({ data }) => {\n                       const $ = cheerio.load(data)\n                       let mw = []\n                       let attrib = []\n                       let skill = []\n                       const name = $('#mw-content-text > div > div > div > div > div > div > table > tbody > tr > td > table > tbody > tr > td > font > b').text() \n                       $('.mw-headline').get().map((res) => {\n                            const mwna = $(res).text()\n                            mw.push(mwna)\n                       })\n                       $('#mw-content-text > div > div > div > div > div > div > table > tbody > tr > td').get().map((rest) => {\n                            const haz = $(rest).text().replace(/\\n/g,'')\n                            attrib.push(haz)\n                       })\n                       $('#mw-content-text > div > div > div > div > div > div > table > tbody > tr > td > div.progressbar-small.progressbar > div').get().map((rest) => {\n                            skill.push($(rest).attr('style').replace('width:',''))\n                       })\n                       Axios.get('https://mobile-legends.fandom.com/wiki/' + que + '/Story')\n                       .then(({ data }) => {\n                            const $ = cheerio.load(data)\n                            let pre = []\n                            $('#mw-content-text > div > p').get().map((rest) => {\n                                 pre.push($(rest).text())\n                            })\n                            const story = pre.slice(3).join('\\n')\n                            const items = []\n                            const character = []\n                            $('#mw-content-text > div > aside > section > div').get().map((rest) => {\n                                 character.push($(rest).text().replace(/\\n\\t\\n\\t\\t/g, '').replace(/\\n\\t\\n\\t/g,'').replace(/\\n/g,''))\n                            })\n                            $('#mw-content-text > div > aside > div').get().map((rest) => {\n                                 items.push($(rest).text().replace(/\\n\\t\\n\\t\\t/g, '').replace(/\\n\\t\\n\\t/g,'').replace(/\\n/g,''))\n                            })\n                            const img = $('#mw-content-text > div > aside > figure > a').attr('href')\n                            const chara = character.slice(0,2)\n                            const result = { \n                                 status: 200,\n                                 hero_name: name + ` ( ${mw[0].replace('CV:',' CV:')} )`,\n                                 entrance_quotes: attrib[2].replace('Entrance Quotes','').replace('\\n',''),\n                                 hero_feature: attrib[attrib.length - 1].replace('Hero Feature',''),\n                                 image: img,\n                                 items: items,\n                                 character: {\n                                      chara\n                                 },\n                                 attributes: {\n                                      movement_speed: attrib[12].replace('● Movement Speed',''),\n                                      physical_attack: attrib[13].replace('● Physical Attack',''),\n                                      magic_power: attrib[14].replace('● Magic Power',''),\n                                      attack_speed: attrib[15].replace('● Attack Speed',''),\n                                      physical_defense: attrib[16].replace('● Physical Defense',''),\n                                      magic_defense: attrib[17].replace('● Magic Defense',''),\n                                      basic_atk_crit_rate: attrib[18].replace('● Basic ATK Crit Rate',''),\n                                      hp: attrib[19].replace('● HP',''),\n                                      mana: attrib[20].replace('● Mana',''),\n                                      ability_crit_rate: attrib[21].replace('● Ability Crit Rate',''),\n                                      hp_regen: attrib[22].replace('● HP Regen',''),\n                                      mana_regen: attrib[23].replace('● Mana Regen','')\n                                 },\n                                 price: {\n                                      battle_point: mw[1].split('|')[0].replace(/ /g,''),\n                                      diamond: mw[1].split('|')[1].replace(/ /g,''),\n                                      hero_fragment: mw[1].split('|')[2] ? mw[1].split('|')[2].replace(/ /g,'') : 'none'\n                                 },\n                                 role: mw[2],\n                                 skill: {\n                                      durability: skill[0],\n                                      offense: skill[1],\n                                      skill_effects: skill[2],\n                                      difficulty: skill[3]\n                                 },\n                                 speciality: mw[3],\n                                 laning_recommendation: mw[4],\n                                 release_date: mw[5],\n                                 background_story: story\n                            }\n                            resolve(result)\n                       }).catch((e) => reject({ status: 404, message: e.message }))\n                  }).catch((e) => reject({ status: 404, message: e.message }))\n             })\n        }\n        \nfunction xnxxsearch(query) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst baseurl = 'https://www.xnxx.com'\n\t\tfetch(`${baseurl}/search/${query}/${Math.floor(Math.random() * 3) + 1}`, {method: 'get'})\n\t\t.then(res => res.text())\n\t\t.then(res => {\n\t\t\tlet $ = cheerio.load(res, {\n\t\t\t\txmlMode: false\n\t\t\t});\n\t\t\tlet title = [];\n\t\t\tlet url = [];\n\t\t\tlet desc = [];\n\t\t\tlet results = [];\n\n\t\t\t$('div.mozaique').each(function(a, b) {\n\t\t\t\t$(b).find('div.thumb').each(function(c, d) {\n\t\t\t\t\turl.push(baseurl+$(d).find('a').attr('href').replace(\"/THUMBNUM/\", \"/\"))\n\t\t\t\t})\n\t\t\t})\n\t\t\t$('div.mozaique').each(function(a, b) {\n\t\t\t\t$(b).find('div.thumb-under').each(function(c, d) {\n\t\t\t\t\tdesc.push($(d).find('p.metadata').text())\n\t\t\t\t\t$(d).find('a').each(function(e,f) {\n\t\t\t\t\t    title.push($(f).attr('title'))\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t})\n\t\t\tfor (let i = 0; i < title.length; i++) {\n\t\t\t\tresults.push({\n\t\t\t\t\ttitle: title[i],\n\t\t\t\t\tinfo: desc[i],\n\t\t\t\t\tlink: url[i]\n\t\t\t\t})\n\t\t\t}\n\t\t\tresolve({\n\t\t\t\tcode: 200,\n\t\t\t\tstatus: true,\n\t\t\t\tresult: results\n\t\t\t})\n\t\t})\n\t\t.catch(err => reject({code: 503, status: false, result: err }))\n\t})\n}\n\nfunction xnxxdl(URL) {\n\treturn new Promise((resolve, reject) => {\n\t\tfetch(`${URL}`, {method: 'get'})\n\t\t.then(res => res.text())\n\t\t.then(res => {\n\t\t\tlet $ = cheerio.load(res, {\n\t\t\t\txmlMode: false\n\t\t\t});\n\t\t\tconst title = $('meta[property=\"og:title\"]').attr('content');\n\t\t\tconst duration = $('meta[property=\"og:duration\"]').attr('content');\n\t\t\tconst image = $('meta[property=\"og:image\"]').attr('content');\n\t\t\tconst videoType = $('meta[property=\"og:video:type\"]').attr('content');\n\t\t\tconst videoWidth = $('meta[property=\"og:video:width\"]').attr('content');\n\t\t\tconst videoHeight = $('meta[property=\"og:video:height\"]').attr('content');\n\t\t\tconst info = $('span.metadata').text();\n\t\t\tconst videoScript = $('#video-player-bg > script:nth-child(6)').html();\n\t\t\tconst files = {\n\t\t\t\tlow: (videoScript.match('html5player.setVideoUrlLow\\\\(\\'(.*?)\\'\\\\);') || [])[1],\n\t\t\t\thigh: videoScript.match('html5player.setVideoUrlHigh\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tHLS: videoScript.match('html5player.setVideoHLS\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumb: videoScript.match('html5player.setThumbUrl\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumb69: videoScript.match('html5player.setThumbUrl169\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumbSlide: videoScript.match('html5player.setThumbSlide\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumbSlideBig: videoScript.match('html5player.setThumbSlideBig\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t};\n\t\t\tresolve({\n\t\t\t\tstatus: 200,\n\t\t\t\tresult: {\n\t\t\t\t\ttitle,\n\t\t\t\t\tURL,\n\t\t\t\t\tduration,\n\t\t\t\t\timage,\n\t\t\t\t\tvideoType,\n\t\t\t\t\tvideoWidth,\n\t\t\t\t\tvideoHeight,\n\t\t\t\t\tinfo,\n\t\t\t\t\tfiles\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t\t.catch(err => reject({code: 503, status: false, result: err }))\n\t})\n}\n\nasync function soundcloud(url) {\n    return new Promise((resolve, reject) => {\n        axios({url: 'https://aiovideodl.ml/',method: 'GET',headers: {\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\"cookie\": \"PHPSESSID=3893d5f173e91261118a1d8b2dc985c3; _ga=GA1.2.792478743.1635388171;\"}}).then((data) => {\n            let a = cheerio.load(data.data)\n            let token = a('#token').attr('value')\n            const options = {\n                method: 'POST',\n                url: `https://aiovideodl.ml/wp-json/aio-dl/video-data/`,\n                headers: {\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\"cookie\": \"PHPSESSID=3893d5f173e91261118a1d8b2dc985c3; _ga=GA1.2.792478743.1635388171;\"\n                },\n                formData: {url: url,token: token}\n            };\n            request(options, async function(error, response, body) {\n                if (error) throw new Error(error)\n                res = JSON.parse(body)\n                res.status = 200\n                res.author = author\n                resolve(res);\n            });\n        })\n    })\n}\n\nfunction anime(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/anime/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            judul: $(b).find('> a > h3').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'),\n                            thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction manga(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/manga/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            judul: $(b).find('> a > h3').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'),\n                            thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction character(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/characters/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > table > tbody > tr').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            character: $(b).find('> td.tableCharInfo > a').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> td.tableCharInfo > a').attr('href'),\n                            thumbnail: $(b).find('> td.tableAvatar > a > img').attr('src').startsWith('https://') ? $(b).find('> td.tableAvatar > a > img').attr('src') : 'https://www.anime.planet.com' + $(b).find('> td.tableAvatar > a > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jadwalbola() {\n    return new Promise((resolve, reject) => {\n        axios.get('https://m.bola.net/jadwal_televisi/')\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                $('#main_mid_headline_sub_topic').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    jadwal: $(b).find(' > div.main_mid_headline_topic > div > a').text(),\n                    tanggal: $(b).find(' > div.main_mid_headline_topic_grouped_time_list').text().split('\\n')[1].split('                            ')[1],\n                    jam: $(b).find(' > div.main_mid_headline_topic > span').text(),\n                    url: $(b).find(' > div.main_mid_headline_topic > div > a').attr('href'),\n                    thumb: $(b).find(' > div.main_mid_headline_topic > img').attr('src')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jadwaltv() {\n    return new Promise((resolve, reject) => {\n        axios.get('http://www.dokitv.com/jadwal-acara-tv')\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                $('#tabeljadwaltv > tbody > tr ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    acara: $(b).find('> td:nth-child(2)').text(),\n                    channel: $(b).find('> td > a').text(),\n                    jam: $(b).find('> td.jfx').text(),\n                    source: $(b).find('> td > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jadwalsholat(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://umrotix.com/jadwal-sholat/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                $('body > div > div.main-wrapper.scrollspy-action > div:nth-child(3) ').each(function(a, b) {   \n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    tanggal: $(b).find('> div:nth-child(2)').text(),\n                    imsyak: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(1) > p:nth-child(2)').text(),\n                    subuh: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(2) > p:nth-child(2)').text(),\n                    dzuhur: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(3) > p:nth-child(2)').text(),\n                    ashar: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(4) > p:nth-child(2)').text(),\n                    maghrib: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(5) > p:nth-child(2)').text(),\n                    isya: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(6) > p:nth-child(2)').text()\n                }\n                resolve(result)\n                })\n            })\n            .catch(reject)\n    })\n}\n\nfunction pinterest(query) {\n    return new Promise((resolve, reject) => {\n         axios(`https://www.pinterest.com/resource/BaseSearchResource/get/?source_url=%2Fsearch%2Fpins%2F%3Fq%3D${query}&data=%7B%22options%22%3A%7B%22isPrefetch%22%3Afalse%2C%22query%22%3A%22${query}%22%2C%22scope%22%3A%22pins%22%2C%22no_fetch_context_on_resource%22%3Afalse%7D%2C%22context%22%3A%7B%7D%7D&_=1619980301559`).then((data) => {\n                const random = data.data.resource_response.data.results[Math.floor(Math.random() * (data.data.resource_response.data.results.length))]\n                var result = [];\n                result = {\n                        status: 200,\n                        author: '@rasel.ganz',\n                        url: random.images.orig.url\n                }\n                resolve(result)\n            }).catch(reject)\n        })\n    }\n   \nfunction film(query) {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`http://167.99.31.48/?s=${query}`)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst hasil = [];\n\t\t\t\t$('#content > div > div.los').each(function (a, b) {\n                    $(b).find('article').each(function (c, d) {\n                        const judul = $(d).find('div > a > div.addinfox > header > h2').text()\n                        const quality = $(d).find('div > a > div > div > span').text()\n                        const type = $(d).find('div > a > div.addinfox > div > i.type').text()\n                        const upload = $(d).find('div > a > div.addinfox > div > span').text()\n                        const link = $(d).find('div > a').attr('href');\n                        const thumb = $(d).find('div > a > div > img').attr('src');\n                        const result = {\n                            status: 200,\n                        \tauthor: '@rasel.ganz',\n                            judul: judul,\n                            quality: quality,\n                            type: type,\n                            upload: upload,\n                            link: link,\n                            thumb: thumb,\n                        };\n                        hasil.push(result);\n                    });\n                });\n\t\t\t\tresolve(hasil)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\n\nfunction wattpad(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.wattpad.com/search/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('div.story-card-data.hidden-xxs > div.story-info ').each(function(a, b) {\n                    $('ul.list-group > li.list-group-item').each(function(c,d) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> div.title').text(),\n                    dibaca: $(b).find('> ul > li:nth-child(1) > div.icon-container > div > span.stats-value').text(),\n                    divote: $(b).find('> ul > li:nth-child(2) > div.icon-container > div > span.stats-value').text(),\n                    bab: $(b).find('> ul > li:nth-child(3) > div.icon-container > div > span.stats-value').text(),\n                    waktu: $(b).find('> ul > li:nth-child(4) > div.icon-container > div > span.stats-value').text(),\n                    url:'https://www.wattpad.com' + $(d).find('a').attr('href'),\n                    thumb: $(d).find('img').attr('src'),\n                    description: $(b).find('> div.description').text().replace(/\\n/g,'')\n                }\n                hasil.push(result)\n                })\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction wattpaduser(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.wattpad.com/user/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                $('#app-container > div > header ').each(function(a, b) {\n                    $('#profile-about > div > div ').each(function(c, d) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    username: $(b).find('> div.badges > h1').text().trim(),\n                    works: $(b).find('> div.row.header-metadata > div:nth-child(1) > p:nth-child(1)').text(),\n                    reading_list: $(b).find('> div.row.header-metadata > div.col-xs-4.scroll-to-element > p:nth-child(1)').text(),\n                    followers: $(b).find('> div.row.header-metadata > div.col-xs-4.on-followers > p.followers-count').text(),\n                    joined: $(d).find('> ul > li.date.col-xs-12.col-sm-12 > span').text().trim().replace('Joined',''),\n                    pp_picture: `https://img.wattpad.com/useravatar/${query}.128.851744.jpg`,\n                    about: $(d).find('> div.description > pre').text() ? $(d).find('> div.description > pre').text() : 'Not found'\n                }\n                resolve(result)\n                })\n                })\n            })\n            .catch(reject)\n    })\n}\n\nfunction webtoons(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.webtoons.com/id/search?keyword=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#content > div.card_wrap.search._searchResult > ul > li ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> a > div > p.subj').text(),\n                    like: $(b).find('> a > div > p.grade_area > em').text(),\n                    creator: $(b).find('> a > div > p.author').text(),\n                    genre: $(b).find('> a > span').text(),\n                    thumbnail: $(b).find('> a > img').attr('src'),\n                    url: 'https://www.webtoons.com' + $(b).find('> a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction mangatoons(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://mangatoon.mobi/en/search?word=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#page-content > div.search-page > div > div.comics-result > div.recommended-wrap > div > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> div.recommend-comics-title > span').text(),\n                    genre: $(b).find('> div.comics-type > span').text().trim(),\n                    link: 'https://mangatoon.mobi' + $(b).find('> a').attr('href'),\n                    thumbnail: $(b).find('> a > div > img').attr('src')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction drakor(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://drakorasia.blog//?s=${query}&post_type=post`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#post > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a > h2').text().trim(),\n                    years: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > div.category.text-gray.font-normal.text-white.text-xs.truncate > a').text(),\n                    genre: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > div.genrenya.text-center.text-white.text-opacity-75.text-xs.mt-1').text().trim(),\n                    thumbnail: $(b).find('> div.thumbnail > a > img').attr('src'),\n                    url: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction stickersearch(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://getstickerpack.com/stickers?query=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const source = [];\n                const link = [];\n                $('#stickerPacks > div > div:nth-child(3) > div > a').each(function(a, b) {\n                    source.push($(b).attr('href'))\n                })\n                axios.get(source[Math.floor(Math.random() * source.length)])\n                    .then(({\n                        data\n                    }) => {\n                        const $$ = cheerio.load(data)\n                        $$('#stickerPack > div > div.row > div > img').each(function(c, d) {\n                            link.push($$(d).attr('src').replace(/&d=200x200/g,''))\n                        })\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            title: $$('#intro > div > div > h1').text(),\n                            sticker_url: link\n                        }\n                        resolve(result)\n                    })\n            }).catch(reject)\n    })\n}\n\nfunction listsurah() {\n            return new Promise((resolve, reject) => {\n                  axios.get('https://litequran.net/')\n                  .then(({ data }) => {\n                       const $ = cheerio.load(data)\n                       let listsurah = []\n                       $('body > main > section > ol > li > a').each(function(a, b) {\n                    listsurah.push($(b).text())\n                })\n                       result = {\n                        status: 200,\n                        author: '@rasel.ganz',\n                        listsurah: listsurah\n                       }\n                       resolve(result)\n                  }).catch(reject)\n             })\n        }\n\nfunction surah(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://litequran.net/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = []\n                $('body > main > article > ol > li').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    arab: $(b).find('> span.ayat').text(),\n                    latin: $(b).find('> span.bacaan').text(),\n                    translate: $(b).find('> span.arti').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction tafsirsurah(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://tafsirq.com/topik/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = []\n                $('body > div:nth-child(4) > div > div.col-md-6 > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    surah: $(b).find('> div.panel-heading.panel-choco > div > div > a').text(),\n                    tafsir: $(b).find('> div.panel-body.excerpt').text().trim(),\n                    type: $(b).find('> div.panel-heading.panel-choco > div > div > span').text(),\n                    source: $(b).find('> div.panel-heading.panel-choco > div > div > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jalantikus(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://jalantikus.com/search/articles/${query}/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.post-block-with-category\").each(function(c, d) {\ntitle = $(d).find(\"a.post-block-with-category__link\").text()\ncategory = $(d).find(\"a.post-info__category-link\").text()\ndate = $(d).find(\"time\").text()\nlink = `https://jalantikus.com${$(d).find(\"a\").attr('href')}`\nconst Data = {\ntitle: title,\ncategory: category,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\nfunction tribunnews() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.tribunnews.com/news`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"li.p1520.art-list.pos_rel\").each(function(c, d) {\ntitle = $(d).find(\"div.mr140 > h3 > a.f20.ln24.fbo.txt-oev-2\").text().trim()\nthumb = $(d).find(\"div.fr.mt5.pos_rel > a > img.shou2.bgwhite\").attr('src')\ndesc = $(d).find(\"div.grey2.pt5.f13.ln18.txt-oev-3\").text().trim()\ndate = $(d).find(\"div.grey.pt5 > time.foot.timeago\").text().trim()\nlink = $(d).find(\"div.fr.mt5.pos_rel > a\").attr('href')\nconst Data = {\ntitle: title,\nthumb: thumb,\ndesc: desc,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\nfunction kompasnews() {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://news.kompas.com/`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('body > div > div.container.clearfix > div:nth-child(3) > div.col-bs10-7 > div:nth-child(3) > div.latest.ga--latest.mt2.clearfix > div > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    berita: $(b).find('> div > div.article__box > h3').text(),\n                    upload_time: $(b).find('> div > div.article__box > div.article__date').text(),\n                    type_berita: $(b).find('> div > div.article__boxsubtitle > h2').text(),\n                    link: $(b).find('> div > div.article__box > h3 > a').attr('href'),\n                    thumbnail: $(b).find('> div > div.article__asset > a > img').attr('data-src'),\n                    info_berita: $(b).find('> div > div.article__box > div.article__lead').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\nfunction inews() {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.inews.id/news`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#news-list > li ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > h3').text().trim(),\n                    upload_time: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > div.date.margin-10px-left').text().trim().split('|')[0],\n                    link: $(b).find('> a').attr('href'),\n                    thumbnail: $(b).find('> a > div > div > div.float-left.width-130px.position-absolute > img').attr('data-original'),\n                    info_berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > p').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nasync function shoppe(item, limit) {\n\tconst hasil = []\n\tawait axios.request(`https://shopee.co.id/api/v4/search/search_items?by=relevancy&keyword=${item}&limit=${limit}&newest=0&order=desc&page_type=search&scenario=PAGE_GLOBAL_SEARCH&version=2`, {\n\t\tmethod: \"GET\",\n\t\tdata: null,\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"if-none-match-\": \"55b03-856cd63f16112f8a43da6096f97ac3fe\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t}\n\t}).then(respon => {\n\t\thasil.push(respon.data)\n\t})\n\treturn hasil[0]\n}\n\nasync function otaku(querry) {\n\ttry {\n\tconst link = await axios.get(`https://otakudesu.moe/?s=${querry}&post_type=anime`)\n\tconst c = cheerio.load(link.data)\n\tlet id = c('#venkonten > div > div.venser > div > div > ul > li:nth-child(1) > h2 > a').attr('href')\n\tconst Link = await axios.get(id)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(1) > span').text().trim()\n\tlet judulJpn = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(2) > span').text().trim()\n\tlet score = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(3) > span').text().trim()\n\tlet Produser = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(4) > span').text().trim()\n\tlet Type = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(5) > span').text().trim()\n\tlet Status = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(6) > span').text().trim()\n\tlet TotalEpisode = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(7) > span').text().trim()\n\tlet durasi = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(8) > span').text().trim()\n\tlet Rilis = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(9) > span').text().trim()\n\tlet studio = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(10) > span').text().trim()\n\tlet genre = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(11) > span').text().trim()\n\tlet thumb = $('#venkonten > div.venser > div.fotoanime').find('img').attr('src')\n\tlet Sinopsis = $('#venkonten > div.venser > div.fotoanime > div.sinopc').find('p').text().trim()\n\tlet LinkDown = $('#venkonten').find('div.venser > div:nth-child(8) > ul > li:nth-child(4) > span:nth-child(1) > a').attr('href')\n\tconst data = {\n\t\tcreator: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tjapan: judulJpn,\n\t\t\trating: score,\n\t\t\tproduser: Produser,\n\t\t\ttype: Type,\n\t\t\tstatus: Status,\n\t\t\tepisode: TotalEpisode,\n\t\t\tdurasi: durasi,\n\t\t\trilis: Rilis,\n\t\t\tstudio: studio,\n\t\t\tgenre: genre,\n\t\t\tlink: LinkDown,\n\t\t\tsinopsis: Sinopsis\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tcreator: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tPesan: 'maap banh emror😔'\n\t}\n\treturn notFond\n}\n}\n\nfunction covid() {\n\treturn new Promise(async(resolve, reject) => {\n\t\taxios.get('https://covid19.go.id/')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst hasil = [];\n\t\t\t$('#case > div > div > div > div > div:nth-child(2)').each(function(a,b) {\n\t\t\t\tconst pindo = $(b).find('div:nth-child(3) > strong').text()\n\t\t\t\tconst mindo = $(b).find('div:nth-child(5) > strong').text()\n\t\t\t\tconst sindo = $(b).find('div:nth-child(4) > strong').text()\n\t\t\t\tconst upindo = $(b).find('div.pt-4.text-color-black.text-1').text().trim()\n\t\t\t$('#case > div > div > div > div > div:nth-child(1)').each(function(c,d) {\n\t\t\t\t\tconst neg = $(d).find('div:nth-child(3) > strong').text() \n\t\t\t\t\tconst pglo = $(d).find('div:nth-child(4) > strong').text()\n\t\t\t\t\tconst nglo = $(d).find('div:nth-child(5) > strong').text()\n\t\t\t\t\tconst up = $(d).find('div.pt-4.text-color-grey.text-1').text().trim()\n\t\t\t\tconst result = {\n\t\t\t\t\tmessage: 'By Hexagon',\n\t\t\t\t\tindo : {\n\t\t\t\t\t\tpositif_indo: pindo,\n\t\t\t\t\t\tmeninggal_indo: mindo,\n\t\t\t\t\t\tsembuh_indo: sindo,\n\t\t\t\t\t\tupdate_indo: upindo.split(':')[1]\n\t\t\t\t\t},\n\t\t\t\t\tglobal: {\n\t\t\t\t\t\tnegara: neg,\n\t\t\t\t\t\tpositif: pglo,\n\t\t\t\t\t\tmeninggal: nglo,\n\t\t\t\t\t\tupdate: up.split(':')[1].split('\\n')[0]\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thasil.push(result)\n\t\t\t\t})\n\t\t\t})\n\t\t\tresolve(hasil)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n\nfunction lirik(judul){\n\treturn new Promise(async(resolve, reject) => {\n   \t\taxios.get('https://www.musixmatch.com/search/' + judul)\n   \t\t.then(async({ data }) => {\n   \t\tconst $ = cheerio.load(data)\n   \t\tconst hasil = {};\n   \t\tlet limk = 'https://www.musixmatch.com'\n   \t\tconst link = limk + $('div.media-card-body > div > h2').find('a').attr('href')\n\t   \t\tawait axios.get(link)\n\t   \t\t.then(({ data }) => {\n\t\t   \t\tconst $$ = cheerio.load(data)\n\t\t   \t\thasil.thumb = 'https:' + $$('div.col-sm-1.col-md-2.col-ml-3.col-lg-3.static-position > div > div > div').find('img').attr('src')\n\t\t  \t\t$$('div.col-sm-10.col-md-8.col-ml-6.col-lg-6 > div.mxm-lyrics').each(function(a,b) {\n\t\t   hasil.lirik = $$(b).find('span > p > span').text() +'\\n' + $$(b).find('span > div > p > span').text()\n\t\t   })\n\t   })\n\t   resolve(hasil)\n   })\n   .catch(reject)\n   })\n}\n\nfunction komiku(judul) {\n\treturn new Promise(async(resolve,reject) => {\n\taxios.get('https://data3.komiku.id/cari/?post_type=manga&s=' + encodeURIComponent(judul))\n\t.then(({ data }) => {\n\tconst $ = cheerio.load(data)\n\tconst img = []; \n\tconst or = [];\n\tconst ind = [];\n\tconst up = [];\n\tconst des = [];\n\tconst li = [];\n\tconst ch = [];\n\tconst ch1 = [];\n\t$('div.daftar').each(function (a,b) {\n\t\timg.push($(b).find('img').attr('data-src'))\n\t$('div.kan').each(function(c,d) {\n\t\tor.push($(d).find('h3').text().trim())\n\t\tind.push($(d).find('span.judul2').text())\n\t\tli.push('https://komiku.id' + $(d).find('a').attr('href'))\n\t\tup.push($(d).find('p').text().trim().split('. ')[0])\n\t\tdes.push($(d).find('p').text().trim().split('. ')[1])\n\t\tch1.push($(d).find('div:nth-child(5) > a').attr('title'))\n\t$('div.new1').each(function(e,f) {\n\t\tch.push($(f).find('a').attr('title'))\n\t\t})\n\t})\n})\n\tfor (let i = 0 ; i < img.length; i++) {\n\t\tresolve({\n\t\t\timage: img[i],\n\t\t\ttitle: or[i],\n\t\t\tindo: ind[i],\n\t\t\tupdate: up[i],\n\t\t\tdesc: des[i],\n\t\t\tchapter_awal: ch[i],\n\t\t\tchapter_akhir: ch1[i],\n\t\t\tlink: li[i]\n\t\t})\n\t}\n})\n\t.catch(reject)\n\t})\n}\n\nfunction ghstalk(username) {\nurl= `https://api.github.com/users/${username}`; \nreturn axios.get(url)\n.then(data => {\nreturn data.data\nconsole.log(data.data)\n})\n}\n\nasync function telegraph(buffer) {\n  return new Promise(async (resolve, reject) => {\nconst { ext } = await fromBuffer(buffer)\nlet form = new FormData\nform.append('file', buffer, 'tmp.' + ext)\nlet res = await fetch('https://telegra.ph/upload', {\nmethod: 'POST',\nbody: form\n})\nlet img = await res.json()\nif (img.error) throw img.error\nhasil = 'https://telegra.ph' + img[0].src\nresolve({hasil})\nconsole.log(hasil)\n}).catch(reject)\n}\n\nfunction gempa() {\nreturn new Promise((resolve, reject) => {\naxios.get('https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg').then((response) => {\nconst $ = cheerio.load(response.data)\nconst urlElems = $('table.table-hover.table-striped')\nfor (let i = 0; i < urlElems.length; i++) {\nconst urlSpan = $(urlElems[i]).find('tbody')[0]\nif (urlSpan) {\nconst urlData = $(urlSpan).find('tr')[0]\nvar Kapan = $(urlData).find('td')[1]\nvar Letak = $(urlData).find('td')[2]\nvar Magnitudo = $(urlData).find('td')[3]\nvar Kedalaman = $(urlData).find('td')[4]\nvar Wilayah = $(urlData).find('td')[5]\nvar lintang = $(Letak).text().split(' ')[0]\nvar bujur = $(Letak).text().split(' ')[2]\nvar hasil = {\nWaktu: $(Kapan).text(),\nLintang: lintang,\nBujur: bujur,\nMagnitudo: $(Magnitudo).text(),\nKedalaman: $(Kedalaman).text().replace(/\\t/g, '').replace(/I/g, ''),\nWilayah: $(Wilayah).text().replace(/\\t/g, '').replace(/I/g, '').replace('-','').replace(/\\r/g, '').split('\\n')[0],\nMap: ''\n}\nresolve(hasil);\nconsole.log(hasil)\n}\n}\n})\n})\n}\n\nfunction servermc() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://minecraftpocket-servers.com/country/indonesia/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"tr\").each(function(c, d) {\nip = $(d).find(\"button.btn.btn-secondary.btn-sm\").eq(1).text().trim().replace(':19132', '')\nport = '19132'\nversi = $(d).find(\"a.btn.btn-info.btn-sm\").text()\nplayer = $(d).find(\"td.d-none.d-md-table-cell > strong\").eq(1).text().trim()\nconst Data = {\nip: ip,\nport: port,\nversi: versi,\nplayer: player\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\nfunction happymod(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.happymod.com/search.html?q=${query}`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.pdt-app-box\").each(function(c, d) {\nname = $(d).find(\"a\").text().trim();\nicon = $(d).find(\"img.lazy\").attr('data-original');\nlink = $(d).find(\"a\").attr('href');\nlink2 = `https://www.happymod.com${link}`\nconst Data = {\n\nicon: icon,\nname: name,\nlink: link2\n}\nhasil.push(Data)\n })\n resolve(hasil);\n}).catch(reject)\n});\n}\n\nfunction sfilesearch(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://sfile.mobi/search.php?q=${query}&search=Search`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.list\").each(function(i, cuk) {\nico= $(cuk).find(\"img\").attr(\"src\");\nlin= $(cuk).find(\"a\").attr(\"href\");\nname= $(cuk).find(\"a\").text();\nconst Data = {\nicon: ico,\nname: name,\nlink: lin\n}\nhasil.push(Data)\n\n})\nresolve(hasil)\n});\n});\n}\n\nfunction hoax() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://turnbackhoax.id/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"figure.mh-loop-thumb\").each(function(a, b) {\n$(\"div.mh-loop-content.mh-clearfix\").each(function(c, d) {\nlink = $(d).find(\"h3.entry-title.mh-loop-title > a\").attr('href');\nimg = $(b).find(\"img.attachment-mh-magazine-lite-medium.size-mh-magazine-lite-medium.wp-post-image\").attr('src');\ntitle = $(d).find(\"h3.entry-title.mh-loop-title > a\").text().trim();\ndesc = $(d).find(\"div.mh-excerpt > p\").text().trim();\ndate = $(d).find(\"span.mh-meta-date.updated\").text().trim();\nconst Data = {\n\ntitle: title,\nthumbnail: img,\ndesc: desc,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\n})\nresolve(hasil)\n}).catch(reject)\n});\n}\n\nfunction ssweb(url) {\n  return new Promise(async(resolve,reject) => {\n   await getBuffer(`http://fdz-app.herokuapp.com/api/ssweb/mobile/get_screenshot?url=${url}`).then(res => {\n   resolve(res)\n  })\n.catch(reject)\n})\n}\n\nasync function filmapik(query) {\n\ttry{\n\tconst link = await axios.get(`https://filmapik.website/?s=${query}`);\n\tconst c = cheerio.load(link.data)\n\tlet Id = []\n\tc('#main > div > div.main-content.main-category > div.movies-list-wrap.mlw-category > div.movies-list.movies-list-full ').each(function (a, b) {\n\t\tc(b).find('div').each(function (e, d) {\n\t\t\tlet id = c(d).find('a').attr('href')\n\t\t\tId.push(id)\n\t\t})\n\t})\n\tlet Random = Id[Math.floor(Math.random() * (Id.length))]\n\tconst Link = await axios.get(Random)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#mv-info').find('div.mvi-content > div.mvic-desc > h3').text().trim()\n\tlet view = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(1)').text().trim()\n\tlet genre = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(2)').text().trim()\n\tlet studio = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(3) > span').text().trim()\n\tlet durasi = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(1) > span').text().trim()\n\tlet TvStatus = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(2) > span').text().trim()\n\tlet network = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > div > p:nth-child(5) > a').text().trim()\n\tlet thumb = $('#mv-info').find('div.mvi-content > div.thumb.mvic-thumb > img').attr('src')\n\tlet BintangFilm = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > p > span').text().trim()\n\tconst data = {\n\t\tauthor: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tLink: Random,\n\t\t\tpenonton: view.replace('Views: ', ''),\n\t\t\tdurasi: durasi,\n\t\t\tgenre: genre.replace('Genre: ', ''),\n\t\t\tstudio: studio,\n\t\t\tTV: TvStatus,\n\t\t\tnetwork: network,\n\t\t\tbintangFilm: BintangFilm\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tPesan: 'sorry banh emror🙏'\n\t}\n\treturn notFond\n}\n}\n\n\nfunction aiovideodl(link) {\n    return new Promise((resolve, reject) => {\n        axios({\n            url: 'https://aiovideodl.ml/',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"\n            }\n        }).then((src) => {\n            let a = cheerio.load(src.data)\n            let token = a('#token').attr('value')\n            axios({\n                url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/',\n                method: 'POST',\n                headers: {\n                    \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"   \n                },\n                data: new URLSearchParams(Object.entries({ 'url': link, 'token': token }))\n            }).then(({ data }) => {\n                resolve({ status: src.status, creator: 'Dika Ardnt.', hasil: data })\n            })\n        })\n    })\n}\n\nasync function mediafire(url) {\nlet query = await axios.get(url) \nlet cher = cheerio.load(query.data)\nlet hasil = []\nlet link = cher('a#downloadButton').attr('href')\nlet size = cher('a#downloadButton').text().replace('Download', '').replace('(', '').replace(')', '').replace('\\n', '').replace('\\n', '').replace(' ', '')\nlet seplit = link.split('/')\nlet author = '@rasel.ganz'\nlet nama = seplit[5]\nlet mime = nama.split('.')\nmime = mime[1]\nhasil.push({ author, nama, mime, size, link })\nreturn hasil\nconsole.log(hasil)\n}\n\n"
  },
  {
    "path": "lib/lvlfunction.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst fs = require('fs')\nlet _level = JSON.parse(fs.readFileSync('./leveluser.json'))\n   \n   \n\t\tconst getLevelingXp = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].xp\n            }\n        }\n\n        const getLevelingLevel = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].level\n            }\n        }\n\n        const getLevelingId = (sender) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _level[position].id\n            }\n        }\n\n        const addLevelingXp = (sender, amount) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _level[position].xp += amount\n                fs.writeFileSync('./leveluser.json', JSON.stringify(_level))\n            }\n        }\n\n        const addLevelingLevel = (sender, amount) => {\n            let position = false\n            Object.keys(_level).forEach((i) => {\n                if (_level[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _level[position].level += amount\n                fs.writeFileSync('./leveluser.json', JSON.stringify(_level))\n            }\n        }\n\n        const addLevelingId = (sender) => {\n            const obj = {id: sender, xp: 1, level: 1}\n            _level.push(obj)\n            fs.writeFileSync('./leveluser.json', JSON.stringify(_level))\n        }\n        \nmodule.exports = { addLevelingId, addLevelingLevel, addLevelingXp, getLevelingId, getLevelingLevel, getLevelingXp }\n"
  },
  {
    "path": "lib/mediafire.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst axios = require('axios')\nconst cheerio = require('cheerio')\n\nconst mediafireDl = async (url) => {\nconst res = await axios.get(url) \nconst $ = cheerio.load(res.data)\nconst hasil = []\nconst link = $('a#downloadButton').attr('href')\nconst size = $('a#downloadButton').text().replace('Download', '').replace('(', '').replace(')', '').replace('\\n', '').replace('\\n', '').replace('                         ', '')\nconst seplit = link.split('/')\nconst nama = seplit[5]\nmime = nama.split('.')\nmime = mime[1]\nhasil.push({ nama, mime, size, link })\nreturn hasil\n}\n\n\nmodule.exports = { mediafireDl }"
  },
  {
    "path": "lib/mongoDB.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst mongoose = require('mongoose')\nconst { Schema } = mongoose\n\nmodule.exports = class mongoDB {\n  constructor(url, options = { useNewUrlParser: true, useUnifiedTopology: true }) {\n    this.url = url\n    this.data = this._data = this._schema = this._model = {}\n    this.db\n    this.options = options\n  }\n  async read() {\n    this.db = await mongoose.connect(this.url, { ...this.options })\n    this.connection = mongoose.connection\n    let schema = this._schema = new Schema({\n      data: {\n        type: Object,\n        required: true, //depends on whether the field is mandatory or not\n        default: {}\n      }\n    })\n    // this._model = mongoose.model('data', schema)\n    try { this._model = mongoose.model('data', schema) } catch { this._model = mongoose.model('data') }\n    this._data = await this._model.findOne({})\n    if (!this._data) {\n      this.data = {}\n      await this.write(this.data)\n      this._data = await this._model.findOne({})\n    } else this.data = this._data.data\n    return this.data\n  }\n\n\n  async write(data) {\n    if (!data) return data\n    if (!this._data) return (new this._model({ data })).save()\n    this._model.findById(this._data._id, (err, docs) => {\n      if (!err) {\n        if (!docs.data) docs.data = {}\n        docs.data = data\n        return docs.save()\n      }\n    })\n  }\n}"
  },
  {
    "path": "lib/myfunc.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst { proto, delay, getContentType } = require('@adiwajshing/baileys')\nconst chalk = require('chalk')\nconst fs = require('fs')\nconst Crypto = require('crypto')\nconst axios = require('axios')\nconst moment = require('moment-timezone')\nconst { sizeFormatter } = require('human-readable')\nconst util = require('util')\nconst Jimp = require('jimp')\nconst { defaultMaxListeners } = require('stream')\n\n\nconst unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000)\n\nexports.unixTimestampSeconds = unixTimestampSeconds\n\nexports.generateMessageTag = (epoch) => {\n    let tag = (0, exports.unixTimestampSeconds)().toString();\n    if (epoch)\n        tag += '.--' + epoch; // attach epoch if provided\n    return tag;\n}\n\nexports.processTime = (timestamp, now) => {\n\treturn moment.duration(now - moment(timestamp * 1000)).asSeconds()\n}\n\nexports.getRandom = (ext) => {\n    return `${Math.floor(Math.random() * 10000)}${ext}`\n}\n\nexports.getBuffer = async (url, options) => {\n\ttry {\n\t\toptions ? options : {}\n\t\tconst res = await axios({\n\t\t\tmethod: \"get\",\n\t\t\turl,\n\t\t\theaders: {\n\t\t\t\t'DNT': 1,\n\t\t\t\t'Upgrade-Insecure-Request': 1\n\t\t\t},\n\t\t\t...options,\n\t\t\tresponseType: 'arraybuffer'\n\t\t})\n\t\treturn res.data\n\t} catch (err) {\n\t\treturn err\n\t}\n}\n\nexports.fetchJson = async (url, options) => {\n    try {\n        options ? options : {}\n        const res = await axios({\n            method: 'GET',\n            url: url,\n            headers: {\n                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'\n            },\n            ...options\n        })\n        return res.data\n    } catch (err) {\n        return err\n    }\n}\n\nexports.runtime = function(seconds) {\n\tseconds = Number(seconds);\n\tvar d = Math.floor(seconds / (3600 * 24));\n\tvar h = Math.floor(seconds % (3600 * 24) / 3600);\n\tvar m = Math.floor(seconds % 3600 / 60);\n\tvar s = Math.floor(seconds % 60);\n\tvar dDisplay = d > 0 ? d + (d == 1 ? \" day, \" : \" days, \") : \"\";\n\tvar hDisplay = h > 0 ? h + (h == 1 ? \" hour, \" : \" hours, \") : \"\";\n\tvar mDisplay = m > 0 ? m + (m == 1 ? \" minute, \" : \" minutes, \") : \"\";\n\tvar sDisplay = s > 0 ? s + (s == 1 ? \" second\" : \" seconds\") : \"\";\n\treturn dDisplay + hDisplay + mDisplay + sDisplay;\n}\n\nexports.clockString = (ms) => {\n    let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000)\n    let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60\n    let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60\n    return [h, m, s].map(v => v.toString().padStart(2, 0)).join(':')\n}\n\nexports.sleep = async (ms) => {\n    return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexports.isUrl = (url) => {\n    return url.match(new RegExp(/https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/, 'gi'))\n}\n\nexports.getTime = (format, date) => {\n\tif (date) {\n\t\treturn moment(date).locale('id').format(format)\n\t} else {\n\t\treturn moment.tz('Africa/Harare').locale('id').format(format)\n\t}\n}\n\nexports.formatDate = (n, locale = 'zw') => {\n\tlet d = new Date(n)\n\treturn d.toLocaleDateString(locale, {\n\t\tweekday: 'long',\n\t\tday: 'numeric',\n\t\tmonth: 'long',\n\t\tyear: 'numeric',\n\t\thour: 'numeric',\n\t\tminute: 'numeric',\n\t\tsecond: 'numeric'\n\t})\n}\n\nexports.tanggal = (numer) => {\n\tmyMonths = [\"January\",\"February\",\"March\",\"Aprill\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"Deceember\"];\n\t\t\t\tmyDays = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']; \n\t\t\t\tvar tgl = new Date(numer);\n\t\t\t\tvar day = tgl.getDate()\n\t\t\t\tbulan = tgl.getMonth()\n\t\t\t\tvar thisDay = tgl.getDay(),\n\t\t\t\tthisDay = myDays[thisDay];\n\t\t\t\tvar yy = tgl.getYear()\n\t\t\t\tvar year = (yy < 1000) ? yy + 1900 : yy; \n\t\t\t\tconst time = moment.tz('Africa/Harare').format('DD/MM HH:mm:ss')\n\t\t\t\tlet d = new Date\n\t\t\t\tlet locale = 'id'\n\t\t\t\tlet gmt = new Date(0).getTime() - new Date('1 January 1970').getTime()\n\t\t\t\tlet weton = ['Pahing', 'Pon','Wage','Kliwon','Legi'][Math.floor(((d * 1) + gmt) / 84600000) % 5]\n\t\t\t\t\n\t\t\t\treturn`${thisDay}, ${day} - ${myMonths[bulan]} - ${year}`\n}\n\nexports.formatp = sizeFormatter({\n    std: 'JEDEC', //'SI' = default | 'IEC' | 'JEDEC'\n    decimalPlaces: 2,\n    keepTrailingZeroes: false,\n    render: (literal, symbol) => `${literal} ${symbol}B`,\n})\n\nexports.jsonformat = (string) => {\n    return JSON.stringify(string, null, 2)\n}\n\nfunction format(...args) {\n\treturn util.format(...args)\n}\n\nexports.logic = (check, inp, out) => {\n\tif (inp.length !== out.length) throw new Error('Input and Output must have same length')\n\tfor (let i in inp)\n\t\tif (util.isDeepStrictEqual(check, inp[i])) return out[i]\n\treturn null\n}\n\nexports.generateProfilePicture = async (buffer) => {\n\tconst jimp = await Jimp.read(buffer)\n\tconst min = jimp.getWidth()\n\tconst max = jimp.getHeight()\n\tconst cropped = jimp.crop(0, 0, min, max)\n\treturn {\n\t\timg: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.MIME_JPEG),\n\t\tpreview: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.MIME_JPEG)\n\t}\n}\n\nexports.bytesToSize = (bytes, decimals = 2) => {\n    if (bytes === 0) return '0 Bytes';\n\n    const k = 1024;\n    const dm = decimals < 0 ? 0 : decimals;\n    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n    const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\n\nexports.getSizeMedia = (path) => {\n    return new Promise((resolve, reject) => {\n        if (/http/.test(path)) {\n            axios.get(path)\n            .then((res) => {\n                let length = parseInt(res.headers['content-length'])\n                let size = exports.bytesToSize(length, 3)\n                if(!isNaN(length)) resolve(size)\n            })\n        } else if (Buffer.isBuffer(path)) {\n            let length = Buffer.byteLength(path)\n            let size = exports.bytesToSize(length, 3)\n            if(!isNaN(length)) resolve(size)\n        } else {\n            reject('error gatau apah')\n        }\n    })\n}\n\nexports.parseMention = (text = '') => {\n    return [...text.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net')\n}\n\n\n/**\n * Serialize Message\n * @param {WAConnection} conn \n * @param {Object} m \n * @param {store} store \n */\nexports.smsg = (conn, m, store) => {\n    if (!m) return m\n    let M = proto.WebMessageInfo\n    if (m.key) {\n        m.id = m.key.id\n        m.isBaileys = m.id.startsWith('BAE5') && m.id.length === 16\n        m.chat = m.key.remoteJid\n        m.fromMe = m.key.fromMe\n        m.isGroup = m.chat.endsWith('@g.us')\n        m.sender = conn.decodeJid(m.fromMe && conn.user.id || m.participant || m.key.participant || m.chat || '')\n        if (m.isGroup) m.participant = conn.decodeJid(m.key.participant) || ''\n    }\n    if (m.message) {\n        m.mtype = getContentType(m.message)\n        m.msg = (m.mtype == 'viewOnceMessage' ? m.message[m.mtype].message[getContentType(m.message[m.mtype].message)] : m.message[m.mtype])\n        m.body = m.message.conversation || m.msg.caption || m.msg.text || (m.mtype == 'listResponseMessage') && m.msg.singleSelectReply.selectedRowId || (m.mtype == 'buttonsResponseMessage') && m.msg.selectedButtonId || (m.mtype == 'viewOnceMessage') && m.msg.caption || m.text\n        let quoted = m.quoted = m.msg.contextInfo ? m.msg.contextInfo.quotedMessage : null\n        m.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : []\n        if (m.quoted) {\n            let type = getContentType(quoted)\n\t\t\tm.quoted = m.quoted[type]\n            if (['productMessage'].includes(type)) {\n\t\t\t\ttype = getContentType(m.quoted)\n\t\t\t\tm.quoted = m.quoted[type]\n\t\t\t}\n            if (typeof m.quoted === 'string') m.quoted = {\n\t\t\t\ttext: m.quoted\n\t\t\t}\n            m.quoted.mtype = type\n            m.quoted.id = m.msg.contextInfo.stanzaId\n\t\t\tm.quoted.chat = m.msg.contextInfo.remoteJid || m.chat\n            m.quoted.isBaileys = m.quoted.id ? m.quoted.id.startsWith('BAE5') && m.quoted.id.length === 16 : false\n\t\t\tm.quoted.sender = conn.decodeJid(m.msg.contextInfo.participant)\n\t\t\tm.quoted.fromMe = m.quoted.sender === (conn.user && conn.user.id)\n            m.quoted.text = m.quoted.text || m.quoted.caption || m.quoted.conversation || m.quoted.contentText || m.quoted.selectedDisplayText || m.quoted.title || ''\n\t\t\tm.quoted.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : []\n            m.getQuotedObj = m.getQuotedMessage = async () => {\n\t\t\tif (!m.quoted.id) return false\n\t\t\tlet q = await store.loadMessage(m.chat, m.quoted.id, conn)\n \t\t\treturn exports.smsg(conn, q, store)\n            }\n            let vM = m.quoted.fakeObj = M.fromObject({\n                key: {\n                    remoteJid: m.quoted.chat,\n                    fromMe: m.quoted.fromMe,\n                    id: m.quoted.id\n                },\n                message: quoted,\n                ...(m.isGroup ? { participant: m.quoted.sender } : {})\n            })\n\n            /**\n             * \n             * @returns \n             */\n            m.quoted.delete = () => conn.sendMessage(m.quoted.chat, { delete: vM.key })\n\n\t   /**\n\t\t* \n\t\t* @param {*} jid \n\t\t* @param {*} forceForward \n\t\t* @param {*} options \n\t\t* @returns \n\t   */\n            m.quoted.copyNForward = (jid, forceForward = false, options = {}) => conn.copyNForward(jid, vM, forceForward, options)\n\n            /**\n              *\n              * @returns\n            */\n            m.quoted.download = () => conn.downloadMediaMessage(m.quoted)\n        }\n    }\n    if (m.msg.url) m.download = () => conn.downloadMediaMessage(m.msg)\n    m.text = m.msg.text || m.msg.caption || m.message.conversation || m.msg.contentText || m.msg.selectedDisplayText || m.msg.title || ''\n    /**\n\t* Reply to this message\n\t* @param {String|Object} text \n\t* @param {String|false} chatId \n\t* @param {Object} options \n\t*/\n    m.reply = (text, chatId = m.chat, options = {}) => Buffer.isBuffer(text) ? conn.sendMedia(chatId, text, 'file', '', m, { ...options }) : conn.sendText(chatId, text, m, { ...options })\n    /**\n\t* Copy this message\n\t*/\n\tm.copy = () => exports.smsg(conn, M.fromObject(M.toObject(m)))\n\n\t/**\n\t * \n\t * @param {*} jid \n\t * @param {*} forceForward \n\t * @param {*} options \n\t * @returns \n\t */\n\tm.copyNForward = (jid = m.chat, forceForward = false, options = {}) => conn.copyNForward(jid, m, forceForward, options)\n\n    return m\n}\n\n\nlet file = require.resolve(__filename)\nfs.watchFile(file, () => {\n\tfs.unwatchFile(file)\n\tconsole.log(chalk.redBright(`Update ${__filename}`))\n\tdelete require.cache[file]\n\trequire(file)\n})\n"
  },
  {
    "path": "lib/myfunc2.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst { proto, delay, getContentType } = require('@adiwajshing/baileys')\nconst chalk = require('chalk')\nconst fs = require('fs')\nconst Crypto = require('crypto')\nconst axios = require('axios')\nconst cheerio = require('cheerio')\nconst moment = require('moment-timezone')\nconst { sizeFormatter } = require('human-readable')\nconst util = require('util')\nconst Jimp = require('jimp')\nconst { defaultMaxListeners } = require('stream')\n\n\nconst unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000)\n\nexports.unixTimestampSeconds = unixTimestampSeconds\n\nexports.generateMessageTag = (epoch) => {\n    let tag = (0, exports.unixTimestampSeconds)().toString();\n    if (epoch)\n        tag += '.--' + epoch; // attach epoch if provided\n    return tag;\n}\n\nexports.processTime = (timestamp, now) => {\n\treturn moment.duration(now - moment(timestamp * 1000)).asSeconds()\n}\n\nexports.getRandom = (ext) => {\n    return `${Math.floor(Math.random() * 10000)}${ext}`\n}\n\nexports.getBuffer = async (url, options) => {\n\ttry {\n\t\toptions ? options : {}\n\t\tconst res = await axios({\n\t\t\tmethod: \"get\",\n\t\t\turl,\n\t\t\theaders: {\n\t\t\t\t'DNT': 1,\n\t\t\t\t'Upgrade-Insecure-Request': 1\n\t\t\t},\n\t\t\t...options,\n\t\t\tresponseType: 'arraybuffer'\n\t\t})\n\t\treturn res.data\n\t} catch (err) {\n\t\treturn err\n\t}\n}\n\nexports.fetchJson = async (url, options) => {\n    try {\n        options ? options : {}\n        const res = await axios({\n            method: 'GET',\n            url: url,\n            headers: {\n                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'\n            },\n            ...options\n        })\n        return res.data\n    } catch (err) {\n        return err\n    }\n}\n\nexports.runtime = function(seconds) {\n\tseconds = Number(seconds);\n\tvar d = Math.floor(seconds / (3600 * 24));\n\tvar h = Math.floor(seconds % (3600 * 24) / 3600);\n\tvar m = Math.floor(seconds % 3600 / 60);\n\tvar s = Math.floor(seconds % 60);\n\tvar dDisplay = d > 0 ? d + (d == 1 ? \" day, \" : \" days, \") : \"\";\n\tvar hDisplay = h > 0 ? h + (h == 1 ? \" hour, \" : \" hours, \") : \"\";\n\tvar mDisplay = m > 0 ? m + (m == 1 ? \" minute, \" : \" minutes, \") : \"\";\n\tvar sDisplay = s > 0 ? s + (s == 1 ? \" second\" : \" seconds\") : \"\";\n\treturn dDisplay + hDisplay + mDisplay + sDisplay;\n}\n\nexports.clockString = (ms) => {\n    let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000)\n    let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60\n    let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60\n    return [h, m, s].map(v => v.toString().padStart(2, 0)).join(':')\n}\n\nexports.sleep = async (ms) => {\n    return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexports.isUrl = (url) => {\n    return url.match(new RegExp(/https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/, 'gi'))\n}\n\nexports.getTime = (format, date) => {\n\tif (date) {\n\t\treturn moment(date).locale('id').format(format)\n\t} else {\n\t\treturn moment.tz('Asia/Jakarta').locale('id').format(format)\n\t}\n}\n\nexports.formatDate = (n, locale = 'id') => {\n\tlet d = new Date(n)\n\treturn d.toLocaleDateString(locale, {\n\t\tweekday: 'long',\n\t\tday: 'numeric',\n\t\tmonth: 'long',\n\t\tyear: 'numeric',\n\t\thour: 'numeric',\n\t\tminute: 'numeric',\n\t\tsecond: 'numeric'\n\t})\n}\n\nexports.tanggal = (numer) => {\n\tmyMonths = [\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"November\",\"Desember\"];\n\t\t\t\tmyDays = ['Minggu','Senin','Selasa','Rabu','Kamis','Jum’at','Sabtu']; \n\t\t\t\tvar tgl = new Date(numer);\n\t\t\t\tvar day = tgl.getDate()\n\t\t\t\tbulan = tgl.getMonth()\n\t\t\t\tvar thisDay = tgl.getDay(),\n\t\t\t\tthisDay = myDays[thisDay];\n\t\t\t\tvar yy = tgl.getYear()\n\t\t\t\tvar year = (yy < 1000) ? yy + 1900 : yy; \n\t\t\t\tconst time = moment.tz('Asia/Jakarta').format('DD/MM HH:mm:ss')\n\t\t\t\tlet d = new Date\n\t\t\t\tlet locale = 'id'\n\t\t\t\tlet gmt = new Date(0).getTime() - new Date('1 January 1970').getTime()\n\t\t\t\tlet weton = ['Pahing', 'Pon','Wage','Kliwon','Legi'][Math.floor(((d * 1) + gmt) / 84600000) % 5]\n\t\t\t\t\n\t\t\t\treturn`${thisDay}, ${day} - ${myMonths[bulan]} - ${year}`\n}\n\nexports.rexdl = async (query) => {\n\treturn new Promise((resolve) => {\n\t\taxios.get('https://rexdl.com/?s=' + query)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst judul = [];\n\t\t\t\tconst jenis = [];\n\t\t\t\tconst date = [];\n\t\t\t\tconst desc = [];\n\t\t\t\tconst link = [];\n\t\t\t\tconst thumb = [];\n\t\t\t\tconst result = [];\n\t\t\t\t$('div > div.post-content').each(function(a, b) {\n\t\t\t\t\tjudul.push($(b).find('h2.post-title > a').attr('title'))\n\t\t\t\t\tjenis.push($(b).find('p.post-category').text())\n\t\t\t\t\tdate.push($(b).find('p.post-date').text())\n\t\t\t\t\tdesc.push($(b).find('div.entry.excerpt').text())\n\t\t\t\t\tlink.push($(b).find('h2.post-title > a').attr('href'))\n\t\t\t\t})\n\t\t\t\t$('div > div.post-thumbnail > a > img').each(function(a, b) {\n\t\t\t\t\tthumb.push($(b).attr('data-src'))\n\t\t\t\t})\n\t\t\t\tfor (let i = 0; i < judul.length; i++) {\n\t\t\t\t\tresult.push({\n\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\tjudul: judul[i],\n\t\t\t\t\t\tkategori: jenis[i],\n\t\t\t\t\t\tupload_date: date[i],\n\t\t\t\t\t\tdeskripsi: desc[i],\n\t\t\t\t\t\tthumb: thumb[i],\n\t\t\t\t\t\tlink: link[i]\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t})\n\t})\n}\n\nexports.rexdldown = async (link) => {\n\treturn new Promise((resolve) => {\n\t\taxios.get(link)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst link = [];\n\t\t\t\tconst url = [];\n\t\t\t\tconst link_name = [];\n\t\t\t\tconst judul = $('#page > div > div > div > section > div:nth-child(2) > article > div > h1.post-title').text();\n\t\t\t\tconst plink = $('#page > div > div > div > section > div:nth-child(2) > center:nth-child(3) > h2 > span > a').attr('href')\n\t\t\t\taxios.get(plink)\n\t\t\t\t\t.then(({\n\t\t\t\t\t\tdata\n\t\t\t\t\t}) => {\n\t\t\t\t\t\tconst $$ = cheerio.load(data)\n\t\t\t\t\t\t$$('#dlbox > ul.dl > a > li > span').each(function(a, b) {\n\t\t\t\t\t\t\tdeta = $$(b).text();\n\t\t\t\t\t\t\tlink_name.push(deta)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t$$('#dlbox > ul.dl > a').each(function(a, b) {\n\t\t\t\t\t\t\turl.push($$(b).attr('href'))\n\t\t\t\t\t\t})\n\t\t\t\t\t\tfor (let i = 0; i < link_name.length; i++) {\n\t\t\t\t\t\t\tlink.push({\n\t\t\t\t\t\t\t\tlink_name: link_name[i],\n\t\t\t\t\t\t\t\turl: url[i]\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tcreator: 'Fajar Ihsana',\n\t\t\t\t\t\t\tjudul: judul,\n\t\t\t\t\t\t\tupdate_date: $$('#dlbox > ul.dl-list > li.dl-update > span:nth-child(2)').text(),\n\t\t\t\t\t\t\tversion: $$('#dlbox > ul.dl-list > li.dl-version > span:nth-child(2)').text(),\n\t\t\t\t\t\t\tsize: $$('#dlbox > ul.dl-list > li.dl-size > span:nth-child(2)').text(),\n\t\t\t\t\t\t\tdownload: link\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t})\n\t})\n}\n\nexports.formatp = sizeFormatter({\n    std: 'JEDEC', //'SI' = default | 'IEC' | 'JEDEC'\n    decimalPlaces: 2,\n    keepTrailingZeroes: false,\n    render: (literal, symbol) => `${literal} ${symbol}B`,\n})\n\nexports.jsonformat = (string) => {\n    return JSON.stringify(string, null, 2)\n}\n\nfunction format(...args) {\n\treturn util.format(...args)\n}\n\nexports.logic = (check, inp, out) => {\n\tif (inp.length !== out.length) throw new Error('Input and Output must have same length')\n\tfor (let i in inp)\n\t\tif (util.isDeepStrictEqual(check, inp[i])) return out[i]\n\treturn null\n}\n\nexports.generateProfilePicture = async (buffer) => {\n\tconst jimp = await Jimp.read(buffer)\n\tconst min = jimp.getWidth()\n\tconst max = jimp.getHeight()\n\tconst cropped = jimp.crop(0, 0, min, max)\n\treturn {\n\t\timg: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.MIME_JPEG),\n\t\tpreview: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.MIME_JPEG)\n\t}\n}\n\nexports.bytesToSize = (bytes, decimals = 2) => {\n    if (bytes === 0) return '0 Bytes';\n\n    const k = 1024;\n    const dm = decimals < 0 ? 0 : decimals;\n    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n    const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\n\nexports.getSizeMedia = (path) => {\n    return new Promise((resolve, reject) => {\n        if (/http/.test(path)) {\n            axios.get(path)\n            .then((res) => {\n                let length = parseInt(res.headers['content-length'])\n                let size = exports.bytesToSize(length, 3)\n                if(!isNaN(length)) resolve(size)\n            })\n        } else if (Buffer.isBuffer(path)) {\n            let length = Buffer.byteLength(path)\n            let size = exports.bytesToSize(length, 3)\n            if(!isNaN(length)) resolve(size)\n        } else {\n            reject('error gatau apah')\n        }\n    })\n}\n\nexports.parseMention = (text = '') => {\n    return [...text.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net')\n}\n\n\n/**\n * Serialize Message\n * @param {WAConnection} conn \n * @param {Object} m \n * @param {store} store \n */\nexports.smsg = (conn, m, store) => {\n    if (!m) return m\n    let M = proto.WebMessageInfo\n    if (m.key) {\n        m.id = m.key.id\n        m.isBaileys = m.id.startsWith('BAE5') && m.id.length === 16\n        m.chat = m.key.remoteJid\n        m.fromMe = m.key.fromMe\n        m.isGroup = m.chat.endsWith('@g.us')\n        m.sender = conn.decodeJid(m.fromMe && conn.user.id || m.participant || m.key.participant || m.chat || '')\n        if (m.isGroup) m.participant = conn.decodeJid(m.key.participant) || ''\n    }\n    if (m.message) {\n        m.mtype = getContentType(m.message)\n        m.msg = (m.mtype == 'viewOnceMessage' ? m.message[m.mtype].message[getContentType(m.message[m.mtype].message)] : m.message[m.mtype])\n        m.body = m.message.conversation || m.msg.caption || m.msg.text || (m.mtype == 'listResponseMessage') && m.msg.singleSelectReply.selectedRowId || (m.mtype == 'buttonsResponseMessage') && m.msg.selectedButtonId || (m.mtype == 'viewOnceMessage') && m.msg.caption || m.text\n        let quoted = m.quoted = m.msg.contextInfo ? m.msg.contextInfo.quotedMessage : null\n        m.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : []\n        if (m.quoted) {\n            let type = getContentType(quoted)\n\t\t\tm.quoted = m.quoted[type]\n            if (['productMessage'].includes(type)) {\n\t\t\t\ttype = getContentType(m.quoted)\n\t\t\t\tm.quoted = m.quoted[type]\n\t\t\t}\n            if (typeof m.quoted === 'string') m.quoted = {\n\t\t\t\ttext: m.quoted\n\t\t\t}\n            m.quoted.mtype = type\n            m.quoted.id = m.msg.contextInfo.stanzaId\n\t\t\tm.quoted.chat = m.msg.contextInfo.remoteJid || m.chat\n            m.quoted.isBaileys = m.quoted.id ? m.quoted.id.startsWith('BAE5') && m.quoted.id.length === 16 : false\n\t\t\tm.quoted.sender = conn.decodeJid(m.msg.contextInfo.participant)\n\t\t\tm.quoted.fromMe = m.quoted.sender === (conn.user && conn.user.id)\n            m.quoted.text = m.quoted.text || m.quoted.caption || m.quoted.conversation || m.quoted.contentText || m.quoted.selectedDisplayText || m.quoted.title || ''\n\t\t\tm.quoted.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : []\n            m.getQuotedObj = m.getQuotedMessage = async () => {\n\t\t\tif (!m.quoted.id) return false\n\t\t\tlet q = await store.loadMessage(m.chat, m.quoted.id, conn)\n \t\t\treturn exports.smsg(conn, q, store)\n            }\n            let vM = m.quoted.fakeObj = M.fromObject({\n                key: {\n                    remoteJid: m.quoted.chat,\n                    fromMe: m.quoted.fromMe,\n                    id: m.quoted.id\n                },\n                message: quoted,\n                ...(m.isGroup ? { participant: m.quoted.sender } : {})\n            })\n\n            /**\n             * \n             * @returns \n             */\n            m.quoted.delete = () => conn.sendMessage(m.quoted.chat, { delete: vM.key })\n\n\t   /**\n\t\t* \n\t\t* @param {*} jid \n\t\t* @param {*} forceForward \n\t\t* @param {*} options \n\t\t* @returns \n\t   */\n            m.quoted.copyNForward = (jid, forceForward = false, options = {}) => conn.copyNForward(jid, vM, forceForward, options)\n\n            /**\n              *\n              * @returns\n            */\n            m.quoted.download = () => conn.downloadMediaMessage(m.quoted)\n        }\n    }\n    if (m.msg.url) m.download = () => conn.downloadMediaMessage(m.msg)\n    m.text = m.msg.text || m.msg.caption || m.message.conversation || m.msg.contentText || m.msg.selectedDisplayText || m.msg.title || ''\n    /**\n\t* Reply to this message\n\t* @param {String|Object} text \n\t* @param {String|false} chatId \n\t* @param {Object} options \n\t*/\n    m.reply = (text, chatId = m.chat, options = {}) => Buffer.isBuffer(text) ? conn.sendMedia(chatId, text, 'file', '', m, { ...options }) : conn.sendText(chatId, text, m, { ...options })\n    /**\n\t* Copy this message\n\t*/\n\tm.copy = () => exports.smsg(conn, M.fromObject(M.toObject(m)))\n\n\t/**\n\t * \n\t * @param {*} jid \n\t * @param {*} forceForward \n\t * @param {*} options \n\t * @returns \n\t */\n\tm.copyNForward = (jid = m.chat, forceForward = false, options = {}) => conn.copyNForward(jid, m, forceForward, options)\n\n    return m\n}\n\n\nlet file = require.resolve(__filename)\nfs.watchFile(file, () => {\n\tfs.unwatchFile(file)\n\tconsole.log(chalk.redBright(`Update ${__filename}`))\n\tdelete require.cache[file]\n\trequire(file)\n})\n"
  },
  {
    "path": "lib/namaku.js",
    "content": "[\n{\"result\": \"https://telegra.ph/file/2bb0a395354807f5c5130.jpg\"},\n{\"result\": \"https://telegra.ph/file/c7cf18eff3cd20a7faf63.jpg\"},\n{\"result\": \"https://telegra.ph/file/a38fd54433d072bfaeb77.jpg\"},\n{\"result\": \"https://telegra.ph/file/91e0d21212acbfdd0e22c.jpg\"},\n{\"result\": \"https://telegra.ph/file/d934c091b14e5ad380354.jpg\"}\n]\n"
  },
  {
    "path": "lib/nothing.js",
    "content": "[\n    {\"result\": \"https://is3-ssl.mzstatic.com/image/thumb/Purple42/v4/80/b5/ff/80b5ff2e-6f18-e959-bae6-b33bd3d355a0/source/256x256bb.jpg\"}\n    ]"
  },
  {
    "path": "lib/random.js",
    "content": "[\n{\"result\": \"https://telegra.ph/file/15f31b4cfc964496cca33.jpg\"}\n]\n"
  },
  {
    "path": "lib/rpg.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//"
  },
  {
    "path": "lib/rude.json",
    "content": "[\"mhata\",\"mhata yamai vako\",\"Dick\",\"dick\",\"rombe\",\"Rombe\",\"dhodhi\",\"Dodhi\",\"Duzvi\",\"Shure\",\"mwana wehure\",\"Mwana wehure\",\"Jende\",\"jende\",\"Cum\",\"cum\",\"Pussy\",\"pussy\",\"Chut\",\"machende\",\"Suck\",\"suck\",\"Scum\",\"scum\",\"Scumbag\",\"sascum\",\"Sex\",\"svira\",\"Svira\",\"Machende\",\"Kusvira\",\"Matinji\",\"dinji\",\"matinji\",\"msunu\",\"kusvira\",\"Fuck you\",\"fuck you\",\"Muroyi\",\"muroyi\",\"Kontol\",\"kontol\",\"Hure\",\"hure\",\"bitch\",\"Bitch\",\"Kushata\",\"Tsvina yemunhu\",\"tsvina yemunhu\",\"Stfu\",\"stfu\",\"Ass\",\"ass\",\"Asshole\",\"asshole\",\"Musatanyoko\",\"mudhidhi\",\"musatanyoko\",\"Fuck\",\"fuck\",\"Motherfucker\",\"beche\",\"motherfucker\",\"mboro\",\"Dako\",\"Mother fucker\",\"mother fucker\",\"Mf\",\"Mboro\",\"mf\",\"mfs\",\"fck\",\"Fuck\"]"
  },
  {
    "path": "lib/scrape.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\n\nconst { JSDOM } = require('jsdom')\nconst { fromBuffer } = require('file-type')\nconst fetch = require('node-fetch')\nconst fs = require('fs')\nconst qs = require('qs')\nconst cheerio = require('cheerio')\nconst formData = require('form-data')\nconst yts = require( 'yt-search')\nconst request = require('request')\nconst { spawn } = require('child_process')\nconst path = require('path')\nconst axios = require('axios')\nconst src = path.join(__dirname, './data/src/')\nconst _font = path.join(src, 'font')\nlet tmp = path.join(__dirname, './')\nconst aesthetic = path.join(src, 'canvas/')\n\n//Variable\nconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\n//Post\nfunction post(url, formdata) {\nconsole.log(Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&'))\nreturn fetch(url, {\nmethod: 'POST',\nheaders: {\naccept: \"*/*\",\n'accept-language': \"en-US,en;q=0.9\",\n'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n},\nbody: Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&')\n})\n}\n//Tiktok Video\nasync function tiktok(Url) {\nreturn new Promise (async (resolve, reject) => {\nawait axios.request({\nurl: \"https://ttdownloader.com/\",\nmethod: \"GET\",\nheaders: {\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n}\n}).then(respon => {\n var $ =cheerio.load(respon.data)\n token = $('#token').attr('value')\naxios({\nurl: \"https://ttdownloader.com/req/\",\nmethod: \"POST\",\ndata: new URLSearchParams(Object.entries({url: Url, format: \"\", token: token})),\nheaders: {\n\"accept\": \"*/*\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n}\n}).then(res => {\n ch = cheerio.load(res.data)\n result = {\nstatus: res.status,\nresult: {\nnowm: ch('#results-list > div:nth-child(2)').find('div.download > a').attr('href'),\nwm: ch('#results-list > div:nth-child(3)').find('div.download > a').attr('href'),\n}\n}\nresolve(result)\nconsole.log(result)\n}).catch(reject)\n}).catch(reject)\n})\n}\n\n//Tiktok Music\n const UserAgent = () => {\nossss = [\n'Macintosh; Intel Mac OS X 10_15_7',\n'Macintosh; Intel Mac OS X 10_15_5',\n'Macintosh; Intel Mac OS X 10_11_6',\n'Macintosh; Intel Mac OS X 10_11_5',\n'Windows NT 10.0; Win64; x64',\n'Windows NT 10.0',\n];\nreturn `Mozilla/5.0 (${ossss[Math.floor(Math.random() * ossss.length)]}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${Math.floor(\nMath.random() * 3,\n) + 87}.0.${Math.floor(Math.random() * 190) + 4100}.${Math.floor(Math.random() * 50) + 140} Safari/537.36`;\n}\n\n\n async function tiktokmusic(URL) {\nreturn new Promise(async (resolve, reject) => {\nGDF = await axios.get('https://www.tiktok.com/')\nCookie = \"ttwid=1%7C5UyITGuqEDXVZHtmtbU-7V35lTk8--iB6IjJuxRKPTs%7C1625390616%7C62c0b171e938115d5940a9af40c377000bc616cc7b25dfd76557913951585606; Domain=.tiktok.com; Path=/; Expires=Mon, 04 Jul 2022 09:23:36 GMT; HttpOnlytt_webid_v2=6980999485653632513; path=/; expires=Mon, 04 Jul 2022 09:23:37 GMT; domain=.tiktok.com; samesite=none; secure; httponlytt_webid=6980999485653632513; path=/; expires=Mon, 04 Jul 2022 09:23:37 GMT; domain=.tiktok.com; samesite=none; secure; httponlytt_csrf_token=9u_ml89_dULuOD6oMp_zTH06; path=/; domain=.tiktok.com; samesite=lax; secure; httponly\"\naxios.get(URL, {\nheaders: {\n'user-agent': \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n'Cookie': Cookie\n}\n})\n.then(({ data }) => {\nvar $ =cheerio.load(data)\nttdata = JSON.parse($('script#__NEXT_DATA__').get()[0].children[0].data)\nmeta = ttdata.props.pageProps.itemInfo.itemStruct\nconsole.log(meta)\nresolve({meta})\n})\n})\n}\n\n//Github Stalk\nfunction ghstalk(username) {\nurl= `https://api.github.com/users/${username}`; \nreturn axios.get(url)\n.then(data => {\nreturn data.data\nconsole.log(data.data)\n})\n}\n\n//Telegraph\nasync function telegra(buffer) {\n  return new Promise(async (resolve, reject) => {\nconst { ext } = await fromBuffer(buffer)\nlet form = new FormData\nform.append('file', buffer, 'tmp.' + ext)\nlet res = await fetch('https://telegra.ph/upload', {\nmethod: 'POST',\nbody: form\n})\nlet img = await res.json()\nif (img.error) throw img.error\nhasil = 'https://telegra.ph' + img[0].src\nresolve({hasil})\nconsole.log(hasil)\n}).catch(reject)\n}\n//Youtube Audio\nfunction yta(url) {\nreturn new Promise((resolve, reject) => {\nif (ytIdRegex.test(url)) {\nlet ytId = ytIdRegex.exec(url)\nurl = 'https://youtu.be/' + ytId[1]\npost('https://www.y2mate.com/mates/en60/analyze/ajax', {\nurl,\nq_auto: 0,\najax: 1\n})\n.then(res => res.json())\n.then(res => {\nlet document = (new JSDOM(res.result)).window.document\nlet type = document.querySelectorAll('td')\nlet filesize = type[type.length - 15].innerHTML\nlet id = /var k__id = \"(.*?)\"/.exec(document.body.innerHTML) || ['', '']\nlet thumb = document.querySelector('img').src\nlet title = document.querySelector('b').innerHTML\n\npost('https://www.y2mate.com/mates/en60/convert', {\ntype: 'youtube',\n_id: id[1],\nv_id: ytId[1],\najax: '1',\ntoken: '',\nftype: 'mp3',\nfquality: 128\n})\n.then(res => res.json())\n.then(res => {\nlet KB = parseFloat(filesize) * (1000 * /MB$/.test(filesize))\nhasil = []\ntitle = title\naudio =/<a.+?href=\"(.+?)\"/.exec(res.result)[1],\nthumb = thumb\nfilesize = filesize\nhasil.push({audio,thumb,title,filesize})\nresolve(hasil)\nconsole.log(hasil)\n}).catch(reject)\n}).catch(reject)\n} else reject('URL UNVAILD !!')\n})\n}\n\n//Youtube Video\nfunction ytv(url) {\nreturn new Promise((resolve, reject) => {\nif (ytIdRegex.test(url)) {\nlet ytId = ytIdRegex.exec(url)\nurl = 'https://youtu.be/' + ytId[1]\npost('https://www.y2mate.com/mates/en60/analyze/ajax', {\nurl,\nq_auto: 0,\najax: 1\n})\n.then(res => res.json())\n.then(res => {\ndocument = (new JSDOM(res.result)).window.document\nyaha = document.querySelectorAll('td')\nfilesize = yaha[yaha.length - 23].innerHTML\nid = /var k__id = \"(.*?)\"/.exec(document.body.innerHTML) || ['', '']\nthumb = document.querySelector('img').src\ntitle = document.querySelector('b').innerHTML\n\npost('https://www.y2mate.com/mates/en60/convert', {\ntype: 'youtube',\n_id: id[1],\nv_id: ytId[1],\najax: '1',\ntoken: '',\nftype: 'mp4',\nfquality: 360\n})\n.then(res => res.json())\n.then(res => {\nlet KB = parseFloat(filesize) * (1000 * /MB$/.test(filesize))\nhasil = []\nvideo = /<a.+?href=\"(.+?)\"/.exec(res.result)[1],\nhasil.push({video, thumb, title, filesize})\nresolve(hasil)\nconsole.log(hasil)\n}).catch(reject)\n}).catch(reject)\n} else reject('URL INVALID')\n})\n} \n\n//Emoji \nasync function emoji(emoticon) {\nconst emojii = encodeURI(`${emoticon}`)\nvar link = await axios.get(`https://emojipedia.org/${emojii}/`)\nvar $ =cheerio.load(link.data)\nvar apple = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(1) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar google = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(2) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar samsung = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(3) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar microsoft = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(4) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar whatsapp = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(5) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar twitter = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(6) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar facebook = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(7) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar jooxpixel = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(8) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar openmoji = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(9) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar emojidex = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(10) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar messager = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(11) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar LG = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(12) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar HTC = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(13) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar mozilla = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(14) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar softbank = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(15) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar docomo = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(16) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nvar KDDI = $('body > div.container > div.content').find('article > section.vendor-list > ul > li:nth-child(17) > div.vendor-container.vendor-rollout-target > div.vendor-image > img').attr('src');\nconst result = {\napple: apple.replace('120', '240'),\ngoogle: google.replace('120', '240'),\nsamsung: samsung.replace('120', '240'),\nmicrosoft: microsoft.replace('120', '240'),\nwhatsapp: whatsapp.replace('120', '240'),\ntwitter: twitter.replace('120', '240'),\nfacebook: facebook.replace('120', '240'),\njooxPixel: jooxpixel.replace('120', '240'),\nopenemoji: openmoji.replace('120', '240'),\nemojidex: emojidex.replace('120', '240'),\nmessanger: messager.replace('120', '240'),\nLG: LG.replace('120', '240'),\nHTC: HTC.replace('120', '240'),\nmozilla: mozilla.replace('120', '240'),\nsoftbank: softbank.replace('120', '240'),\ndocomo: docomo.replace('120', '240'),\nKDDI: KDDI.replace('120', '240')\n}\nreturn result\nconsole.log(result)\n}\n\n//cuaca\n//Covid\nfunction covid() {\nreturn new Promise(async(resolve, reject) => {\naxios.get('https://covid19.go.id/')\n.then(({ data }) => {\nconst $ = cheerio.load(data)\nconst hasil = [];\n$('#case > div > div > div > div > div:nth-child(2)').each(function(a,b) {\nconst pindo = $(b).find('div:nth-child(3) > strong').text()\nconst mindo = $(b).find('div:nth-child(5) > strong').text()\nconst sindo = $(b).find('div:nth-child(4) > strong').text()\nconst upindo = $(b).find('div.pt-4.text-color-black.text-1').text().trim()\n$('#case > div > div > div > div > div:nth-child(1)').each(function(c,d) {\nconst neg = $(d).find('div:nth-child(3) > strong').text() \nconst pglo = $(d).find('div:nth-child(4) > strong').text()\nconst nglo = $(d).find('div:nth-child(5) > strong').text()\nconst up = $(d).find('div.pt-4.text-color-grey.text-1').text().trim()\nconst result = {\nindonesia : {\nkasus: pindo,\nkematian: mindo,\nsembuh: sindo,\nupdate: upindo.split(':')[1]\n},\nglobal: {\nnegara: neg,\nkasus: pglo,\nkematian: nglo,\nupdate: up.split(':')[1].split('\\n')[0]\n}\n}\nhasil.push(result)\n})\n})\nresolve(hasil)\nconsole.log(hasil)\n})\n.catch(reject)\n})\n}\n\n//mediafire\nasync function mediafire(url) {\nlet query = await axios.get(url) \nlet cher = cheerio.load(query.data)\nlet hasil = []\nlet link = cher('a#downloadButton').attr('href')\nlet size = cher('a#downloadButton').text().replace('Download', '').replace('(', '').replace(')', '').replace('\\n', '').replace('\\n', '').replace(' ', '')\nlet seplit = link.split('/')\nlet aurhor = '@arifirazzaq2001'\nlet nama = seplit[5]\nlet mime = nama.split('.')\nmime = mime[1]\nhasil.push({ author, nama, mime, size, link })\nreturn hasil\nconsole.log(hasil)\n}\n\n//Function Tahta\nfunction noise(_var, depth = 4, s = 1024, freq) {\nlet forms = []\nfor (let i = 0; i < depth; i++) forms.push(\nformula(\n_var,\nfreq * rand(40, 80) * (s / 2048)/ s * ((i + 1) / 5),\nrand(-Math.PI, Math.PI),\n(i + 1) / depth * 8,\n0\n)\n)\nreturn forms.join('+')\n}\nfunction formula(_var, freq, offset, amp, add) {\nreturn `(${add.toFixed(3)}+${amp.toFixed(4)}*sin(${offset.toFixed(6)}+2*PI*${_var}*${freq.toFixed(6)}))`\n}\nfunction textArgs(text, background, color, size, fontfile, x = '200' , y = '200', w = 1024, h = 1024) {\nreturn `color=${background}:s=${w}x${h},drawtext=text='${text.replace(/[\\\\]/g, '\\\\$&')}':fontfile='${fontfile.replace(/[\\\\]/g, '\\\\$&')}':x=${x}:y=${y}:fontsize=${size}:fontcolor=${color}`\n}\nfunction pickRandom(list) {\nreturn list[Math.floor(Math.random() * list.length)]\n}\nfunction rand(min, max, q = 0.001) {\nreturn Math.floor((Math.random() * (max - min)) / q) * q\n}\n// Tahta\nfunction tahta(text = '') {\nreturn new Promise((resolve, reject) => {\nlet img = path.join(aesthetic, pickRandom(fs.readdirSync(aesthetic)))\nlet font = path.join(_font, 'Obelix.ttf')\nlet w = 1024\nlet h = w\nlet s = w + 'x' + h\nlet xF = `(${noise('X', 2, w, 1)}+${noise('Y', 1, h, 1)})/2+128`\nlet yF = `((${pickRandom(['', '-'])}${45 * w / 2048}*${pickRandom(['sin', 'cos'])}(X/${w}*4*PI))+${noise('X', 5, w, 0.8)}+${noise('Y', 2, h, 1)})/1.7+128`\nlet fsize = 440 / 2048 * w\nlet lh = 1.5\nlet format = ''\nlet layers = [\n `[v:0]scale=${s}${format}[im]`,\ntextArgs('HARTA', 'black', 'white', fsize, font, '(w-text_w)/2', `(h-text_h)/2-(text_h*${lh})`, w, h) + format + '[top]',\ntextArgs('TAHTA', 'black', 'white', fsize, font, '(w-text_w)/2', `(h-text_h)/2`, w, h) + format + '[mid]',\ntextArgs(text, 'black', 'white', fsize, font, '(w-text_w)/2', `(h-text_h)/2+(text_h*${lh})`, w, h) + format + '[bot]',\n '[top][mid]blend=all_mode=addition[con]',\n '[con][bot]blend=all_mode=addition[txt]',\n `nullsrc=s=${s},geq='r=${xF}:g=${xF}:b=${xF}'[dx]`,\n `nullsrc=s=${s},geq='r=${yF}:g=${yF}:b=${yF}'[dy]`,\n '[txt][dx][dy]displace[wa]',\n '[im][wa]blend=all_mode=multiply:all_opacity=1'\n]\n\nlet o = '_harta_tahta.png'\no = path.join(tmp, o)\nlet args = [\n'-y',\n'-i', img,\n'-filter_complex', layers.join(';'),\n'-frames:v', '1', '_harta_tahta.png'\n]\nconsole.log(layers)\nconsole.log('ffmpeg', ...args)\nspawn('ffmpeg', args)\n .on('error', reject)\n .on('close', () => {\ntry {\nresolve(fs.readFileSync('./_harta_tahta.png'))\nfs.unlinkSync(o)\n} catch (e) {\nreject(e)\n}\n})\n//.stderr.on('data', a => console.log(a+''))\n})\n}\n\n//Style Text\n async function styleText(text) {\nlet res = await fetch('http://qaz.wtf/u/convert.cgi?text=' + encodeURIComponent(text))\nlet html = await res.text()\nlet dom = new JSDOM(html)\nlet table = dom.window.document.querySelector('table').children[0].children\nlet obj = {}\nfor (let tr of table) {\nlet name = tr.querySelector('.aname').innerHTML\nlet content = tr.children[1].textContent.replace(/^\\n/, '').replace(/\\n$/, '')\nobj[name + (obj[name] ? ' Reversed' : '')] = content\n}\nreturn obj\nconsole.log(obj)\n}\n\n//AsmaulHusna\nfunction asmaul() {\nglobal.asmaulhusna = {\n\"result\": {\n\"data\": [\n{\n\"index\": \"1\",\n\"latin\": \"Ar Rahman\",\n\"arabic\": \"الرَّحْمَنُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Pemurah\",\n\"translation_en\": \"The All Beneficent\"\n},\n{\n\"index\": \"2\",\n\"latin\": \"Ar Rahiim\",\n\"arabic\": \"الرَّحِيمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Penyayang\",\n\"translation_en\": \"The Most Merciful\"\n},\n{\n\"index\": \"3\",\n\"latin\": \"Al Malik\",\n\"arabic\": \"الْمَلِكُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Merajai/Memerintah\",\n\"translation_en\": \"The King, The Sovereign\"\n},\n{\n\"index\": \"4\",\n\"latin\": \"Al Quddus\",\n\"arabic\": \"الْقُدُّوسُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Suci\",\n\"translation_en\": \"The Most Holy\"\n},\n{\n\"index\": \"5\",\n\"latin\": \"As Salaam\",\n\"arabic\": \"السَّلاَمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Memberi Kesejahteraan\",\n\"translation_en\": \"Peace and Blessing\"\n},\n{\n\"index\": \"6\",\n\"latin\": \"Al Mu’min\",\n\"arabic\": \"الْمُؤْمِنُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Memberi Keamanan\",\n\"translation_en\": \"The Guarantor\"\n},\n{\n\"index\": \"7\",\n\"latin\": \"Al Muhaimin\",\n\"arabic\": \"الْمُهَيْمِنُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Pemelihara\",\n\"translation_en\": \"The Guardian, the Preserver\"\n},\n{\n\"index\": \"8\",\n\"latin\": \"Al ‘Aziiz\",\n\"arabic\": \"الْعَزِيزُ\",\n\"translation_id\": \"Yang Memiliki Mutlak Kegagahan\",\n\"translation_en\": \"The Almighty, the Self Sufficient\"\n},\n{\n\"index\": \"9\",\n\"latin\": \"Al Jabbar\",\n\"arabic\": \"الْجَبَّارُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Perkasa\",\n\"translation_en\": \"The Powerful, the Irresistible\"\n},\n{\n\"index\": \"10\",\n\"latin\": \"Al Mutakabbir\",\n\"arabic\": \"الْمُتَكَبِّرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Megah,Yang Memiliki Kebesaran\",\n\"translation_en\": \"The Tremendous\"\n},\n{\n\"index\": \"11\",\n\"latin\": \"Al Khaliq\",\n\"arabic\": \"الْخَالِقُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Pencipta\",\n\"translation_en\": \"The Creator\"\n},\n{\n\"index\": \"12\",\n\"latin\": \"Al Baari’\",\n\"arabic\": \"الْبَارِئُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Yang Melepaskan(Membuat, Membentuk, Menyeimbangkan)\",\n\"translation_en\": \"The Maker\"\n},\n{\n\"index\": \"13\",\n\"latin\": \"Al Mushawwir\",\n\"arabic\": \"الْمُصَوِّرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat YangMembentuk Rupa (makhluknya)\",\n\"translation_en\": \"The Fashioner of Forms\"\n},\n{\n\"index\": \"14\",\n\"latin\": \"Al Ghaffaar\",\n\"arabic\": \"الْغَفَّارُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Pengampun\",\n\"translation_en\": \"The Ever Forgiving\"\n},\n{\n\"index\": \"15\",\n\"latin\": \"Al Qahhaar\",\n\"arabic\": \"الْقَهَّارُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Memaksa\",\n\"translation_en\": \"The All Compelling Subduer\"\n},\n{\n\"index\": \"16\",\n\"latin\": \"Al Wahhaab\",\n\"arabic\": \"الْوَهَّابُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Pemberi Karunia\",\n\"translation_en\": \"The Bestower\"\n},\n{\n\"index\": \"17\",\n\"latin\": \"Ar Razzaaq\",\n\"arabic\": \"الرَّزَّاقُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Pemberi Rejeki\",\n\"translation_en\": \"The Ever Providing\"\n},\n{\n\"index\": \"18\",\n\"latin\": \"Al Fattaah\",\n\"arabic\": \"الْفَتَّاحُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Pembuka Rahmat\",\n\"translation_en\": \"The Opener, the Victory Giver\"\n},\n{\n\"index\": \"19\",\n\"latin\": \"Al ‘Aliim\",\n\"arabic\": \"اَلْعَلِيْمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifatMengetahui (Memiliki Ilmu)\",\n\"translation_en\": \"The All Knowing, the Omniscient\"\n},\n{\n\"index\": \"20\",\n\"latin\": \"Al Qaabidh\",\n\"arabic\": \"الْقَابِضُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat YangMenyempitkan (makhluknya)\",\n\"translation_en\": \"The Restrainer, the Straightener\"\n},\n{\n\"index\": \"21\",\n\"latin\": \"Al Baasith\",\n\"arabic\": \"الْبَاسِطُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat YangMelapangkan (makhluknya)\",\n\"translation_en\": \"The Expander, the Munificent\"\n},\n{\n\"index\": \"22\",\n\"latin\": \"Al Khaafidh\",\n\"arabic\": \"الْخَافِضُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat YangMerendahkan (makhluknya)\",\n\"translation_en\": \"The Abaser\"\n},\n{\n\"index\": \"23\",\n\"latin\": \"Ar Raafi’\",\n\"arabic\": \"الرَّافِعُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat YangMeninggikan (makhluknya)\",\n\"translation_en\": \"The Exalter\"\n},\n{\n\"index\": \"24\",\n\"latin\": \"Al Mu’izz\",\n\"arabic\": \"الْمُعِزُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat YangMemuliakan (makhluknya)\",\n\"translation_en\": \"The Giver of Honor\"\n},\n{\n\"index\": \"25\",\n\"latin\": \"Al Mudzil\",\n\"arabic\": \"المُذِلُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifatYang Menghinakan (makhluknya)\",\n\"translation_en\": \"The Giver of Dishonor\"\n},\n{\n\"index\": \"26\",\n\"latin\": \"Al Samii’\",\n\"arabic\": \"السَّمِيعُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mendengar\",\n\"translation_en\": \"The All Hearing\"\n},\n{\n\"index\": \"27\",\n\"latin\": \"Al Bashiir\",\n\"arabic\": \"الْبَصِيرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Melihat\",\n\"translation_en\": \"The All Seeing\"\n},\n{\n\"index\": \"28\",\n\"latin\": \"Al Hakam\",\n\"arabic\": \"الْحَكَمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Menetapkan\",\n\"translation_en\": \"The Judge, the Arbitrator\"\n},\n{\n\"index\": \"29\",\n\"latin\": \"Al ‘Adl\",\n\"arabic\": \"الْعَدْلُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Adil\",\n\"translation_en\": \"The Utterly Just\"\n},\n{\n\"index\": \"30\",\n\"latin\": \"Al Lathiif\",\n\"arabic\": \"اللَّطِيفُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Lembut\",\n\"translation_en\": \"The Subtly Kind\"\n},\n{\n\"index\": \"31\",\n\"latin\": \"Al Khabiir\",\n\"arabic\": \"الْخَبِيرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifatMaha Mengetahui Rahasia\",\n\"translation_en\": \"The All Aware\"\n},\n{\n\"index\": \"32\",\n\"latin\": \"Al Haliim\",\n\"arabic\": \"الْحَلِيمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Penyantun\",\n\"translation_en\": \"The Forbearing, the Indulgent\"\n},\n{\n\"index\": \"33\",\n\"latin\": \"Al ‘Azhiim\",\n\"arabic\": \"الْعَظِيمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Agung\",\n\"translation_en\": \"The Magnificent, the Infinite\"\n},\n{\n\"index\": \"34\",\n\"latin\": \"Al Ghafuur\",\n\"arabic\": \"الْغَفُورُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pengampun\",\n\"translation_en\": \"The All Forgiving\"\n},\n{\n\"index\": \"35\",\n\"latin\": \"As Syakuur\",\n\"arabic\": \"الشَّكُورُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat MahaPembalas Budi (Menghargai)\",\n\"translation_en\": \"The Grateful\"\n},\n{\n\"index\": \"36\",\n\"latin\": \"Al ‘Aliy\",\n\"arabic\": \"الْعَلِيُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Tinggi\",\n\"translation_en\": \"The Sublimely Exalted\"\n},\n{\n\"index\": \"37\",\n\"latin\": \"Al Kabiir\",\n\"arabic\": \"الْكَبِيرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Besar\",\n\"translation_en\": \"The Great\"\n},\n{\n\"index\": \"38\",\n\"latin\": \"Al Hafizh\",\n\"arabic\": \"الْحَفِيظُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Menjaga\",\n\"translation_en\": \"The Preserver\"\n},\n{\n\"index\": \"39\",\n\"latin\": \"Al Muqiit\",\n\"arabic\": \"المُقيِت\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pemberi Kecukupan\",\n\"translation_en\": \"The Nourisher\"\n},\n{\n\"index\": \"40\",\n\"latin\": \"Al Hasiib\",\n\"arabic\": \"الْحسِيبُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat MahaMembuat Perhitungan\",\n\"translation_en\": \"The Reckoner\"\n},\n{\n\"index\": \"41\",\n\"latin\": \"Al Jaliil\",\n\"arabic\": \"الْجَلِيلُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mulia\",\n\"translation_en\": \"The Majestic\"\n},\n{\n\"index\": \"42\",\n\"latin\": \"Al Kariim\",\n\"arabic\": \"الْكَرِيمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pemurah\",\n\"translation_en\": \"The Bountiful, the Generous\"\n},\n{\n\"index\": \"43\",\n\"latin\": \"Ar Raqiib\",\n\"arabic\": \"الرَّقِيبُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mengawasi\",\n\"translation_en\": \"The Watchful\"\n},\n{\n\"index\": \"44\",\n\"latin\": \"Al Mujiib\",\n\"arabic\": \"الْمُجِيبُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mengabulkan\",\n\"translation_en\": \"The Responsive, the Answerer\"\n},\n{\n\"index\": \"45\",\n\"latin\": \"Al Waasi’\",\n\"arabic\": \"الْوَاسِعُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Luas\",\n\"translation_en\": \"The Vast, the All Encompassing\"\n},\n{\n\"index\": \"46\",\n\"latin\": \"Al Hakiim\",\n\"arabic\": \"الْحَكِيمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maka Bijaksana\",\n\"translation_en\": \"The Wise\"\n},\n{\n\"index\": \"47\",\n\"latin\": \"Al Waduud\",\n\"arabic\": \"الْوَدُودُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pencinta\",\n\"translation_en\": \"The Loving, the Kind One\"\n},\n{\n\"index\": \"48\",\n\"latin\": \"Al Majiid\",\n\"arabic\": \"الْمَجِيدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mulia\",\n\"translation_en\": \"The All Glorious\"\n},\n{\n\"index\": \"49\",\n\"latin\": \"Al Baa’its\",\n\"arabic\": \"الْبَاعِثُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Membangkitkan\",\n\"translation_en\": \"The Raiser of the Dead\"\n},\n{\n\"index\": \"50\",\n\"latin\": \"As Syahiid\",\n\"arabic\": \"الشَّهِيدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Menyaksikan\",\n\"translation_en\": \"The Witness\"\n},\n{\n\"index\": \"51\",\n\"latin\": \"Al Haqq\",\n\"arabic\": \"الْحَقُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Benar\",\n\"translation_en\": \"The Truth, the Real\"\n},\n{\n\"index\": \"52\",\n\"latin\": \"Al Wakiil\",\n\"arabic\": \"الْوَكِيلُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Memelihara\",\n\"translation_en\": \"The Trustee, the Dependable\"\n},\n{\n\"index\": \"53\",\n\"latin\": \"Al Qawiyyu\",\n\"arabic\": \"الْقَوِيُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Kuat\",\n\"translation_en\": \"The Strong\"\n},\n{\n\"index\": \"54\",\n\"latin\": \"Al Matiin\",\n\"arabic\": \"الْمَتِينُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Kokoh\",\n\"translation_en\": \"The Firm, the Steadfast\"\n},\n{\n\"index\": \"55\",\n\"latin\": \"Al Waliyy\",\n\"arabic\": \"الْوَلِيُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Melindungi\",\n\"translation_en\": \"The Protecting Friend, Patron, and Helper\"\n},\n{\n\"index\": \"56\",\n\"latin\": \"Al Hamiid\",\n\"arabic\": \"الْحَمِيدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Terpuji\",\n\"translation_en\": \"The All Praiseworthy\"\n},\n{\n\"index\": \"57\",\n\"latin\": \"Al Mushii\",\n\"arabic\": \"الْمُحْصِي\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mengkalkulasi\",\n\"translation_en\": \"The Accounter, the Numberer of All\"\n},\n{\n\"index\": \"58\",\n\"latin\": \"Al Mubdi’\",\n\"arabic\": \"الْمُبْدِئُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Memulai\",\n\"translation_en\": \"The Producer, Originator, and Initiator of all\"\n},\n{\n\"index\": \"59\",\n\"latin\": \"Al Mu’iid\",\n\"arabic\": \"الْمُعِيدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat MahaMengembalikan Kehidupan\",\n\"translation_en\": \"The Reinstater Who Brings Back All\"\n},\n{\n\"index\": \"60\",\n\"latin\": \"Al Muhyii\",\n\"arabic\": \"الْمُحْيِي\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Menghidupkan\",\n\"translation_en\": \"The Giver of Life\"\n},\n{\n\"index\": \"61\",\n\"latin\": \"Al Mumiitu\",\n\"arabic\": \"اَلْمُمِيتُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mematikan\",\n\"translation_en\": \"The Bringer of Death, the Destroyer\"\n},\n{\n\"index\": \"62\",\n\"latin\": \"Al Hayyu\",\n\"arabic\": \"الْحَيُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Hidup\",\n\"translation_en\": \"The Ever Living\"\n},\n{\n\"index\": \"63\",\n\"latin\": \"Al Qayyuum\",\n\"arabic\": \"الْقَيُّومُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mandiri\",\n\"translation_en\": \"The Self Subsisting Sustainer of All\"\n},\n{\n\"index\": \"64\",\n\"latin\": \"Al Waajid\",\n\"arabic\": \"الْوَاجِدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Penemu\",\n\"translation_en\": \"The Perceiver, the Finder, the Unfailing\"\n},\n{\n\"index\": \"65\",\n\"latin\": \"Al Maajid\",\n\"arabic\": \"الْمَاجِدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mulia\",\n\"translation_en\": \"The Illustrious, the Magnificent\"\n},\n{\n\"index\": \"66\",\n\"latin\": \"Al Wahiid\",\n\"arabic\": \"الْواحِدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Tunggal\",\n\"translation_en\": \"The One, The Unique, Manifestation of Unity\"\n},\n{\n\"index\": \"67\",\n\"latin\": \"Al ‘Ahad\",\n\"arabic\": \"اَلاَحَدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Esa\",\n\"translation_en\": \"The One, the All Inclusive, the Indivisible\"\n},\n{\n\"index\": \"68\",\n\"latin\": \"As Shamad\",\n\"arabic\": \"الصَّمَدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat MahaDibutuhkan, Tempat Meminta\",\n\"translation_en\": \"The Self Sufficient, the Impregnable,the Eternally Besought of All, the Everlasting\"\n},\n{\n\"index\": \"69\",\n\"latin\": \"Al Qaadir\",\n\"arabic\": \"الْقَادِرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat MahaMenentukan, Maha Menyeimbangkan\",\n\"translation_en\": \"The All Able\"\n},\n{\n\"index\": \"70\",\n\"latin\": \"Al Muqtadir\",\n\"arabic\": \"الْمُقْتَدِرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Berkuasa\",\n\"translation_en\": \"The All Determiner, the Dominant\"\n},\n{\n\"index\": \"71\",\n\"latin\": \"Al Muqaddim\",\n\"arabic\": \"الْمُقَدِّمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mendahulukan\",\n\"translation_en\": \"The Expediter, He who brings forward\"\n},\n{\n\"index\": \"72\",\n\"latin\": \"Al Mu’akkhir\",\n\"arabic\": \"الْمُؤَخِّرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mengakhirkan\",\n\"translation_en\": \"The Delayer, He who puts far away\"\n},\n{\n\"index\": \"73\",\n\"latin\": \"Al Awwal\",\n\"arabic\": \"الأوَّلُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Awal\",\n\"translation_en\": \"The First\"\n},\n{\n\"index\": \"74\",\n\"latin\": \"Al Aakhir\",\n\"arabic\": \"الآخِرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Akhir\",\n\"translation_en\": \"The Last\"\n},\n{\n\"index\": \"75\",\n\"latin\": \"Az Zhaahir\",\n\"arabic\": \"الظَّاهِرُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Nyata\",\n\"translation_en\": \"The Manifest; the All Victorious\"\n},\n{\n\"index\": \"76\",\n\"latin\": \"Al Baathin\",\n\"arabic\": \"الْبَاطِنُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Ghaib\",\n\"translation_en\": \"The Hidden; the All Encompassing\"\n},\n{\n\"index\": \"77\",\n\"latin\": \"Al Waali\",\n\"arabic\": \"الْوَالِي\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Memerintah\",\n\"translation_en\": \"The Patron\"\n},\n{\n\"index\": \"78\",\n\"latin\": \"Al Muta’aalii\",\n\"arabic\": \"الْمُتَعَالِي\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Tinggi\",\n\"translation_en\": \"The Self Exalted\"\n},\n{\n\"index\": \"79\",\n\"latin\": \"Al Barri\",\n\"arabic\": \"الْبَرُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Penderma\",\n\"translation_en\": \"The Most Kind and Righteous\"\n},\n{\n\"index\": \"80\",\n\"latin\": \"At Tawwaab\",\n\"arabic\": \"التَّوَابُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Penerima Tobat\",\n\"translation_en\": \"The Ever Returning, Ever Relenting\"\n},\n{\n\"index\": \"81\",\n\"latin\": \"Al Muntaqim\",\n\"arabic\": \"الْمُنْتَقِمُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Penuntut Balas\",\n\"translation_en\": \"The Avenger\"\n},\n{\n\"index\": \"82\",\n\"latin\": \"Al Afuww\",\n\"arabic\": \"العَفُوُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pemaaf\",\n\"translation_en\": \"The Pardoner, the Effacer of Sins\"\n},\n{\n\"index\": \"83\",\n\"latin\": \"Ar Ra`uuf\",\n\"arabic\": \"الرَّؤُوفُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pengasih\",\n\"translation_en\": \"The Compassionate, the All Pitying\"\n},\n{\n\"index\": \"84\",\n\"latin\": \"Malikul Mulk\",\n\"arabic\": \"مَالِكُ الْمُلْكِ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifatPenguasa Kerajaan (Semesta)\",\n\"translation_en\": \"The Owner of All Sovereignty\"\n},\n{\n\"index\": \"85\",\n\"latin\": \"Dzul JalaaliWal Ikraam\",\n\"arabic\": \"ذُوالْجَلاَلِوَالإكْرَامِ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat PemilikKebesaran dan Kemuliaan\",\n\"translation_en\": \"The Lord of Majesty and Generosity\"\n},\n{\n\"index\": \"86\",\n\"latin\": \"Al Muqsith\",\n\"arabic\": \"الْمُقْسِطُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Adil\",\n\"translation_en\": \"The Equitable, the Requiter\"\n},\n{\n\"index\": \"87\",\n\"latin\": \"Al Jamii’\",\n\"arabic\": \"الْجَامِعُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mengumpulkan\",\n\"translation_en\": \"The Gatherer, the Unifier\"\n},\n{\n\"index\": \"88\",\n\"latin\": \"Al Ghaniyy\",\n\"arabic\": \"الْغَنِيُّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Berkecukupan\",\n\"translation_en\": \"The All Rich, the Independent\"\n},\n{\n\"index\": \"89\",\n\"latin\": \"Al Mughnii\",\n\"arabic\": \"الْمُغْنِي\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Memberi Kekayaan\",\n\"translation_en\": \"The Enricher, the Emancipator\"\n},\n{\n\"index\": \"90\",\n\"latin\": \"Al Maani\",\n\"arabic\": \"اَلْمَانِعُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Mencegah\",\n\"translation_en\": \"The Withholder, the Shielder, the Defender\"\n},\n{\n\"index\": \"91\",\n\"latin\": \"Ad Dhaar\",\n\"arabic\": \"الضَّارَّ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Memberi Derita\",\n\"translation_en\": \"The Distressor, the Harmer\"\n},\n{\n\"index\": \"92\",\n\"latin\": \"An Nafii’\",\n\"arabic\": \"النَّافِعُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Memberi Manfaat\",\n\"translation_en\": \"The Propitious, the Benefactor\"\n},\n{\n\"index\": \"93\",\n\"latin\": \"An Nuur\",\n\"arabic\": \"النُّورُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Bercahaya(Menerangi, Memberi Cahaya)\",\n\"translation_en\": \"The Light\"\n},\n{\n\"index\": \"94\",\n\"latin\": \"Al Haadii\",\n\"arabic\": \"الْهَادِي\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pemberi Petunjuk\",\n\"translation_en\": \"The Guide\"\n},\n{\n\"index\": \"95\",\n\"latin\": \"Al Baadii\",\n\"arabic\": \"الْبَدِيعُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pencipta\",\n\"translation_en\": \"Incomparable, the Originator\"\n},\n{\n\"index\": \"96\",\n\"latin\": \"Al Baaqii\",\n\"arabic\": \"اَلْبَاقِي\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Kekal\",\n\"translation_en\": \"The Ever Enduring and Immutable\"\n},\n{\n\"index\": \"97\",\n\"latin\": \"Al Waarits\",\n\"arabic\": \"الْوَارِثُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pewaris\",\n\"translation_en\": \"The Heir, the Inheritor of All\"\n},\n{\n\"index\": \"98\",\n\"latin\": \"Ar Rasyiid\",\n\"arabic\": \"الرَّشِيدُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Pandai\",\n\"translation_en\": \"The Guide, Infallible Teacher, and Knower\"\n},\n{\n\"index\": \"99\",\n\"latin\": \"As Shabuur\",\n\"arabic\": \"الصَّبُورُ\",\n\"translation_id\": \"Yang Memiliki Mutlak sifat Maha Sabar\",\n\"translation_en\": \"The Patient\"\n}\n]\n}\n}\nlet asmaulhusna = JSON.stringify(global.asmaulhusna)\nlet json = JSON.parse(asmaulhusna)\nlet data = json.result.data.map((v, i) => `${i + 1}.\\n*• Latin:* ${v.latin}\\n*• Arab:* ${v.arabic}\\n*• Artinya:* ${v.translation_id}\\n*• Artinya en:* ${v.translation_en}`).join('\\n\\n')\ncontoh = `*ASMAUL-HUSNA*\\n\\n`\nhasil = []\nhasil.push(contoh + data)\nreturn hasil\nconsole.log(hasil)\n}\n\n//Facebook\nfunction fb(link){\n\treturn new Promise((resolve,reject) => {\n\tlet config = {\n'url': link\n}\n\taxios('https://www.getfvid.com/downloader',{\n\tmethod: 'POST',\n\tdata: new URLSearchParams(Object.entries(config)),\n\theaders: {\n\"content-type\": \"application/x-www-form-urlencoded\",\n\"user-agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1310699039.1624884412; _pbjs_userid_consent_data=3524755945110770; cto_bidid=rQH5Tl9NNm5IWFZsem00SVVuZGpEd21sWnp0WmhUeTZpRXdkWlRUOSUyQkYlMkJQQnJRSHVPZ3Fhb1R2UUFiTWJuVGlhVkN1TGM2anhDT1M1Qk0ydHlBb21LJTJGNkdCOWtZalRtZFlxJTJGa3FVTG1TaHlzdDRvJTNE; cto_bundle=g1Ka319NaThuSmh6UklyWm5vV2pkb3NYaUZMeWlHVUtDbVBmeldhNm5qVGVwWnJzSUElMkJXVDdORmU5VElvV2pXUTJhQ3owVWI5enE1WjJ4ZHR5NDZqd1hCZnVHVGZmOEd0eURzcSUyQkNDcHZsR0xJcTZaRFZEMDkzUk1xSmhYMlY0TTdUY0hpZm9NTk5GYXVxWjBJZTR0dE9rQmZ3JTNEJTNE; _gid=GA1.2.908874955.1625126838; __gads=ID=5be9d413ff899546-22e04a9e18ca0046:T=1625126836:RT=1625126836:S=ALNI_Ma0axY94aSdwMIg95hxZVZ-JGNT2w; cookieconsent_status=dismiss\"\n\t}\n})\n\t.then(async({ data }) => {\nconst $ = cheerio.load(data);\t\nresolve({\n\tvideo: $('div.col-md-4.btns-download > p:nth-child(1) > a').attr('href'),\n\taudio: $('div.col-md-4.btns-download > p:nth-child(3) > a').attr('href')\n\t})\n})\n\t.catch(reject)\n\t})\n}\n\n//IgStalk\nfunction igstalk(username){\n\treturn new Promise((resolve,reject) => {\naxios.get('https://www.instagram.com/'+ username +'/?__a=1',{\n\tmethod: 'GET',\n\theaders: {\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\",\n\"cookie\": \"mid=XBXl1AALAAEbFoAEfNjZlMMG9dwX; ig_did=91E66A48-5AA2-445D-BFE6-84DC4456DE8F; fbm_124024574287414=base_domain=.instagram.com; ig_nrcb=1; shbid=\\\"12737\\0544008624962\\0541656157971:01f72a5102dc07af6845adf923ca70eb86e81ab95fa9dbfdaf157c9eef0e82fd1f10fe23\\\"; shbts=\\\"1624621971\\0544008624962\\0541656157971:01f74841fba8e77a0066b47ea891dec8fba6fdf9216c0816f9fb3532292f769828800ae2\\\"; fbsr_124024574287414=86D8femzH4_KFW4hd3Z6XFdowU6lG-uXsXRQDNl44VM.eyJ1c2VyX2lkIjoiMTAwMDA0Njc2MDc4Nzg5IiwiY29kZSI6IkFRQngzXzVOejdwVnBwby1LRGRUdEYxUFlzcUdDQXJjcmJfb05HaWFvYkNvOGtLN2paam50bHpvMTNOakFnTzVKOHQ5M0V3U3dvNkRtZ0RiY1l1Z3dQSTIybnExOUxLd3lpZTVfZll0bkNXZXBuM1hoYWFLX0w2R0pZaUpzaDBOTDBhb3pmTVBkRTVQRC12X3FnbUgxLXZYdGVmcHhfaFU0aUZNZVMxNHhFUk5OblJyMmxYTUpDa2RFYTdISXNCR2swdHhaaGF0NUt4UDR3cWZTamRwcVFfQ19sa1RUek5fU0taUTYtMjlzTkdnLUVWb3oxMUZWc3Q2OEx2ZnlIY0V0eFp0ZUxacXpiWmh6MzZrVl83VmFGd0FqVnVkTGFQN2VzT3ZRcmlTQ2pLUE5XbVcyNWhudzIzejJBSnVURW00YWR1cmN6a3ZLWU1icTd2SnN0SVdJV09RIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUJBZmJuQ3haQzZMd3h4MDFJV2MyZ3dsQ3k3Qmp0b05UNUY0WDY2NHBrUzRQeERNVXRsdmhWWkI3SXE0MGsyZ2hJQm55RHRPcW5iVjlPbUNiWGhyTFBaQUhBQjFzVFpBdHF6RFEzVTROUkhOU1V6MFVXWkNtTEdLcDNNWDRoazVIOURLbERHN0QwUlhZNHY4dHBCdVNNYjN4dnBTRGtQcHdYRlBXVU82VCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjI0NjIxOTgxfQ; fbsr_124024574287414=86D8femzH4_KFW4hd3Z6XFdowU6lG-uXsXRQDNl44VM.eyJ1c2VyX2lkIjoiMTAwMDA0Njc2MDc4Nzg5IiwiY29kZSI6IkFRQngzXzVOejdwVnBwby1LRGRUdEYxUFlzcUdDQXJjcmJfb05HaWFvYkNvOGtLN2paam50bHpvMTNOakFnTzVKOHQ5M0V3U3dvNkRtZ0RiY1l1Z3dQSTIybnExOUxLd3lpZTVfZll0bkNXZXBuM1hoYWFLX0w2R0pZaUpzaDBOTDBhb3pmTVBkRTVQRC12X3FnbUgxLXZYdGVmcHhfaFU0aUZNZVMxNHhFUk5OblJyMmxYTUpDa2RFYTdISXNCR2swdHhaaGF0NUt4UDR3cWZTamRwcVFfQ19sa1RUek5fU0taUTYtMjlzTkdnLUVWb3oxMUZWc3Q2OEx2ZnlIY0V0eFp0ZUxacXpiWmh6MzZrVl83VmFGd0FqVnVkTGFQN2VzT3ZRcmlTQ2pLUE5XbVcyNWhudzIzejJBSnVURW00YWR1cmN6a3ZLWU1icTd2SnN0SVdJV09RIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUJBZmJuQ3haQzZMd3h4MDFJV2MyZ3dsQ3k3Qmp0b05UNUY0WDY2NHBrUzRQeERNVXRsdmhWWkI3SXE0MGsyZ2hJQm55RHRPcW5iVjlPbUNiWGhyTFBaQUhBQjFzVFpBdHF6RFEzVTROUkhOU1V6MFVXWkNtTEdLcDNNWDRoazVIOURLbERHN0QwUlhZNHY4dHBCdVNNYjN4dnBTRGtQcHdYRlBXVU82VCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjI0NjIxOTgxfQ; csrftoken=PpiPMEl0R2pAwThsw4NXynO6cVIXHZDo; ds_user_id=38316792800; sessionid=38316792800:rQj5Tr3g5zkg7b:4; rur=\\\"RVA\\05438316792800\\0541656158332:01f759cf624bef147397144805bb4c26f6c8b36a232e0f5738c570ee492f6b629f84f6e5\\\"\"\n\t}\n})\n.then(({ data }) => {\n\tconst user = data.graphql.user\nlet result = {\nid: user.id,\nbio: user.biography,\nfollowers: user.edge_followed_by.count,\nfollowing: user.edge_follow.count,\nfullName: user.full_name,\nhighlightCount: user.highlight_reel_count,\nisBusinessAccount: user.is_business_account,\nisRecentUser: user.is_joined_recently,\naccountCategory: user.business_category_name,\nlinkedFacebookPage: user.connected_fb_page,\nisPrivate: user.is_private,\nisVerified: user.is_verified,\nprofilePicHD: user.profile_pic_url_hd,\nusername: user.username,\npostsCount: user.edge_owner_to_timeline_media.count\n\t}\nresolve(result)\nconsole.log(result)\n})\n\t.catch(reject)\n\t})\n}\n\n//TebakGambar\nfunction tebakgambar() {\n\treturn new Promise(async(resolve, reject) => {\naxios.get('https://jawabantebakgambar.net/all-answers/')\n.then(({ data }) => {\nconst $ = cheerio.load(data)\nconst result = [];\nlet random = Math.floor(Math.random() * 2836) + 2;\nlet link2 = 'https://jawabantebakgambar.net'\n$(`#images > li:nth-child(${random}) > a`).each(function(a, b) {\nconst img = link2 + $(b).find('img').attr('data-src')\nconst jwb = $(b).find('img').attr('alt')\nresult.push({\n\timage: img,\n\tjawaban: jwb\n})\n\tresolve(result)\n\tconsole.log(result)\n})\n\t})\n.catch(reject)\n\t})\n}\n\n//PlayStore\nfunction playstore(name){\n\treturn new Promise((resolve, reject) => {\naxios.get('https://play.google.com/store/search?q='+ name +'&c=apps')\n.then(({ data }) => {\n\tconst $ = cheerio.load(data)\n\tlet ln = [];\n\tlet nm = [];\n\tlet dv = [];\n\tlet lm = [];\n\tconst result = [];\n\t$('div.wXUyZd > a').each(function(a,b){\nconst link = 'https://play.google.com' + $(b).attr('href')\nln.push(link);\n\t})\n\t$('div.b8cIId.ReQCgd.Q9MA7b > a > div').each(function(d,e){\nconst name = $(e).text().trim()\nnm.push(name);\n\t})\n\t$('div.b8cIId.ReQCgd.KoLSrc > a > div').each(function(f,g){\nconst dev = $(g).text().trim();\ndv.push(dev)\n\t})\n\t$('div.b8cIId.ReQCgd.KoLSrc > a').each(function(h,i){\nconst limk = 'https://play.google.com' + $(i).attr('href');\nlm.push(limk);\n\t})\t\nfor (let i = 0; i < ln.length; i++){\n\tresult.push({\nname: nm[i],\nlink: ln[i],\ndeveloper: dv[i]\n\t})\n\t}\nresolve(result)\n})\nconsole.log(result)\n\t.catch(reject)\n\t})\n}\n\n//Twitter\nfunction twitter(link){\n\treturn new Promise((resolve, reject) => {\nlet config = {\n\t'URL': link\n}\naxios.post('https://twdown.net/download.php',qs.stringify(config),{\n\theaders: {\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1388798541.1625064838; _gid=GA1.2.1351476739.1625064838; __gads=ID=7a60905ab10b2596-229566750eca0064:T=1625064837:RT=1625064837:S=ALNI_Mbg3GGC2b3oBVCUJt9UImup-j20Iw; _gat=1\"\n\t}\n})\n.then(({ data }) => {\nconst $ = cheerio.load(data)\nresolve({\ndesc: $('div:nth-child(1) > div:nth-child(2) > p').text().trim(),\nthumb: $('div:nth-child(1) > img').attr('src'),\nHD: $('tbody > tr:nth-child(1) > td:nth-child(4) > a').attr('href'),\nSD: $('tr:nth-child(2) > td:nth-child(4) > a').attr('href'),\naudio: 'https://twdown.net/' + $('tr:nth-child(4) > td:nth-child(4) > a').attr('href')\n\t})\n})\n\t.catch(reject)\n\t})\n}\n\n//KodePos\nasync function kodepos(kota) {\nreturn new Promise(async (resolve, reject) => {\nlet postalcode = 'https://carikodepos.com/';\nlet url = postalcode+'?s='+kota;\nawait request.get({\nheaders: {\n'Accept': 'application/json, text/javascript, */*;',\n'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4209.3 Mobile Safari/537.36',\n'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n'Accept-Language': 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7',\n'Origin': postalcode,\n'Referer': postalcode\n},\nurl: url,\n}, function(error, response, body) {\nif (error) return reject(error);\nlet $ = cheerio.load(body);\nvar search = $('tr');\nif (!search.length) return reject('No result could be found');\nvar results = [];\nsearch.each(function(i) {\nif (i != 0) {\nvar td = $(this).find('td');\nvar result = {};\ntd.each(function(i) {\nvar value = $(this).find('a').html();\nvar key = (i == 0) ? 'province' : (i == 1) ? 'city' : (i == 2) ? 'subdistrict' : (i == 3) ? 'urban' : 'postalcode';\nresult[key] = value;\n})\nresults.push(result);\n}\n});\nreturn resolve(results);\nconsole.log(results)\n});\n});\n};\n\n//Gempa\nfunction gempa() {\nreturn new Promise((resolve, reject) => {\naxios.get('https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg').then((response) => {\nconst $ = cheerio.load(response.data)\nconst urlElems = $('table.table-hover.table-striped')\nfor (let i = 0; i < urlElems.length; i++) {\nconst urlSpan = $(urlElems[i]).find('tbody')[0]\nif (urlSpan) {\nconst urlData = $(urlSpan).find('tr')[0]\nvar Kapan = $(urlData).find('td')[1]\nvar Letak = $(urlData).find('td')[2]\nvar Magnitudo = $(urlData).find('td')[3]\nvar Kedalaman = $(urlData).find('td')[4]\nvar Wilayah = $(urlData).find('td')[5]\nvar lintang = $(Letak).text().split(' ')[0]\nvar bujur = $(Letak).text().split(' ')[2]\nvar hasil = {\nWaktu: $(Kapan).text(),\nLintang: lintang,\nBujur: bujur,\nMagnitudo: $(Magnitudo).text(),\nKedalaman: $(Kedalaman).text().replace(/\\t/g, '').replace(/I/g, ''),\nWilayah: $(Wilayah).text().replace(/\\t/g, '').replace(/I/g, '').replace('-','').replace(/\\r/g, '').split('\\n')[0],\nMap: ''\n}\nresolve(hasil);\nconsole.log(hasil)\n}\n}\n})\n})\n}\n\n//ServerMc\nfunction servermc() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://minecraftpocket-servers.com/country/indonesia/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"tr\").each(function(c, d) {\nip = $(d).find(\"button.btn.btn-secondary.btn-sm\").eq(1).text().trim().replace(':19132', '')\nport = '19132'\nversi = $(d).find(\"a.btn.btn-info.btn-sm\").text()\nplayer = $(d).find(\"td.d-none.d-md-table-cell > strong\").eq(1).text().trim()\nconst Data = {\nip: ip,\nport: port,\nversi: versi,\nplayer: player\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\n//HappyMod\nfunction happymod(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.happymod.com/search.html?q=${query}`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.pdt-app-box\").each(function(c, d) {\nname = $(d).find(\"a\").text().trim();\nicon = $(d).find(\"img.lazy\").attr('data-original');\nlink = $(d).find(\"a\").attr('href');\nlink2 = `https://www.happymod.com${link}`\nconst Data = {\n\nicon: icon,\nname: name,\nlink: link2\n}\nhasil.push(Data)\n })\n resolve(hasil);\n}).catch(reject)\n});\n}\n\n//Halal\nfunction halal(query, page) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.halalmui.org/mui14/searchproduk/search/?kategori=nama_produk&katakunci=${query}&page=${page}`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"tr > td\").each(function(c, d) {\nname = $(d).find(\"span\").eq(0).text()\nnamee = name.replace('Nama Produk :', '')\nnmr = $(d).find(\"span\").eq(1).text()\nnmrr = nmr.replace('Nomor Sertifikat :', '')\nconst Data = {\ntitle: namee,\nnomorsertifikat: nmrr\n}\nhasil.push(Data)\nresolve(hasil)\n}).catch(reject)\n})\n})\n}\n\n//McPe Dl\nfunction mcpedl(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://mcpedl.com/?s=${query}`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.post\").each(function(c, d) {\nname = $(d).find(\"h2.post__title\").text().trim();\ndate = $(d).find(\"div.post__date\").text().trim();\ndesc = $(d).find(\"p.post__text\").text().trim();\ncategory = $(d).find(\"div.post__category > a\").text().trim();\nlink = $(d).find(\"a\").attr('href')\nlink2 = `https://mcpedl.com${link}`\nconst Data = {\nname: name,\ncategory: category,\ndate: date,\ndesc: desc,\nlink: link2\n}\nhasil.push(Data)\n\n})\n resolve(hasil)\n}).catch(reject)\n});\n}\n\n//Sfile Seaech\nfunction sfilesearch(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://sfile.mobi/search.php?q=${query}&search=Search`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.list\").each(function(i, cuk) {\nico= $(cuk).find(\"img\").attr(\"src\");\nlin= $(cuk).find(\"a\").attr(\"href\");\nname= $(cuk).find(\"a\").text();\nconst Data = {\nicon: ico,\nname: name,\nlink: lin\n}\nhasil.push(Data)\n\n})\nresolve(hasil)\n});\n});\n}\n\n//Hoax\nfunction hoax() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://turnbackhoax.id/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"figure.mh-loop-thumb\").each(function(a, b) {\n$(\"div.mh-loop-content.mh-clearfix\").each(function(c, d) {\nlink = $(d).find(\"h3.entry-title.mh-loop-title > a\").attr('href');\nimg = $(b).find(\"img.attachment-mh-magazine-lite-medium.size-mh-magazine-lite-medium.wp-post-image\").attr('src');\ntitle = $(d).find(\"h3.entry-title.mh-loop-title > a\").text().trim();\ndesc = $(d).find(\"div.mh-excerpt > p\").text().trim();\ndate = $(d).find(\"span.mh-meta-date.updated\").text().trim();\nconst Data = {\n\ntitle: title,\nthumbnail: img,\ndesc: desc,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\n})\nresolve(hasil)\n}).catch(reject)\n});\n}\n\n//IgVid\nfunction igvideo(link) {\nreturn new Promise(async(resolve, reject) => {\nlet config = {\n'url': link,\n'submit': ''\n}\naxios('https://downloadgram.org/video-downloader.php',{\nmethod: 'POST',\ndata : new URLSearchParams(Object.entries(config)),\nheaders: {\n\"cookie\": \"_ga=GA1.2.623704211.1625264926; __gads=ID=a078e4fc2781b47b-22330cd520ca006e:T=1625264920:RT=1625264920:S=ALNI_MYS-jyPCjNa94DU8n-sX4aNF-ODOg; __atssc=google%3B3; _gid=GA1.2.1953813019.1625397379; __atuvc=4%7C26%2C6%7C27; __atuvs=60e2ab6d67a322ec003\",\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\"\n}\n})\n.then(tod => {\nconst $ = cheerio.load(tod.data)\nresolve({\nlink: $('#downloadBox > a').attr('href')\n})\n})\n})\n} \n\n//IgFoto \nfunction igfoto(link) {\nreturn new Promise(async(resolve, reject) => {\nlet config = {\n'url': link,\n'submit': ''\n}\naxios('https://downloadgram.org/photo-downloader.php',{\nmethod: 'POST',\ndata : new URLSearchParams(Object.entries(config)),\nheaders: {\n\"cookie\": \"_ga=GA1.2.623704211.1625264926; __gads=ID=a078e4fc2781b47b-22330cd520ca006e:T=1625264920:RT=1625264920:S=ALNI_MYS-jyPCjNa94DU8n-sX4aNF-ODOg; __atssc=google%3B3; _gid=GA1.2.1953813019.1625397379; __atuvc=4%7C26%2C6%7C27; __atuvs=60e2ab6d67a322ec003\",\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\"\n}\n})\n.then(tod => {\nconst $ = cheerio.load(tod.data)\nresolve({\nlink: $('#downloadBox > a').attr('href')\n})\n})\n})\n}\n\n//IgTv\nfunction igtv(link) {\nreturn new Promise(async(resolve, reject) => {\nlet config = {\n'url': link,\n'submit': ''\n}\naxios('https://downloadgram.org/igtv-downloader.php',{\nmethod: 'POST',\ndata : new URLSearchParams(Object.entries(config)),\nheaders: {\n\"cookie\": \"_ga=GA1.2.623704211.1625264926; __gads=ID=a078e4fc2781b47b-22330cd520ca006e:T=1625264920:RT=1625264920:S=ALNI_MYS-jyPCjNa94DU8n-sX4aNF-ODOg; __atssc=google%3B3; _gid=GA1.2.1953813019.1625397379; __atuvc=4%7C26%2C6%7C27; __atuvs=60e2ab6d67a322ec003\",\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\"\n}\n})\n.then(tod => {\nconst $ = cheerio.load(tod.data)\nresolve({\nlink: $('#downloadBox > a').attr('href')\n})\n})\n})\n}\n//Jalan Tikus\nfunction jalantikus(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://jalantikus.com/search/articles/${query}/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.post-block-with-category\").each(function(c, d) {\ntitle = $(d).find(\"a.post-block-with-category__link\").text()\ncategory = $(d).find(\"a.post-info__category-link\").text()\ndate = $(d).find(\"time\").text()\nlink = `https://jalantikus.com${$(d).find(\"a\").attr('href')}`\nconst Data = {\ntitle: title,\ncategory: category,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\n//Tribun News\nfunction tribunnews() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.tribunnews.com/news`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"li.p1520.art-list.pos_rel\").each(function(c, d) {\ntitle = $(d).find(\"div.mr140 > h3 > a.f20.ln24.fbo.txt-oev-2\").text().trim()\nthumb = $(d).find(\"div.fr.mt5.pos_rel > a > img.shou2.bgwhite\").attr('src')\ndesc = $(d).find(\"div.grey2.pt5.f13.ln18.txt-oev-3\").text().trim()\ndate = $(d).find(\"div.grey.pt5 > time.foot.timeago\").text().trim()\nlink = $(d).find(\"div.fr.mt5.pos_rel > a\").attr('href')\nconst Data = {\ntitle: title,\nthumb: thumb,\ndesc: desc,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\n//Kompas News\nfunction kompasnews() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://news.kompas.com/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.col-bs9-3\").each(function(c, d) {\ntitle = $(d).find(\"h3.article__title > a.article__link\").text()\ndesc = $(d).find(\"div.article__lead\").text().trim()\ndate = $(d).find(\"div.article__date\").text().trim()\nlink = $(d).find(\"h3.article__title > a.article__link\").attr('href')\nconst Data = {\ntitle: title,\ndesc: desc,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\n//WallPapper\nfunction wallpapper(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.wallpaperflare.com/search?wallpaper=${query}`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"#gallery > li > figure> a\").each(function(i, cuk) {\nconst img = $(cuk).find(\"img\").attr('data-src');\nhasil.push(img)\n})\nresolve(hasil)\n}).catch(reject);\n});\n}\n\nfunction wallpaper(title, page = '1') {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('div.grid-item').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('div.info > a > h3').text(),\n                    type: $(b).find('div.info > a:nth-child(2)').text(),\n                    image: $(b).find('img').attr('data-src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\n//ApkMody\nfunction apkmody(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://apkmody.io/?s=${query}`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.flex-item\").each(function(c, d) {\nname = $(d).find(\"div.card-title > h2.truncate\").text();\ndesc = $(d).find(\"div.card-body > p.card-excerpt.has-small-font-size.truncate\").text().trim();\nimg = $(d).find(\"div.card-image > img\").attr('src');\nlink = $(d).find(\"article.card.has-shadow.clickable > a\").attr('href');\nconst Data = {\nimg: img,\nname: name,\ndesc: desc,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n});\n}\n\n//PalingMurah\nfunction palingmurah(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://palingmurah.net/pencarian-produk/?term=${query}`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.ui.card.wpj-card-style-2\").each(function(c, d) {\n//INFO BARANG\nname = $(d).find(\"div.content.wpj-small.list-70-right > a.list-header\").text().trim();\nlink = $(d).find(\"div.content.wpj-small.list-70-right > a.list-header\").attr('href');\nimg = $(d).find(\"div.card-image-helper > img\").attr('data-src');\nharga = $(d).find(\"div.flex-master.card-job-price.text-right.text-vertical-center\").text().trim();\n//user\nusernamepenjual = $(d).find(\"strong\").text().trim();\nlinkpenjual = $(d).find(\"a.ui.wpj-big.avatar.image\").attr('href');\niconpenjual = $(d).find(\"a.ui.wpj-big.avatar.image > img\").attr('data-src');\nconst Data = {\nname: name,\nharga: harga,\nimg: img,\nlink: link,\nusernamepenjual: usernamepenjual,\nlinkpenjual: linkpenjual,\niconpenjual: iconpenjual\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n});\n}\n\n//Moddroid\nfunction moddroid(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://moddroid.com/?s=${query}`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.col-12.col-md-6.mb-4\").each(function(c, d) {\nlink = $(d).find(\"a.d-flex.position-relative.archive-post\").attr('href');\nname = $(d).find(\"div > h3.h5.font-weight-semibold.text-truncate.text-primary.w-100\").text().trim();\nimg = $(d).find(\"div.flex-shrink-0.mr-2 > img\").attr('src');\ndesc = $(d).find(\"div.text-truncate.text-muted > span.align-middle\").text();\nconst Data = {\nimg: img,\nname: name,\ndesc: desc,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n});\n}\n\nfunction pinterest(querry){\n\treturn new Promise(async(resolve,reject) => {\n\t\t axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\n\t\t\theaders: {\n\t\t\t\"cookie\" : \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n\t\t}\n\t\t\t}).then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\tconst hasil = [];\n   \t\t $('div > a').get().map(b => {\n        const link = $(b).find('img').attr('src')\n            result.push(link)\n\t\t});\n   \t\tresult.forEach(v => {\n\t\t if(v == undefined) return\n\t\t hasil.push(v.replace(/236/g,'736'))\n\t\t\t})\n\t\t\thasil.shift();\n\t\tresolve(hasil)\n\t\t})\n\t})\n}\nfunction ssweb(url) {\n  return new Promise(async(resolve,reject) => {\n   await getBuffer(`http://fdz-app.herokuapp.com/api/ssweb/mobile/get_screenshot?url=${url}`).then(res => {\n   resolve(res)\n  })\n.catch(reject)\n})\n}\n\nmodule.exports.tiktok = tiktok\nmodule.exports.tiktokmusic = tiktokmusic\nmodule.exports.ghstalk = ghstalk\nmodule.exports.telegra = telegra\nmodule.exports.yta = yta\nmodule.exports.ytv = ytv\nmodule.exports.emoji = emoji\nmodule.exports.mediafire = mediafire\nmodule.exports.covid = covid\nmodule.exports.tahta = tahta\nmodule.exports.styleText = styleText\nmodule.exports.asmaul = asmaul\nmodule.exports.fb = fb\nmodule.exports.igstalk = igstalk\nmodule.exports.tebakgambar = tebakgambar\nmodule.exports.playstore = playstore\nmodule.exports.twitter = twitter\nmodule.exports.kodepos = kodepos\nmodule.exports.gempa = gempa\nmodule.exports.servermc = servermc\nmodule.exports.happymod = happymod\nmodule.exports.kompasnews = kompasnews\nmodule.exports.tribunnews = tribunnews\nmodule.exports.jalantikus = jalantikus\nmodule.exports.igtv = igtv\nmodule.exports.igfoto = igfoto\nmodule.exports.igvideo = igvideo\nmodule.exports.hoax = hoax\nmodule.exports.sfilesearch = sfilesearch\nmodule.exports.mcpedl = mcpedl\nmodule.exports.halal =halal\nmodule.exports.wallpaper = wallpaper\nmodule.exports.wallpapper =wallpapper\nmodule.exports.apkmody = apkmody\nmodule.exports.moddroid = moddroid\nmodule.exports.pinterest = pinterest\nmodule.exports.palingmurah = palingmurah\nmodule.exports.ssweb = ssweb\n\n"
  },
  {
    "path": "lib/scrape2.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst axios = require('axios')\nconst cheerio = require('cheerio')\nconst request = require(\"request\")\nconst moment = require('moment-timezone')\n\nfunction umma(url) {\n    return new Promise((resolve, reject) => {\n        axios.get(url)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let image = []\n            $('#article-content > div').find('img').each(function (a, b) {\n                image.push($(b).attr('src')) \n            })\n            let hasil = {\n                title: $('#wrap > div.content-container.font-6-16 > h1').text().trim(),\n                author: {\n                    name: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.user-ame.font-6-16.fw').text().trim(),\n                    profilePic: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.profile-photo > img.photo').attr('src')\n                },\n                caption: $('#article-content > div > p').text().trim(),\n                media: $('#article-content > div > iframe').attr('src') ? [$('#article-content > div > iframe').attr('src')] : image,\n                type: $('#article-content > div > iframe').attr('src') ? 'video' : 'image',\n                like: $('#wrap > div.bottom-btns > div > button:nth-child(1) > div.text.font-6-12').text(),\n            }\n            resolve(hasil)\n        })\n    })\n}\n\nfunction ringtone(title) {\n    return new Promise((resolve, reject) => {\n        axios.get('https://meloboom.com/en/search/'+title)\n        .then((get) => {\n            let $ = cheerio.load(get.data)\n            let hasil = []\n            $('#__next > main > section > div.jsx-2244708474.container > div > div > div > div:nth-child(4) > div > div > div > ul > li').each(function (a, b) {\n                hasil.push({ title: $(b).find('h4').text(), source: 'https://meloboom.com/'+$(b).find('a').attr('href'), audio: $(b).find('audio').attr('src') })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\n\nconst Gempa = () => new Promise((resolve, reject) => {\n  axios.get('https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg').then((response) => {\n  const $ = cheerio.load(response.data)\n\n  const urlElems = $('table.table-hover.table-striped')\n\n  for (let i = 0; i < urlElems.length; i++) {\n    const urlSpan = $(urlElems[i]).find('tbody')[0]\n\n    if (urlSpan) {\n      const urlData = $(urlSpan).find('tr')[0]\n      var Kapan = $(urlData).find('td')[1]\n      var Letak = $(urlData).find('td')[2]\n      var Magnitudo = $(urlData).find('td')[3]\n      var Kedalaman = $(urlData).find('td')[4]\n      var Wilayah = $(urlData).find('td')[5]\n      var lintang = $(Letak).text().split(' ')[0]\n      var bujur = $(Letak).text().split(' ')[2]\n      var hasil = {\n        waktu: $(Kapan).text(),\n        lintang: lintang,\n        bujur: bujur,\n        magnitudo: $(Magnitudo).text(),\n        kedalaman: $(Kedalaman).text().replace(/\\t/g, '').replace(/I/g, ''),\n        wilayah: $(Wilayah).text().replace(/\\t/g, '').replace(/I/g, '').replace('-','').replace(/\\r/g, '').split('\\n')[0],\n        map: $('div.row > div > img').attr('src')\n      }\n      // We then print the text on to the console\n      resolve(hasil);\n    }\n  }\n  }).catch(err => reject(err))\n})\n\n\nconst Cuaca = (kota) => {\n    return new Promise(async (resolve, reject) => {\n        await axios.get(`http://api.openweathermap.org/data/2.5/weather?q=${kota}&units=metric&appid=132d0c03530775bbbfa9b298392866df`)\n            .then(async ({\n                data\n            }) => {\n                if (data.cod == 404) {\n                    resolve(data.message);\n                } else {\n                    sunrise = await moment.tz(data.sys.sunrise * 1000, \"Asia/Jakarta\").format(\"DD, MM - yy : HH:mm\") + \" WIB\";\n                    sunset = await moment.tz(data.sys.sunset * 1000, \"Asia/Jakarta\").format(\"DD, MM - yy : HH:mm\") + \" WIB\";\n                    result = {\n                        Name: data.name + ', ' + data.sys.country,\n                        Longitude: data.coord.lon,\n                        Latitude: data.coord.lat,\n                        sunrise,\n                        sunset,\n                        Suhu: data.main.temp + \" C\",\n                        Angin: data.wind.speed + \" m/s\",\n                        Kelembaban: data.main.humidity + \"%\",\n                        Cuaca: data.weather[0].main,\n                        Keterangan: data.weather[0].description,\n                        Udara: data.main.pressure + \" HPa\"\n                    };\n                    resolve(result);\n                }\n            }).catch(reject);\n    });\n}\n\nmodule.exports = { umma, ringtone, Gempa, Cuaca }"
  },
  {
    "path": "lib/scrape3.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst axios = require('axios')\nconst cheerio = require('cheerio')\nconst fetch = require('node-fetch')\nconst qs = require(\"qs\")\n\nfunction upload (media) {\n    return new Promise(async (resolve, reject) => {\n    try {\n        let { ext } = await fromBuffer(media)\n        console.log('Uploading image to server telegra.ph')\n        let form = new FormData()\n        form.append('file', media, 'tmp.' + ext)\n        await fetch('https://telegra.ph/upload', {\n            method: 'POST',\n            body: form\n        })\n        .then(res => res.json())\n        .then(res => {\n            if (res.error) return reject(res.error)\n            resolve('https://telegra.ph' + res[0].src)\n        })\n        .catch(err => reject(err))\n    } catch (e) {\n        return console.log(e)\n    }\n})\n}\n\nfunction otakudesu(judul){\n\treturn new Promise(async(resolve, reject) => {\n\taxios.get('https://otakudesu.moe/?s=' + judul + '&post_type=anime')\n\t.then(({ data }) => {\n\tconst $ = cheerio.load(data)\n\tconst result = {};\n\tlet limk = $('#venkonten > div > div.venser > div > div > ul > li:nth-child(1) > h2 > a').attr('href')\n\taxios.get(limk).then(({ data }) => {\n\tconst $$ = cheerio.load(data)\n\tresult.message = 'By Hexagon'\n\tresult.img = $$('#venkonten > div.venser > div.fotoanime').find('img').attr('src')\n\t$$('#venkonten > div.venser > div.fotoanime > div.infozin > div').each(function(a, b) {\n\t\tresult.judul = $$(b).find('p:nth-child(1)').text().replace('Judul: ','')\n\t\tresult.jepang = $$(b).find('p:nth-child(2)').text().replace('Japanese: ','')\n\t\tresult.rate = $$(b).find('p:nth-child(3)').text().replace('Skor: ','')\n\t\tresult.produser = $$(b).find('p:nth-child(4)').text().replace('Produser: ','')\n\t\tresult.tipe = $$(b).find('p:nth-child(5)').text().replace('Tipe: ','')\n\t\tresult.status = $$(b).find('p:nth-child(6)').text().replace('Status: ','')\n\t\tresult.episode = $$(b).find('p:nth-child(7)').text().replace('Total Episode: ','')\n\t\tresult.durasi = $$(b).find('p:nth-child(8)').text().replace('Durasi: ','')\n\t\tresult.rilis = $$(b).find('p:nth-child(9)').text().replace('Tanggal Rilis: ','')\n\t\tresult.studio = $$(b).find('p:nth-child(10)').text().replace('Studio: ','')\n\t\tresult.genre = $$(b).find('p:nth-child(11)').text().replace('Genre: ','')\n\t\tresult.desc = $$('#venkonten > div.venser > div.fotoanime > div.sinopc').text().replace('.','\\n') + $$(b).find('div.sinopc > p:nth-child(2)').text()\n\t\tresult.batch = $$('#venkonten > div.venser > div:nth-child(10) > ul > li > span:nth-child(1) > a').attr('href')\n\t})\n\tconst lim = $$('#venkonten > div.venser > div:nth-child(10) > ul > li > span:nth-child(1) > a').attr('href')\n\taxios.get(lim).then(({ data }) => {\n\tconst $$$ = cheerio.load(data)\n\t\tresult.batchSD = $$$('#venkonten > div:nth-child(6) > ul > li:nth-child(1) > a:nth-child(3)').attr('href')\n\t\tresult.batchHD = $$$('#venkonten > div:nth-child(6) > ul > li:nth-child(3) > a:nth-child(3)').attr('href')\n\t\tresolve(result)\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nfunction covid(){\n\treturn new Promise(async(resolve, reject) => {\n\t\taxios.get('https://covid19.go.id/')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst hasil = [];\n\t\t\t$('#case > div > div > div > div > div:nth-child(2)').each(function(a,b) {\n\t\t\t\tconst pindo = $(b).find('div:nth-child(3) > strong').text()\n\t\t\t\tconst mindo = $(b).find('div:nth-child(5) > strong').text()\n\t\t\t\tconst sindo = $(b).find('div:nth-child(4) > strong').text()\n\t\t\t\tconst upindo = $(b).find('div.pt-4.text-color-black.text-1').text().trim()\n\t\t\t$('#case > div > div > div > div > div:nth-child(1)').each(function(c,d) {\n\t\t\t\t\tconst neg = $(d).find('div:nth-child(3) > strong').text() \n\t\t\t\t\tconst pglo = $(d).find('div:nth-child(4) > strong').text()\n\t\t\t\t\tconst nglo = $(d).find('div:nth-child(5) > strong').text()\n\t\t\t\t\tconst up = $(d).find('div.pt-4.text-color-grey.text-1').text().trim()\n\t\t\t\tconst result = {\n\t\t\t\t\tmessage: 'By Hexagon',\n\t\t\t\t\tindo : {\n\t\t\t\t\t\tpositif_indo: pindo,\n\t\t\t\t\t\tmeninggal_indo: mindo,\n\t\t\t\t\t\tsembuh_indo: sindo,\n\t\t\t\t\t\tupdate_indo: upindo.split(':')[1]\n\t\t\t\t\t},\n\t\t\t\t\tglobal: {\n\t\t\t\t\t\tnegara: neg,\n\t\t\t\t\t\tpositif: pglo,\n\t\t\t\t\t\tmeninggal: nglo,\n\t\t\t\t\t\tupdate: up.split(':')[1].split('\\n')[0]\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thasil.push(result)\n\t\t\t\t})\n\t\t\t})\n\t\t\tresolve(hasil)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n\nfunction ongoing(){\n\treturn new Promise((reject,resolve) => {\n\t\taxios.get('https://otakudesu.moe/ongoing-anime/').then(({ data}) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = [];\n\t\t\tconst img = [];\n\t\t\tconst epz = [];\n\t\t\tconst ne = [];\n\t\t\tconst th = [];\n\t\t\tconst ep = [];\n\t\t\tconst nm =[];\n\t\t\t$('div.detpost').each(function(a,b) {\n\t\t\t\timg.push($(b).find('img').attr('src'))\n\t\t\t\tnm.push($(b).find('h2').text())\n\t\t\t\tth.push($(b).find('a').attr('href'))\n\t\t\t})\n\t\t\t$('div.epztipe').each(function(d,c) {\n\t\t\t\tepz.push($(c).text())\n\t\t\t})\n\t\t\t$('div.newnime').each(function(f,g) {\n\t\t\t\tne.push($(g).text())\n\t\t\t})\n\t\t\t$('div.epz').each(function(m,n){\n\t\t\t\tep.push($(n).text())\n\t\t\t})\n\t\tfor( let i = 0; i < img.length; i++){\n\t\t\tresult.push({\n\t\t\t\tnama: nm[i],\n\t\t\t\timage: img[i],\n\t\t\t\tepisode: ep[i],\n\t\t\t\tsetiap: epz[i],\n\t\t\t\trilis: ne[i],\n\t\t\t\tlink: th[i]\n\t\t\t})\n\t\t}\n\t\tresolve(result)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n\nfunction komiku(judul) {\n\treturn new Promise(async(resolve,reject) => {\n\taxios.get('https://data3.komiku.id/cari/?post_type=manga&s=' + encodeURIComponent(judul))\n\t.then(({ data }) => {\n\tconst $ = cheerio.load(data)\n\tconst img = []; \n\tconst or = [];\n\tconst ind = [];\n\tconst up = [];\n\tconst des = [];\n\tconst li = [];\n\tconst ch = [];\n\tconst ch1 = [];\n\t$('div.daftar').each(function (a,b) {\n\t\timg.push($(b).find('img').attr('data-src'))\n\t$('div.kan').each(function(c,d) {\n\t\tor.push($(d).find('h3').text().trim())\n\t\tind.push($(d).find('span.judul2').text())\n\t\tli.push('https://komiku.id' + $(d).find('a').attr('href'))\n\t\tup.push($(d).find('p').text().trim().split('. ')[0])\n\t\tdes.push($(d).find('p').text().trim().split('. ')[1])\n\t\tch1.push($(d).find('div:nth-child(5) > a').attr('title'))\n\t$('div.new1').each(function(e,f) {\n\t\tch.push($(f).find('a').attr('title'))\n\t\t})\n\t})\n})\n\tfor (let i = 0 ; i < img.length; i++) {\n\t\tresolve({\n\t\t\timage: img[i],\n\t\t\ttitle: or[i],\n\t\t\tindo: ind[i],\n\t\t\tupdate: up[i],\n\t\t\tdesc: des[i],\n\t\t\tchapter_awal: ch[i],\n\t\t\tchapter_akhir: ch1[i],\n\t\t\tlink: li[i]\n\t\t})\n\t}\n})\n\t.catch(reject)\n\t})\n} \n\nfunction tebakgambar() {\n\treturn new Promise(async(resolve, reject) => {\n    axios.get('https://jawabantebakgambar.net/all-answers/')\n    .then(({ data }) => {\n    const $ = cheerio.load(data)\n    const result = [];\n    let random = Math.floor(Math.random() * 2836) + 2;\n    let link2 = 'https://jawabantebakgambar.net'\n    $(`#images > li:nth-child(${random}) > a`).each(function(a, b) {\n    const img = link2 + $(b).find('img').attr('data-src')\n    const jwb = $(b).find('img').attr('alt')\n    result.push({\n    \tmessage: 'By Hexagon',\n    \timage: img,\n    \tjawaban: jwb\n    })\n\n    \tresolve(result)\n    })\n    \t})\n    .catch(reject)\n\t})\n}\n\nfunction surah2(no){\n\treturn new Promise(async(resolve, reject) => {\n\t\taxios.get('https://kalam.sindonews.com/surah/' + no)\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = [];\n\t\t\tconst ar = [];\n\t\t\tconst id = [];\n\t\t\tconst lt = [];\n\t\t\tconst au = [];\n\t\t\t$('div.breadcrumb-new > ul > li:nth-child(5)').each(function(c,d) {\n\t\t\tresult.audio = $(d).find('a').attr('href').replace('surah','audioframe')\n\t\t\t})\n\t\t\t$('div.ayat-arab').each(function(a, b) {\n\t\t\t\tar.push($(b).text()) \n\t\t\t})\n\t\t\t$('li > div.ayat-text').each(function(e, f) {\n\t\t\t\tid.push($(f).text().replace(',','').trim()) })\n\t\t\t$('div.ayat-latin').each(function(g, h) {\n\t\t\t\tlt.push($(h).text().trim())\t})\n\t\t\tfor(let i = 0; i < ar.length ; i++){\n\t\t\tresult.push({\n\t\t\t\tarab: ar[i],\n\t\t\t\tindo: id[i],\n\t\t\t\tlatin: lt[i],\n\t\t\t})\n\t\t}\n\t\t\tresolve(result)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n\nfunction sholat(NOMOR) {\n\treturn new Promise(async(resolve, reject) =>{\n\t\taxios.get('https://kalam.sindonews.com/jadwalsholat/' + NOMOR).then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = {};\n\t\t\t$('div.imsakiyah-content').each(function(a, b) {\n\t\t\tresult.Tanggal = $(b).find('tr:nth-child(1) > td:nth-child(1)').text()\n\t\t\tresult.imsak = $(b).find('tr:nth-child(1) > td:nth-child(2)').text()\n\t\t\tresult.subuh = $(b).find('tr:nth-child(1) > td:nth-child(3)').text()\n\t\t\tresult.zuhur = $(b).find('tr:nth-child(1) > td:nth-child(4)').text()\n\t\t\tresult.ashar = $(b).find('tr:nth-child(1) > td:nth-child(5)').text()\n\t\t\tresult.maghrib = $(b).find('tr:nth-child(1) > td:nth-child(6)').text()\n\t\t\tresult.isya = $(b).find('tr:nth-child(1) > td:nth-child(7)').text()\n\t\t\t})\n\t\t\tresolve(result)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n\nfunction lirik(judul){\n\treturn new Promise(async(resolve, reject) => {\n   \t\taxios.get('https://www.musixmatch.com/search/' + judul)\n   \t\t.then(async({ data }) => {\n   \t\tconst $ = cheerio.load(data)\n   \t\tconst hasil = {};\n   \t\tlet limk = 'https://www.musixmatch.com'\n   \t\tconst link = limk + $('div.media-card-body > div > h2').find('a').attr('href')\n\t   \t\tawait axios.get(link)\n\t   \t\t.then(({ data }) => {\n\t\t   \t\tconst $$ = cheerio.load(data)\n\t\t   \t\thasil.thumb = 'https:' + $$('div.col-sm-1.col-md-2.col-ml-3.col-lg-3.static-position > div > div > div').find('img').attr('src')\n\t\t  \t\t$$('div.col-sm-10.col-md-8.col-ml-6.col-lg-6 > div.mxm-lyrics').each(function(a,b) {\n\t\t   hasil.lirik = $$(b).find('span > p > span').text() +'\\n' + $$(b).find('span > div > p > span').text()\n\t\t   })\n\t   })\n\t   resolve(hasil)\n   })\n   .catch(reject)\n   })\n}\n\nfunction chara(query) {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://www.wallpaperflare.com/search?wallpaper='+ query,{\n\t\t\theaders: {\n\t\t\t\t\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.863074474.1624987429; _gid=GA1.2.857771494.1624987429; __gads=ID=84d12a6ae82d0a63-2242b0820eca0058:T=1624987427:RT=1624987427:S=ALNI_MaJYaH0-_xRbokdDkQ0B49vSYgYcQ\"\n\t\t\t}\n\t\t})\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = [];\n\t\t\t$('#gallery > li > figure > a').each(function(a, b) {\n\t\t\t\tresult.push($(b).find('img').attr('data-src'))\n\t\t\t})\n\t\t\tresolve(result)\n\t\t})\n\t.catch({status: 'err'})\n\t})\n}\n\nfunction wattpad(judul){\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://www.wattpad.com/search/' + judul)\n\t\t.then(({data}) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst result = [];\n\t\t\tconst jdl = [];\n\t\t\tconst img = [];\n\t\t\tconst des = [];\n\t\t\tconst lnk = [];\n\t\t\tconst red = [];\n\t\t\tconst vt = [];\n\t\t\tconst limk = 'https://www.wattpad.com/'\n\t\t\t$('div.cover.cover-xs.pull-left').each(function(a,b){\n\t\t\t\timg.push($(b).find('img').attr('src')) \n\t\t\t})\n\t\t\t$('div.content > h5').each(function(a,b) {\n\t\t\t\tjdl.push($(b).text().trim())\n\t\t\t})\t\n\t\t\t$('div.content > p').each(function(a,b){\n\t\t\t\tdes.push($(b).text().trim())\n\t\t\t})\t\n\t\t\t$('#results-stories > div > ul > li').each(function(a,b){\n\t\t\t\tlnk.push(limk + $(b).find('a.on-result').attr('data-id'))\n\t\t\t})\n\t\t\t$('div.content > div > small.reads').each(function(a,b){\n\t\t\t\tred.push($(b).text())\n\t\t\t})\n\t\t\t$('div.content > div > small.votes').each(function(a, b) {\n\t\t\t\tvt.push($(b).text())\n\t\t\t})\n\t\tfor (let i = 0; i < lnk.length; i++){\n\t\t\tresult.push({\n\t\t\t\t\tjudul: jdl[i],\n\t\t\t\t\tdesc: des[i],\n\t\t\t\t\tvote: vt[i],\n\t\t\t\t\treads: red[i],\n\t\t\t\t\timage: img[i],\n\t\t\t\t\tlink: lnk[i]\n\t\t\t})\n\t\t\tresolve(result)\n\t\t}\n\t\t})\n\t.catch({message: 'err'})\n\t})\n}\n\nconst telesticker = async (url) => {\n    return new Promise(async (resolve, reject) => {\n        packName = url.replace(\"https://t.me/addstickers/\", \"\")\n        data = await axios(`https://api.telegram.org/bot891038791:AAHWB1dQd-vi0IbH2NjKYUk-hqQ8rQuzPD4/getStickerSet?name=${encodeURIComponent(packName)}`, {method: \"GET\",headers: {\"User-Agent\": \"GoogleBot\"}})\n        const hasil = []\n        for (let i = 0; i < data.data.result.stickers.length; i++) {\n            fileId = data.data.result.stickers[i].thumb.file_id\n            data2 = await axios(`https://api.telegram.org/bot891038791:AAHWB1dQd-vi0IbH2NjKYUk-hqQ8rQuzPD4/getFile?file_id=${fileId}`)\n            result = {\n            status: 200,\n            author: author,\n            url: \"https://api.telegram.org/file/bot891038791:AAHWB1dQd-vi0IbH2NjKYUk-hqQ8rQuzPD4/\" + data2.data.result.file_path\n            }\n            hasil.push(result)\n        }\n    resolve(hasil)\n    })\n}\n\nconst stickersearch = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://getstickerpack.com/stickers?query=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const source = [];\n                const link = [];\n                $('#stickerPacks > div > div:nth-child(3) > div > a').each(function(a, b) {\n                    source.push($(b).attr('href'))\n                })\n                axios.get(source[Math.floor(Math.random() * source.length)])\n                    .then(({\n                        data\n                    }) => {\n                        const $$ = cheerio.load(data)\n                        $$('#stickerPack > div > div.row > div > img').each(function(c, d) {\n                            link.push($$(d).attr('src').replace(/&d=200x200/g,''))\n                        })\n                        result = {\n                            status: 200,\n                            author: author,\n                            title: $$('#intro > div > div > h1').text(),\n                            sticker_url: link\n                        }\n                        resolve(result)\n                    })\n            }).catch(reject)\n    })\n}\n\nfunction playstore(name){\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://play.google.com/store/search?q='+ name +'&c=apps')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tlet ln = [];\n\t\t\tlet nm = [];\n\t\t\tlet dv = [];\n\t\t\tlet lm = [];\n\t\t\tconst result = [];\n\t\t\t$('div.wXUyZd > a').each(function(a,b){\n\t\t\t\tconst link =  'https://play.google.com' + $(b).attr('href')\n\t\t\t\tln.push(link);\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.Q9MA7b > a > div').each(function(d,e){\n\t\t\t\tconst name = $(e).text().trim()\n\t\t\t\tnm.push(name);\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.KoLSrc > a > div').each(function(f,g){\n\t\t\t\tconst dev = $(g).text().trim();\n\t\t\t\tdv.push(dev)\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.KoLSrc > a').each(function(h,i){\n\t\t\t\tconst limk = 'https://play.google.com' + $(i).attr('href');\n\t\t\t\tlm.push(limk);\n\t\t\t})\t\t\t\n\t\tfor (let i = 0; i < ln.length; i++){\n\t\t\tresult.push({\n\t\t\t\tname: nm[i],\n\t\t\t\tlink: ln[i],\n\t\t\t\tdeveloper: dv[i],\n\t\t\t\tlink_dev: lm[i]\n\t\t\t})\n\t}\n\t\tresolve(result)\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nfunction linkwa(nama){\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get('http://ngarang.com/link-grup-wa/daftar-link-grup-wa.php?search='+ nama +'&searchby=name')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data);\n\t\t\tconst result = [];\n\t\t\tconst lnk = [];\n\t\t\tconst nm = [];\n\t\t$('div.wa-chat-title-container').each(function(a,b){\n\t\t\tconst limk = $(b).find('a').attr('href');\n\t\t\tlnk.push(limk)\n\t\t\t})\n\t\t$('div.wa-chat-title-text').each(function(c,d) {\n\t\t\tconst name = $(d).text();\n\t\t\tnm.push(name)\n\t\t\t})\n\t\tfor( let i = 0; i < lnk.length; i++){\n\t\t\tresult.push({\n\t\t\t\tnama: nm[i].split('. ')[1],\n\t\t\t\tlink: lnk[i].split('?')[0]\n\t\t\t})\n\t\t}\n\t\tresolve(result)\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nconst film = (query) => {\t\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`http://167.99.31.48/?s=${query}`)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst hasil = [];\n\t\t\t\t$('#content > div > div.los').each(function (a, b) {\n                    $(b).find('article').each(function (c, d) {\n                        const judul = $(d).find('div > a > div.addinfox > header > h2').text()\n                        const quality = $(d).find('div > a > div > div > span').text()\n                        const type = $(d).find('div > a > div.addinfox > div > i.type').text()\n                        const upload = $(d).find('div > a > div.addinfox > div > span').text()\n                        const link = $(d).find('div > a').attr('href');\n                        const thumb = $(d).find('div > a > div > img').attr('src');\n                        const result = {\n                            status: 200,\n                        \tauthor: \"#𝑿𝑭𝒂𝒓\",\n                            judul: judul,\n                            quality: quality,\n                            type: type,\n                            upload: upload,\n                            link: link,\n                            thumb: thumb,\n                        };\n                        hasil.push(result);\n                    });\n                });\n\t\t\t\tresolve(hasil)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\n\nconst anime = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/anime/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: \"#𝑿𝑭𝒂𝒓\",\n                            judul: $(b).find('> a > h3').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'),\n                            thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst manga = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/manga/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: \"#𝑿𝑭𝒂𝒓\",\n                            judul: $(b).find('> a > h3').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'),\n                            thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst webtoon = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.webtoons.com/id/search?keyword=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#content > div.card_wrap.search._searchResult > ul > li ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: author,\n                    judul: $(b).find('> a > div > p.subj').text(),\n                    like: $(b).find('> a > div > p.grade_area > em').text(),\n                    creator: $(b).find('> a > div > p.author').text(),\n                    genre: $(b).find('> a > span').text(),\n                    thumbnail: $(b).find('> a > img').attr('src'),\n                    url: 'https://www.webtoons.com' + $(b).find('> a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst character = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/characters/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > table > tbody > tr').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: \"#𝑿𝑭𝒂𝒓\",\n                            character: $(b).find('> td.tableCharInfo > a').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> td.tableCharInfo > a').attr('href'),\n                            thumbnail: $(b).find('> td.tableAvatar > a > img').attr('src').startsWith('https://') ? $(b).find('> td.tableAvatar > a > img').attr('src') : 'https://www.anime.planet.com' + $(b).find('> td.tableAvatar > a > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst jadwalbola = () => {\n    return new Promise((resolve, reject) => {\n        axios.get('https://m.bola.net/jadwal_televisi/')\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                $('#main_mid_headline_sub_topic').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    jadwal: $(b).find(' > div.main_mid_headline_topic > div > a').text(),\n                    tanggal: $(b).find(' > div.main_mid_headline_topic_grouped_time_list').text().split('\\n')[1].split('                            ')[1],\n                    jam: $(b).find(' > div.main_mid_headline_topic > span').text(),\n                    url: $(b).find(' > div.main_mid_headline_topic > div > a').attr('href'),\n                    thumb: $(b).find(' > div.main_mid_headline_topic > img').attr('src')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })            \n            .catch(reject)\n    })\n}\n\nconst jadwaltv = () => {\n    return new Promise((resolve, reject) => {\n        axios.get('http://www.dokitv.com/jadwal-acara-tv')\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                $('#tabeljadwaltv > tbody > tr ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    acara: $(b).find('> td:nth-child(2)').text(),\n                    channel: $(b).find('> td > a').text(),\n                    jam: $(b).find('> td.jfx').text(),\n                    source: $(b).find('> td > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst jadwalsholat = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://umrotix.com/jadwal-sholat/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                $('body > div > div.main-wrapper.scrollspy-action > div:nth-child(3) ').each(function(a, b) {   \n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    tanggal: $(b).find('> div:nth-child(2)').text(),\n                    imsyak: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(1) > p:nth-child(2)').text(),\n                    subuh: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(2) > p:nth-child(2)').text(),\n                    dzuhur: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(3) > p:nth-child(2)').text(),\n                    ashar: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(4) > p:nth-child(2)').text(),\n                    maghrib: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(5) > p:nth-child(2)').text(),\n                    isya: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(6) > p:nth-child(2)').text()\n                }\n                resolve(result)\n                })\n            })\n            .catch(reject)\n    })\n}\n\nconst drakor = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://drakorasia.blog//?s=${query}&post_type=post`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#post > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    judul: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a > h2').text().trim(),\n                    years: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > div.category.text-gray.font-normal.text-white.text-xs.truncate > a').text(),\n                    genre: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > div.genrenya.text-center.text-white.text-opacity-75.text-xs.mt-1').text().trim(),\n                    thumbnail: $(b).find('> div.thumbnail > a > img').attr('src'),\n                    url: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst listsurah = () => {\n            return new Promise((resolve, reject) => {\n                  axios.get('https://litequran.net/')\n                  .then(({ data }) => {\n                       const $ = cheerio.load(data)\n                       let listsurah = []\n                       $('body > main > section > ol > li > a').each(function(a, b) {\n                    listsurah.push($(b).text())\n                })\n                       result = {\n                        status: 200,\n                        author: \"#𝑿𝑭𝒂𝒓\",\n                        listsurah: listsurah\n                       }\n                       resolve(result)\n                  }).catch(reject)\n             })\n        }\n\nconst surah = (query) => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://litequran.net/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = []\n                $('body > main > article > ol > li').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    arab: $(b).find('> span.ayat').text(),\n                    latin: $(b).find('> span.bacaan').text(),\n                    translate: $(b).find('> span.arti').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst tafsirsurah = (query) => {\n    return new Promise((resolve, reject) => {    \t\n        axios.get(`https://tafsirq.com/topik/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = []\n                $('body > div:nth-child(4) > div > div.col-md-6 > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    surah: $(b).find('> div.panel-heading.panel-choco > div > div > a').text(),\n                    tafsir: $(b).find('> div.panel-body.excerpt').text().trim(),\n                    type: $(b).find('> div.panel-heading.panel-choco > div > div > span').text(),\n                    source: $(b).find('> div.panel-heading.panel-choco > div > div > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nconst kompas = () => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://news.kompas.com/`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('body > div > div.container.clearfix > div:nth-child(3) > div.col-bs10-7 > div:nth-child(3) > div.latest.ga--latest.mt2.clearfix > div > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    berita: $(b).find('> div > div.article__box > h3').text(),\n                    upload_time: $(b).find('> div > div.article__box > div.article__date').text(),\n                    type_berita: $(b).find('> div > div.article__boxsubtitle > h2').text(),\n                    link: $(b).find('> div > div.article__box > h3 > a').attr('href'),\n                    thumbnail: $(b).find('> div > div.article__asset > a > img').attr('data-src'),\n                    info_berita: $(b).find('> div > div.article__box > div.article__lead').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\nconst inews = () => {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.inews.id/news`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#news-list > li ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: \"#𝑿𝑭𝒂𝒓\",\n                    berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > h3').text().trim(),\n                    upload_time: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > div.date.margin-10px-left').text().trim().split('|')[0],\n                    link: $(b).find('> a').attr('href'),\n                    thumbnail: $(b).find('> a > div > div > div.float-left.width-130px.position-absolute > img').attr('data-original'),\n                    info_berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > p').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\n\nfunction youtube(link){\n\treturn new Promise((resolve, reject) => {\n\t\tconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\n\t\tif (ytIdRegex.test(link)) {\n\t\tlet url =  ytIdRegex.exec(link)\n\t\tlet config = {\n\t\t\t'url': 'https://www.youtube.be/' + url,\n\t\t\t'q_auto': 0,\n\t\t\t'ajax': 1\n\t\t}\n\t\tlet headerss = \t{\n\t\t\t\"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n\t\t\t\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\t\t\t\"Cookie\": 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={\"0\":{},\"C702514\":{\"page\":5,\"time\":1625200846733}}'\n\t\t}\n\taxios('https://www.y2mate.com/mates/en68/analyze/ajax',{\n\t\t\tmethod: 'POST',\n\t\t\tdata: new URLSearchParams(Object.entries(config)),\n\t\t\theaders: headerss\n\t\t})\n\t.then(({ data }) => {\n\t\tconst $ = cheerio.load(data.result)\n\t\tlet img = $('div.thumbnail.cover > a > img').attr('src');\n\t\tlet title = $('div.thumbnail.cover > div > b').text();\n\t\tlet size = $('#mp4 > table > tbody > tr:nth-child(3) > td:nth-child(2)').text()\n\t\tlet sizeN = size.replace(\" MB\", '')\n\t\tlet size_mp3 = $('#audio > table > tbody > tr:nth-child(1) > td:nth-child(2)').text()\n\t\tlet sizeNMp3 = size_mp3.replace(\" MB\", '')\n\t\tlet id = /var k__id = \"(.*?)\"/.exec(data.result)[1]\n\t\tlet configs = {\n    type: 'youtube',\n    _id: id,\n    v_id: url[1],\n    ajax: '1',\n    token: '',\n    ftype: 'mp4',\n    fquality: 480\n  }\n\taxios('https://www.y2mate.com/mates/en68/convert',{\n\t\tmethod: 'POST',\n\t\tdata: new URLSearchParams(Object.entries(configs)),\n\t\theaders: headerss \n\t})\n\t.then(({data}) => {\n\t\tconst $ = cheerio.load(data.result)\n\t\tlet link = $('div > a').attr('href')\n\tlet configss = {\n    type: 'youtube',\n    _id: id,\n    v_id: url[1],\n    ajax: '1',\n    token: '',\n    ftype: 'mp3',\n    fquality: 128\n  }\n\taxios('https://www.y2mate.com/mates/en68/convert',{\n\t\tmethod: 'POST',\n\t\tdata: new URLSearchParams(Object.entries(configss)),\n\t\theaders: headerss \n\t})\n\t.then(({ data }) => {\n\t\tconst $ = cheerio.load(data.result)\n\t\tlet audio = $('div > a').attr('href')\n\t\tresolve({\n\t\t\tid: url[1],\n\t\t\ttitle: title,\n\t\t\tsize: size,\n\t\t\tsizeN: sizeN,\n\t\t\tquality: '480p',\n\t\t\tthumb: img,\n\t\t\tlink: link,\n\t\t\tsize_mp3: size_mp3,\n\t\t\tsizeNMp3: sizeNMp3,\n\t\t\tmp3: audio\n\t\t})\n\n\t\t})\n\t\t\t})\n\t\t})\n\t.catch(reject)\n\t}else reject('link invalid')\n\t})\n}\nfunction quotes(input) {\n    return new Promise((resolve, reject) => {\n        fetch('https://jagokata.com/kata-bijak/kata-' + input.replace(/\\s/g, '_') + '.html?page=1')\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res)\n                data = []\n                $('div[id=\"main\"]').find('ul[id=\"citatenrijen\"] > li').each(function (index, element) {\n                    x = $(this).find('div[class=\"citatenlijst-auteur\"] > a').text().trim()\n                    y = $(this).find('span[class=\"auteur-beschrijving\"]').text().trim()\n                    z = $(element).find('q[class=\"fbquote\"]').text().trim()\n                    data.push({ author: x, bio: y, quote: z })\n                })\n                data.splice(2, 1)\n                if (data.length == 0) return resolve({ creator: 'stikerin', status: false })\n                resolve({ creator: 'stikerin', status: true, data })\n            }).catch(reject)\n    })\n}\n\nfunction joox(query) {\n    return new Promise((resolve, reject) => {\n        const time = Math.floor(new Date() / 1000)\n        axios.get('http://api.joox.com/web-fcgi-bin//web_search?lang=id&country=id&type=0&search_input=' + query + '&pn=1&sin=0&ein=29&_=' + time)\n            .then(({ data }) => {\n                let result = []\n                let hasil = []\n                let promoses = []\n                let ids = []\n                data.itemlist.forEach(result => {\n                    ids.push(result.songid)\n                });\n                for (let i = 0; i < data.itemlist.length; i++) {\n                    const get = 'http://api.joox.com/web-fcgi-bin/web_get_songinfo?songid=' + ids[i]\n                    promoses.push(\n                        axios.get(get, {\n                            headers: {\n                                Cookie: 'wmid=142420656; user_type=1; country=id; session_key=2a5d97d05dc8fe238150184eaf3519ad;'\n                            }\n                        })\n                            .then(({ data }) => {\n                                const res = JSON.parse(data.replace('MusicInfoCallback(', '').replace('\\n)', ''))\n                                hasil.push({\n                                    lagu: res.msong,\n                                    album: res.malbum,\n                                    penyanyi: res.msinger,\n                                    publish: res.public_time,\n                                    img: res.imgSrc,\n                                    mp3: res.mp3Url\n                                })\n                                Promise.all(promoses).then(() => resolve({\n                                    creator: \"ariffb\",\n                                    status: true,\n                                    data: hasil,\n                                }))\n                            }).catch(reject)\n                    )\n                }\n            }).catch(reject)\n    })\n}\n\nfunction tiktok(url) {\n    return new Promise(async (resolve, reject) => {\n        axios.get('https://ttdownloader.com/', {\n            headers: {\n                \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=9ut8phujrprrmll6oc3bist01t; popCookie=1; _ga=GA1.2.1068750365.1625213061; _gid=GA1.2.842420949.1625213061\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                let token = $('#token').attr('value')\n                let config = {\n                    'url': url,\n                    'format': '',\n                    'token': token\n                }\n                axios('https://ttdownloader.com/req/', {\n                    method: 'POST',\n                    data: new URLSearchParams(Object.entries(config)),\n                    headers: {\n                        \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                        \"cookie\": \"PHPSESSID=9ut8phujrprrmll6oc3bist01t; popCookie=1; _ga=GA1.2.1068750365.1625213061; _gid=GA1.2.842420949.1625213061\"\n                    }\n                })\n                    .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        resolve({\n                            nowm: $('div:nth-child(2) > div.download > a').attr('href'),\n                            wm: $('div:nth-child(3) > div.download > a').attr('href'),\n                            audio: $('div:nth-child(4) > div.download > a').attr('href')\n                        })\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nfunction twitter(url) {\n    return new Promise((resolve, reject) => {\n        let params = new URLSearchParams()\n        params.append('URL', url)\n        fetch('https://twdown.net/download.php', { method: 'POST', body: params })\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res);\n                data = []\n                $('div.container').find('tbody > tr > td').each(function (index, element) {\n                    x = $(this).find('a').attr('href')\n                    if (x !== '#') {\n                        if (typeof x !== 'undefined') {\n                            data.push({ url: x })\n                        }\n                    }\n                })\n                if (data.length == 0) return resolve({ status: false })\n                resolve({ status: true, data })\n            }).catch(reject)\n    })\n}\n\nfunction twitter2(link){\n\treturn new Promise((resolve, reject) => {\n\t\tlet config = {\n\t\t\t'URL': link\n\t\t}\n\t\taxios.post('https://twdown.net/download.php',qs.stringify(config),{\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n\t\t\t\t\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1388798541.1625064838; _gid=GA1.2.1351476739.1625064838; __gads=ID=7a60905ab10b2596-229566750eca0064:T=1625064837:RT=1625064837:S=ALNI_Mbg3GGC2b3oBVCUJt9UImup-j20Iw; _gat=1\"\n\t\t\t}\n\t\t})\n\t\t.then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tresolve({\n\t\t\t\tdesc: $('div:nth-child(1) > div:nth-child(2) > p').text().trim(),\n\t\t\t\tthumb: $('div:nth-child(1) > img').attr('src'),\n\t\t\t\tHD: $('tbody > tr:nth-child(1) > td:nth-child(4) > a').attr('href'),\n\t\t\t\tSD: $('tr:nth-child(2) > td:nth-child(4) > a').attr('href'),\n\t\t\t\taudio: 'https://twdown.net/' + $('tr:nth-child(4) > td:nth-child(4) > a').attr('href')\n\t\t\t})\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nfunction igdl2(url) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: 'https://www.instagramsave.com/download-instagram-videos.php',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                const token = $('#token').attr('value')\n                let config = {\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n                        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n                        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    },\n                    data: {\n                        'url': url,\n                        'action': 'post',\n                        'token': token\n                    }\n                }\n                axios.post('https://www.instagramsave.com/system/action.php', qs.stringify(config.data), { headers: config.headers })\n                    .then(({ data }) => {\n                        resolve(data.medias)\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nfunction igdl(url_media) {\n    return new Promise((resolve,reject)=>{\n        url_media = url_media.replace(\"reel\", \"p\")\n        var url = \"https://igram.io/i/\"\n        const requestBody = {\n            url: url_media.replace(\"reel\", \"p\"),\n            lang_code: \"en\"\n        }\n\n        const config = {\n            headers: { \n                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.75', \n                'x-requested-with': ' XMLHttpRequest', \n                'origin': ' https://igram.io', \n                'referer': ' https://igram.io/en/dl/', \n                'sec-fetch-dest': ' empty', \n                'sec-fetch-mode': ' cors', \n                'sec-fetch-site': ' same-origin', \n                'Content-Type': 'application/x-www-form-urlencoded', \n                'Cookie': '__cfduid=d4c2ddc2229a4d74c28b6ba25cdcd2a181618175605'\n              },\n        }\n\n        axios.post(url, qs.stringify(requestBody), config).then(result => {\n            let $ = cheerio.load(result.data), ig = []\n            //Obter todos os links de videos da pagina carregada\n            $('[data-mediatype=Video]').each((i, element) => {\n                let cheerioElement = $(element)\n                ig.push(cheerioElement.attr(\"href\"))\n            })\n            //Obter todos os links de imagem da pagina carregada\n            $('div > div.bg-white.border.rounded-sm.max-w-md > img').each((i, element) => {\n                let cheerioElement = $(element)\n                ig.push(cheerioElement.attr(\"src\"))\n            })\n\n            resolve({\n                results_number : ig.length,\n                url_list: ig\n            })\n        }).catch(err=>{\n            console.log(err.response)\n            reject(err)\n        })\n    })\n}\n\nfunction igstalk(username){\n\treturn new Promise((resolve,reject) => {\n\t\taxios.get('https://www.instagram.com/'+ username +'/?__a=1',{\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\t\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\",\n\t\t\t\t\"cookie\": \"mid=XBXl1AALAAEbFoAEfNjZlMMG9dwX; ig_did=91E66A48-5AA2-445D-BFE6-84DC4456DE8F; fbm_124024574287414=base_domain=.instagram.com; ig_nrcb=1; shbid=\\\"12737\\0544008624962\\0541656157971:01f72a5102dc07af6845adf923ca70eb86e81ab95fa9dbfdaf157c9eef0e82fd1f10fe23\\\"; shbts=\\\"1624621971\\0544008624962\\0541656157971:01f74841fba8e77a0066b47ea891dec8fba6fdf9216c0816f9fb3532292f769828800ae2\\\"; fbsr_124024574287414=86D8femzH4_KFW4hd3Z6XFdowU6lG-uXsXRQDNl44VM.eyJ1c2VyX2lkIjoiMTAwMDA0Njc2MDc4Nzg5IiwiY29kZSI6IkFRQngzXzVOejdwVnBwby1LRGRUdEYxUFlzcUdDQXJjcmJfb05HaWFvYkNvOGtLN2paam50bHpvMTNOakFnTzVKOHQ5M0V3U3dvNkRtZ0RiY1l1Z3dQSTIybnExOUxLd3lpZTVfZll0bkNXZXBuM1hoYWFLX0w2R0pZaUpzaDBOTDBhb3pmTVBkRTVQRC12X3FnbUgxLXZYdGVmcHhfaFU0aUZNZVMxNHhFUk5OblJyMmxYTUpDa2RFYTdISXNCR2swdHhaaGF0NUt4UDR3cWZTamRwcVFfQ19sa1RUek5fU0taUTYtMjlzTkdnLUVWb3oxMUZWc3Q2OEx2ZnlIY0V0eFp0ZUxacXpiWmh6MzZrVl83VmFGd0FqVnVkTGFQN2VzT3ZRcmlTQ2pLUE5XbVcyNWhudzIzejJBSnVURW00YWR1cmN6a3ZLWU1icTd2SnN0SVdJV09RIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUJBZmJuQ3haQzZMd3h4MDFJV2MyZ3dsQ3k3Qmp0b05UNUY0WDY2NHBrUzRQeERNVXRsdmhWWkI3SXE0MGsyZ2hJQm55RHRPcW5iVjlPbUNiWGhyTFBaQUhBQjFzVFpBdHF6RFEzVTROUkhOU1V6MFVXWkNtTEdLcDNNWDRoazVIOURLbERHN0QwUlhZNHY4dHBCdVNNYjN4dnBTRGtQcHdYRlBXVU82VCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjI0NjIxOTgxfQ; fbsr_124024574287414=86D8femzH4_KFW4hd3Z6XFdowU6lG-uXsXRQDNl44VM.eyJ1c2VyX2lkIjoiMTAwMDA0Njc2MDc4Nzg5IiwiY29kZSI6IkFRQngzXzVOejdwVnBwby1LRGRUdEYxUFlzcUdDQXJjcmJfb05HaWFvYkNvOGtLN2paam50bHpvMTNOakFnTzVKOHQ5M0V3U3dvNkRtZ0RiY1l1Z3dQSTIybnExOUxLd3lpZTVfZll0bkNXZXBuM1hoYWFLX0w2R0pZaUpzaDBOTDBhb3pmTVBkRTVQRC12X3FnbUgxLXZYdGVmcHhfaFU0aUZNZVMxNHhFUk5OblJyMmxYTUpDa2RFYTdISXNCR2swdHhaaGF0NUt4UDR3cWZTamRwcVFfQ19sa1RUek5fU0taUTYtMjlzTkdnLUVWb3oxMUZWc3Q2OEx2ZnlIY0V0eFp0ZUxacXpiWmh6MzZrVl83VmFGd0FqVnVkTGFQN2VzT3ZRcmlTQ2pLUE5XbVcyNWhudzIzejJBSnVURW00YWR1cmN6a3ZLWU1icTd2SnN0SVdJV09RIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUJBZmJuQ3haQzZMd3h4MDFJV2MyZ3dsQ3k3Qmp0b05UNUY0WDY2NHBrUzRQeERNVXRsdmhWWkI3SXE0MGsyZ2hJQm55RHRPcW5iVjlPbUNiWGhyTFBaQUhBQjFzVFpBdHF6RFEzVTROUkhOU1V6MFVXWkNtTEdLcDNNWDRoazVIOURLbERHN0QwUlhZNHY4dHBCdVNNYjN4dnBTRGtQcHdYRlBXVU82VCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjI0NjIxOTgxfQ; csrftoken=PpiPMEl0R2pAwThsw4NXynO6cVIXHZDo; ds_user_id=38316792800; sessionid=38316792800:rQj5Tr3g5zkg7b:4; rur=\\\"RVA\\05438316792800\\0541656158332:01f759cf624bef147397144805bb4c26f6c8b36a232e0f5738c570ee492f6b629f84f6e5\\\"\"\n\t\t\t}\n\t\t})\n\t\t.then(({ data }) => {\n\t\t\tconst user = data.graphql.user\n\t\t\tlet result = {\n\t\t\t\tmessage: 'By Hexagon',\n                id: user.id,\n                biography: user.biography,\n                followers: user.edge_followed_by.count,\n                following: user.edge_follow.count,\n                fullName: user.full_name,\n                highlightCount: user.highlight_reel_count,\n                isBusinessAccount: user.is_business_account,\n                isRecentUser: user.is_joined_recently,\n                accountCategory: user.business_category_name,\n                linkedFacebookPage: user.connected_fb_page,\n                isPrivate: user.is_private,\n                isVerified: user.is_verified,\n                profilePicHD: user.profile_pic_url_hd,\n                username: user.username,\n                postsCount: user.edge_owner_to_timeline_media.count\n\t\t\t}\n\t\tresolve(result)\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nfunction igstory(username) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: 'https://www.instagramsave.com/instagram-story-downloader.php',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                const token = $('#token').attr('value')\n                let config = {\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n                        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n                        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    },\n                    data: {\n                        'url': 'https://www.instagram.com/' + username,\n                        'action': 'story',\n                        'token': token\n                    }\n                }\n                axios.post('https://www.instagramsave.com/system/action.php', qs.stringify(config.data), { headers: config.headers })\n                    .then(({ data }) => {\n                        resolve(data.medias)\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nfunction covid(){\n\treturn new Promise(async(resolve, reject) => {\n\t\taxios.get('https://covid19.go.id/')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst hasil = [];\n\t\t\t$('#case > div > div > div > div > div:nth-child(2)').each(function(a,b) {\n\t\t\t\tconst pindo = $(b).find('div:nth-child(3) > strong').text()\n\t\t\t\tconst mindo = $(b).find('div:nth-child(5) > strong').text()\n\t\t\t\tconst sindo = $(b).find('div:nth-child(4) > strong').text()\n\t\t\t\tconst upindo = $(b).find('div.pt-4.text-color-black.text-1').text().trim()\n\t\t\t$('#case > div > div > div > div > div:nth-child(1)').each(function(c,d) {\n\t\t\t\t\tconst neg = $(d).find('div:nth-child(3) > strong').text() \n\t\t\t\t\tconst pglo = $(d).find('div:nth-child(4) > strong').text()\n\t\t\t\t\tconst nglo = $(d).find('div:nth-child(5) > strong').text()\n\t\t\t\t\tconst up = $(d).find('div.pt-4.text-color-grey.text-1').text().trim()\n\t\t\t\tconst result = {\n\t\t\t\t\tmessage: 'By Hexagon',\n\t\t\t\t\tindo : {\n\t\t\t\t\t\tpositif_indo: pindo,\n\t\t\t\t\t\tmeninggal_indo: mindo,\n\t\t\t\t\t\tsembuh_indo: sindo,\n\t\t\t\t\t\tupdate_indo: upindo.split(':')[1]\n\t\t\t\t\t},\n\t\t\t\t\tglobal: {\n\t\t\t\t\t\tnegara: neg,\n\t\t\t\t\t\tpositif: pglo,\n\t\t\t\t\t\tmeninggal: nglo,\n\t\t\t\t\t\tupdate: up.split(':')[1].split('\\n')[0]\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thasil.push(result)\n\t\t\t\t})\n\t\t\t})\n\t\t\tresolve(hasil)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n\nfunction pin(url) {\n    return new Promise((resolve, reject) => {\n        function rand() {\n            return `${Math.floor(Math.random() * 1000000)}`\n        }\n        let params = new URLSearchParams()\n        params.append('url', url)\n        fetch('https://www.expertsphp.com/facebook-video-downloader.php', { method: 'POST', body: params })\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res)\n                y = 'pinterest_' + rand() + '.mp4'\n                x = $('video').find('source').attr('src')\n                data = { file: y, url: x }\n                if (typeof x == 'undefined') return resolve({ status: false })\n                resolve({ status: true, data })\n            }).catch(reject)\n    })\n}\n\nlet is = {\n    headers: {\n        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n    }\n}\n\nfunction _token(host) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: host, method: 'GET', headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        }).then(({ data }) => {\n            let $ = cheerio.load(data)\n            let token = $('#token').attr('value')\n            resolve(token)\n        })\n    })\n}\n\nfunction facebook(url) {\n    return new Promise(async (resolve, reject) => {\n        let host = 'https://aiovideodl.ml/'\n        let form = { data: { 'url': url, 'token': (await _token(host)) } }\n        axios.post(host + '/system/action.php', qs.stringify(form.data), { headers: is.headers })\n            .then(({ data }) => {\n                if (data.links.lenght == 0) return resolve({ creator: '@neoxrs – Wildan Izzudin', status: false })\n                resolve({ creator: '@neoxrs – Wildan Izzudin', status: true, data: data.links })\n            })\n    })\n}\n\nfunction fbdown(link){\n\treturn new Promise((resolve,reject) => {\n\tlet config = {\n\t\t'url': link\n\t\t}\n\taxios('https://www.getfvid.com/downloader',{\n\t\t\tmethod: 'POST',\n\t\t\tdata: new URLSearchParams(Object.entries(config)),\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\t\t\t\"user-agent\":  \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1310699039.1624884412; _pbjs_userid_consent_data=3524755945110770; cto_bidid=rQH5Tl9NNm5IWFZsem00SVVuZGpEd21sWnp0WmhUeTZpRXdkWlRUOSUyQkYlMkJQQnJRSHVPZ3Fhb1R2UUFiTWJuVGlhVkN1TGM2anhDT1M1Qk0ydHlBb21LJTJGNkdCOWtZalRtZFlxJTJGa3FVTG1TaHlzdDRvJTNE; cto_bundle=g1Ka319NaThuSmh6UklyWm5vV2pkb3NYaUZMeWlHVUtDbVBmeldhNm5qVGVwWnJzSUElMkJXVDdORmU5VElvV2pXUTJhQ3owVWI5enE1WjJ4ZHR5NDZqd1hCZnVHVGZmOEd0eURzcSUyQkNDcHZsR0xJcTZaRFZEMDkzUk1xSmhYMlY0TTdUY0hpZm9NTk5GYXVxWjBJZTR0dE9rQmZ3JTNEJTNE; _gid=GA1.2.908874955.1625126838; __gads=ID=5be9d413ff899546-22e04a9e18ca0046:T=1625126836:RT=1625126836:S=ALNI_Ma0axY94aSdwMIg95hxZVZ-JGNT2w; cookieconsent_status=dismiss\"\n\t\t\t}\n\t\t})\n\t.then(async({ data }) => {\n\t\tconst $ = cheerio.load(data);\t\n\t\tresolve({\n\t\t\tNormal_video: $('div.col-md-4.btns-download > p:nth-child(2) > a').attr('href'),\n\t\t\tHD: $('div.col-md-4.btns-download > p:nth-child(1) > a').attr('href'),\n\t\t\taudio: $('div.col-md-4.btns-download > p:nth-child(3) > a').attr('href')\n\t\t\t})\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nfunction pinterest(querry) {\n\treturn new Promise(async(resolve,reject) => {\n\t\t axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\n\t\t\theaders: {\n\t\t\t\"cookie\" : \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n\t\t}\n\t\t\t}).then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\tconst hasil = [];\n   \t\t $('div > a').get().map(b => {\n        const link = $(b).find('img').attr('src')\n            result.push(link)\n\t\t});\n   \t\tresult.forEach(v => {\n\t\t if(v == undefined) return\n\t\t hasil.push(v.replace(/236/g,'736'))\n\t\t\t})\n\t\t\thasil.shift();\n\t\tresolve(hasil)\n\t\t})\n\t})\n}\n\nfunction wallpaper(title, page = '1') {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('div.grid-item').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('div.info > a > h3').text(),\n                    type: $(b).find('div.info > a:nth-child(2)').text(),\n                    image: $(b).find('img').attr('data-src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction wikimedia(title) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let hasil = []\n            $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('img').attr('alt'),\n                    source: $(b).attr('href'),\n                    image: $(b).find('img').attr('data-src') || $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction porno() {\n    return new Promise((resolve, reject) => {\n        axios.get('https://tikporntok.com/?random=1')\n        .then((res) => {\n            const $ = cheerio.load(res.data)\n            const hasil = {}\n            hasil.title = $('article > h1').text()\n            hasil.source = $('article > div.video-wrapper.vxplayer').attr('data-post') || 'Web Not Response'\n            hasil.thumb = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-poster') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png'\n            hasil.desc = $('article > div.intro').text()\n            hasil.upload = $('article > div.single-pre-meta.ws.clearfix > time').text()\n            hasil.like = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(1) > span').text()\n            hasil.dislike = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(2) > span').text()\n            hasil.favorite = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(3) > span').text()\n            hasil.views = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(4) > span').text()\n            hasil.tags = $('article > div.post-tags').text()\n            hasil.video = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('src') || $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-src') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png'\n            resolve(hasil)\n        })\n    })\n}\n\nfunction hentai() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 1153)\n        axios.get('https://sfmcompile.club/page/'+page)\n        .then((data) => {\n            const $ = cheerio.load(data.data)\n            const hasil = []\n            $('#primary > div > div > ul > li > article').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('header > h2').text(),\n                    link: $(b).find('header > h2 > a').attr('href'),\n                    category: $(b).find('header > div.entry-before-title > span > span').text().replace('in ', ''),\n                    share_count: $(b).find('header > div.entry-after-title > p > span.entry-shares').text(),\n                    views_count: $(b).find('header > div.entry-after-title > p > span.entry-views').text(),\n                    type: $(b).find('source').attr('type') || 'image/jpeg',\n                    video_1: $(b).find('source').attr('src') || $(b).find('img').attr('data-src'),\n                    video_2: $(b).find('video > a').attr('href') || ''\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction quotesAnime() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 184)\n        axios.get('https://otakotaku.com/quote/feed/'+page)\n        .then(({ data }) => {\n            const $ = cheerio.load(data)\n            const hasil = []\n            $('div.kotodama-list').each(function(l, h) {\n                hasil.push({\n                    link: $(h).find('a').attr('href'),\n                    gambar: $(h).find('img').attr('data-src'),\n                    karakter: $(h).find('div.char-name').text().trim(),\n                    anime: $(h).find('div.anime-title').text().trim(),\n                    episode: $(h).find('div.meta').text(),\n                    up_at: $(h).find('small.meta').text(),\n                    quotes: $(h).find('div.quote').text().trim()\n                })\n            })\n            resolve(hasil)\n        }).catch(reject)\n    })\n}\n\nmodule.exports = { \n       kompas,\n       inews,\n       youtube,\n       facebook,\n       fbdown,\n       quotes,\n       igdl,\n       igdl2,\n       igstalk,\n       igstory,\n       tiktok,\n       twitter, \n       twitter2,\n       joox, \n       covid,\n       pin, \n       pinterest, \n       wallpaper, \n       wikimedia, \n       porno, \n       hentai, \n       quotesAnime,\n       listsurah,\n       surah,\n       surah2,\n       tafsirsurah,\n       film,\n       manga,\n       anime,\n       character,\n       jadwalbola,\n       jadwaltv,\n       jadwalsholat,\n       drakor,\n       otakudesu,\n       ongoing,\n       komiku,\n       tebakgambar,\n       sholat,\n       lirik,\n       chara,\n       wattpad,\n       playstore,\n       linkwa,\n       telesticker,\n       stickersearch,\n       webtoon,\n       upload\n}"
  },
  {
    "path": "lib/scrapedl.js",
    "content": "\n// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst { JSDOM } = require('jsdom')\nconst FormData = require('form-data')\nconst cheerio = require('cheerio')\nconst fetch = require('node-fetch')\nconst axios = require('axios')\nconst qs = require('qs')\n\nmodule.exports = { \naiovideodl, \nfilmapik, \nssweb, \nhoax, \nsfilesearch, \nhappymod, \nservermc, \ngempa, \nmediafire,\ntelegraph, \nghstalk, \nkomiku, \nlirik, \ncovid, \notaku, \nshoppe, \ninews, \njalantikus, \nkompasnews, \ntribunnews, \ntafsirsurah, \nsurah, \nlistsurah, \nstickersearch, \ndrakor, \nmangatoons, \nwebtoons, \nwattpaduser, \nwattpad, \nfilm, \npinterest, \njadwalsholat, \njadwaltv, \njadwalbola, \ncharacter, \nmanga, \nanime, \nsoundcloud, \nxnxxsearch, \nxnxxdl, \nherodetails, \nherolist, \nplaystore, \ntiktokporn, \nhentai, \nquotesanime, \nwallpaper, \nwikimedia, \nfacebook, \nfacebook2, \n_token, \nquotes, \nigdl, \nigstory, \nigstory2,\nsnaptik, \ntiktok, \ntwitter, \njoox, \npin \n}\n\n\nfunction quotes(input) {\n    return new Promise((resolve, reject) => {\n        fetch('https://jagokata.com/kata-bijak/kata-' + input.replace(/\\s/g, '_') + '.html?page=1')\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res)\n                data = []\n                $('div[id=\"main\"]').find('ul[id=\"citatenrijen\"] > li').each(function (index, element) {\n                    x = $(this).find('div[class=\"citatenlijst-auteur\"] > a').text().trim()\n                    y = $(this).find('span[class=\"auteur-beschrijving\"]').text().trim()\n                    z = $(element).find('q[class=\"fbquote\"]').text().trim()\n                    data.push({ author: x, bio: y, quote: z })\n                })\n                data.splice(2, 1)\n                if (data.length == 0) return resolve({ creator: '@rasel.ganz', status: false })\n                resolve({ creator: '@rasel.ganz', status: true, data })\n            }).catch(reject)\n    })\n}\n\nfunction joox(query) {\n    return new Promise((resolve, reject) => {\n        const time = Math.floor(new Date() / 1000)\n        axios.get('http://api.joox.com/web-fcgi-bin//web_search?lang=id&country=id&type=0&search_input=' + query + '&pn=1&sin=0&ein=29&_=' + time)\n            .then(({ data }) => {\n                let result = []\n                let hasil = []\n                let promoses = []\n                let ids = []\n                data.itemlist.forEach(result => {\n                    ids.push(result.songid)\n                });\n                for (let i = 0; i < data.itemlist.length; i++) {\n                    const get = 'http://api.joox.com/web-fcgi-bin/web_get_songinfo?songid=' + ids[i]\n                    promoses.push(\n                        axios.get(get, {\n                            headers: {\n                                Cookie: 'wmid=142420656; user_type=1; country=id; session_key=2a5d97d05dc8fe238150184eaf3519ad;'\n                            }\n                        })\n                            .then(({ data }) => {\n                                const res = JSON.parse(data.replace('MusicInfoCallback(', '').replace('\\n)', ''))\n                                hasil.push({\n                                    lagu: res.msong,\n                                    album: res.malbum,\n                                    penyanyi: res.msinger,\n                                    publish: res.public_time,\n                                    img: res.imgSrc,\n                                    mp3: res.mp3Url\n                                })\n                                Promise.all(promoses).then(() => resolve({\n                                    creator: \"@rasel.ganz\",\n                                    status: true,\n                                    data: hasil,\n                                }))\n                            }).catch(reject)\n                    )\n                }\n            }).catch(reject)\n    })\n}\n\nfunction tiktok(url) {\n    return new Promise(async (resolve, reject) => {\n        axios.get('https://ttdownloader.com/', {\n            headers: {\n                \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=9ut8phujrprrmll6oc3bist01t; popCookie=1; _ga=GA1.2.1068750365.1625213061; _gid=GA1.2.842420949.1625213061\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                let token = $('#token').attr('value')\n                let config = {\n                    'url': url,\n                    'format': '',\n                    'token': token\n                }\n                axios('https://ttdownloader.com/req/', {\n                    method: 'POST',\n                    data: new URLSearchParams(Object.entries(config)),\n                    headers: {\n                        \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                        \"cookie\": \"PHPSESSID=9ut8phujrprrmll6oc3bist01t; popCookie=1; _ga=GA1.2.1068750365.1625213061; _gid=GA1.2.842420949.1625213061\"\n                    }\n                })\n                    .then(({ data }) => {\n                        const $ = cheerio.load(data)\n                        resolve({\n                            nowm: $('div:nth-child(2) > div.download > a').attr('href'),\n                            wm: $('div:nth-child(3) > div.download > a').attr('href'),\n                            audio: $('div:nth-child(4) > div.download > a').attr('href')\n                        })\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nasync function snaptik(url) {\n  try {\n    let results = {}\n    if (/v[tm]\\.tiktok\\.com/g.test(url)) {\n      let res = await axios.get(url)\n      url = res.request.res.responseUrl\n    }\n    let key = await axios.get(`https://api.snaptik.site/video-key?video_url=${url}`)\n    key = JSON.parse(JSON.stringify(key.data, null, 2))\n    if (key.status !== 'success') throw key\n    let data = await axios.get(`https://api.snaptik.site/video-details-by-key?key=${key.data.key}`)\n    data = JSON.parse(JSON.stringify(data.data, null, 2))\n    if (data.status !== 'success') throw data\n    results = {\n      author: { ...data.data.author },\n      description: data.data.description,\n      video: {\n        with_watermark: `https://api.snaptik.site/download?key=${data.data.video.with_watermark}&type=video`,\n        no_watermark: `https://api.snaptik.site/download?key=${data.data.video.no_watermark}&type=video`,\n        no_watermark_raw: data.data.video.no_watermark_raw\n      },\n      music: `https://api.snaptik.site/download?key=${data.data.music}&type=music`\n    }\n    return results\n  } catch (e) {\n    throw `Maaf url tidak valid atau video private`\n  }\n}\n \nfunction twitter(url) {\n    return new Promise((resolve, reject) => {\n        let params = new URLSearchParams()\n        params.append('URL', url)\n        fetch('https://twdown.net/download.php', { method: 'POST', body: params })\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res);\n                data = []\n                $('div.container').find('tbody > tr > td').each(function (index, element) {\n                    x = $(this).find('a').attr('href')\n                    if (x !== '#') {\n                        if (typeof x !== 'undefined') {\n                            data.push({ url: x })\n                        }\n                    }\n                })\n                if (data.length == 0) return resolve({ status: false })\n                resolve({ status: true, data })\n            }).catch(reject)\n    })\n}\n\nfunction igdl(url) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: 'https://www.instagramsave.com/download-instagram-videos.php',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                const token = $('#token').attr('value')\n                let config = {\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n                        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n                        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    },\n                    data: {\n                        'url': url,\n                        'action': 'post',\n                        'token': token\n                    }\n                }\n                axios.post('https://www.instagramsave.com/system/action.php', qs.stringify(config.data), { headers: config.headers })\n                    .then(({ data }) => {\n                        resolve(data.medias)\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nfunction igstory(username) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: 'https://www.instagramsave.com/instagram-story-downloader.php',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        })\n            .then(({ data }) => {\n                const $ = cheerio.load(data)\n                const token = $('#token').attr('value')\n                let config = {\n                    headers: {\n                        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n                        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n                        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n                        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    },\n                    data: {\n                        'url': 'https://www.instagram.com/' + username,\n                        'action': 'story',\n                        'token': token\n                    }\n                }\n                axios.post('https://www.instagramsave.com/system/action.php', qs.stringify(config.data), { headers: config.headers })\n                    .then(({ data }) => {\n                        resolve(data.medias)\n                    })\n            })\n            .catch(reject)\n    })\n}\n\nasync function igstory2(username) {\n  let { data } = await axios.get(`https://www.instadownloader.org/data.php?username=${username}&t=${new Date * 1}`)\n  const $ = cheerio.load(data)\n  let results = []\n  $('body > center').each(function (i, el) {\n    results.push({\n      url: $(el).find('a.download-btn').attr('href'),\n      type: $(el).find('video').html() ? 'video' : 'image'\n    })\n  })\n  return results\n }\n\nfunction pin(url) {\n    return new Promise((resolve, reject) => {\n        function rand() {\n            return `${Math.floor(Math.random() * 1000000)}`\n        }\n        let params = new URLSearchParams()\n        params.append('url', url)\n        fetch('https://www.expertsphp.com/facebook-video-downloader.php', { method: 'POST', body: params })\n            .then(res => res.text())\n            .then(res => {\n                const $ = cheerio.load(res)\n                y = 'pinterest_' + rand() + '.mp4'\n                x = $('video').find('source').attr('src')\n                data = { file: y, url: x }\n                if (typeof x == 'undefined') return resolve({ status: false })\n                resolve({ status: true, data })\n            }).catch(reject)\n    })\n}\n\nlet is = {\n    headers: {\n        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n        \"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n        \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\",\n        \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n    }\n}\n\nfunction _token(host) {\n    return new Promise(async (resolve, reject) => {\n        axios.request({\n            url: host, method: 'GET', headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=ugpgvu6fgc4592jh7ht9d18v49; _ga=GA1.2.1126798330.1625045680; _gid=GA1.2.1475525047.1625045680; __gads=ID=92b58ed9ed58d147-221917af11ca0021:T=1625045679:RT=1625045679:S=ALNI_MYnQToDW3kOUClBGEzULNjeyAqOtg\"\n            }\n        }).then(({ data }) => {\n            let $ = cheerio.load(data)\n            let token = $('#token').attr('value')\n            resolve(token)\n        })\n    })\n}\n\nfunction facebook(url){\n\treturn new Promise((resolve,reject) => {\n\tlet config = {\n'url': url\n}\n\taxios('https://www.getfvid.com/downloader',{\n\tmethod: 'POST',\n\tdata: new URLSearchParams(Object.entries(config)),\n\theaders: {\n\"content-type\": \"application/x-www-form-urlencoded\",\n\"user-agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1310699039.1624884412; _pbjs_userid_consent_data=3524755945110770; cto_bidid=rQH5Tl9NNm5IWFZsem00SVVuZGpEd21sWnp0WmhUeTZpRXdkWlRUOSUyQkYlMkJQQnJRSHVPZ3Fhb1R2UUFiTWJuVGlhVkN1TGM2anhDT1M1Qk0ydHlBb21LJTJGNkdCOWtZalRtZFlxJTJGa3FVTG1TaHlzdDRvJTNE; cto_bundle=g1Ka319NaThuSmh6UklyWm5vV2pkb3NYaUZMeWlHVUtDbVBmeldhNm5qVGVwWnJzSUElMkJXVDdORmU5VElvV2pXUTJhQ3owVWI5enE1WjJ4ZHR5NDZqd1hCZnVHVGZmOEd0eURzcSUyQkNDcHZsR0xJcTZaRFZEMDkzUk1xSmhYMlY0TTdUY0hpZm9NTk5GYXVxWjBJZTR0dE9rQmZ3JTNEJTNE; _gid=GA1.2.908874955.1625126838; __gads=ID=5be9d413ff899546-22e04a9e18ca0046:T=1625126836:RT=1625126836:S=ALNI_Ma0axY94aSdwMIg95hxZVZ-JGNT2w; cookieconsent_status=dismiss\"\n\t}\n})\n\t.then(async({ data }) => {\nconst $ = cheerio.load(data);\t\nresolve({\n\tvideo: $('div.col-md-4.btns-download > p:nth-child(1) > a').attr('href'),\n\taudio: $('div.col-md-4.btns-download > p:nth-child(3) > a').attr('href')\n\t})\n})\n\t.catch(reject)\n\t})\n}\n\nfunction facebook2(urls) {\n    return new Promise(async (resolve, reject) => {\n       const data = await axios({\n           url: 'https://downvideo.net/',\n           method: 'GET',\n           headers: {\n            'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',\n           }\n       })\n       const $ = cheerio.load(data.data)\n       const token = $('#token').attr('value')\n       const getPost = await axios({\n           url: 'https://downvideo.net/download.php',\n           method: 'POST',\n           headers: {\n            'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',\n            \"cookie\": '_gid=GA1.2.1321544464.1633811193; _ga=GA1.2.1392580783.1633811193; __gads=ID=c73de99d7fa5c467-226981f63ecc00f1:T=1633811193:RT=1633811193:S=ALNI_MaC9fW2mqfT2hm7zODcNNffab1XLg'\n           },\n           data: new URLSearchParams(Object.entries({ 'URL': urls, 'token': token }))\n       })\n       const c = cheerio.load(getPost.data)\n       const hasil = {\n            author: c('div.row').find('div.col-md-12:nth-child(1)').text(),\n            title: c('div.row').find('div.col-md-12:nth-child(3) > p').text(),\n            thumb: c('div.row').find('div.col-md-12:nth-child(2) > img').attr('src'),\n            link_high: c('div.row').find('div.col-md-3 > a').eq(0).attr('href') || c('div.row').find('#sd > a').attr('href') || '',\n            link_normal: c('div.row').find('div.col-md-3 > a').eq(1).attr('href') || ''\n       }\n       resolve({ status: getPost.status, creator: '@rasel.ganz', hasil: hasil })\n    })\n}\n\nfunction wallpaper(title, page) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('div.grid-item').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('div.info > a > h3').text(),\n                    type: $(b).find('div.info > a:nth-child(2)').text(),\n                    image: $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction wikimedia(title) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let hasil = []\n            $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('img').attr('alt'),\n                    source: $(b).attr('href'),\n                    image: $(b).find('img').attr('src') || $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction tiktokporn() {\n    return new Promise((resolve, reject) => {\n        axios.get('https://tikporntok.com/?random=1')\n        .then((res) => {\n            const $ = cheerio.load(res.data)\n            const hasil = {}\n            hasil.title = $('article > h1').text()\n            hasil.source = $('article > div.video-wrapper.vxplayer').attr('data-post') || 'Web Not Response'\n            hasil.thumb = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-poster') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png'\n            hasil.desc = $('article > div.intro').text()\n            hasil.upload = $('article > div.single-pre-meta.ws.clearfix > time').text()\n            hasil.like = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(1) > span').text()\n            hasil.dislike = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(2) > span').text()\n            hasil.favorite = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(3) > span').text()\n            hasil.views = $('article > div.single-pre-meta.ws.clearfix > div > span:nth-child(4) > span').text()\n            hasil.tags = $('article > div.post-tags').text()\n            hasil.video = $('article > div.video-wrapper.vxplayer > div.vx_el').attr('src') || $('article > div.video-wrapper.vxplayer > div.vx_el').attr('data-src') || 'https://4.bp.blogspot.com/-hyMqjmQQq4o/W6al-Rk4IpI/AAAAAAAADJ4/m-lVBA_GC9Q5d4BIQg8ZO3fYmQQC3LqSACLcBGAs/s1600/404_not_found.png'\n            resolve(hasil)\n        })\n    })\n}\n\nfunction hentai() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 1153)\n        axios.get('https://sfmcompile.club/page/'+page)\n        .then((data) => {\n            const $ = cheerio.load(data.data)\n            const hasil = []\n            $('#primary > div > div > ul > li > article').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('header > h2').text(),\n                    link: $(b).find('header > h2 > a').attr('href'),\n                    category: $(b).find('header > div.entry-before-title > span > span').text().replace('in ', ''),\n                    share_count: $(b).find('header > div.entry-after-title > p > span.entry-shares').text(),\n                    views_count: $(b).find('header > div.entry-after-title > p > span.entry-views').text(),\n                    type: $(b).find('source').attr('type') || 'image/jpeg',\n                    video_1: $(b).find('source').attr('src') || $(b).find('img').attr('data-src'),\n                    video_2: $(b).find('video > a').attr('href') || ''\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction quotesanime() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 184)\n        axios.get('https://otakotaku.com/quote/feed/'+page)\n        .then(({ data }) => {\n            const $ = cheerio.load(data)\n            const hasil = []\n            $('div.kotodama-list').each(function(l, h) {\n                hasil.push({\n                    link: $(h).find('a').attr('href'),\n                    gambar: $(h).find('img').attr('data-src'),\n                    karakter: $(h).find('div.char-name').text().trim(),\n                    anime: $(h).find('div.anime-title').text().trim(),\n                    episode: $(h).find('div.meta').text(),\n                    up_at: $(h).find('small.meta').text(),\n                    quotes: $(h).find('div.quote').text().trim()\n                })\n            })\n            resolve(hasil)\n        }).catch(reject)\n    })\n}\n\nfunction playstore(name) {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get('https://play.google.com/store/search?q='+ name +'&c=apps')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tlet ln = [];\n\t\t\tlet nm = [];\n\t\t\tlet dv = [];\n\t\t\tlet lm = [];\n\t\t\tconst result = [];\n\t\t\t$('div.wXUyZd > a').each(function(a,b){\n\t\t\t\tconst link =  'https://play.google.com' + $(b).attr('href')\n\t\t\t\tln.push(link);\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.Q9MA7b > a > div').each(function(d,e){\n\t\t\t\tconst name = $(e).text().trim()\n\t\t\t\tnm.push(name);\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.KoLSrc > a > div').each(function(f,g){\n\t\t\t\tconst dev = $(g).text().trim();\n\t\t\t\tdv.push(dev)\n\t\t\t})\n\t\t\t$('div.b8cIId.ReQCgd.KoLSrc > a').each(function(h,i){\n\t\t\t\tconst limk = 'https://play.google.com' + $(i).attr('href');\n\t\t\t\tlm.push(limk);\n\t\t\t})\t\t\t\n\t\tfor (let i = 0; i < ln.length; i++){\n\t\t\tresult.push({\n\t\t\t\tname: nm[i],\n\t\t\t\tlink: ln[i],\n\t\t\t\tdeveloper: dv[i],\n\t\t\t\tlink_dev: lm[i]\n\t\t\t})\n\t}\n\t\tresolve(result)\n\t\t})\n\t.catch(reject)\n\t})\n}\n\nfunction herolist() {\n            return new Promise((resolve, reject) => {\n                  Axios.get('https://mobile-legends.fandom.com/wiki/Mobile_Legends:_Bang_Bang_Wiki')\n                  .then(({ data }) => {\n                       const $ = cheerio.load(data)\n                       let data_hero = []\n                       let url = []\n                       $('div > div > span > span > a').get().map((result) => {\n                            const name = decodeURIComponent($(result).attr('href').replace('/wiki/',''))\n                            const urln = 'https://mobile-legends.fandom.com' + $(result).attr('href')\n                            data_hero.push(name)\n                            url.push(urln)\n                       })\n                       resolve({ status: 200, hero: data_hero })\n                  }).catch((e) => reject({ status: 404, message: e.message }))\n             })\n        }\nfunction herodetails(name) {\n             return new Promise((resolve, reject) => {\n                  var splitStr = name.toLowerCase().split(' ');\n                  for (var i = 0; i < splitStr.length; i++) {\n                       splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);     \n                  }\n                  const que = splitStr.join(' ')\n                  Axios.get('https://mobile-legends.fandom.com/wiki/' + que)\n                  .then(({ data }) => {\n                       const $ = cheerio.load(data)\n                       let mw = []\n                       let attrib = []\n                       let skill = []\n                       const name = $('#mw-content-text > div > div > div > div > div > div > table > tbody > tr > td > table > tbody > tr > td > font > b').text() \n                       $('.mw-headline').get().map((res) => {\n                            const mwna = $(res).text()\n                            mw.push(mwna)\n                       })\n                       $('#mw-content-text > div > div > div > div > div > div > table > tbody > tr > td').get().map((rest) => {\n                            const haz = $(rest).text().replace(/\\n/g,'')\n                            attrib.push(haz)\n                       })\n                       $('#mw-content-text > div > div > div > div > div > div > table > tbody > tr > td > div.progressbar-small.progressbar > div').get().map((rest) => {\n                            skill.push($(rest).attr('style').replace('width:',''))\n                       })\n                       Axios.get('https://mobile-legends.fandom.com/wiki/' + que + '/Story')\n                       .then(({ data }) => {\n                            const $ = cheerio.load(data)\n                            let pre = []\n                            $('#mw-content-text > div > p').get().map((rest) => {\n                                 pre.push($(rest).text())\n                            })\n                            const story = pre.slice(3).join('\\n')\n                            const items = []\n                            const character = []\n                            $('#mw-content-text > div > aside > section > div').get().map((rest) => {\n                                 character.push($(rest).text().replace(/\\n\\t\\n\\t\\t/g, '').replace(/\\n\\t\\n\\t/g,'').replace(/\\n/g,''))\n                            })\n                            $('#mw-content-text > div > aside > div').get().map((rest) => {\n                                 items.push($(rest).text().replace(/\\n\\t\\n\\t\\t/g, '').replace(/\\n\\t\\n\\t/g,'').replace(/\\n/g,''))\n                            })\n                            const img = $('#mw-content-text > div > aside > figure > a').attr('href')\n                            const chara = character.slice(0,2)\n                            const result = { \n                                 status: 200,\n                                 hero_name: name + ` ( ${mw[0].replace('CV:',' CV:')} )`,\n                                 entrance_quotes: attrib[2].replace('Entrance Quotes','').replace('\\n',''),\n                                 hero_feature: attrib[attrib.length - 1].replace('Hero Feature',''),\n                                 image: img,\n                                 items: items,\n                                 character: {\n                                      chara\n                                 },\n                                 attributes: {\n                                      movement_speed: attrib[12].replace('● Movement Speed',''),\n                                      physical_attack: attrib[13].replace('● Physical Attack',''),\n                                      magic_power: attrib[14].replace('● Magic Power',''),\n                                      attack_speed: attrib[15].replace('● Attack Speed',''),\n                                      physical_defense: attrib[16].replace('● Physical Defense',''),\n                                      magic_defense: attrib[17].replace('● Magic Defense',''),\n                                      basic_atk_crit_rate: attrib[18].replace('● Basic ATK Crit Rate',''),\n                                      hp: attrib[19].replace('● HP',''),\n                                      mana: attrib[20].replace('● Mana',''),\n                                      ability_crit_rate: attrib[21].replace('● Ability Crit Rate',''),\n                                      hp_regen: attrib[22].replace('● HP Regen',''),\n                                      mana_regen: attrib[23].replace('● Mana Regen','')\n                                 },\n                                 price: {\n                                      battle_point: mw[1].split('|')[0].replace(/ /g,''),\n                                      diamond: mw[1].split('|')[1].replace(/ /g,''),\n                                      hero_fragment: mw[1].split('|')[2] ? mw[1].split('|')[2].replace(/ /g,'') : 'none'\n                                 },\n                                 role: mw[2],\n                                 skill: {\n                                      durability: skill[0],\n                                      offense: skill[1],\n                                      skill_effects: skill[2],\n                                      difficulty: skill[3]\n                                 },\n                                 speciality: mw[3],\n                                 laning_recommendation: mw[4],\n                                 release_date: mw[5],\n                                 background_story: story\n                            }\n                            resolve(result)\n                       }).catch((e) => reject({ status: 404, message: e.message }))\n                  }).catch((e) => reject({ status: 404, message: e.message }))\n             })\n        }\n        \nfunction xnxxsearch(query) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst baseurl = 'https://www.xnxx.com'\n\t\tfetch(`${baseurl}/search/${query}/${Math.floor(Math.random() * 3) + 1}`, {method: 'get'})\n\t\t.then(res => res.text())\n\t\t.then(res => {\n\t\t\tlet $ = cheerio.load(res, {\n\t\t\t\txmlMode: false\n\t\t\t});\n\t\t\tlet title = [];\n\t\t\tlet url = [];\n\t\t\tlet desc = [];\n\t\t\tlet results = [];\n\n\t\t\t$('div.mozaique').each(function(a, b) {\n\t\t\t\t$(b).find('div.thumb').each(function(c, d) {\n\t\t\t\t\turl.push(baseurl+$(d).find('a').attr('href').replace(\"/THUMBNUM/\", \"/\"))\n\t\t\t\t})\n\t\t\t})\n\t\t\t$('div.mozaique').each(function(a, b) {\n\t\t\t\t$(b).find('div.thumb-under').each(function(c, d) {\n\t\t\t\t\tdesc.push($(d).find('p.metadata').text())\n\t\t\t\t\t$(d).find('a').each(function(e,f) {\n\t\t\t\t\t    title.push($(f).attr('title'))\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t})\n\t\t\tfor (let i = 0; i < title.length; i++) {\n\t\t\t\tresults.push({\n\t\t\t\t\ttitle: title[i],\n\t\t\t\t\tinfo: desc[i],\n\t\t\t\t\tlink: url[i]\n\t\t\t\t})\n\t\t\t}\n\t\t\tresolve({\n\t\t\t\tcode: 200,\n\t\t\t\tstatus: true,\n\t\t\t\tresult: results\n\t\t\t})\n\t\t})\n\t\t.catch(err => reject({code: 503, status: false, result: err }))\n\t})\n}\n\nfunction xnxxdl(URL) {\n\treturn new Promise((resolve, reject) => {\n\t\tfetch(`${URL}`, {method: 'get'})\n\t\t.then(res => res.text())\n\t\t.then(res => {\n\t\t\tlet $ = cheerio.load(res, {\n\t\t\t\txmlMode: false\n\t\t\t});\n\t\t\tconst title = $('meta[property=\"og:title\"]').attr('content');\n\t\t\tconst duration = $('meta[property=\"og:duration\"]').attr('content');\n\t\t\tconst image = $('meta[property=\"og:image\"]').attr('content');\n\t\t\tconst videoType = $('meta[property=\"og:video:type\"]').attr('content');\n\t\t\tconst videoWidth = $('meta[property=\"og:video:width\"]').attr('content');\n\t\t\tconst videoHeight = $('meta[property=\"og:video:height\"]').attr('content');\n\t\t\tconst info = $('span.metadata').text();\n\t\t\tconst videoScript = $('#video-player-bg > script:nth-child(6)').html();\n\t\t\tconst files = {\n\t\t\t\tlow: (videoScript.match('html5player.setVideoUrlLow\\\\(\\'(.*?)\\'\\\\);') || [])[1],\n\t\t\t\thigh: videoScript.match('html5player.setVideoUrlHigh\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tHLS: videoScript.match('html5player.setVideoHLS\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumb: videoScript.match('html5player.setThumbUrl\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumb69: videoScript.match('html5player.setThumbUrl169\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumbSlide: videoScript.match('html5player.setThumbSlide\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t\tthumbSlideBig: videoScript.match('html5player.setThumbSlideBig\\\\(\\'(.*?)\\'\\\\);' || [])[1],\n\t\t\t};\n\t\t\tresolve({\n\t\t\t\tstatus: 200,\n\t\t\t\tresult: {\n\t\t\t\t\ttitle,\n\t\t\t\t\tURL,\n\t\t\t\t\tduration,\n\t\t\t\t\timage,\n\t\t\t\t\tvideoType,\n\t\t\t\t\tvideoWidth,\n\t\t\t\t\tvideoHeight,\n\t\t\t\t\tinfo,\n\t\t\t\t\tfiles\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t\t.catch(err => reject({code: 503, status: false, result: err }))\n\t})\n}\n\nasync function soundcloud(url) {\n    return new Promise((resolve, reject) => {\n        axios({url: 'https://aiovideodl.ml/',method: 'GET',headers: {\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\"cookie\": \"PHPSESSID=3893d5f173e91261118a1d8b2dc985c3; _ga=GA1.2.792478743.1635388171;\"}}).then((data) => {\n            let a = cheerio.load(data.data)\n            let token = a('#token').attr('value')\n            const options = {\n                method: 'POST',\n                url: `https://aiovideodl.ml/wp-json/aio-dl/video-data/`,\n                headers: {\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\"cookie\": \"PHPSESSID=3893d5f173e91261118a1d8b2dc985c3; _ga=GA1.2.792478743.1635388171;\"\n                },\n                formData: {url: url,token: token}\n            };\n            request(options, async function(error, response, body) {\n                if (error) throw new Error(error)\n                res = JSON.parse(body)\n                res.status = 200\n                res.author = author\n                resolve(res);\n            });\n        })\n    })\n}\n\nfunction anime(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/anime/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            judul: $(b).find('> a > h3').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'),\n                            thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction manga(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/manga/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > ul.cardDeck.cardGrid > li ').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            judul: $(b).find('> a > h3').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> a').attr('href'),\n                            thumbnail: 'https://www.anime-planet.com' + $(b).find('> a > div.crop > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction character(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.anime-planet.com/characters/all?name=${query}`)\n            .then(({\n                data\n            }) => {\n                const hasil = []\n                const $ = cheerio.load(data)\n                $('#siteContainer > table > tbody > tr').each(function (a, b) {\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            character: $(b).find('> td.tableCharInfo > a').text(),\n                            link: 'https://www.anime-planet.com' + $(b).find('> td.tableCharInfo > a').attr('href'),\n                            thumbnail: $(b).find('> td.tableAvatar > a > img').attr('src').startsWith('https://') ? $(b).find('> td.tableAvatar > a > img').attr('src') : 'https://www.anime.planet.com' + $(b).find('> td.tableAvatar > a > img').attr('src')\n                        };\n                        hasil.push(result);\n                    });\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jadwalbola() {\n    return new Promise((resolve, reject) => {\n        axios.get('https://m.bola.net/jadwal_televisi/')\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                $('#main_mid_headline_sub_topic').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    jadwal: $(b).find(' > div.main_mid_headline_topic > div > a').text(),\n                    tanggal: $(b).find(' > div.main_mid_headline_topic_grouped_time_list').text().split('\\n')[1].split('                            ')[1],\n                    jam: $(b).find(' > div.main_mid_headline_topic > span').text(),\n                    url: $(b).find(' > div.main_mid_headline_topic > div > a').attr('href'),\n                    thumb: $(b).find(' > div.main_mid_headline_topic > img').attr('src')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jadwaltv() {\n    return new Promise((resolve, reject) => {\n        axios.get('http://www.dokitv.com/jadwal-acara-tv')\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                $('#tabeljadwaltv > tbody > tr ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    acara: $(b).find('> td:nth-child(2)').text(),\n                    channel: $(b).find('> td > a').text(),\n                    jam: $(b).find('> td.jfx').text(),\n                    source: $(b).find('> td > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jadwalsholat(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://umrotix.com/jadwal-sholat/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                $('body > div > div.main-wrapper.scrollspy-action > div:nth-child(3) ').each(function(a, b) {   \n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    tanggal: $(b).find('> div:nth-child(2)').text(),\n                    imsyak: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(1) > p:nth-child(2)').text(),\n                    subuh: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(2) > p:nth-child(2)').text(),\n                    dzuhur: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(3) > p:nth-child(2)').text(),\n                    ashar: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(4) > p:nth-child(2)').text(),\n                    maghrib: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(5) > p:nth-child(2)').text(),\n                    isya: $(b).find('> div.panel.daily > div > div > div > div > div:nth-child(6) > p:nth-child(2)').text()\n                }\n                resolve(result)\n                })\n            })\n            .catch(reject)\n    })\n}\n\nfunction pinterest(query) {\n    return new Promise((resolve, reject) => {\n         axios(`https://www.pinterest.com/resource/BaseSearchResource/get/?source_url=%2Fsearch%2Fpins%2F%3Fq%3D${query}&data=%7B%22options%22%3A%7B%22isPrefetch%22%3Afalse%2C%22query%22%3A%22${query}%22%2C%22scope%22%3A%22pins%22%2C%22no_fetch_context_on_resource%22%3Afalse%7D%2C%22context%22%3A%7B%7D%7D&_=1619980301559`).then((data) => {\n                const random = data.data.resource_response.data.results[Math.floor(Math.random() * (data.data.resource_response.data.results.length))]\n                var result = [];\n                result = {\n                        status: 200,\n                        author: '@rasel.ganz',\n                        url: random.images.orig.url\n                }\n                resolve(result)\n            }).catch(reject)\n        })\n    }\n   \nfunction film(query) {\n\treturn new Promise((resolve, reject) => {\n\t\taxios.get(`http://167.99.31.48/?s=${query}`)\n\t\t\t.then(({\n\t\t\t\tdata\n\t\t\t}) => {\n\t\t\t\tconst $ = cheerio.load(data)\n\t\t\t\tconst hasil = [];\n\t\t\t\t$('#content > div > div.los').each(function (a, b) {\n                    $(b).find('article').each(function (c, d) {\n                        const judul = $(d).find('div > a > div.addinfox > header > h2').text()\n                        const quality = $(d).find('div > a > div > div > span').text()\n                        const type = $(d).find('div > a > div.addinfox > div > i.type').text()\n                        const upload = $(d).find('div > a > div.addinfox > div > span').text()\n                        const link = $(d).find('div > a').attr('href');\n                        const thumb = $(d).find('div > a > div > img').attr('src');\n                        const result = {\n                            status: 200,\n                        \tauthor: '@rasel.ganz',\n                            judul: judul,\n                            quality: quality,\n                            type: type,\n                            upload: upload,\n                            link: link,\n                            thumb: thumb,\n                        };\n                        hasil.push(result);\n                    });\n                });\n\t\t\t\tresolve(hasil)\n\t\t\t})\n\t\t\t.catch(reject)\n\t})\n}\n\nfunction wattpad(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.wattpad.com/search/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('div.story-card-data.hidden-xxs > div.story-info ').each(function(a, b) {\n                    $('ul.list-group > li.list-group-item').each(function(c,d) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> div.title').text(),\n                    dibaca: $(b).find('> ul > li:nth-child(1) > div.icon-container > div > span.stats-value').text(),\n                    divote: $(b).find('> ul > li:nth-child(2) > div.icon-container > div > span.stats-value').text(),\n                    bab: $(b).find('> ul > li:nth-child(3) > div.icon-container > div > span.stats-value').text(),\n                    waktu: $(b).find('> ul > li:nth-child(4) > div.icon-container > div > span.stats-value').text(),\n                    url:'https://www.wattpad.com' + $(d).find('a').attr('href'),\n                    thumb: $(d).find('img').attr('src'),\n                    description: $(b).find('> div.description').text().replace(/\\n/g,'')\n                }\n                hasil.push(result)\n                })\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction wattpaduser(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.wattpad.com/user/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                $('#app-container > div > header ').each(function(a, b) {\n                    $('#profile-about > div > div ').each(function(c, d) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    username: $(b).find('> div.badges > h1').text().trim(),\n                    works: $(b).find('> div.row.header-metadata > div:nth-child(1) > p:nth-child(1)').text(),\n                    reading_list: $(b).find('> div.row.header-metadata > div.col-xs-4.scroll-to-element > p:nth-child(1)').text(),\n                    followers: $(b).find('> div.row.header-metadata > div.col-xs-4.on-followers > p.followers-count').text(),\n                    joined: $(d).find('> ul > li.date.col-xs-12.col-sm-12 > span').text().trim().replace('Joined',''),\n                    pp_picture: `https://img.wattpad.com/useravatar/${query}.128.851744.jpg`,\n                    about: $(d).find('> div.description > pre').text() ? $(d).find('> div.description > pre').text() : 'Not found'\n                }\n                resolve(result)\n                })\n                })\n            })\n            .catch(reject)\n    })\n}\n\nfunction webtoons(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.webtoons.com/id/search?keyword=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#content > div.card_wrap.search._searchResult > ul > li ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> a > div > p.subj').text(),\n                    like: $(b).find('> a > div > p.grade_area > em').text(),\n                    creator: $(b).find('> a > div > p.author').text(),\n                    genre: $(b).find('> a > span').text(),\n                    thumbnail: $(b).find('> a > img').attr('src'),\n                    url: 'https://www.webtoons.com' + $(b).find('> a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction mangatoons(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://mangatoon.mobi/en/search?word=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#page-content > div.search-page > div > div.comics-result > div.recommended-wrap > div > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> div.recommend-comics-title > span').text(),\n                    genre: $(b).find('> div.comics-type > span').text().trim(),\n                    link: 'https://mangatoon.mobi' + $(b).find('> a').attr('href'),\n                    thumbnail: $(b).find('> a > div > img').attr('src')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction drakor(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://drakorasia.blog//?s=${query}&post_type=post`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#post > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    judul: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a > h2').text().trim(),\n                    years: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > div.category.text-gray.font-normal.text-white.text-xs.truncate > a').text(),\n                    genre: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > div.genrenya.text-center.text-white.text-opacity-75.text-xs.mt-1').text().trim(),\n                    thumbnail: $(b).find('> div.thumbnail > a > img').attr('src'),\n                    url: $(b).find('> div.title.text-center.absolute.bottom-0.w-full.py-2.pb-4.px-3 > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction stickersearch(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://getstickerpack.com/stickers?query=${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const source = [];\n                const link = [];\n                $('#stickerPacks > div > div:nth-child(3) > div > a').each(function(a, b) {\n                    source.push($(b).attr('href'))\n                })\n                axios.get(source[Math.floor(Math.random() * source.length)])\n                    .then(({\n                        data\n                    }) => {\n                        const $$ = cheerio.load(data)\n                        $$('#stickerPack > div > div.row > div > img').each(function(c, d) {\n                            link.push($$(d).attr('src').replace(/&d=200x200/g,''))\n                        })\n                        result = {\n                            status: 200,\n                            author: '@rasel.ganz',\n                            title: $$('#intro > div > div > h1').text(),\n                            sticker_url: link\n                        }\n                        resolve(result)\n                    })\n            }).catch(reject)\n    })\n}\n\nfunction listsurah() {\n            return new Promise((resolve, reject) => {\n                  axios.get('https://litequran.net/')\n                  .then(({ data }) => {\n                       const $ = cheerio.load(data)\n                       let listsurah = []\n                       $('body > main > section > ol > li > a').each(function(a, b) {\n                    listsurah.push($(b).text())\n                })\n                       result = {\n                        status: 200,\n                        author: '@rasel.ganz',\n                        listsurah: listsurah\n                       }\n                       resolve(result)\n                  }).catch(reject)\n             })\n        }\n\nfunction surah(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://litequran.net/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = []\n                $('body > main > article > ol > li').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    arab: $(b).find('> span.ayat').text(),\n                    latin: $(b).find('> span.bacaan').text(),\n                    translate: $(b).find('> span.arti').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction tafsirsurah(query) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://tafsirq.com/topik/${query}`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = []\n                $('body > div:nth-child(4) > div > div.col-md-6 > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    surah: $(b).find('> div.panel-heading.panel-choco > div > div > a').text(),\n                    tafsir: $(b).find('> div.panel-body.excerpt').text().trim(),\n                    type: $(b).find('> div.panel-heading.panel-choco > div > div > span').text(),\n                    source: $(b).find('> div.panel-heading.panel-choco > div > div > a').attr('href')\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nfunction jalantikus(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://jalantikus.com/search/articles/${query}/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.post-block-with-category\").each(function(c, d) {\ntitle = $(d).find(\"a.post-block-with-category__link\").text()\ncategory = $(d).find(\"a.post-info__category-link\").text()\ndate = $(d).find(\"time\").text()\nlink = `https://jalantikus.com${$(d).find(\"a\").attr('href')}`\nconst Data = {\ntitle: title,\ncategory: category,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\nfunction tribunnews() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.tribunnews.com/news`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"li.p1520.art-list.pos_rel\").each(function(c, d) {\ntitle = $(d).find(\"div.mr140 > h3 > a.f20.ln24.fbo.txt-oev-2\").text().trim()\nthumb = $(d).find(\"div.fr.mt5.pos_rel > a > img.shou2.bgwhite\").attr('src')\ndesc = $(d).find(\"div.grey2.pt5.f13.ln18.txt-oev-3\").text().trim()\ndate = $(d).find(\"div.grey.pt5 > time.foot.timeago\").text().trim()\nlink = $(d).find(\"div.fr.mt5.pos_rel > a\").attr('href')\nconst Data = {\ntitle: title,\nthumb: thumb,\ndesc: desc,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\nfunction kompasnews() {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://news.kompas.com/`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('body > div > div.container.clearfix > div:nth-child(3) > div.col-bs10-7 > div:nth-child(3) > div.latest.ga--latest.mt2.clearfix > div > div ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    berita: $(b).find('> div > div.article__box > h3').text(),\n                    upload_time: $(b).find('> div > div.article__box > div.article__date').text(),\n                    type_berita: $(b).find('> div > div.article__boxsubtitle > h2').text(),\n                    link: $(b).find('> div > div.article__box > h3 > a').attr('href'),\n                    thumbnail: $(b).find('> div > div.article__asset > a > img').attr('data-src'),\n                    info_berita: $(b).find('> div > div.article__box > div.article__lead').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\nfunction inews() {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.inews.id/news`)\n            .then(({\n                data\n            }) => {\n                const $ = cheerio.load(data)\n                const hasil = [];\n                 $('#news-list > li ').each(function(a, b) {\n                    result = {\n                    status: 200,\n                    author: '@rasel.ganz',\n                    berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > h3').text().trim(),\n                    upload_time: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > div.date.margin-10px-left').text().trim().split('|')[0],\n                    link: $(b).find('> a').attr('href'),\n                    thumbnail: $(b).find('> a > div > div > div.float-left.width-130px.position-absolute > img').attr('data-original'),\n                    info_berita: $(b).find('> a > div > div > div.float-left.width-400px.margin-130px-left > p').text()\n                }\n                hasil.push(result)\n                })\n                resolve(hasil)\n            })\n            .catch(reject)\n    })\n}\n\nasync function shoppe(item, limit) {\n\tconst hasil = []\n\tawait axios.request(`https://shopee.co.id/api/v4/search/search_items?by=relevancy&keyword=${item}&limit=${limit}&newest=0&order=desc&page_type=search&scenario=PAGE_GLOBAL_SEARCH&version=2`, {\n\t\tmethod: \"GET\",\n\t\tdata: null,\n\t\theaders: {\n\t\t\t\"accept\": \"*/*\",\n\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\"if-none-match-\": \"55b03-856cd63f16112f8a43da6096f97ac3fe\",\n\t\t\t\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\t\t}\n\t}).then(respon => {\n\t\thasil.push(respon.data)\n\t})\n\treturn hasil[0]\n}\n\nasync function otaku(querry) {\n\ttry {\n\tconst link = await axios.get(`https://otakudesu.moe/?s=${querry}&post_type=anime`)\n\tconst c = cheerio.load(link.data)\n\tlet id = c('#venkonten > div > div.venser > div > div > ul > li:nth-child(1) > h2 > a').attr('href')\n\tconst Link = await axios.get(id)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(1) > span').text().trim()\n\tlet judulJpn = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(2) > span').text().trim()\n\tlet score = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(3) > span').text().trim()\n\tlet Produser = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(4) > span').text().trim()\n\tlet Type = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(5) > span').text().trim()\n\tlet Status = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(6) > span').text().trim()\n\tlet TotalEpisode = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(7) > span').text().trim()\n\tlet durasi = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(8) > span').text().trim()\n\tlet Rilis = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(9) > span').text().trim()\n\tlet studio = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(10) > span').text().trim()\n\tlet genre = $('#venkonten').find('div.venser > div.fotoanime > div.infozin > div > p:nth-child(11) > span').text().trim()\n\tlet thumb = $('#venkonten > div.venser > div.fotoanime').find('img').attr('src')\n\tlet Sinopsis = $('#venkonten > div.venser > div.fotoanime > div.sinopc').find('p').text().trim()\n\tlet LinkDown = $('#venkonten').find('div.venser > div:nth-child(8) > ul > li:nth-child(4) > span:nth-child(1) > a').attr('href')\n\tconst data = {\n\t\tcreator: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tjapan: judulJpn,\n\t\t\trating: score,\n\t\t\tproduser: Produser,\n\t\t\ttype: Type,\n\t\t\tstatus: Status,\n\t\t\tepisode: TotalEpisode,\n\t\t\tdurasi: durasi,\n\t\t\trilis: Rilis,\n\t\t\tstudio: studio,\n\t\t\tgenre: genre,\n\t\t\tlink: LinkDown,\n\t\t\tsinopsis: Sinopsis\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tcreator: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tPesan: 'maap banh emror😔'\n\t}\n\treturn notFond\n}\n}\n\nfunction covid() {\n\treturn new Promise(async(resolve, reject) => {\n\t\taxios.get('https://covid19.go.id/')\n\t\t.then(({ data }) => {\n\t\t\tconst $ = cheerio.load(data)\n\t\t\tconst hasil = [];\n\t\t\t$('#case > div > div > div > div > div:nth-child(2)').each(function(a,b) {\n\t\t\t\tconst pindo = $(b).find('div:nth-child(3) > strong').text()\n\t\t\t\tconst mindo = $(b).find('div:nth-child(5) > strong').text()\n\t\t\t\tconst sindo = $(b).find('div:nth-child(4) > strong').text()\n\t\t\t\tconst upindo = $(b).find('div.pt-4.text-color-black.text-1').text().trim()\n\t\t\t$('#case > div > div > div > div > div:nth-child(1)').each(function(c,d) {\n\t\t\t\t\tconst neg = $(d).find('div:nth-child(3) > strong').text() \n\t\t\t\t\tconst pglo = $(d).find('div:nth-child(4) > strong').text()\n\t\t\t\t\tconst nglo = $(d).find('div:nth-child(5) > strong').text()\n\t\t\t\t\tconst up = $(d).find('div.pt-4.text-color-grey.text-1').text().trim()\n\t\t\t\tconst result = {\n\t\t\t\t\tmessage: 'By Hexagon',\n\t\t\t\t\tindo : {\n\t\t\t\t\t\tpositif_indo: pindo,\n\t\t\t\t\t\tmeninggal_indo: mindo,\n\t\t\t\t\t\tsembuh_indo: sindo,\n\t\t\t\t\t\tupdate_indo: upindo.split(':')[1]\n\t\t\t\t\t},\n\t\t\t\t\tglobal: {\n\t\t\t\t\t\tnegara: neg,\n\t\t\t\t\t\tpositif: pglo,\n\t\t\t\t\t\tmeninggal: nglo,\n\t\t\t\t\t\tupdate: up.split(':')[1].split('\\n')[0]\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thasil.push(result)\n\t\t\t\t})\n\t\t\t})\n\t\t\tresolve(hasil)\n\t\t})\n\t\t.catch(reject)\n\t})\n}\n\nfunction lirik(judul){\n\treturn new Promise(async(resolve, reject) => {\n   \t\taxios.get('https://www.musixmatch.com/search/' + judul)\n   \t\t.then(async({ data }) => {\n   \t\tconst $ = cheerio.load(data)\n   \t\tconst hasil = {};\n   \t\tlet limk = 'https://www.musixmatch.com'\n   \t\tconst link = limk + $('div.media-card-body > div > h2').find('a').attr('href')\n\t   \t\tawait axios.get(link)\n\t   \t\t.then(({ data }) => {\n\t\t   \t\tconst $$ = cheerio.load(data)\n\t\t   \t\thasil.thumb = 'https:' + $$('div.col-sm-1.col-md-2.col-ml-3.col-lg-3.static-position > div > div > div').find('img').attr('src')\n\t\t  \t\t$$('div.col-sm-10.col-md-8.col-ml-6.col-lg-6 > div.mxm-lyrics').each(function(a,b) {\n\t\t   hasil.lirik = $$(b).find('span > p > span').text() +'\\n' + $$(b).find('span > div > p > span').text()\n\t\t   })\n\t   })\n\t   resolve(hasil)\n   })\n   .catch(reject)\n   })\n}\n\nfunction komiku(judul) {\n\treturn new Promise(async(resolve,reject) => {\n\taxios.get('https://data3.komiku.id/cari/?post_type=manga&s=' + encodeURIComponent(judul))\n\t.then(({ data }) => {\n\tconst $ = cheerio.load(data)\n\tconst img = []; \n\tconst or = [];\n\tconst ind = [];\n\tconst up = [];\n\tconst des = [];\n\tconst li = [];\n\tconst ch = [];\n\tconst ch1 = [];\n\t$('div.daftar').each(function (a,b) {\n\t\timg.push($(b).find('img').attr('data-src'))\n\t$('div.kan').each(function(c,d) {\n\t\tor.push($(d).find('h3').text().trim())\n\t\tind.push($(d).find('span.judul2').text())\n\t\tli.push('https://komiku.id' + $(d).find('a').attr('href'))\n\t\tup.push($(d).find('p').text().trim().split('. ')[0])\n\t\tdes.push($(d).find('p').text().trim().split('. ')[1])\n\t\tch1.push($(d).find('div:nth-child(5) > a').attr('title'))\n\t$('div.new1').each(function(e,f) {\n\t\tch.push($(f).find('a').attr('title'))\n\t\t})\n\t})\n})\n\tfor (let i = 0 ; i < img.length; i++) {\n\t\tresolve({\n\t\t\timage: img[i],\n\t\t\ttitle: or[i],\n\t\t\tindo: ind[i],\n\t\t\tupdate: up[i],\n\t\t\tdesc: des[i],\n\t\t\tchapter_awal: ch[i],\n\t\t\tchapter_akhir: ch1[i],\n\t\t\tlink: li[i]\n\t\t})\n\t}\n})\n\t.catch(reject)\n\t})\n}\n\nfunction ghstalk(username) {\nurl= `https://api.github.com/users/${username}`; \nreturn axios.get(url)\n.then(data => {\nreturn data.data\nconsole.log(data.data)\n})\n}\n\nasync function telegraph(buffer) {\n  return new Promise(async (resolve, reject) => {\nconst { ext } = await fromBuffer(buffer)\nlet form = new FormData\nform.append('file', buffer, 'tmp.' + ext)\nlet res = await fetch('https://telegra.ph/upload', {\nmethod: 'POST',\nbody: form\n})\nlet img = await res.json()\nif (img.error) throw img.error\nhasil = 'https://telegra.ph' + img[0].src\nresolve({hasil})\nconsole.log(hasil)\n}).catch(reject)\n}\n\nfunction gempa() {\nreturn new Promise((resolve, reject) => {\naxios.get('https://www.bmkg.go.id/gempabumi/gempabumi-dirasakan.bmkg').then((response) => {\nconst $ = cheerio.load(response.data)\nconst urlElems = $('table.table-hover.table-striped')\nfor (let i = 0; i < urlElems.length; i++) {\nconst urlSpan = $(urlElems[i]).find('tbody')[0]\nif (urlSpan) {\nconst urlData = $(urlSpan).find('tr')[0]\nvar Kapan = $(urlData).find('td')[1]\nvar Letak = $(urlData).find('td')[2]\nvar Magnitudo = $(urlData).find('td')[3]\nvar Kedalaman = $(urlData).find('td')[4]\nvar Wilayah = $(urlData).find('td')[5]\nvar lintang = $(Letak).text().split(' ')[0]\nvar bujur = $(Letak).text().split(' ')[2]\nvar hasil = {\nWaktu: $(Kapan).text(),\nLintang: lintang,\nBujur: bujur,\nMagnitudo: $(Magnitudo).text(),\nKedalaman: $(Kedalaman).text().replace(/\\t/g, '').replace(/I/g, ''),\nWilayah: $(Wilayah).text().replace(/\\t/g, '').replace(/I/g, '').replace('-','').replace(/\\r/g, '').split('\\n')[0],\nMap: ''\n}\nresolve(hasil);\nconsole.log(hasil)\n}\n}\n})\n})\n}\n\nfunction servermc() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://minecraftpocket-servers.com/country/indonesia/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"tr\").each(function(c, d) {\nip = $(d).find(\"button.btn.btn-secondary.btn-sm\").eq(1).text().trim().replace(':19132', '')\nport = '19132'\nversi = $(d).find(\"a.btn.btn-info.btn-sm\").text()\nplayer = $(d).find(\"td.d-none.d-md-table-cell > strong\").eq(1).text().trim()\nconst Data = {\nip: ip,\nport: port,\nversi: versi,\nplayer: player\n}\nhasil.push(Data)\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\nfunction happymod(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.happymod.com/search.html?q=${query}`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.pdt-app-box\").each(function(c, d) {\nname = $(d).find(\"a\").text().trim();\nicon = $(d).find(\"img.lazy\").attr('data-original');\nlink = $(d).find(\"a\").attr('href');\nlink2 = `https://www.happymod.com${link}`\nconst Data = {\n\nicon: icon,\nname: name,\nlink: link2\n}\nhasil.push(Data)\n })\n resolve(hasil);\n}).catch(reject)\n});\n}\n\nfunction sfilesearch(query) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://sfile.mobi/search.php?q=${query}&search=Search`).then(async tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"div.list\").each(function(i, cuk) {\nico= $(cuk).find(\"img\").attr(\"src\");\nlin= $(cuk).find(\"a\").attr(\"href\");\nname= $(cuk).find(\"a\").text();\nconst Data = {\nicon: ico,\nname: name,\nlink: lin\n}\nhasil.push(Data)\n\n})\nresolve(hasil)\n});\n});\n}\n\nfunction hoax() {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://turnbackhoax.id/`).then( tod => {\nconst $ = cheerio.load(tod.data)\nhasil = []\n$(\"figure.mh-loop-thumb\").each(function(a, b) {\n$(\"div.mh-loop-content.mh-clearfix\").each(function(c, d) {\nlink = $(d).find(\"h3.entry-title.mh-loop-title > a\").attr('href');\nimg = $(b).find(\"img.attachment-mh-magazine-lite-medium.size-mh-magazine-lite-medium.wp-post-image\").attr('src');\ntitle = $(d).find(\"h3.entry-title.mh-loop-title > a\").text().trim();\ndesc = $(d).find(\"div.mh-excerpt > p\").text().trim();\ndate = $(d).find(\"span.mh-meta-date.updated\").text().trim();\nconst Data = {\n\ntitle: title,\nthumbnail: img,\ndesc: desc,\ndate: date,\nlink: link\n}\nhasil.push(Data)\n})\n})\nresolve(hasil)\n}).catch(reject)\n});\n}\n\nfunction ssweb(url) {\n  return new Promise(async(resolve,reject) => {\n   await getBuffer(`http://fdz-app.herokuapp.com/api/ssweb/mobile/get_screenshot?url=${url}`).then(res => {\n   resolve(res)\n  })\n.catch(reject)\n})\n}\n\nasync function filmapik(query) {\n\ttry{\n\tconst link = await axios.get(`https://filmapik.website/?s=${query}`);\n\tconst c = cheerio.load(link.data)\n\tlet Id = []\n\tc('#main > div > div.main-content.main-category > div.movies-list-wrap.mlw-category > div.movies-list.movies-list-full ').each(function (a, b) {\n\t\tc(b).find('div').each(function (e, d) {\n\t\t\tlet id = c(d).find('a').attr('href')\n\t\t\tId.push(id)\n\t\t})\n\t})\n\tlet Random = Id[Math.floor(Math.random() * (Id.length))]\n\tconst Link = await axios.get(Random)\n\tconst $ = cheerio.load(Link.data)\n\tlet judul = $('#mv-info').find('div.mvi-content > div.mvic-desc > h3').text().trim()\n\tlet view = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(1)').text().trim()\n\tlet genre = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(2)').text().trim()\n\tlet studio = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-left > p:nth-child(3) > span').text().trim()\n\tlet durasi = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(1) > span').text().trim()\n\tlet TvStatus = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > p:nth-child(2) > span').text().trim()\n\tlet network = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > div.mvici-right > div > p:nth-child(5) > a').text().trim()\n\tlet thumb = $('#mv-info').find('div.mvi-content > div.thumb.mvic-thumb > img').attr('src')\n\tlet BintangFilm = $('#mv-info').find('div.mvi-content > div.mvic-desc > div.mvic-info > p > span').text().trim()\n\tconst data = {\n\t\tauthor: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tresult: {\n\t\t\tjudul: judul,\n\t\t\tthumb: thumb,\n\t\t\tLink: Random,\n\t\t\tpenonton: view.replace('Views: ', ''),\n\t\t\tdurasi: durasi,\n\t\t\tgenre: genre.replace('Genre: ', ''),\n\t\t\tstudio: studio,\n\t\t\tTV: TvStatus,\n\t\t\tnetwork: network,\n\t\t\tbintangFilm: BintangFilm\n\t\t}\n\t}\n\treturn data\n} catch (err) {\n\tvar notFond = {\n\t\tauthor: '@rasel.ganz',\n\t\tstatus: link.status,\n\t\tPesan: 'sorry banh emror🙏'\n\t}\n\treturn notFond\n}\n}\n\n\nfunction aiovideodl(link) {\n    return new Promise((resolve, reject) => {\n        axios({\n            url: 'https://aiovideodl.ml/',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"\n            }\n        }).then((src) => {\n            let a = cheerio.load(src.data)\n            let token = a('#token').attr('value')\n            axios({\n                url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/',\n                method: 'POST',\n                headers: {\n                    \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"   \n                },\n                data: new URLSearchParams(Object.entries({ 'url': link, 'token': token }))\n            }).then(({ data }) => {\n                resolve({ status: src.status, creator: 'Dika Ardnt.', hasil: data })\n            })\n        })\n    })\n}\n\nasync function mediafire(url) {\nlet query = await axios.get(url) \nlet cher = cheerio.load(query.data)\nlet hasil = []\nlet link = cher('a#downloadButton').attr('href')\nlet size = cher('a#downloadButton').text().replace('Download', '').replace('(', '').replace(')', '').replace('\\n', '').replace('\\n', '').replace(' ', '')\nlet seplit = link.split('/')\nlet author = '@rasel.ganz'\nlet nama = seplit[5]\nlet mime = nama.split('.')\nmime = mime[1]\nhasil.push({ author, nama, mime, size, link })\nreturn hasil\nconsole.log(hasil)\n}\n\n"
  },
  {
    "path": "lib/scrapejoox.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst cheerio = require('cheerio')\nconst fetch = require('node-fetch')\nconst axios = require(\"axios\")\nconst qs = require(\"qs\")\n\n\nfunction joox(query) {\n    return new Promise((resolve, reject) => {\n        const time = Math.floor(new Date() / 1000)\n        axios.get('http://api.joox.com/web-fcgi-bin//web_search?lang=id&country=id&type=0&search_input=' + query + '&pn=1&sin=0&ein=29&_=' + time)\n            .then(({ data }) => {\n                let result = []\n                let hasil = []\n                let promoses = []\n                let ids = []\n                data.itemlist.forEach(result => {\n                    ids.push(result.songid)\n                });\n                for (let i = 0; i < data.itemlist.length; i++) {\n                    const get = 'http://api.joox.com/web-fcgi-bin/web_get_songinfo?songid=' + ids[i]\n                    promoses.push(\n                        axios.get(get, {\n                            headers: {\n                                Cookie: 'wmid=142420656; user_type=1; country=id; session_key=2a5d97d05dc8fe238150184eaf3519ad;'\n                            }\n                        })\n                            .then(({ data }) => {\n                                const res = JSON.parse(data.replace('MusicInfoCallback(', '').replace('\\n)', ''))\n                                hasil.push({\n                                    lagu: res.msong,\n                                    album: res.malbum,\n                                    penyanyi: res.msinger,\n                                    publish: res.public_time,\n                                    img: res.imgSrc,\n                                    mp3: res.mp3Url\n                                })\n                                Promise.all(promoses).then(() => resolve({\n                                    creator: \"wabot\", // Ganti terserah kalian \n                                    status: true,\n                                    data: hasil,\n                                }))\n                            }).catch(reject)\n                    )\n                }\n            }).catch(reject)\n    })\n}\n\nmodule.exports = { joox }"
  },
  {
    "path": "lib/scraper.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst axios = require('axios')\nconst cheerio = require('cheerio')\n\n\nfunction pinterest(querry){\n\treturn new Promise(async(resolve,reject) => {\n\t\t axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\n\t\t\theaders: {\n\t\t\t\"cookie\" : \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n\t\t}\n\t\t\t}).then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\tconst hasil = [];\n   \t\t $('div > a').get().map(b => {\n        const link = $(b).find('img').attr('src')\n            result.push(link)\n\t\t});\n   \t\tresult.forEach(v => {\n\t\t if(v == undefined) return\n\t\t hasil.push(v.replace(/236/g,'736'))\n\t\t\t})\n\t\t\thasil.shift();\n\t\tresolve(hasil)\n\t\t})\n\t})\n}\n\nfunction wallpaper(title, page = '1') {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('div.grid-item').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('div.info > a > h3').text(),\n                    type: $(b).find('div.info > a:nth-child(2)').text(),\n                    source: 'https://www.besthdwallpaper.com/'+$(b).find('div > a:nth-child(3)').attr('href'),\n                    image: [$(b).find('picture > img').attr('data-src') || $(b).find('picture > img').attr('src'), $(b).find('picture > source:nth-child(1)').attr('srcset'), $(b).find('picture > source:nth-child(2)').attr('srcset')]\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction wikimedia(title) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let hasil = []\n            $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('img').attr('alt'),\n                    source: $(b).attr('href'),\n                    image: $(b).find('img').attr('data-src') || $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction quotesAnime() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 184)\n        axios.get('https://otakotaku.com/quote/feed/'+page)\n        .then(({ data }) => {\n            const $ = cheerio.load(data)\n            const hasil = []\n            $('div.kotodama-list').each(function(l, h) {\n                hasil.push({\n                    link: $(h).find('a').attr('href'),\n                    gambar: $(h).find('img').attr('data-src'),\n                    karakter: $(h).find('div.char-name').text().trim(),\n                    anime: $(h).find('div.anime-title').text().trim(),\n                    episode: $(h).find('div.meta').text(),\n                    up_at: $(h).find('small.meta').text(),\n                    quotes: $(h).find('div.quote').text().trim()\n                })\n            })\n            resolve(hasil)\n        }).catch(reject)\n    })\n}\n\nfunction aiovideodl(link) {\n    return new Promise((resolve, reject) => {\n        axios({\n            url: 'https://aiovideodl.ml/',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"\n            }\n        }).then((src) => {\n            let a = cheerio.load(src.data)\n            let token = a('#token').attr('value')\n            axios({\n                url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/',\n                method: 'POST',\n                headers: {\n                    \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"   \n                },\n                data: new URLSearchParams(Object.entries({ 'url': link, 'token': token }))\n            }).then(({ data }) => {\n                resolve(data)\n            })\n        })\n    })\n}\n\nfunction umma(url) {\n    return new Promise((resolve, reject) => {\n        axios.get(url)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let image = []\n            $('#article-content > div').find('img').each(function (a, b) {\n                image.push($(b).attr('src')) \n            })\n            let hasil = {\n                title: $('#wrap > div.content-container.font-6-16 > h1').text().trim(),\n                author: {\n                    name: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.user-ame.font-6-16.fw').text().trim(),\n                    profilePic: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.profile-photo > img.photo').attr('src')\n                },\n                caption: $('#article-content > div > p').text().trim(),\n                media: $('#article-content > div > iframe').attr('src') ? [$('#article-content > div > iframe').attr('src')] : image,\n                type: $('#article-content > div > iframe').attr('src') ? 'video' : 'image',\n                like: $('#wrap > div.bottom-btns > div > button:nth-child(1) > div.text.font-6-12').text(),\n            }\n            resolve(hasil)\n        })\n    })\n}\n\nfunction ringtone(title) {\n    return new Promise((resolve, reject) => {\n        axios.get('https://meloboom.com/en/search/'+title)\n        .then((get) => {\n            let $ = cheerio.load(get.data)\n            let hasil = []\n            $('#__next > main > section > div.jsx-2244708474.container > div > div > div > div:nth-child(4) > div > div > div > ul > li').each(function (a, b) {\n                hasil.push({ title: $(b).find('h4').text(), source: 'https://meloboom.com/'+$(b).find('a').attr('href'), audio: $(b).find('audio').attr('src') })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction styletext(teks) {\n    return new Promise((resolve, reject) => {\n        axios.get('http://qaz.wtf/u/convert.cgi?text='+teks)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('table > tbody > tr').each(function (a, b) {\n                hasil.push({ name: $(b).find('td:nth-child(1) > span').text(), result: $(b).find('td:nth-child(2)').text().trim() })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nmodule.exports = { pinterest, wallpaper, wikimedia, quotesAnime, aiovideodl, umma, ringtone, styletext }\n"
  },
  {
    "path": "lib/scraper2.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nconst cheerio = require('cheerio')\nconst axios = require('axios')\n\n// Downloader\nasync function aiovideodl(link) {\n    return new Promise((resolve, reject) => {\n        axios({\n            url: 'https://aiovideodl.ml/',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"\n            }\n        }).then((src) => {\n            let a = cheerio.load(src.data)\n            let token = a('#token').attr('value')\n            axios({\n                url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/',\n                method: 'POST',\n                headers: {\n                    \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"   \n                },\n                data: new URLSearchParams(Object.entries({ 'url': link, 'token': token }))\n            }).then(({ data }) => {\n                resolve(data)\n            })\n        })\n    })\n}\n\nmodule.exports = { aiovideodl }"
  },
  {
    "path": "lib/scraper3.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst axios = require('axios')\nconst cheerio = require('cheerio')\n\n\nfunction pinterest(querry){\n\treturn new Promise(async(resolve,reject) => {\n\t\t axios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\n\t\t\theaders: {\n\t\t\t\"cookie\" : \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n\t\t}\n\t\t\t}).then(({ data }) => {\n\t\tconst $ = cheerio.load(data)\n\t\tconst result = [];\n\t\tconst hasil = [];\n   \t\t $('div > a').get().map(b => {\n        const link = $(b).find('img').attr('src')\n            result.push(link)\n\t\t});\n   \t\tresult.forEach(v => {\n\t\t if(v == undefined) return\n\t\t hasil.push(v.replace(/236/g,'736'))\n\t\t\t})\n\t\t\thasil.shift();\n\t\tresolve(hasil)\n\t\t})\n\t})\n}\n\nfunction wallpaper(title, page = '1') {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('div.grid-item').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('div.info > a > h3').text(),\n                    type: $(b).find('div.info > a:nth-child(2)').text(),\n                    source: 'https://www.besthdwallpaper.com/'+$(b).find('div > a:nth-child(3)').attr('href'),\n                    image: [$(b).find('picture > img').attr('data-src') || $(b).find('picture > img').attr('src'), $(b).find('picture > source:nth-child(1)').attr('srcset'), $(b).find('picture > source:nth-child(2)').attr('srcset')]\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction wikimedia(title) {\n    return new Promise((resolve, reject) => {\n        axios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let hasil = []\n            $('.sdms-search-results__list-wrapper > div > a').each(function (a, b) {\n                hasil.push({\n                    title: $(b).find('img').attr('alt'),\n                    source: $(b).attr('href'),\n                    image: $(b).find('img').attr('data-src') || $(b).find('img').attr('src')\n                })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction quotesAnime() {\n    return new Promise((resolve, reject) => {\n        const page = Math.floor(Math.random() * 184)\n        axios.get('https://notify.moe/quotes')\n        .then(({ data }) => {\n            const $ = cheerio.load(data)\n            const hasil = []\n            $('div.notify.moe-list').each(function(l, h) {\n                hasil.push({\n                    link: $(h).find('a').attr('href'),\n                    gambar: $(h).find('img').attr('data-src'),\n                    karakter: $(h).find('div.char-name').text().trim(),\n                    anime: $(h).find('div.anime-title').text().trim(),\n                    episode: $(h).find('div.meta').text(),\n                    up_at: $(h).find('small.meta').text(),\n                    quotes: $(h).find('div.quote').text().trim()\n                })\n            })\n            resolve(hasil)\n        }).catch(reject)\n    })\n}\n\nfunction aiovideodl(link) {\n    return new Promise((resolve, reject) => {\n        axios({\n            url: 'https://aiovideodl.ml/',\n            method: 'GET',\n            headers: {\n                \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"\n            }\n        }).then((src) => {\n            let a = cheerio.load(src.data)\n            let token = a('#token').attr('value')\n            axios({\n                url: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/',\n                method: 'POST',\n                headers: {\n                    \"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n                    \"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"   \n                },\n                data: new URLSearchParams(Object.entries({ 'url': link, 'token': token }))\n            }).then(({ data }) => {\n                resolve(data)\n            })\n        })\n    })\n}\n\nfunction umma(url) {\n    return new Promise((resolve, reject) => {\n        axios.get(url)\n        .then((res) => {\n            let $ = cheerio.load(res.data)\n            let image = []\n            $('#article-content > div').find('img').each(function (a, b) {\n                image.push($(b).attr('src')) \n            })\n            let hasil = {\n                title: $('#wrap > div.content-container.font-6-16 > h1').text().trim(),\n                author: {\n                    name: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.user-ame.font-6-16.fw').text().trim(),\n                    profilePic: $('#wrap > div.content-container.font-6-16 > div.content-top > div > div.profile-photo > img.photo').attr('src')\n                },\n                caption: $('#article-content > div > p').text().trim(),\n                media: $('#article-content > div > iframe').attr('src') ? [$('#article-content > div > iframe').attr('src')] : image,\n                type: $('#article-content > div > iframe').attr('src') ? 'video' : 'image',\n                like: $('#wrap > div.bottom-btns > div > button:nth-child(1) > div.text.font-6-12').text(),\n            }\n            resolve(hasil)\n        })\n    })\n}\n\nfunction ringtone(title) {\n    return new Promise((resolve, reject) => {\n        axios.get('https://meloboom.com/en/search/'+title)\n        .then((get) => {\n            let $ = cheerio.load(get.data)\n            let hasil = []\n            $('#__next > main > section > div.jsx-2244708474.container > div > div > div > div:nth-child(4) > div > div > div > ul > li').each(function (a, b) {\n                hasil.push({ title: $(b).find('h4').text(), source: 'https://meloboom.com/'+$(b).find('a').attr('href'), audio: $(b).find('audio').attr('src') })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nfunction styletext(teks) {\n    return new Promise((resolve, reject) => {\n        axios.get('http://qaz.wtf/u/convert.cgi?text='+teks)\n        .then(({ data }) => {\n            let $ = cheerio.load(data)\n            let hasil = []\n            $('table > tbody > tr').each(function (a, b) {\n                hasil.push({ name: $(b).find('td:nth-child(1) > span').text(), result: $(b).find('td:nth-child(2)').text().trim() })\n            })\n            resolve(hasil)\n        })\n    })\n}\n\nmodule.exports = { pinterest, wallpaper, wikimedia, quotesAnime, aiovideodl, umma, ringtone, styletext }\n"
  },
  {
    "path": "lib/skiuwers.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\n//===> EXTERNAL MODULES\nlet { WAConnection, MessageType, Mimetype} = require('@adiwajshing/baileys')\nrip = new WAConnection()\n//const { getBuffer } = require(\"../root.js\");\nconst { JSDOM } = require('jsdom')\nconst fetch = require('node-fetch')\nconst FormData = require('form-data')\nconst axios = require(\"axios\")\nconst { default: Axios } = require('axios');\nconst cheerio = require(\"cheerio\")\nconst { exec } = require('child_process');\nconst fs = require('fs');\nconst qs = require('qs')\nconst { fromBuffer } = require('file-type')\n\n//===> VARUABLE\nconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\n\n//===> POST\nfunction post(url, formdata) {\nconsole.log(Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&'))\nreturn fetch(url, {\nmethod: 'POST',\nheaders: {\naccept: \"*/*\",\n'accept-language': \"en-US,en;q=0.9\",\n'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n},\nbody: Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&')\n})\n}\n\nfunction pinterest(querry){\nreturn new Promise(async(resolve,reject) => {\naxios.get('https://id.pinterest.com/search/pins/?autologin=true&q=' + querry, {\nheaders: {\n\"cookie\" : \"_auth=1; _b=\\\"AVna7S1p7l1C5I9u0+nR3YzijpvXOPc6d09SyCzO+DcwpersQH36SmGiYfymBKhZcGg=\\\"; _pinterest_sess=TWc9PSZHamJOZ0JobUFiSEpSN3Z4a2NsMk9wZ3gxL1NSc2k2NkFLaUw5bVY5cXR5alZHR0gxY2h2MVZDZlNQalNpUUJFRVR5L3NlYy9JZkthekp3bHo5bXFuaFZzVHJFMnkrR3lTbm56U3YvQXBBTW96VUgzVUhuK1Z4VURGKzczUi9hNHdDeTJ5Y2pBTmxhc2owZ2hkSGlDemtUSnYvVXh5dDNkaDN3TjZCTk8ycTdHRHVsOFg2b2NQWCtpOWxqeDNjNkk3cS85MkhhSklSb0hwTnZvZVFyZmJEUllwbG9UVnpCYVNTRzZxOXNJcmduOVc4aURtM3NtRFo3STlmWjJvSjlWTU5ITzg0VUg1NGhOTEZzME9SNFNhVWJRWjRJK3pGMFA4Q3UvcHBnWHdaYXZpa2FUNkx6Z3RNQjEzTFJEOHZoaHRvazc1c1UrYlRuUmdKcDg3ZEY4cjNtZlBLRTRBZjNYK0lPTXZJTzQ5dU8ybDdVS015bWJKT0tjTWYyRlBzclpiamdsNmtpeUZnRjlwVGJXUmdOMXdTUkFHRWloVjBMR0JlTE5YcmhxVHdoNzFHbDZ0YmFHZ1VLQXU1QnpkM1FqUTNMTnhYb3VKeDVGbnhNSkdkNXFSMXQybjRGL3pyZXRLR0ZTc0xHZ0JvbTJCNnAzQzE0cW1WTndIK0trY05HV1gxS09NRktadnFCSDR2YzBoWmRiUGZiWXFQNjcwWmZhaDZQRm1UbzNxc21pV1p5WDlabm1UWGQzanc1SGlrZXB1bDVDWXQvUis3elN2SVFDbm1DSVE5Z0d4YW1sa2hsSkZJb1h0MTFpck5BdDR0d0lZOW1Pa2RDVzNySWpXWmUwOUFhQmFSVUpaOFQ3WlhOQldNMkExeDIvMjZHeXdnNjdMYWdiQUhUSEFBUlhUVTdBMThRRmh1ekJMYWZ2YTJkNlg0cmFCdnU2WEpwcXlPOVZYcGNhNkZDd051S3lGZmo0eHV0ZE42NW8xRm5aRWpoQnNKNnNlSGFad1MzOHNkdWtER0xQTFN5Z3lmRERsZnZWWE5CZEJneVRlMDd2VmNPMjloK0g5eCswZUVJTS9CRkFweHc5RUh6K1JocGN6clc1JmZtL3JhRE1sc0NMTFlpMVErRGtPcllvTGdldz0=; _ir=0\"\n}\n}).then(({ data }) => {\nconst $ = cheerio.load(data)\nconst result = [];\nconst hasil = [];\n$('div > a').get().map(b => {\nconst link = $(b).find('img').attr('src')\nresult.push(link)\n});\nresult.forEach(v => {\nif(v == undefined) return\nhasil.push(v.replace(/236/g,'736'))\n})\nhasil.shift();\nresolve(hasil)\n})\n})\n}\n\nfunction wallpaper(title, page = '1') {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`)\n.then(({ data }) => {\nlet $ = cheerio.load(data)\nlet hasil = []\n$('div.grid-item').each(function (a, b) {\nhasil.push({\ntitle: $(b).find('div.info > a > h3').text(),\ntype: $(b).find('div.info > a:nth-child(2)').text(),\nsource: 'https://www.besthdwallpaper.com/'+$(b).find('div > a:nth-child(3)').attr('href'),\nimage: [$(b).find('picture > img').attr('data-src') || $(b).find('picture > img').attr('src'), $(b).find('picture > source:nth-child(1)').attr('srcset'), $(b).find('picture > source:nth-child(2)').attr('srcset')]\n})\n})\nresolve(hasil)\n})\n})\n}\n\nfunction wikimedia(title) {\nreturn new Promise((resolve, reject) => {\naxios.get(`https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`)\n.then((res) => {\nlet $ = cheerio.load(res.data)\nlet hasil = []\n$('.sdms-search-results__list-wrapper > div > a').each(function (a, b) {\nhasil.push({\ntitle: $(b).find('img').attr('alt'),\nsource: $(b).attr('href'),\nimage: $(b).find('img').attr('data-src') || $(b).find('img').attr('src')\n})\n})\nresolve(hasil)\n})\n})\n}\n\nfunction quotesAnime() {\nreturn new Promise((resolve, reject) => {\nconst page = Math.floor(Math.random() * 184)\naxios.get('https://otakotaku.com/quote/feed/'+page)\n.then(({ data }) => {\nconst $ = cheerio.load(data)\nconst hasil = []\n$('div.kotodama-list').each(function(l, h) {\nhasil.push({\nlink: $(h).find('a').attr('href'),\ngambar: $(h).find('img').attr('data-src'),\nkarakter: $(h).find('div.char-name').text().trim(),\nanime: $(h).find('div.anime-title').text().trim(),\nepisode: $(h).find('div.meta').text(),\nup_at: $(h).find('small.meta').text(),\nquotes: $(h).find('div.quote').text().trim()\n})\n})\nresolve(hasil)\n}).catch(reject)\n})\n}\n\nconst y2mateV = async (yutub) => {\nfunction post(url, formdata) {\nreturn fetch(url, {\nmethod: 'POST',\nheaders: {\naccept: \"*/*\",\n'accept-language': \"en-US,en;q=0.9\",\n'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n},\nbody: new URLSearchParams(Object.entries(formdata))\n})\n}\nconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\nlet ytId = ytIdRegex.exec(yutub)\nurl = 'https://youtu.be/' + ytId[1]\nlet res = await post(`https://www.y2mate.com/mates/en68/analyze/ajax`, {\nurl,\nq_auto: 0,\najax: 1\n})\nconst mela = await res.json()\nconst $ = cheerio.load(mela.result)\nconst hasil = []\nlet thumb = $('div').find('.thumbnail.cover > a > img').attr('src')\nlet judul = $('div').find('.thumbnail.cover > div > b').text()\nlet quality = $('div').find('#mp4 > table > tbody > tr:nth-child(4) > td:nth-child(3) > a').attr('data-fquality')\nlet tipe = $('div').find('#mp4 > table > tbody > tr:nth-child(3) > td:nth-child(3) > a').attr('data-ftype')\nlet output = `${judul}.` + tipe\nlet size = $('div').find('#mp4 > table > tbody > tr:nth-child(4) > td:nth-child(2)').text()\nlet id = /var k__id = \"(.*?)\"/.exec(mela.result)[1]\nlet res2 = await post(`https://www.y2mate.com/mates/en68/convert`, {\ntype: 'youtube',\n_id: id,\nv_id: ytId[1],\najax: '1',\ntoken: '',\nftype: tipe,\nfquality: quality\n})\nconst meme = await res2.json()\nconst supp = cheerio.load(meme.result)\nlet link = supp('div').find('a').attr('href')\nhasil.push({ thumb, judul, quality, tipe, size, output, link})\nreturn hasil\n}\n\nconst y2mateA = async (yutub) => {\nfunction post(url, formdata) {\nreturn fetch(url, {\nmethod: 'POST',\nheaders: {\naccept: \"*/*\",\n'accept-language': \"en-US,en;q=0.9\",\n'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n},\nbody: new URLSearchParams(Object.entries(formdata))\n})\n}\nconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\nlet ytId = ytIdRegex.exec(yutub)\nurl = 'https://youtu.be/' + ytId[1]\nlet res = await post(`https://www.y2mate.com/mates/en68/analyze/ajax`, {\nurl,\nq_auto: 0,\najax: 1\n})\nconst mela = await res.json()\nconst $ = cheerio.load(mela.result)\nconst hasil = []\nlet thumb = $('div').find('.thumbnail.cover > a > img').attr('src')\nlet judul = $('div').find('.thumbnail.cover > div > b').text()\nlet size = $('div').find('#mp3 > table > tbody > tr > td:nth-child(2)').text()\nlet tipe = $('div').find('#mp3 > table > tbody > tr > td:nth-child(3) > a').attr('data-ftype')\nlet output = `${judul}.` + tipe\nlet quality = $('div').find('#mp3 > table > tbody > tr > td:nth-child(3) > a').attr('data-fquality')\nlet id = /var k__id = \"(.*?)\"/.exec(mela.result)[1]\nlet res2 = await post(`https://www.y2mate.com/mates/en68/convert`, {\ntype: 'youtube',\n_id: id,\nv_id: ytId[1],\najax: '1',\ntoken: '',\nftype: tipe,\nfquality: quality\n})\nconst meme = await res2.json()\nconst supp = cheerio.load(meme.result)\nlet link = supp('div').find('a').attr('href')\nhasil.push({ thumb, judul, quality, tipe, size, output, link})\nreturn hasil\n}\nasync function tiktokDown (Url) {\nreturn new Promise (async (resolve, reject) => {\nawait axios.request({\nurl: \"https://ttdownloader.com/\",\nmethod: \"GET\",\nheaders: {\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n}\n}).then(respon => {\nconst $ = cheerio.load(respon.data)\nconst token = $('#token').attr('value')\naxios({\nurl: \"https://ttdownloader.com/req/\",\nmethod: \"POST\",\ndata: new URLSearchParams(Object.entries({url: Url, format: \"\", token: token})),\nheaders: {\n\"accept\": \"*/*\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n}\n}).then(res => {\nconst ch = cheerio.load(res.data)\nvar creator = `lala`\nconst result = {\nstatus: res.status,\nauthor: `${creator}`,\nresult: {\nnowatermark: ch('#results-list > div:nth-child(2)').find('div.download > a').attr('href'),\nwatermark: ch('#results-list > div:nth-child(3)').find('div.download > a').attr('href'),\naudio: ch('#results-list > div:nth-child(4)').find(' div.download > a').attr('href')\n}\n}\nresolve(result)\n}).catch(reject)\n}).catch(reject)\n})\n}\nconst downloadig = async(link, from, rip, prefix) => {\ntry {\nvar a = await axios.get(`https://megayaa.herokuapp.com/api/igdl?url=${link}`)\nvar b = a.data.result\nvar owner = a.data.owner\nvar capt = a.data.caption\nb.forEach(async(res) => {\nif(res.type == 'jpg'){\nvar c = await getBuffer(res.url)\nskiuwers.sendMessage(from, c, MessageType.image, {quoted: rip, caption: `Instagram Downloader\\n\\nOwner : ${owner}\\n\\nCaption : ${capt}\\n\\nType : ${res.type}`})\n} else {\nvar d = await getBuffer(res.url)\nskiuwers.sendMessage(from, d, MessageType.video, {quoted: rip, caption: `Instagram Downloader\\n\\nOwner : ${owner}\\n\\nCaption : ${capt}\\n\\nType : ${res.type}` })\n}\n})\n} catch (e) {\nconsole.log(e)\nskiuwers.sendMessage(from, 'error, mungkin link tidak valid', MessageType.text)\n}\n}\n\nconst igstory = async(username, from, rip, prefix) => {\ntry {\nvar a = await axios.get(`https://megayaa.herokuapp.com/api/igstori?username=${username}`)\nvar username = a.data.username\nvar count = a.data.stories_count\nvar b = a.data.data\nb.forEach(async(res) => {\nif(res.type == 'jpg'){\nvar c = await getBuffer(res.url)\nskiuwers.sendMessage(from, c, MessageType.image)\n} else {\nvar d = await getBuffer(res.url)\nskiuwers.sendMessage(from, d, MessageType.video)\n}\n})\n} catch (e) {\nconsole.log(e)\nskiuwers.sendMessage(from, 'error, mungkin link tidak valid', MessageType.text)\n}\n}\n\nfunction webp2gifFile(path) {\nreturn new Promise((resolve, reject) => {\nconst bodyForm = new FormData()\nbodyForm.append('new-image-url', '')\nbodyForm.append('new-image', fs.createReadStream(path))\nAxios({\nmethod: 'post',\nurl: 'https://s6.ezgif.com/webp-to-mp4',\ndata: bodyForm,\nheaders: {\n'Content-Type': `multipart/form-data; boundary=${bodyForm._boundary}`\n}\n}).then(({ data }) => {\nconst bodyFormThen = new FormData()\nconst $ = cheerio.load(data)\nconst file = $('input[name=\"file\"]').attr('value')\nconst token = $('input[name=\"token\"]').attr('value')\nconst convert = $('input[name=\"file\"]').attr('value')\nconst gotdata = {\nfile: file,\ntoken: token,\nconvert: convert\n}\nbodyFormThen.append('file', gotdata.file)\nbodyFormThen.append('token', gotdata.token)\nbodyFormThen.append('convert', gotdata.convert)\nAxios({\nmethod: 'post',\nurl: 'https://ezgif.com/webp-to-mp4/' + gotdata.file,\ndata: bodyFormThen,\nheaders: {\n'Content-Type': `multipart/form-data; boundary=${bodyFormThen._boundary}`\n}\n}).then(({ data }) => {\nconst $ = cheerio.load(data)\nconst result = 'https:' + $('div#output > p.outfile > video > source').attr('src')\nresolve({\nstatus: true,\nmessage: \"Created By MRHRTZ\",\nresult: result\n})\n}).catch(reject)\n}).catch(reject)\n})\n}\n\nasync function igDownloader(Link) {\nconst hasil = []\nconst Form = {\nurl: Link,\nsubmit: \"\"\n}\nawait axios(`https://downloadgram.org/`, {\nmethod: \"POST\",\ndata:  new URLSearchParams(Object.entries(Form)),\nheaders: {\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"cache-control\": \"max-age=0\",\n\"content-type\": \"application/x-www-form-urlencoded\",\n\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\"cookie\": \"_ga=GA1.2.1695343126.1621491858; _gid=GA1.2.28178724.1621491859; __gads=ID=8f9d3ef930e9a07b-2258e672bec80081:T=1621491859:RT=1621491859:S=ALNI_MbqLxhztDiYZttJFX2SkvYei6uGOw; __atuvc=3%7C20; __atuvs=60a6eb107a17dd75000; __atssc=google%3B2; _gat_gtag_UA_142480840_1=1\"\n},\nreferrerPolicy: \"strict-origin-when-cross-origin\",\n}).then(async res => {\nconst $ = cheerio.load(res.data)\nlet url = $('#downloadBox').find('a').attr('href');\nawait axios(Link, {\nmethod: \"GET\",\ndata: null,\nheaders: {\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"cache-control\": \"max-age=0\",\n\"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"90\\\", \\\"Google Chrome\\\";v=\\\"90\\\"\",\n\"cookie\": \"ig_did=08A3C465-7D43-4D8A-806A-88F98384E63B; ig_nrcb=1; mid=X_ipMwALAAFgQ7AftbrkhIDIdXJ8; fbm_124024574287414=base_domain=.instagram.com; shbid=17905; ds_user_id=14221286336; csrftoken=fXHAj5U3mcJihQEyVXfyCzcg46lHx7QD; sessionid=14221286336%3A5n4czHpQ0GRzlq%3A28; shbts=1621491639.7673564; rur=FTW\"\n},\nreferrerPolicy: \"strict-origin-when-cross-origin\"\n}).then(respon => {\nconst ch = cheerio.load(respon.data)\nlet title = ch('title').text().trim()\nconst result = {\nstatus: true,\nresult: {\nlink: url,\ndesc: title\n}\n}\nhasil.push(result)\n})\n})\nreturn hasil[0]\n}\n\nasync function TiktokDownloader(Url) {\nreturn new Promise (async (resolve, reject) => {\nawait axios.request({\nurl: \"https://ttdownloader.com/\",\nmethod: \"GET\",\nheaders: {\n\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n}\n}).then(respon => {\nconst $ = cheerio.load(respon.data)\nconst token = $('#token').attr('value')\naxios({\nurl: \"https://ttdownloader.com/req/\",\nmethod: \"POST\",\ndata: new URLSearchParams(Object.entries({url: Url, format: \"\", token: token})),\nheaders: {\n\"accept\": \"*/*\",\n\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n}\n}).then(res => {\nconst ch = cheerio.load(res.data)\nconst result = {\nstatus: res.status,\nresult: {\nnowatermark: ch('#results-list > div:nth-child(2)').find('div.download > a').attr('href'),\nwatermark: ch('#results-list > div:nth-child(3)').find('div.download > a').attr('href'),\naudio: ch('#results-list > div:nth-child(4)').find(' div.download > a').attr('href')\n}\n}\nresolve(result)\n}).catch(reject)\n}).catch(reject)\n})\n}\n//===> IGDL\nfunction igdl(url_media) {\nreturn new Promise((resolve,reject)=>{\nurl_media = url_media.replace(\"reel\", \"p\")\nvar url = \"https://igram.io/i/\"\nconst requestBody = {\nurl: url_media.replace(\"reel\", \"p\"),\nlang_code: \"en\"\n}\nconst config = {\nheaders: { \n'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.75', \n'x-requested-with': ' XMLHttpRequest', \n'origin': ' https://igram.io', \n'referer': ' https://igram.io/en/dl/', \n'sec-fetch-dest': ' empty', \n'sec-fetch-mode': ' cors', \n'sec-fetch-site': ' same-origin', \n'Content-Type': 'application/x-www-form-urlencoded', \n'Cookie': '__cfduid=d4c2ddc2229a4d74c28b6ba25cdcd2a181618175605'\n},\n}\naxios.post(url, qs.stringify(requestBody), config).then(result => {\nlet $ = cheerio.load(result.data), ig = []\n//Obter todos os links de videos da pagina carregada\n$('[data-mediatype=Video]').each((i, element) => {\nlet cheerioElement = $(element)\nig.push(cheerioElement.attr(\"href\"))\n})\n//Obter todos os links de imagem da pagina carregada\n$('div > div.bg-white.border.rounded-sm.max-w-md > img').each((i, element) => {\nlet cheerioElement = $(element)\nig.push(cheerioElement.attr(\"src\"))\n})\nresolve({\nresults_number : ig.length,\nurl_list: ig\n})\n}).catch(err=>{\nconsole.log(err.response)\nreject(err)\n})\n})\n}\n//===> FOTOIG\nconst fotoIg = async (igLink) => {\nfunction post(url, formdata) {\nreturn fetch(url, {\nmethod: 'POST',\nheaders: {\naccept: \"*/*\",\n 'X-Requested-With': \"XMLHttpRequest\",\n'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n},\nbody: new URLSearchParams(Object.entries(formdata))\n})\n}\nconst hasil = []\nconst res = await post('https://igdownloader.com/ajax', {\nlink: igLink, \ndownloader: 'photo'\n})\nconst mela = await res.json()\nconst $ = cheerio.load(mela.html)\nlet foto = $('div').find('.img-block > div > div.post > img').attr('src')\nhasil.push({ foto })\nreturn hasil\n}\n//===> VIDEOIG\nconst videoIg = async (igLink) => {\nfunction post(url, formdata) {\nreturn fetch(url, {\nmethod: 'POST',\nheaders: {\naccept: \"*/*\",\n 'X-Requested-With': \"XMLHttpRequest\",\n'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n},\nbody: new URLSearchParams(Object.entries(formdata))\n})\n}\nhasil = []\nres = await post('https://igdownloader.com/ajax', {\nlink: igLink, \ndownloader: 'video'\n})\nmela = await res.json()\n$ = cheerio.load(mela.html)\nlet video = $('div').find('.img-block > div > div.post').attr('data-src')\nhasil.push({ video})\nreturn hasil\n}\n//===> AIOVIDEODL\nfunction aiovideodl(link) {\nreturn new Promise((resolve, reject) => {\naxios({\nurl: 'https://aiovideodl.ml/',\nmethod: 'GET',\nheaders: {\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"\n}\n}).then((src) => {\nlet a = cheerio.load(src.data)\nlet token = a('#token').attr('value')\naxios({\nurl: 'https://aiovideodl.ml/wp-json/aio-dl/video-data/',\nmethod: 'POST',\nheaders: {\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\"cookie\": \"PHPSESSID=69ce1f8034b1567b99297eee2396c308; _ga=GA1.2.1360894709.1632723147; _gid=GA1.2.1782417082.1635161653\"   \n},\ndata: new URLSearchParams(Object.entries({ 'url': link, 'token': token }))\n}).then(({ data }) => {\nresolve(data)\n})\n})\n})\n}\n//===> YTA\nfunction yta(url) {\nreturn new Promise((resolve, reject) => {\nif (ytIdRegex.test(url)) {\nlet ytId = ytIdRegex.exec(url)\nurl = 'https://youtu.be/' + ytId[1]\nres = post('https://www.y2mate.com/mates/en60/analyze/ajax', {\nurl,\nq_auto: 0,\najax: 1\n})\n.then(res => res.json())\n.then(res => {\nlet document = (new JSDOM(res.result)).window.document\nlet type = document.querySelectorAll('td')\nlet filesize = type[type.length - 10].innerHTML\nlet id = /var k__id = \"(.*?)\"/.exec(document.body.innerHTML) || ['', '']\nlet thumb = document.querySelector('img').src\nlet title = document.querySelector('b').innerHTML\nres = post('https://www.y2mate.com/mates/en60/convert', {\ntype: 'youtube',\n_id: id[1],\nv_id: ytId[1],\najax: '1',\ntoken: '',\nftype: 'mp3',\nfquality: 128\n})\n.then(res => res.json())\n.then(res => {\nlet KB = parseFloat(filesize) * (1000 * /MB$/.test(filesize))\nresolve({\ndl_link: /<a.+?href=\"(.+?)\"/.exec(res.result)[1],\nthumb,\ntitle,\nfilesizeF: filesize,\nfilesize: KB\n})\n}).catch(reject)\n}).catch(reject)\n} else reject('URL INVALID')\n})\n}\n//===> YTV\nfunction ytv(url) {\nreturn new Promise((resolve, reject) => {\nif (ytIdRegex.test(url)) {\nlet ytId = ytIdRegex.exec(url)\nurl = 'https://youtu.be/' + ytId[1]\nres = post('https://www.y2mate.com/mates/en60/analyze/ajax', {\nurl,\nq_auto: 0,\najax: 1\n})\n.then(res => res.json())\n.then(res => {\nlet document = (new JSDOM(res.result)).window.document\nlet typo = document.querySelectorAll('td')\nlet filesize = typo[typo.length - 23].innerHTML\nlet id = /var k__id = \"(.*?)\"/.exec(document.body.innerHTML) || ['', '']\nlet thumb = document.querySelector('img').src\nlet title = document.querySelector('b').innerHTML\nres = post('https://www.y2mate.com/mates/en60/convert', {\ntype: 'youtube',\n_id: id[1],\nv_id: ytId[1],\najax: '1',\ntoken: '',\nftype: 'mp4',\nfquality: 360\n})\n.then(res => res.json())\n.then(res => {\nlet KB = parseFloat(filesize) * (1000 * /MB$/.test(filesize))\nresolve({\ndl_link: /<a.+?href=\"(.+?)\"/.exec(res.result)[1],\nthumb,\ntitle,\nfilesizeF: filesize,\nfilesize: KB\n})\n}).catch(reject)\n}).catch(reject)\n} else reject('URL INVALID')\n})\n}   \n//===> FBDOWN\nconst fbDown = async (fbLink) => {\nfunction post(url, formdata) {\nreturn fetch(url, {\nmethod: 'POST',\nheaders: {\naccept: \"*/*\",\n'X-Requested-With': \"XMLHttpRequest\",\n'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n},\nbody: new URLSearchParams(Object.entries(formdata))\n})\n}\nconst res = await post('https://saveas.co/system/action.php', {\nurl: fbLink, \ntoken: ''\n})\nconst mela = await res.json()\nconst hasil = []\nlet judul = mela.title\nlet source = mela.source\nlet thumb = mela.thumbnail\nlet link = mela.links[1].url\nlet size = mela.links[1].size\nlet quality = mela.links[1].quality\nlet type = mela.links[1].type\nhasil.push({ judul, source, thumb, link, size, quality, type }) \nreturn hasil\n}\nconst lirikLagu = async (query) => {\nconst res = await axios.get(`https://www.musixmatch.com/search/${query}`)\nconst sup = cheerio.load(res.data)\nconst hasil = []\nconst b = sup('#site').find('div > div > div > div > ul > li:nth-child(1) > div > div > div')\nlet link = `https://www.musixmatch.com` + sup(b).find('h2 > a').attr('href')\nconst des = await axios.get(link)\nconst soup = cheerio.load(des.data)\nconst result = soup('#site').find('.mxm-lyrics__content > .lyrics__content__ok').text()\nhasil.push({ result})\nreturn hasil\n}\nconst newsCnn = async(genre) => {\nconst res = await axios.get(`https://www.cnnindonesia.com/${genre}`) \nconst $ = cheerio.load(res.data)\nconst hasil = []\n$('article').each(function(a, b) {\nconst link = $(b).find('a').attr('href')\nconst thumb = $(b).find('img').attr('src') \nconst judul = $(b).find('img').attr('alt')\nhasil.push({ judul, link, thumb })\n}) \nreturn hasil\n}\nconst mediafireDl = async (url) => {\nconst res = await axios.get(url) \nconst $ = cheerio.load(res.data)\nconst hasil = []\nconst link = $('a#downloadButton').attr('href')\nconst size = $('a#downloadButton').text().replace('Download', '').replace('(', '').replace(')', '').replace('\\n', '').replace('\\n', '').replace('', '')\nconst seplit = link.split('/')\nconst nama = seplit[5]\nmime = nama.split('.')\nmime = mime[1]\nhasil.push({ nama, mime, size, link })\nreturn hasil\n}\nconst jadwalSolat = async(tempat) => {\nconst url = `https://m.dream.co.id/jadwal-salat/${tempat}`\nconst res = await axios.get(url)\nconst $ = cheerio.load(res.data)\nconst a = $('table').find('tbody > tr > td')\nhasil = []\nconst emror = \"_[ ! ] Error Daerah Tidak DiTemukan_\"\nconst daerah = url.split('/')[4]\nconst tanggal = $(a).eq(0).text()\nconst shubuh = $(a).eq(1).text()\nconst dzuhur = $(a).eq(2).text()\nconst ashar = $(a).eq(3).text()\nconst maghrib = $(a).eq(4).text()\nconst isya = $(a).eq(5).text()\nhasil.push({ daerah, tanggal, shubuh, dzuhur, ashar, maghrib, isya})\nreturn hasil\n}\nconst wikiSearch = async (query) => {\nconst res = await axios.get(`https://id.m.wikipedia.org/w/index.php?search=${query}`)\nconst $ = cheerio.load(res.data)\nconst hasil = []\nlet wiki = $('#mf-section-0').find('p').text()\nlet thumb = $('#mf-section-0').find('div > div > a > img').attr('src')\nthumb = thumb ? thumb : '//pngimg.com/uploads/wikipedia/wikipedia_PNG35.png'\nthumb = 'https:' + thumb\nlet judul = $('h1#section_0').text()\nhasil.push({ wiki, thumb, judul })\nreturn hasil\n}\n//===> UPLOAD\nfunction upload (media)  {\nreturn new Promise(async (resolve, reject) => {\ntry {\nlet { ext } = await fromBuffer(media)\nconsole.log('Uploading image to server telegra.ph')\nlet form = new FormData()\nform.append('file', media, 'tmp.' + ext)\nawait fetch('https://telegra.ph/upload', {\nmethod: 'POST',\nbody: form\n})\n.then(res => res.json())\n.then(res => {\nif (res.error) return reject(res.error)\nresolve('https://telegra.ph' + res[0].src)\n})\n.catch(err => reject(err))\n} catch (e) {\nreturn console.log(e)\n}\n})\n}\n\nmodule.exports = { pinterest, wallpaper, wikimedia, quotesAnime, y2mateA, y2mateV, wikiSearch, jadwalSolat, tiktokDown, igstory, downloadig, mediafireDl, newsCnn, lirikLagu, TiktokDownloader, igDownloader, webp2gifFile, fbDown, fotoIg, videoIg, igdl, aiovideodl, upload, yta, ytv }"
  },
  {
    "path": "lib/tictactoe.d.ts",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nexport declare class TicTacToe {\n    /* X PlayerName */\n    playerX: string;\n    /* Y PlayerName */\n    playerY: string;\n    /* X if true, Y if false */\n    _currentTurn: boolean;\n    _x: number;\n    _y: number;\n    _turns: number;\n    constructor(playerX: string, playerY: string);\n    get board(): number;\n    turn(player, index: number): boolean;\n    turn(player, x: number, y: number): boolean;\n}"
  },
  {
    "path": "lib/tictactoe.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nclass TicTacToe {\n    constructor(playerX = 'x', playerO = 'o') {\n        this.playerX = playerX\n        this.playerO = playerO\n        this._currentTurn = false\n        this._x = 0\n        this._o = 0\n        this.turns = 0\n    }\n\n    get board() {\n        return this._x | this._o\n    }\n\n    get currentTurn() {\n        return this._currentTurn ? this.playerO : this.playerX\n    }\n\n    get enemyTurn() {\n        return this._currentTurn ? this.playerX : this.playerO\n    }\n\n    static check(state) {\n        for (let combo of [7, 56, 73, 84, 146, 273, 292, 448])\n            if ((state & combo) === combo)\n                return !0\n        return !1\n    }\n\n    /**\n     * ```js\n     * TicTacToe.toBinary(1, 2) // 0b010000000\n     * ```\n     */\n    static toBinary(x = 0, y = 0) {\n        if (x < 0 || x > 2 || y < 0 || y > 2) throw new Error('invalid position')\n        return 1 << x + (3 * y)\n    }\n\n    /**\n     * @param player `0` is `X`, `1` is `O`\n     * \n     * - `-3` `Game Ended`\n     * - `-2` `Invalid`\n     * - `-1` `Invalid Position`\n     * - ` 0` `Position Occupied`\n     * - ` 1` `Sucess`\n     * @returns {-3|-2|-1|0|1}\n     */\n    turn(player = 0, x = 0, y) {\n        if (this.board === 511) return -3\n        let pos = 0\n        if (y == null) {\n            if (x < 0 || x > 8) return -1\n            pos = 1 << x\n        } else {\n            if (x < 0 || x > 2 || y < 0 || y > 2) return -1\n            pos = TicTacToe.toBinary(x, y)\n        }\n        if (this._currentTurn ^ player) return -2\n        if (this.board & pos) return 0\n        this[this._currentTurn ? '_o' : '_x'] |= pos\n        this._currentTurn = !this._currentTurn\n        this.turns++\n        return 1\n    }\n\n    /**\n     * @returns {('X'|'O'|1|2|3|4|5|6|7|8|9)[]}\n     */\n    static render(boardX = 0, boardO = 0) {\n        let x = parseInt(boardX.toString(2), 4)\n        let y = parseInt(boardO.toString(2), 4) * 2\n        return [...(x + y).toString(4).padStart(9, '0')].reverse().map((value, index) => value == 1 ? 'X' : value == 2 ? 'O' : ++index)\n    }\n    \n    /**\n     * @returns {('X'|'O'|1|2|3|4|5|6|7|8|9)[]}\n     */\n    render() {\n        return TicTacToe.render(this._x, this._o)\n    }\n\n    get winner() {\n        let x = TicTacToe.check(this._x)\n        let o = TicTacToe.check(this._o)\n        return x ? this.playerX : o ? this.playerO : false\n    }\n}\n\nnew TicTacToe().turn\n\nmodule.exports = TicTacToe\n"
  },
  {
    "path": "lib/tiktok.js",
    "content": "\n// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst axios = require('axios');\nconst cheerio = require('cheerio');\n\nasync function tiktokDown (Url) {\n\treturn new Promise (async (resolve, reject) => {\n\t\tawait axios.request({\n\t\t\turl: \"https://ttdownloader.com/\",\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t\"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\t\t\t\t\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n\t\t\t}\n\t\t}).then(respon => {\n\t\t\tconst $ = cheerio.load(respon.data)\n\t\t\tconst token = $('#token').attr('value')\n\t\t\taxios({\n\t\t\t\turl: \"https://ttdownloader.com/req/\",\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: new URLSearchParams(Object.entries({url: Url, format: \"\", token: token})),\n\t\t\t\theaders: {\n\t\t\t\t\t\"accept\": \"*/*\",\n\t\t\t\t\t\"accept-language\": \"en-US,en;q=0.9,id;q=0.8\",\n\t\t\t\t\t\"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t\t\t\t\"user-agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\",\n\t\t\t\t\t\"cookie\": \"_ga=GA1.2.1240046717.1620835673; PHPSESSID=i14curq5t8omcljj1hlle52762; popCookie=1; _gid=GA1.2.1936694796.1623913934\"\n\t\t\t\t}\n\t\t\t}).then(res => {\n\t\t\t\tconst ch = cheerio.load(res.data)\n\t\t\t\tvar creator = `lala`\n\t\t\t\tconst result = {\n\t\t\t\t\tstatus: res.status,\n\t\t\t\t\tauthor: `${creator}`,\n\t\t\t\t\tresult: {\n\t\t\t\t\t\tnowatermark: ch('#results-list > div:nth-child(2)').find('div.download > a').attr('href'),\n\t\t\t\t\t\twatermark: ch('#results-list > div:nth-child(3)').find('div.download > a').attr('href'),\n\t\t\t\t\t\taudio: ch('#results-list > div:nth-child(4)').find(' div.download > a').attr('href')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve(result)\n\t\t\t}).catch(reject)\n\t\t}).catch(reject)\n\t})\n}\n\nmodule.exports = { tiktokDown}"
  },
  {
    "path": "lib/uploader.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nlet axios = require('axios')\nlet BodyForm = require('form-data')\nlet { fromBuffer } = require('file-type')\nlet fetch = require('node-fetch')\nlet fs = require('fs')\nlet cheerio = require('cheerio')\n\n\n\nfunction TelegraPh (Path) {\n\treturn new Promise (async (resolve, reject) => {\n\t\tif (!fs.existsSync(Path)) return reject(new Error(\"File not Found\"))\n\t\ttry {\n\t\t\tconst form = new BodyForm();\n\t\t\tform.append(\"file\", fs.createReadStream(Path))\n\t\t\tconst data = await  axios({\n\t\t\t\turl: \"https://telegra.ph/upload\",\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t...form.getHeaders()\n\t\t\t\t},\n\t\t\t\tdata: form\n\t\t\t})\n\t\t\treturn resolve(\"https://telegra.ph\" + data.data[0].src)\n\t\t} catch (err) {\n\t\t\treturn reject(new Error(String(err)))\n\t\t}\n\t})\n}\n\nasync function UploadFileUgu (input) {\n\treturn new Promise (async (resolve, reject) => {\n\t\t\tconst form = new BodyForm();\n\t\t\tform.append(\"files[]\", fs.createReadStream(input))\n\t\t\tawait axios({\n\t\t\t\turl: \"https://uguu.se/upload.php\",\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"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\",\n\t\t\t\t\t...form.getHeaders()\n\t\t\t\t},\n\t\t\t\tdata: form\n\t\t\t}).then((data) => {\n\t\t\t\tresolve(data.data.files[0])\n\t\t\t}).catch((err) => reject(err))\n\t})\n}\n\nfunction webp2mp4File(path) {\n\treturn new Promise((resolve, reject) => {\n\t\t const form = new BodyForm()\n\t\t form.append('new-image-url', '')\n\t\t form.append('new-image', fs.createReadStream(path))\n\t\t axios({\n\t\t\t  method: 'post',\n\t\t\t  url: 'https://s6.ezgif.com/webp-to-mp4',\n\t\t\t  data: form,\n\t\t\t  headers: {\n\t\t\t\t   'Content-Type': `multipart/form-data; boundary=${form._boundary}`\n\t\t\t  }\n\t\t }).then(({ data }) => {\n\t\t\t  const bodyFormThen = new BodyForm()\n\t\t\t  const $ = cheerio.load(data)\n\t\t\t  const file = $('input[name=\"file\"]').attr('value')\n\t\t\t  bodyFormThen.append('file', file)\n\t\t\t  bodyFormThen.append('convert', \"Convert WebP to MP4!\")\n\t\t\t  axios({\n\t\t\t\t   method: 'post',\n\t\t\t\t   url: 'https://ezgif.com/webp-to-mp4/' + file,\n\t\t\t\t   data: bodyFormThen,\n\t\t\t\t   headers: {\n\t\t\t\t\t\t'Content-Type': `multipart/form-data; boundary=${bodyFormThen._boundary}`\n\t\t\t\t   }\n\t\t\t  }).then(({ data }) => {\n\t\t\t\t   const $ = cheerio.load(data)\n\t\t\t\t   const result = 'https:' + $('div#output > p.outfile > video > source').attr('src')\n\t\t\t\t   resolve({\n\t\t\t\t\t\tstatus: true,\n\t\t\t\t\t\tmessage: \"Created By MRHRTZ\",\n\t\t\t\t\t\tresult: result\n\t\t\t\t   })\n\t\t\t  }).catch(reject)\n\t\t }).catch(reject)\n\t})\n}\n\nmodule.exports = { TelegraPh, UploadFileUgu, webp2mp4File }\n"
  },
  {
    "path": "lib/y2mate.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nlet fetch = require('node-fetch')\nlet { JSDOM } = require('jsdom')\n\nfunction post(url, formdata) {\n    return fetch(url, {\n        method: 'POST',\n        headers: {\n            accept: \"*/*\",\n            'accept-language': \"en-US,en;q=0.9\",\n            'content-type': \"application/x-www-form-urlencoded; charset=UTF-8\"\n        },\n        body: new URLSearchParams(Object.entries(formdata))\n    })\n}\nconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:shorts\\/)?(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\n\n/**\n * Download YouTube Video via y2mate\n * @param {String} url YouTube Video URL\n * @param {String} quality (avaiable: `144p`, `240p`, `360p`, `480p`, `720p`, `1080p`, `1440p`, `2160p`)\n * @param {String} type (avaiable: `mp3`, `mp4`)\n * @param {String} bitrate (avaiable for video: `144`, `240`, `360`, `480`, `720`, `1080`, `1440`, `2160`)\n * (avaiable for audio: `128`)\n * @param {String} server (avaiable: `id4`, `en60`, `en61`, `en68`)\n */\nasync function yt(url, quality, type, bitrate, server = 'en68') {\n    if (!ytIdRegex.test(url)) throw 'Invalid URL'\n    let ytId = ytIdRegex.exec(url)\n    url = 'https://youtu.be/' + ytId[1]\n    let res = await post(`https://www.y2mate.com/mates/${server}/analyze/ajax`, {\n        url,\n        q_auto: 0,\n        ajax: 1\n    })\n    let json = await res.json()\n    let { document } = (new JSDOM(json.result)).window\n    let tables = document.querySelectorAll('table')\n    let table = tables[{ mp4: 0, mp3: 1 }[type] || 0]\n    let list\n    switch (type) {\n        case 'mp4':\n            list = Object.fromEntries([...table.querySelectorAll('td > a[href=\"#\"]')].filter(v => !/\\.3gp/.test(v.innerHTML)).map(v => [v.innerHTML.match(/.*?(?=\\()/)[0].trim(), v.parentElement.nextSibling.nextSibling.innerHTML]))\n            break\n        case 'mp3':\n            list = {\n                '128kbps': table.querySelector('td > a[href=\"#\"]').parentElement.nextSibling.nextSibling.innerHTML\n            }\n            break\n        default:\n            list = {}\n    }\n    let filesize = list[quality]\n    let id = /var k__id = \"(.*?)\"/.exec(document.body.innerHTML) || ['', '']\n    let thumb = document.querySelector('img').src\n    let title = document.querySelector('b').innerHTML\n    let res2 = await post(`https://www.y2mate.com/mates/${server}/convert`, {\n        type: 'youtube',\n        _id: id[1],\n        v_id: ytId[1],\n        ajax: '1',\n        token: '',\n        ftype: type,\n        fquality: bitrate\n    })\n    let json2 = await res2.json()\n    let KB = parseFloat(filesize) * (1000 * /MB$/.test(filesize))\n    return {\n        dl_link: /<a.+?href=\"(.+?)\"/.exec(json2.result)[1],\n        thumb,\n        title,\n        filesizeF: filesize,\n        filesize: KB\n    }\n}\n\nmodule.exports = {\n    yt,\n    ytIdRegex,\n    /**\n     * Download YouTube Video as Audio via y2mate\n     * @param {String} url YouTube Video URL\n     * @param {String} server (avaiable: `id4`, `en60`, `en61`, `en68`)\n     */\n    yta(url, server = 'en68') { return yt(url, '128kbps', 'mp3', '128', server) },\n    /**\n     * Download YouTube Video as Video via y2mate\n     * @param {String} url YouTube Video URL\n     * @param {String} server (avaiable: `id4`, `en60`, `en61`, `en68`)\n     */\n    ytv(url, server = 'en68') { return yt(url, '360p', 'mp4', '360', server) },\n    servers: ['id4', 'en60', 'en61', 'en68']\n}"
  },
  {
    "path": "lib/ytdl.js",
    "content": "\nconst fetch = require('node-fetch')\nconst cheerio = require(\"cheerio\");\nconst { JSDOM } = require('jsdom')\nconst fs = require('fs')\nconst ytdl = require('ytdl-core');\n\nconst yts = require('youtube-yts');\n\nconst ytM = require('node-youtube-music')\n\nconst moment = require('moment-timezone')\nconst time = moment().format('DD/MM HH:mm:ss')\nconst axios = require('axios')\n\nconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\n\n\n//xfar-api\nfunction youtube(link){\nreturn new Promise((resolve, reject) => {\nconst ytIdRegex = /(?:http(?:s|):\\/\\/|)(?:(?:www\\.|)youtube(?:\\-nocookie|)\\.com\\/(?:watch\\?.*(?:|\\&)v=|embed\\/|v\\/)|youtu\\.be\\/)([-_0-9A-Za-z]{11})/\nif (ytIdRegex.test(link)) {\nlet url =  ytIdRegex.exec(link)\nlet config = {\n'url': 'https://www.youtube.be/' + url,\n'q_auto': 0,\n'ajax': 1\n}\nlet headerss = {\n\"sec-ch-ua\": '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\",\n\"Cookie\": 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={\"0\":{},\"C702514\":{\"page\":5,\"time\":1625200846733}}'\n}\naxios('https://www.y2mate.com/mates/en68/analyze/ajax',{\nmethod: 'POST',\ndata: new URLSearchParams(Object.entries(config)),\nheaders: headerss\n})\n.then(({ data }) => {\nconst $ = cheerio.load(data.result)\nlet img = $('div.thumbnail.cover > a > img').attr('src');\nlet title = $('div.thumbnail.cover > div > b').text();\nlet size = $('#mp4 > table > tbody > tr:nth-child(3) > td:nth-child(2)').text()\nlet size_mp3 = $('#audio > table > tbody > tr:nth-child(1) > td:nth-child(2)').text()\nlet id = /var k__id = \"(.*?)\"/.exec(data.result)[1]\nlet configs = {\ntype: 'youtube',\n_id: id,\nv_id: url[1],\najax: '1',\ntoken: '',\nftype: 'mp4',\nfquality: 480\n}\naxios('https://www.y2mate.com/mates/en68/convert',{\nmethod: 'POST',\ndata: new URLSearchParams(Object.entries(configs)),\nheaders: headerss \n})\n.then(({data}) => {\nconst $ = cheerio.load(data.result)\nlet link = $('div > a').attr('href')\nlet configss = {\ntype: 'youtube',\n_id: id,\nv_id: url[1],\najax: '1',\ntoken: '',\nftype: 'mp3',\nfquality: 128\n}\naxios('https://www.y2mate.com/mates/en68/convert',{\nmethod: 'POST',\ndata: new URLSearchParams(Object.entries(configss)),\nheaders: headerss \n})\n.then(({ data }) => {\nconst $ = cheerio.load(data.result)\nlet audio = $('div > a').attr('href')\nresolve({\nid: url[1],\ntitle: title,\nsize: size,\nquality: '480p',\nthumb: img,\nlink: link,\nsize_mp3: size_mp3,\nmp3: audio\n})\n})\n})\n})\n.catch(reject)\n}else reject('link invalid')\n})\n}\n\n\nfunction searchResult(query) {\n        return new Promise(async (resolve, reject) => {\n            try {\n                let ytMusic = await ytM.searchMusics(query || this.query);\n                let result = []\n                for (let i = 0; i < ytMusic.length; i++) {\n                    result.push({\n                        isYtMusic: true,\n                        title: `${ytMusic[i].title} - ${ytMusic[i].artists.map(x => x.name).join(' ')}`,\n                        artist: ytMusic[i].artists.map(x => x.name).join(' '),\n                        id: ytMusic[i].youtubeId,\n                        url: 'https://youtu.be/' + ytMusic[i].youtubeId,\n                        album: ytMusic[i].album,\n                        duration: {\n                            seconds: ytMusic[i].duration.totalSeconds,\n                            label: ytMusic[i].duration.label\n                        },\n                        image: ytMusic[i].thumbnailUrl.replace('w120-h120', 'w600-h600')\n                    })                    \n                }\n                resolve(result)\n            } catch (error) {\n                reject(error)\n            }\n        })\n    }\n    \nmodule.exports.searchResult = searchResult, \nmodule.exports.youtube = youtube\n\n"
  },
  {
    "path": "lib/ytdl2.js",
    "content": " const ytdl = require('youtubedl-core');\n const yts = require('youtube-yts');\n const readline = require('readline');\n const ffmpeg = require('fluent-ffmpeg')\n const NodeID3 = require('node-id3')\n const fs = require('fs');\n const { fetchBuffer } = require(\"./myfunc2\")\n const ytM = require('node-youtube-music')\n const { randomBytes } = require('crypto')\n const ytIdRegex = /(?:youtube\\.com\\/\\S*(?:(?:\\/e(?:mbed))?\\/|watch\\?(?:\\S*?&?v\\=))|youtu\\.be\\/)([a-zA-Z0-9_-]{6,11})/\n \n class YT {\n     constructor() { }\n \n     /**\n      * Checks if it is yt link\n      * @param {string|URL} url youtube url\n      * @returns Returns true if the given YouTube URL.\n      */\n     static isYTUrl = (url) => {\n         return ytIdRegex.test(url)\n     }\n \n     /**\n      * VideoID from url\n      * @param {string|URL} url to get videoID\n      * @returns \n      */\n     static getVideoID = (url) => {\n         if (!this.isYTUrl(url)) throw new Error('is not YouTube URL')\n         return ytIdRegex.exec(url)[1]\n     }\n \n     /**\n      * @typedef {Object} IMetadata\n      * @property {string} Title track title\n      * @property {string} Artist track Artist\n      * @property {string} Image track thumbnail url\n      * @property {string} Album track album\n      * @property {string} Year track release date\n      */\n \n     /**\n      * Write Track Tag Metadata\n      * @param {string} filePath \n      * @param {IMetadata} Metadata \n      */\n     static WriteTags = async (filePath, Metadata) => {\n         NodeID3.write(\n             {\n                 title: Metadata.Title,\n                 artist: Metadata.Artist,\n                 originalArtist: Metadata.Artist,\n                 image: {\n                     mime: 'jpeg',\n                     type: {\n                         id: 3,\n                         name: 'front cover',\n                     },\n                     imageBuffer: (await fetchBuffer(Metadata.Image)).buffer,\n                     description: `Cover of ${Metadata.Title}`,\n                 },\n                 album: Metadata.Album,\n                 year: Metadata.Year || ''\n             },\n             filePath\n         );\n     }\n \n     /**\n      * \n      * @param {string} query \n      * @returns \n      */\n     static search = async (query, options = {}) => {\n         const search = await yts.search({ query, hl: 'id', gl: 'ID', ...options })\n         return search.videos\n     }\n \n     /**\n      * @typedef {Object} TrackSearchResult\n      * @property {boolean} isYtMusic is from YT Music search?\n      * @property {string} title music title\n      * @property {string} artist music artist\n      * @property {string} id YouTube ID\n      * @property {string} url YouTube URL\n      * @property {string} album music album\n      * @property {Object} duration music duration {seconds, label}\n      * @property {string} image Cover Art\n      */\n \n     /**\n      * search track with details\n      * @param {string} query \n      * @returns {Promise<TrackSearchResult[]>}\n      */\n     static searchTrack = (query) => {\n         return new Promise(async (resolve, reject) => {\n             try {\n                 let ytMusic = await ytM.searchMusics(query);\n                 let result = []\n                 for (let i = 0; i < ytMusic.length; i++) {\n                     result.push({\n                         isYtMusic: true,\n                         title: `${ytMusic[i].title} - ${ytMusic[i].artists.map(x => x.name).join(' ')}`,\n                         artist: ytMusic[i].artists.map(x => x.name).join(' '),\n                         id: ytMusic[i].youtubeId,\n                         url: 'https://youtu.be/' + ytMusic[i].youtubeId,\n                         album: ytMusic[i].album,\n                         duration: {\n                             seconds: ytMusic[i].duration.totalSeconds,\n                             label: ytMusic[i].duration.label\n                         },\n                         image: ytMusic[i].thumbnailUrl.replace('w120-h120', 'w600-h600')\n                     })\n                  \n                 }\n                 resolve(result)\n             } catch (error) {\n                 reject(error)\n             }\n         })\n     }\n \n     /**\n      * @typedef {Object} MusicResult\n      * @property {TrackSearchResult} meta music meta\n      * @property {string} path file path\n      */\n \n     /**\n      * Download music with full tag metadata\n      * @param {string|TrackSearchResult[]} query title of track want to download\n      * @returns {Promise<MusicResult>} filepath of the result\n      */\n     static downloadMusic = async (query) => {\n         try {\n             const getTrack = Array.isArray(query) ? query : await this.searchTrack(query);\n             const search = getTrack[0]//await this.searchTrack(query)\n             const videoInfo = await ytdl.getInfo('https://www.youtube.com/watch?v=' + search.id, { lang: 'id' });\n             let stream = ytdl(search.id, { filter: 'audioonly', quality: 140 });\n             let songPath = `./Zimbot/${randomBytes(3).toString('hex')}.mp3`\n             stream.on('error', (err) => console.log(err))\n \n             const file = await new Promise((resolve) => {\n                 ffmpeg(stream)\n                     .audioFrequency(44100)\n                     .audioChannels(2)\n                     .audioBitrate(128)\n                     .audioCodec('libmp3lame')\n                     .audioQuality(5)\n                     .toFormat('mp3')\n                     .save(songPath)\n                     .on('end', () => resolve(songPath))\n             });\n             await this.WriteTags(file, { Title: search.title, Artist: search.artist, Image: search.image, Album: search.album, Year: videoInfo.videoDetails.publishDate.split('-')[0] });\n             return {\n                 meta: search,\n                 path: file,\n                 size: fs.statSync(songPath).size\n             }\n         } catch (error) {\n             throw new Error(error)\n         }\n     }\n \n     /**\n      * get downloadable video urls\n      * @param {string|URL} query videoID or YouTube URL\n      * @param {string} quality \n      * @returns\n      */\n     static mp4 = async (query, quality = 134) => {\n         try {\n             if (!query) throw new Error('Video ID or YouTube Url is required')\n             const videoId = this.isYTUrl(query) ? this.getVideoID(query) : query\n             const videoInfo = await ytdl.getInfo('https://www.youtube.com/watch?v=' + videoId, { lang: 'id' });\n             const format = ytdl.chooseFormat(videoInfo.formats, { format: quality, filter: 'videoandaudio' })\n             return {\n                 title: videoInfo.videoDetails.title,\n                 thumb: videoInfo.videoDetails.thumbnails.slice(-1)[0],\n                 date: videoInfo.videoDetails.publishDate,\n                 duration: videoInfo.videoDetails.lengthSeconds,\n                 channel: videoInfo.videoDetails.ownerChannelName,\n                 quality: format.qualityLabel,\n                 contentLength: format.contentLength,\n                 description:videoInfo.videoDetails.description,\n                 videoUrl: format.url\n             }\n         } catch (error) {\n             throw error\n         }\n     }\n \n     /**\n      * Download YouTube to mp3\n      * @param {string|URL} url YouTube link want to download to mp3\n      * @param {IMetadata} metadata track metadata\n      * @param {boolean} autoWriteTags if set true, it will auto write tags meta following the YouTube info\n      * @returns \n      */\n     static mp3 = async (url, metadata = {}, autoWriteTags = false) => {\n         try {\n             if (!url) throw new Error('Video ID or YouTube Url is required')\n             url = this.isYTUrl(url) ? 'https://www.youtube.com/watch?v=' + this.getVideoID(url) : url\n             const { videoDetails } = await ytdl.getInfo(url, { lang: 'id' });\n             let stream = ytdl(url, { filter: 'audioonly', quality: 140 });\n             let songPath = `./Zimbot/${randomBytes(3).toString('hex')}.mp3`\n \n             let starttime;\n             stream.once('response', () => {\n                 starttime = Date.now();\n             });\n             stream.on('progress', (chunkLength, downloaded, total) => {\n                 const percent = downloaded / total;\n                 const downloadedMinutes = (Date.now() - starttime) / 1000 / 60;\n                 const estimatedDownloadTime = (downloadedMinutes / percent) - downloadedMinutes;\n                 readline.cursorTo(process.stdout, 0);\n                 process.stdout.write(`${(percent * 100).toFixed(2)}% downloaded `);\n                 process.stdout.write(`(${(downloaded / 1024 / 1024).toFixed(2)}MB of ${(total / 1024 / 1024).toFixed(2)}MB)\\n`);\n                 process.stdout.write(`running for: ${downloadedMinutes.toFixed(2)}minutes`);\n                 process.stdout.write(`, estimated time left: ${estimatedDownloadTime.toFixed(2)}minutes `);\n                 readline.moveCursor(process.stdout, 0, -1);\n                 //let txt = `${bgColor(color('[FFMPEG]]', 'black'), '#38ef7d')} ${color(moment().format('DD/MM/YY HH:mm:ss'), '#A1FFCE')} ${gradient.summer('[Converting..]')} ${gradient.cristal(p.targetSize)} kb`\n             });\n             stream.on('end', () => process.stdout.write('\\n\\n'));\n             stream.on('error', (err) => console.log(err))\n \n             const file = await new Promise((resolve) => {\n                 ffmpeg(stream)\n                     .audioFrequency(44100)\n                     .audioChannels(2)\n                     .audioBitrate(128)\n                     .audioCodec('libmp3lame')\n                     .audioQuality(5)\n                     .toFormat('mp3')\n                     .save(songPath)\n                     .on('end', () => {\n                         resolve(songPath)\n                     })\n             });\n             if (Object.keys(metadata).length !== 0) {\n                 await this.WriteTags(file, metadata)\n             }\n             if (autoWriteTags) {\n                 await this.WriteTags(file, { Title: videoDetails.title, Album: videoDetails.author.name, Year: videoDetails.publishDate.split('-')[0], Image: videoDetails.thumbnails.slice(-1)[0].url })\n             }\n             return {\n                 meta: {\n                     title: videoDetails.title,\n                     channel: videoDetails.author.name,\n                     seconds: videoDetails.lengthSeconds,\n                     image: videoDetails.thumbnails.slice(-1)[0].url\n                 },\n                 path: file,\n                 size: fs.statSync(songPath).size\n             }\n         } catch (error) {\n             throw error\n         }\n     }\n }\n \n module.exports = YT;"
  },
  {
    "path": "lib/zimbot",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\n"
  },
  {
    "path": "limit.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nconst fs = require('fs')\n\nexports.isLimit = function(sender, isPremium, isOwner, limitCount, _db){\n    if (isOwner) return false\n    if (isPremium) return false\n    let found = false\n    for (let i of _db) {\n        if (i.id === sender) {\n            let limits = i.limit\n            if (limits >= limitCount) {\n                found = true\n                return true\n            } else {\n                found = true\n                return false\n            }\n        }\n    }\n    if (found === false) {\n        const obj = { id: sender, limit: 0 }\n        _db.push(obj)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n        return false\n    }\n}\nexports.limitAdd = function(sender, _db){\n    let found = false\n\tObject.keys(_db).forEach((i) => {\n\t\tif (_db[i].id === sender) {\n\t\t\tfound = i\n\t\t}\n\t})\n\t\tif (found !== false) {\n\t\t\t_db[found].limit += 1\n\t\t\tfs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n\t\t}\n}\nexports.getLimit = function(sender, limitCount, _db){\n    let found = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            found = i\n        }\n    })\n    if (found !== false) {\n        return limitCount - _db[found].limit\n    } else {\n        return limitCount\n    }\n}\nexports.giveLimit = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].limit -= duit\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    } else {\n        const njt = duit - duit - duit\n        const bulim = ({\n            id: pemain,\n            limit: njt\n                })\n        _db.push(bulim)\n        fs.writeFileSync('./database/limit.json', JSON.stringify(_db))\n    }\n}\nexports.addBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance += duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    } else {\n        const bulin = ({\n            id: sender,\n            balance: duit\n                })\n        _db.push(bulin)\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.kurangBalance = function(sender, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].balance -= duit\n        fs.writeFileSync('./database/balance.json', JSON.stringify(_db))\n    }\n}\nexports.getBalance = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].balance\n    } else {\n        return 0\n    }\n}\nexports.isGame = function(sender, isOwner, gcount, _db){\n    if (isOwner) {return false;}\n    let found = false;\n    for (let i of _db){\n        if(i.id === sender){\n            let limits = i.glimit;\n            if (limits >= gcount) {\n                found = true;\n                return true;\n            }else{\n                found = true;\n                return false;\n            }\n        }\n    }\n    if (found === false){\n        let obj = {id: sender, glimit:0};\n        _db.push(obj);\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n        return false;\n    }\n}\nexports.gameAdd = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].glimit += 1;\n        fs.writeFileSync('./database/glimit.json',JSON.stringify(_db));\n    }\n}\nexports.givegame = function(pemain, duit, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === pemain) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        _db[position].glimit -= duit\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    } else {\n        const njti = duit - duit - duit\n        const bulimi = ({\n            id: pemain,\n            glimit: njti\n                })\n        _db.push(bulimi)\n        fs.writeFileSync('./database/glimit.json', JSON.stringify(_db))\n    }\n}\nexports.cekGLimit = function(sender, gcount, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return gcount - _db[position].glimit\n    } else {\n        return gcount\n    }\n}\nexports.createHit = function(sender, _db){\n    const anohoh = { id: sender, hit: 0}\n    _db.push(anohoh);\n    fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));''\n\n}\nexports.AddHit = function(sender, _db){\n    var found = false;\n    Object.keys(_db).forEach((i) => {\n        if(_db[i].id == sender){\n            found = i\n        }\n    })\n    if (found !== false) {\n        _db[found].hit += 1;\n        fs.writeFileSync('./database/userhit.json',JSON.stringify(_db));\n    }\n}\nexports.gethitUser = function(sender, _db){\n    let position = false\n    Object.keys(_db).forEach((i) => {\n        if (_db[i].id === sender) {\n            position = i\n        }\n    })\n    if (position !== false) {\n        return _db[position].hit\n    }\n}"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"zimbot-v4\",\n  \"version\": \"4.0.1\",\n  \"description\": \"Multi device wa bot created by Zim Bot Inc.\",\n  \"main\": \"index.js\",\n  \"directories\": {\n    \"lib\": \"lib\"\n  },\n  \"scripts\": {\n    \"start\": \"node --expose-gc index.js\"\n    \n  },\n  \"keywords\": [\n    \"termux\",\n    \"whatsapp\",\n    \"2021\",\n    \"wabase-md\",\n    \"base\",\n    \"baileys-md\",\n    \"bot\",\n    \"bot-md\",\n    \"multi-device\"\n  ],\n  \"author\": \"Drips\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@adiwajshing/baileys\": \"^5.0.0\",\n    \"@adiwajshing/keyed-db\": \"^0.2.4\",\n    \"@bochilteam/scraper\": \"^2.0.0\",\n    \"@mozilla/readability\": \"^0.4.2\",\n    \"@neoxr/neoxr-js\": \"^1.3.0\",\n    \"anime-wallpaper\": \"^1.0.2\",\n    \"anime-wallpapers\": \"^1.0.1\",\n    \"assert\": \"2.0.0\",\n    \"awesome-phonenumber\": \"^2.64.0\",\n    \"axios\": \"^0.24.0\",\n    \"blennie-drips\": \"^5.0.0\",\n    \"browser-id3-writer\": \"^4.4.0\",\n    \"cfonts\": \"^3.1.0\",\n    \"chalk\": \"^4.1.2\",\n    \"cheerio\": \"^1.0.0-rc.10\",\n    \"child_process\": \"^1.0.2\",\n    \"crypto\": \"^1.0.1\",\n    \"dotenv\": \"^16.0.0\",\n    \"drips-memes\": \"^6.0.4\",\n    \"emoji-api\": \"^2.0.1\",\n    \"express\": \"^4.18.2\",\n    \"fake-useragent\": \"^1.0.1\",\n    \"file-type\": \"^16.5.3\",\n    \"fluent-ffmpeg\": \"^2.1.2\",\n    \"fs\": \"0.0.1-security\",\n    \"g-i-s\": \"^2.1.6\",\n    \"google-it\": \"^1.6.2\",\n    \"got\": \"^11.8.3\",\n    \"heroku-client\": \"^3.1.0\",\n    \"heroku-keep-awake\": \"^1.1.2\",\n    \"http\": \"^0.0.1-security\",\n    \"https\": \"^1.0.0\",\n    \"human-readable\": \"^0.2.1\",\n    \"hx-api\": \"^1.3.2\",\n    \"hxz-api\": \"^1.0.1\",\n    \"insta-fetcher\": \"^1.3.24\",\n    \"jimp\": \"^0.16.1\",\n    \"jsdom\": \"^16.7.0\",\n    \"kitsune-api\": \"^0.0.0\",\n    \"link-preview-js\": \"^3.0.4\",\n    \"mathjs\": \"^10.5.1\",\n    \"moment-timezone\": \"^0.5.34\",\n    \"mumaker\": \"^1.0.0\",\n    \"multistream\": \"^4.1.0\",\n    \"newsapi\": \"^2.4.1\",\n    \"node-cron\": \"^3.0.0\",\n    \"node-fetch\": \"^2.6.1\",\n    \"node-id3\": \"^0.2.3\",\n    \"node-webpmux\": \"^3.1.0\",\n    \"node-youtube-music\": \"^0.8.3\",\n    \"openai\": \"^3.1.0\",\n    \"os\": \"^0.1.2\",\n    \"path\": \"^0.12.7\",\n    \"perf_hooks\": \"0.0.1\",\n    \"pg\": \"^8.7.3\",\n    \"pino\": \"^7.0.5\",\n    \"qrcode-terminal\": \"^0.12.0\",\n    \"remove.bg\": \"^1.3.0\",\n    \"request\": \"^2.88.2\",\n    \"scrape-primbon\": \"^1.1.0\",\n    \"sequelize\": \"^6.19.0\",\n    \"simple-git\": \"^3.7.1\",\n    \"sqlite\": \"^4.1.1\",\n    \"sqlite3\": \"^5.0.8\",\n    \"supervisor\": \"^0.12.0\",\n    \"url\": \"^0.11.0\",\n    \"util\": \"^0.12.4\",\n    \"yargs\": \"^17.2.1\",\n    \"yt-search\": \"^2.10.3\",\n    \"youtube-yts\": \"^2.0.0\",\n    \"youtubedl-core\": \"^4.11.2\"\n  },\n  \"directories\": {\n    \"lib\": \"lib\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/zim-bot/zimbot-v4.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/zim-bot/zimbot-v4/issues\"\n  },\n  \"homepage\": \"https://github.com/zim-bot/zimbot-v4#readme\"\n}\n"
  },
  {
    "path": "plugins/converter.js",
    "content": "const { promises } = require('fs')\nconst { join } = require('path')\nconst { spawn } = require('child_process')\n\nfunction ffmpeg(buffer, args = [], ext = '', ext2 = '') {\n  return new Promise(async (resolve, reject) => {\n    try {\n      let tmp = join(global.__dirname(import.meta.url), '../tmp', + new Date + '.' + ext)\n      let out = tmp + '.' + ext2\n      await promises.writeFile(tmp, buffer)\n      spawn('ffmpeg', [\n        '-y',\n        '-i', tmp,\n        ...args,\n        out\n      ])\n        .on('error', reject)\n        .on('close', async (code) => {\n          try {\n            await promises.unlink(tmp)\n            if (code !== 0) return reject(code)\n            resolve({\n              data: await promises.readFile(out),\n              filename: out,\n              delete() {\n                return promises.unlink(out)\n              }\n            })\n          } catch (e) {\n            reject(e)\n          }\n        })\n    } catch (e) {\n      reject(e)\n    }\n  })\n}\n\n/**\n * Convert Audio to Playable WhatsApp Audio\n * @param {Buffer} buffer Audio Buffer\n * @param {String} ext File Extension \n * @returns {Promise<{data: Buffer, filename: String, delete: Function}>}\n */\nfunction toPTT(buffer, ext) {\n  return ffmpeg(buffer, [\n    '-vn',\n    '-c:a', 'libopus',\n    '-b:a', '128k',\n    '-vbr', 'on',\n  ], ext, 'ogg')\n}\n\n/**\n * Convert Audio to Playable WhatsApp PTT\n * @param {Buffer} buffer Audio Buffer\n * @param {String} ext File Extension \n * @returns {Promise<{data: Buffer, filename: String, delete: Function}>}\n */\nfunction toAudio(buffer, ext) {\n  return ffmpeg(buffer, [\n    '-vn',\n    '-c:a', 'libopus',\n    '-b:a', '128k',\n    '-vbr', 'on',\n    '-compression_level', '10'\n  ], ext, 'opus')\n}\n\n/**\n * Convert Audio to Playable WhatsApp Video\n * @param {Buffer} buffer Video Buffer\n * @param {String} ext File Extension \n * @returns {Promise<{data: Buffer, filename: String, delete: Function}>}\n */\nfunction toVideo(buffer, ext) {\n  return ffmpeg(buffer, [\n    '-c:v', 'libx264',\n    '-c:a', 'aac',\n    '-ab', '128k',\n    '-ar', '44100',\n    '-crf', '32',\n    '-preset', 'slow'\n  ], ext, 'mp4')\n}\n\nmodule.exports {\n  toAudio,\n  toPTT,\n  toVideo,\n  ffmpeg,\n}"
  },
  {
    "path": "plugins/neoxrApi.js",
    "content": "const { Function: Func } = new(require('blennie-drips'))\n\nmodule.exports = class NeoxrApi {\n   baseUrl = 'https://api.neoxr.my.id/api'\n   apiKey = null\n\n   constructor(apiKey) {\n      this.apiKey = apiKey || ''\n   }\n   \n   check = async () => {\n      let json = await Func.fetchJson(this.baseUrl + '/check/' + this.apiKey)\n      return json\n   }\n   \n   podcast = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/podcast?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   fb = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/fb?url=' + encodeURIComponent(url) + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   ig = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/ig?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   igs = async (str) => {\n      let json = await Func.fetchJson(this.baseUrl + '/igstory?username=' + str + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   igh = async (str) => {\n      let json = await Func.fetchJson(this.baseUrl + '/igh?url=' + str + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   line = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/line?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   pin = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/pin?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   mediafire = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/mediafire?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   tiktok = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/tiktok?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   twitter = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/twitter?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   soundcloud = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/soundcloud?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   rexdl = async (str) => {\n      let json = str.match('rexdl.com') ? await Func.fetchJson(this.baseUrl + '/rexdl-get?url=' + str + '&apikey=' + this.apiKey) : await Func.fetchJson(this.baseUrl + '/rexdl?q=' + encodeURIComponent(str) + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   pinterest = async (query) => {\n      let json = await Func.fetchJson(this.baseUrl + '/pinterest?q=' + query + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   soundcloud = async (str) => {\n      let json = str.match('soundcloud.com') ? await Func.fetchJson(this.baseUrl + '/soundcloud?url=' + str + '&apikey=' + this.apiKey) : await Func.fetchJson(this.baseUrl + '/soundcloud-search?q=' + str + '&apikey=' + this.apiKey)\n      return json\n   }\n\n   apk = async (query, no) => {\n      if (query && no) {\n         let json = await Func.fetchJson(this.baseUrl + '/apk?q=' + query + '&no=' + no + '&apikey=' + this.apiKey)\n         return json\n      } else if (query) {\n         let json = await Func.fetchJson(this.baseUrl + '/apk?q=' + query + '&apikey=' + this.apiKey)\n         return json\n      }\n   }\n   \n   apkmod = async (query, no) => {\n      if (query && no) {\n         let json = await Func.fetchJson(this.baseUrl + '/apkmod?q=' + query + '&no=' + no + '&apikey=' + this.apiKey)\n         return json\n      } else if (query) {\n         let json = await Func.fetchJson(this.baseUrl + '/apkmod?q=' + query + '&apikey=' + this.apiKey)\n         return json\n      }\n   }\n   \n   emojimix = async (emoticon) => {\n  \tlet json = await Func.fetchJson(this.baseUrl + '/emoji?q=' + encodeURI(emoticon) + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   wallpaper = async (query) => {\n      let json = await Func.fetchJson(this.baseUrl + '/wallpaper2?q=' + query + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   sticker = async (str) => {\n      let json = str.match('getstickerpack.com') ? await Func.fetchJson(this.baseUrl + '/sticker-get?url=' + str + '&apikey=' + this.apiKey) : await Func.fetchJson(this.baseUrl + '/sticker?q=' + encodeURIComponent(str) + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   tm = (style, text) => {  \n      return this.baseUrl + '/' + style + '?text=' + text + '&apikey=' + this.apiKey\n   }\n   \n   ie = (style, image) => {\n      return this.baseUrl + '/effect?style=' + style + '&image=' + image + '&apikey=' + this.apiKey\n   }\n   \n   brainly = async (query, lang) => {\n  \tlet json = await Func.fetchJson(this.baseUrl + '/brainly?q=' + query + '&iso=' + lang + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   sholat = async (city) => {\n      let json = await Func.fetchJson(this.baseUrl + '/sholat?q=' + city + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   kbbg = async (query) => {\n      let json = await Func.fetchJson(this.baseUrl + '/kbbg?q=' + query + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   chord = async (query) => {\n      let json = await Func.fetchJson(this.baseUrl + '/chord?q=' + query + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   lyric = async (query) => {\n      let json = await Func.fetchJson(this.baseUrl + '/lyric?q=' + query + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   igstalk = async (username) => {\n      let json = await Func.fetchJson(this.baseUrl + '/igstalk?username=' + username + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   google = async (query, image = false) => {\n      let json = await Func.fetchJson(this.baseUrl + '/' + (image ? 'goimg' : 'google') + '?q=' + query + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   gempa = async () => {\n      let json = await Func.fetchJson(this.baseUrl + '/gempa?apikey=' + this.apiKey)\n      return json\n   }\n   \n   nama = async (query) => {\n      let json = await Func.fetchJson(this.baseUrl + '/artinama?nama=' + query + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   nobg = async (image) => {\n      let json = await Func.fetchJson(this.baseUrl + '/nobg?image=' + image + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   ocr = async (image) => {\n      let json = await Func.fetchJson(this.baseUrl + '/ocr?image=' + image + '&apikey=' + this.apiKey)\n      return json\n   }\n   \n   spotify = async (url) => {\n      let json = await Func.fetchJson(this.baseUrl + '/spotify?url=' + url + '&apikey=' + this.apiKey)\n      return json\n   }\n}"
  },
  {
    "path": "plugins/sticker.js",
    "content": "const { dirname } = require('path')\nconst { fileURLToPath } = require('url')\nconst  fs = require('fs')\nconst path = require('path')\nconst crypto = require('crypto')\nconst { ffmpeg } = reuire('./converter.js')\nconst fluent_ffmpeg = require('fluent-ffmpeg')\nconst { spawn } = require('child_process')\nconst uploadFile = require('./uploadFile.js')\nconst uploadImage = require('./uploadImage.js')\nconst { fileTypeFromBuffer } = require('file-type')\nconst webp = require('node-webpmux')\nconst fetch = require('node-fetch')\n\nconst url = require('url');\nconst parsedUrl = url.parse(import.meta.url);\n\nconst tdirname = dirname(fileURLToPath(parsedUrl))\nconst tmp = path.join(tdirname, '../tmp')\n/**\n * Image to Sticker\n * @param {Buffer} img Image Buffer\n * @param {String} url Image URL\n */\nfunction sticker2(img, url) {\n  return new Promise(async (resolve, reject) => {\n    try {\n      if (url) {\n        let res = await fetch(url)\n        if (res.status !== 200) throw await res.text()\n        img = await res.buffer()\n      }\n      let inp = path.join(tmp, +new Date + '.jpeg')\n      await fs.promises.writeFile(inp, img)\n      let ff = spawn('ffmpeg', [\n        '-y',\n        '-i', inp,\n        '-vf', 'scale=512:512:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1',\n        '-f', 'png',\n        '-'\n      ])\n      ff.on('error', reject)\n      ff.on('close', async () => {\n        await fs.promises.unlink(inp)\n      })\n      let bufs = []\n      const [_spawnprocess, ..._spawnargs] = [...(module.exports.support.gm ? ['gm'] : module.exports.magick ? ['magick'] : []), 'convert', 'png:-', 'webp:-']\n      let im = spawn(_spawnprocess, _spawnargs)\n      im.on('error', e => conn.reply(m.chat, util.format(e), m))\n      im.stdout.on('data', chunk => bufs.push(chunk))\n      ff.stdout.pipe(im.stdin)\n      im.on('exit', () => {\n        resolve(Buffer.concat(bufs))\n      })\n    } catch (e) {\n      reject(e)\n    }\n  })\n}\n\n/**\n * Image/Video to Sticker\n * @param {Buffer} img Image/Video Buffer\n * @param {String} url Image/Video URL\n * @param {String} packname EXIF Packname\n * @param {String} author EXIF Author\n */\nasync function sticker3(img, url, packname, author) {\n  url = url ? url : await uploadFile(img)\n  let res = await fetch('https://api.xteam.xyz/sticker/wm?' + new URLSearchParams(Object.entries({\n    url,\n    packname,\n    author\n  })))\n  return await res.buffer()\n}\n\n/**\n * Image to Sticker\n * @param {Buffer} img Image/Video Buffer\n * @param {String} url Image/Video URL\n */\nasync function sticker4(img, url) {\n  if (url) {\n    let res = await fetch(url)\n    if (res.status !== 200) throw await res.text()\n    img = await res.buffer()\n  }\n  return await ffmpeg(img, [\n    '-vf', 'scale=512:512:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=512:512:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1'\n  ], 'jpeg', 'webp')\n}\n\nasync function sticker5(img, url, packname, author, categories = [''], extra = {}) {\n  const { Sticker } = await import('wa-sticker-formatter')\n  const stickerMetadata = {\n    type: 'default',\n    pack: packname,\n    author,\n    categories,\n    ...extra\n  }\n  return (new Sticker(img ? img : url, stickerMetadata)).toBuffer()\n}\n\n/**\n * Convert using fluent-ffmpeg\n * @param {string} img \n * @param {string} url \n */\nfunction sticker6(img, url) {\n  return new Promise(async (resolve, reject) => {\n    if (url) {\n      let res = await fetch(url)\n      if (res.status !== 200) throw await res.text()\n      img = await res.buffer()\n    }\n    const type = await fileTypeFromBuffer(img) || {\n      mime: 'application/octet-stream',\n      ext: 'bin'\n    }\n    if (type.ext == 'bin') reject(img)\n    const tmp = path.join(__dirname, `../tmp/${+ new Date()}.${type.ext}`)\n    const out = path.join(tmp + '.webp')\n    await fs.promises.writeFile(tmp, img)\n    // https://github.com/MhankBarBar/termux-wabot/blob/main/index.js#L313#L368\n    let Fffmpeg = /video/i.test(type.mime) ? fluent_ffmpeg(tmp).inputFormat(type.ext) : fluent_ffmpeg(tmp).input(tmp)\n    Fffmpeg\n      .on('error', function (err) {\n        console.error(err)\n        fs.promises.unlink(tmp)\n        reject(img)\n      })\n      .on('end', async function () {\n        fs.promises.unlink(tmp)\n        resolve(await fs.promises.readFile(out))\n      })\n      .addOutputOptions([\n        `-vcodec`, `libwebp`, `-vf`,\n        `scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`\n      ])\n      .toFormat('webp')\n      .save(out)\n  })\n}\n/**\n * Add WhatsApp JSON Exif Metadata\n * Taken from https://github.com/pedroslopez/whatsapp-web.js/pull/527/files\n * @param {Buffer} webpSticker \n * @param {String} packname \n * @param {String} author \n * @param {String} categories \n * @param {Object} extra \n * @returns \n */\nasync function addExif(webpSticker, packname, author, categories = [''], extra = {}) {\n  const img = new webp.Image();\n  const stickerPackId = crypto.randomBytes(32).toString('hex');\n  const json = { 'sticker-pack-id': stickerPackId, 'sticker-pack-name': packname, 'sticker-pack-publisher': author, 'emojis': categories, ...extra };\n  let exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00]);\n  let jsonBuffer = Buffer.from(JSON.stringify(json), 'utf8');\n  let exif = Buffer.concat([exifAttr, jsonBuffer]);\n  exif.writeUIntLE(jsonBuffer.length, 14, 4);\n  await img.load(webpSticker)\n  img.exif = exif\n  return await img.save(null)\n}\n\n/**\n * Image/Video to Sticker\n * @param {Buffer} img Image/Video Buffer\n * @param {String} url Image/Video URL\n * @param {...String} \n*/\nasync function sticker(img, url, ...args) {\n  let lastError, stiker\n  for (let func of [\n    sticker3, global.support.ffmpeg && sticker6, sticker5,\n    global.support.ffmpeg && global.support.ffmpegWebp && sticker4,\n    global.support.ffmpeg && (global.support.convert || global.support.magick || global.support.gm) && sticker2,\n  ].filter(f => f)) {\n    try {\n      stiker = await func(img, url, ...args)\n      if (stiker.includes('html')) continue\n      if (stiker.includes('WEBP')) {\n        try {\n          return await addExif(stiker, ...args)\n        } catch (e) {\n          console.error(e)\n          return stiker\n        }\n      }\n      throw stiker.toString()\n    } catch (err) {\n      lastError = err\n      continue\n    }\n  }\n  console.error(lastError)\n  return lastError\n}\n\nconst support = {\n  ffmpeg: true,\n  ffprobe: true,\n  ffmpegWebp: true,\n  convert: true,\n  magick: false,\n  gm: false,\n  find: false\n}\n\nmodule.exports = {\n  sticker,\n  sticker2,\n  sticker3,\n  sticker4,\n  sticker6,\n  addExif,\n  support\n}\n"
  },
  {
    "path": "plugins/tiktok.js",
    "content": "const axios = require(\"axios\");\nconst cheerio = require(\"cheerio\");\n\nconst clean = (data) => {\n  let regex = /(<([^>]+)>)/gi;\n  data = data.replace(/(<br?\\s?\\/>)/gi, \" \\n\");\n  return data.replace(regex, \"\");\n};\n\nasync function shortener(url) {\n  return url;\n}\n\nexports.Tiktok = async(query) => {\n  let response = await axios(\"https://lovetik.com/api/ajax/search\", {\n    method: \"POST\",\n    data: new URLSearchParams(Object.entries({ query })),\n  });\n\n  result = {};\n\n  result.creator = \"YNTKTS\";\n  result.title = clean(response.data.desc);\n  result.author = clean(response.data.author);\n  result.nowm = await shortener(\n    (response.data.links[0].a || \"\").replace(\"https\", \"http\")\n  );\n  result.watermark = await shortener(\n    (response.data.links[1].a || \"\").replace(\"https\", \"http\")\n  );\n  result.audio = await shortener(\n    (response.data.links[2].a || \"\").replace(\"https\", \"http\")\n  );\n  result.thumbnail = await shortener(response.data.cover);\n  return result;\n}\n"
  },
  {
    "path": "plugins/uploadFile.js",
    "content": "const fetch = rewuire('node-fetch')\nconst { FormData, Blob } = require('formdata-node')\nconst { fileTypeFromBuffer } = require('file-type')\n/**\n * Upload epheremal file to file.io\n * `Expired in 1 day`\n * `100MB Max Filesize`\n * @param {Buffer} buffer File Buffer\n */\nconst fileIO = async buffer => {\n  const { ext, mime } = await fileTypeFromBuffer(buffer) || {}\n  let form = new FormData()\n  const blob = new Blob([buffer.toArrayBuffer()], { type: mime })\n  form.append('file', blob, 'tmp.' + ext)\n  let res = await fetch('https://file.io/?expires=1d', { // 1 Day Expiry Date\n    method: 'POST',\n    body: form\n  })\n  let json = await res.json()\n  if (!json.success) throw json\n  return json.link\n}\n\n/**\n * Upload file to storage.restfulapi.my.id\n * @param {Buffer|ReadableStream|(Buffer|ReadableStream)[]} inp File Buffer/Stream or Array of them\n * @returns {string|null|(string|null)[]}\n */\nconst RESTfulAPI = async inp => {\n  let form = new FormData()\n  let buffers = inp\n  if (!Array.isArray(inp)) buffers = [inp]\n  for (let buffer of buffers) {\n    const blob = new Blob([buffer.toArrayBuffer()])\n    form.append('file', blob)\n  }\n  let res = await fetch('https://storage.restfulapi.my.id/upload', {\n    method: 'POST',\n    body: form\n  })\n  let json = await res.text()\n  try {\n    json = JSON.parse(json)\n    if (!Array.isArray(inp)) return json.files[0].url\n    return json.files.map(res => res.url)\n  } catch (e) {\n    throw json\n  }\n}\n\n/**\n * \n * @param {Buffer} inp \n * @returns {Promise<string>}\n */\nexport default async function (inp) {\n  let err = false\n  for (let upload of [RESTfulAPI, fileIO]) {\n    try {\n      return await upload(inp)\n    } catch (e) {\n      err = e\n    }\n  }\n  if (err) throw err\n}"
  },
  {
    "path": "plugins/uploadImage.js",
    "content": "const fetch = require('node-fetch')\nconst { FormData, Blob } = require('formdata-node')\nconst { fileTypeFromBuffer } = rquire('file-type')\n\n/**\n * Upload image to telegra.ph\n * Supported mimetype:\n * - `image/jpeg`\n * - `image/jpg`\n * - `image/png`s\n * @param {Buffer} buffer Image Buffer\n * @return {Promise<string>}\n */\nexport default async buffer => {\n  const { ext, mime } = await fileTypeFromBuffer(buffer)\n  let form = new FormData()\n  const blob = new Blob([buffer.toArrayBuffer()], { type: mime })\n  form.append('file', blob, 'tmp.' + ext)\n  let res = await fetch('https://telegra.ph/upload', {\n    method: 'POST',\n    body: form\n  })\n  let img = await res.json()\n  if (img.error) throw img.error\n  return 'https://telegra.ph' + img[0].src\n}\n\n"
  },
  {
    "path": "replit",
    "content": "run = \"yarn\"\n\nstart = \"node .\"\n"
  },
  {
    "path": "replit.nix",
    "content": "{ pkgs }: {\n\n\tdeps = [\t\tpkgs.nodejs-16_x\n\n        pkgs.nodePackages.typescript-language-server\n\n        pkgs.yarn\n\n        pkgs.arcan.ffmpeg\n\n        pkgs.replitPackages.jest\n\n        pkgs.libwebp\n\n        pkgs.imagemagick\n\n        pkgs.git\n\n\t];\n\n}\n"
  },
  {
    "path": "rude.json",
    "content": "[\"mhata\",\"mhata yamai vako\",\"Dick\",\"dick\",\"rombe\",\"Rombe\",\"dhodhi\",\"Dodhi\",\"Duzvi\",\"Shure\",\"mwana wehure\",\"Mwana wehure\",\"Jende\",\"jende\",\"Cum\",\"cum\",\"Pussy\",\"pussy\",\"Chut\",\"machende\",\"Suck\",\"suck\",\"Scum\",\"scum\",\"Scumbag\",\"sascum\",\"Sex\",\"svira\",\"Svira\",\"Machende\",\"Kusvira\",\"Matinji\",\"dinji\",\"matinji\",\"msunu\",\"kusvira\",\"Fuck you\",\"fuck you\",\"Muroyi\",\"muroyi\",\"Kontol\",\"kontol\",\"Hure\",\"hure\",\"bitch\",\"Bitch\",\"Kushata\",\"Tsvina yemunhu\",\"tsvina yemunhu\",\"Stfu\",\"stfu\",\"Ass\",\"ass\",\"Asshole\",\"asshole\",\"Musatanyoko\",\"mudhidhi\",\"musatanyoko\",\"Fuck\",\"fuck\",\"Motherfucker\",\"beche\",\"motherfucker\",\"mboro\",\"Dako\",\"Mother fucker\",\"mother fucker\",\"Mf\",\"Mboro\",\"mf\",\"mfs\",\"fck\",\"Fuck\"]"
  },
  {
    "path": "server.js",
    "content": "const express = require('express')\r\nconst server = express()\r\nconst fetch = require('node-fetch')\r\nconst PORT = process.env.PORT || 3000\r\nserver.set('json spaces', 2)\r\nserver.get('/', async (req, res) => {\r\n   res.json({\r\n      online: true,\r\n      msg: `Server running with port ${PORT}`,\r\n      server: await (await fetch('http://ip-api.com/json')).json()\r\n   })\r\n})\r\n\r\nserver.listen(PORT, () => console.log(`Zim-bot server running with port ${PORT}!`))"
  },
  {
    "path": "speed.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n# Copyright 2012 Matt Martz\n# All Rights Reserved.\n#\n#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\n#    not use this file except in compliance with the License. You may obtain\n#    a copy of the License at\n#\n#         http://www.apache.org/licenses/LICENSE-2.0\n#\n#    Unless required by applicable law or agreed to in writing, software\n#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n#    License for the specific language governing permissions and limitations\n#    under the License.\n\nimport csv\nimport datetime\nimport errno\nimport math\nimport os\nimport platform\nimport re\nimport signal\nimport socket\nimport sys\nimport threading\nimport timeit\nimport xml.parsers.expat\n\ntry:\n    import gzip\n    GZIP_BASE = gzip.GzipFile\nexcept ImportError:\n    gzip = None\n    GZIP_BASE = object\n\n__version__ = '2.1.4b1'\n\n\nclass FakeShutdownEvent(object):\n    \"\"\"Class to fake a threading.Event.isSet so that users of this module\n    are not required to register their own threading.Event()\n    \"\"\"\n\n    @staticmethod\n    def isSet():\n        \"Dummy method to always return false\"\"\"\n        return False\n\n    is_set = isSet\n\n\n# Some global variables we use\nDEBUG = False\n_GLOBAL_DEFAULT_TIMEOUT = object()\nPY25PLUS = sys.version_info[:2] >= (2, 5)\nPY26PLUS = sys.version_info[:2] >= (2, 6)\nPY32PLUS = sys.version_info[:2] >= (3, 2)\nPY310PLUS = sys.version_info[:2] >= (3, 10)\n\n# Begin import game to handle Python 2 and Python 3\ntry:\n    import json\nexcept ImportError:\n    try:\n        import simplejson as json\n    except ImportError:\n        json = None\n\ntry:\n    import xml.etree.ElementTree as ET\n    try:\n        from xml.etree.ElementTree import _Element as ET_Element\n    except ImportError:\n        pass\nexcept ImportError:\n    from xml.dom import minidom as DOM\n    from xml.parsers.expat import ExpatError\n    ET = None\n\ntry:\n    from urllib2 import (urlopen, Request, HTTPError, URLError,\n                         AbstractHTTPHandler, ProxyHandler,\n                         HTTPDefaultErrorHandler, HTTPRedirectHandler,\n                         HTTPErrorProcessor, OpenerDirector)\nexcept ImportError:\n    from urllib.request import (urlopen, Request, HTTPError, URLError,\n                                AbstractHTTPHandler, ProxyHandler,\n                                HTTPDefaultErrorHandler, HTTPRedirectHandler,\n                                HTTPErrorProcessor, OpenerDirector)\n\ntry:\n    from httplib import HTTPConnection, BadStatusLine\nexcept ImportError:\n    from http.client import HTTPConnection, BadStatusLine\n\ntry:\n    from httplib import HTTPSConnection\nexcept ImportError:\n    try:\n        from http.client import HTTPSConnection\n    except ImportError:\n        HTTPSConnection = None\n\ntry:\n    from httplib import FakeSocket\nexcept ImportError:\n    FakeSocket = None\n\ntry:\n    from Queue import Queue\nexcept ImportError:\n    from queue import Queue\n\ntry:\n    from urlparse import urlparse\nexcept ImportError:\n    from urllib.parse import urlparse\n\ntry:\n    from urlparse import parse_qs\nexcept ImportError:\n    try:\n        from urllib.parse import parse_qs\n    except ImportError:\n        from cgi import parse_qs\n\ntry:\n    from hashlib import md5\nexcept ImportError:\n    from md5 import md5\n\ntry:\n    from argparse import ArgumentParser as ArgParser\n    from argparse import SUPPRESS as ARG_SUPPRESS\n    PARSER_TYPE_INT = int\n    PARSER_TYPE_STR = str\n    PARSER_TYPE_FLOAT = float\nexcept ImportError:\n    from optparse import OptionParser as ArgParser\n    from optparse import SUPPRESS_HELP as ARG_SUPPRESS\n    PARSER_TYPE_INT = 'int'\n    PARSER_TYPE_STR = 'string'\n    PARSER_TYPE_FLOAT = 'float'\n\ntry:\n    from cStringIO import StringIO\n    BytesIO = None\nexcept ImportError:\n    try:\n        from StringIO import StringIO\n        BytesIO = None\n    except ImportError:\n        from io import StringIO, BytesIO\n\ntry:\n    import __builtin__\nexcept ImportError:\n    import builtins\n    from io import TextIOWrapper, FileIO\n\n    class _Py3Utf8Output(TextIOWrapper):\n        \"\"\"UTF-8 encoded wrapper around stdout for py3, to override\n        ASCII stdout\n        \"\"\"\n        def __init__(self, f, **kwargs):\n            buf = FileIO(f.fileno(), 'w')\n            super(_Py3Utf8Output, self).__init__(\n                buf,\n                encoding='utf8',\n                errors='strict'\n            )\n\n        def write(self, s):\n            super(_Py3Utf8Output, self).write(s)\n            self.flush()\n\n    _py3_print = getattr(builtins, 'print')\n    try:\n        _py3_utf8_stdout = _Py3Utf8Output(sys.stdout)\n        _py3_utf8_stderr = _Py3Utf8Output(sys.stderr)\n    except OSError:\n        # sys.stdout/sys.stderr is not a compatible stdout/stderr object\n        # just use it and hope things go ok\n        _py3_utf8_stdout = sys.stdout\n        _py3_utf8_stderr = sys.stderr\n\n    def to_utf8(v):\n        \"\"\"No-op encode to utf-8 for py3\"\"\"\n        return v\n\n    def print_(*args, **kwargs):\n        \"\"\"Wrapper function for py3 to print, with a utf-8 encoded stdout\"\"\"\n        if kwargs.get('file') == sys.stderr:\n            kwargs['file'] = _py3_utf8_stderr\n        else:\n            kwargs['file'] = kwargs.get('file', _py3_utf8_stdout)\n        _py3_print(*args, **kwargs)\nelse:\n    del __builtin__\n\n    def to_utf8(v):\n        \"\"\"Encode value to utf-8 if possible for py2\"\"\"\n        try:\n            return v.encode('utf8', 'strict')\n        except AttributeError:\n            return v\n\n    def print_(*args, **kwargs):\n        \"\"\"The new-style print function for Python 2.4 and 2.5.\n\n        Taken from https://pypi.python.org/pypi/six/\n\n        Modified to set encoding to UTF-8 always, and to flush after write\n        \"\"\"\n        fp = kwargs.pop(\"file\", sys.stdout)\n        if fp is None:\n            return\n\n        def write(data):\n            if not isinstance(data, basestring):\n                data = str(data)\n            # If the file has an encoding, encode unicode with it.\n            encoding = 'utf8'  # Always trust UTF-8 for output\n            if (isinstance(fp, file) and\n                    isinstance(data, unicode) and\n                    encoding is not None):\n                errors = getattr(fp, \"errors\", None)\n                if errors is None:\n                    errors = \"strict\"\n                data = data.encode(encoding, errors)\n            fp.write(data)\n            fp.flush()\n        want_unicode = False\n        sep = kwargs.pop(\"sep\", None)\n        if sep is not None:\n            if isinstance(sep, unicode):\n                want_unicode = True\n            elif not isinstance(sep, str):\n                raise TypeError(\"sep must be None or a string\")\n        end = kwargs.pop(\"end\", None)\n        if end is not None:\n            if isinstance(end, unicode):\n                want_unicode = True\n            elif not isinstance(end, str):\n                raise TypeError(\"end must be None or a string\")\n        if kwargs:\n            raise TypeError(\"invalid keyword arguments to print()\")\n        if not want_unicode:\n            for arg in args:\n                if isinstance(arg, unicode):\n                    want_unicode = True\n                    break\n        if want_unicode:\n            newline = unicode(\"\\n\")\n            space = unicode(\" \")\n        else:\n            newline = \"\\n\"\n            space = \" \"\n        if sep is None:\n            sep = space\n        if end is None:\n            end = newline\n        for i, arg in enumerate(args):\n            if i:\n                write(sep)\n            write(arg)\n        write(end)\n\n# Exception \"constants\" to support Python 2 through Python 3\ntry:\n    import ssl\n    try:\n        CERT_ERROR = (ssl.CertificateError,)\n    except AttributeError:\n        CERT_ERROR = tuple()\n\n    HTTP_ERRORS = (\n        (HTTPError, URLError, socket.error, ssl.SSLError, BadStatusLine) +\n        CERT_ERROR\n    )\nexcept ImportError:\n    ssl = None\n    HTTP_ERRORS = (HTTPError, URLError, socket.error, BadStatusLine)\n\nif PY32PLUS:\n    etree_iter = ET.Element.iter\nelif PY25PLUS:\n    etree_iter = ET_Element.getiterator\n\nif PY26PLUS:\n    thread_is_alive = threading.Thread.is_alive\nelse:\n    thread_is_alive = threading.Thread.isAlive\n\n\ndef event_is_set(event):\n    try:\n        return event.is_set()\n    except AttributeError:\n        return event.isSet()\n\n\nclass SpeedtestException(Exception):\n    \"\"\"Base exception for this module\"\"\"\n\n\nclass SpeedtestCLIError(SpeedtestException):\n    \"\"\"Generic exception for raising errors during CLI operation\"\"\"\n\n\nclass SpeedtestHTTPError(SpeedtestException):\n    \"\"\"Base HTTP exception for this module\"\"\"\n\n\nclass SpeedtestConfigError(SpeedtestException):\n    \"\"\"Configuration XML is invalid\"\"\"\n\n\nclass SpeedtestServersError(SpeedtestException):\n    \"\"\"Servers XML is invalid\"\"\"\n\n\nclass ConfigRetrievalError(SpeedtestHTTPError):\n    \"\"\"Could not retrieve config.php\"\"\"\n\n\nclass ServersRetrievalError(SpeedtestHTTPError):\n    \"\"\"Could not retrieve speedtest-servers.php\"\"\"\n\n\nclass InvalidServerIDType(SpeedtestException):\n    \"\"\"Server ID used for filtering was not an integer\"\"\"\n\n\nclass NoMatchedServers(SpeedtestException):\n    \"\"\"No servers matched when filtering\"\"\"\n\n\nclass SpeedtestMiniConnectFailure(SpeedtestException):\n    \"\"\"Could not connect to the provided speedtest mini server\"\"\"\n\n\nclass InvalidSpeedtestMiniServer(SpeedtestException):\n    \"\"\"Server provided as a speedtest mini server does not actually appear\n    to be a speedtest mini server\n    \"\"\"\n\n\nclass ShareResultsConnectFailure(SpeedtestException):\n    \"\"\"Could not connect to speedtest.net API to POST results\"\"\"\n\n\nclass ShareResultsSubmitFailure(SpeedtestException):\n    \"\"\"Unable to successfully POST results to speedtest.net API after\n    connection\n    \"\"\"\n\n\nclass SpeedtestUploadTimeout(SpeedtestException):\n    \"\"\"testlength configuration reached during upload\n    Used to ensure the upload halts when no additional data should be sent\n    \"\"\"\n\n\nclass SpeedtestBestServerFailure(SpeedtestException):\n    \"\"\"Unable to determine best server\"\"\"\n\n\nclass SpeedtestMissingBestServer(SpeedtestException):\n    \"\"\"get_best_server not called or not able to determine best server\"\"\"\n\n\ndef create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,\n                      source_address=None):\n    \"\"\"Connect to *address* and return the socket object.\n\n    Convenience function.  Connect to *address* (a 2-tuple ``(host,\n    port)``) and return the socket object.  Passing the optional\n    *timeout* parameter will set the timeout on the socket instance\n    before attempting to connect.  If no *timeout* is supplied, the\n    global default timeout setting returned by :func:`getdefaulttimeout`\n    is used.  If *source_address* is set it must be a tuple of (host, port)\n    for the socket to bind as a source address before making the connection.\n    An host of '' or port 0 tells the OS to use the default.\n\n    Largely vendored from Python 2.7, modified to work with Python 2.4\n    \"\"\"\n\n    host, port = address\n    err = None\n    for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):\n        af, socktype, proto, canonname, sa = res\n        sock = None\n        try:\n            sock = socket.socket(af, socktype, proto)\n            if timeout is not _GLOBAL_DEFAULT_TIMEOUT:\n                sock.settimeout(float(timeout))\n            if source_address:\n                sock.bind(source_address)\n            sock.connect(sa)\n            return sock\n\n        except socket.error:\n            err = get_exception()\n            if sock is not None:\n                sock.close()\n\n    if err is not None:\n        raise err\n    else:\n        raise socket.error(\"getaddrinfo returns an empty list\")\n\n\nclass SpeedtestHTTPConnection(HTTPConnection):\n    \"\"\"Custom HTTPConnection to support source_address across\n    Python 2.4 - Python 3\n    \"\"\"\n    def __init__(self, *args, **kwargs):\n        source_address = kwargs.pop('source_address', None)\n        timeout = kwargs.pop('timeout', 10)\n\n        self._tunnel_host = None\n\n        HTTPConnection.__init__(self, *args, **kwargs)\n\n        self.source_address = source_address\n        self.timeout = timeout\n\n    def connect(self):\n        \"\"\"Connect to the host and port specified in __init__.\"\"\"\n        try:\n            self.sock = socket.create_connection(\n                (self.host, self.port),\n                self.timeout,\n                self.source_address\n            )\n        except (AttributeError, TypeError):\n            self.sock = create_connection(\n                (self.host, self.port),\n                self.timeout,\n                self.source_address\n            )\n\n        if self._tunnel_host:\n            self._tunnel()\n\n\nif HTTPSConnection:\n    class SpeedtestHTTPSConnection(HTTPSConnection):\n        \"\"\"Custom HTTPSConnection to support source_address across\n        Python 2.4 - Python 3\n        \"\"\"\n        default_port = 443\n\n        def __init__(self, *args, **kwargs):\n            source_address = kwargs.pop('source_address', None)\n            timeout = kwargs.pop('timeout', 10)\n\n            self._tunnel_host = None\n\n            HTTPSConnection.__init__(self, *args, **kwargs)\n\n            self.timeout = timeout\n            self.source_address = source_address\n\n        def connect(self):\n            \"Connect to a host on a given (SSL) port.\"\n            try:\n                self.sock = socket.create_connection(\n                    (self.host, self.port),\n                    self.timeout,\n                    self.source_address\n                )\n            except (AttributeError, TypeError):\n                self.sock = create_connection(\n                    (self.host, self.port),\n                    self.timeout,\n                    self.source_address\n                )\n\n            if self._tunnel_host:\n                self._tunnel()\n\n            if ssl:\n                try:\n                    kwargs = {}\n                    if hasattr(ssl, 'SSLContext'):\n                        if self._tunnel_host:\n                            kwargs['server_hostname'] = self._tunnel_host\n                        else:\n                            kwargs['server_hostname'] = self.host\n                    self.sock = self._context.wrap_socket(self.sock, **kwargs)\n                except AttributeError:\n                    self.sock = ssl.wrap_socket(self.sock)\n                    try:\n                        self.sock.server_hostname = self.host\n                    except AttributeError:\n                        pass\n            elif FakeSocket:\n                # Python 2.4/2.5 support\n                try:\n                    self.sock = FakeSocket(self.sock, socket.ssl(self.sock))\n                except AttributeError:\n                    raise SpeedtestException(\n                        'This version of Python does not support HTTPS/SSL '\n                        'functionality'\n                    )\n            else:\n                raise SpeedtestException(\n                    'This version of Python does not support HTTPS/SSL '\n                    'functionality'\n                )\n\n\ndef _build_connection(connection, source_address, timeout, context=None):\n    \"\"\"Cross Python 2.4 - Python 3 callable to build an ``HTTPConnection`` or\n    ``HTTPSConnection`` with the args we need\n\n    Called from ``http(s)_open`` methods of ``SpeedtestHTTPHandler`` or\n    ``SpeedtestHTTPSHandler``\n    \"\"\"\n    def inner(host, **kwargs):\n        kwargs.update({\n            'source_address': source_address,\n            'timeout': timeout\n        })\n        if context:\n            kwargs['context'] = context\n        return connection(host, **kwargs)\n    return inner\n\n\nclass SpeedtestHTTPHandler(AbstractHTTPHandler):\n    \"\"\"Custom ``HTTPHandler`` that can build a ``HTTPConnection`` with the\n    args we need for ``source_address`` and ``timeout``\n    \"\"\"\n    def __init__(self, debuglevel=0, source_address=None, timeout=10):\n        AbstractHTTPHandler.__init__(self, debuglevel)\n        self.source_address = source_address\n        self.timeout = timeout\n\n    def http_open(self, req):\n        return self.do_open(\n            _build_connection(\n                SpeedtestHTTPConnection,\n                self.source_address,\n                self.timeout\n            ),\n            req\n        )\n\n    http_request = AbstractHTTPHandler.do_request_\n\n\nclass SpeedtestHTTPSHandler(AbstractHTTPHandler):\n    \"\"\"Custom ``HTTPSHandler`` that can build a ``HTTPSConnection`` with the\n    args we need for ``source_address`` and ``timeout``\n    \"\"\"\n    def __init__(self, debuglevel=0, context=None, source_address=None,\n                 timeout=10):\n        AbstractHTTPHandler.__init__(self, debuglevel)\n        self._context = context\n        self.source_address = source_address\n        self.timeout = timeout\n\n    def https_open(self, req):\n        return self.do_open(\n            _build_connection(\n                SpeedtestHTTPSConnection,\n                self.source_address,\n                self.timeout,\n                context=self._context,\n            ),\n            req\n        )\n\n    https_request = AbstractHTTPHandler.do_request_\n\n\ndef build_opener(source_address=None, timeout=10):\n    \"\"\"Function similar to ``urllib2.build_opener`` that will build\n    an ``OpenerDirector`` with the explicit handlers we want,\n    ``source_address`` for binding, ``timeout`` and our custom\n    `User-Agent`\n    \"\"\"\n\n    printer('Timeout set to %d' % timeout, debug=True)\n\n    if source_address:\n        source_address_tuple = (source_address, 0)\n        printer('Binding to source address: %r' % (source_address_tuple,),\n                debug=True)\n    else:\n        source_address_tuple = None\n\n    handlers = [\n        ProxyHandler(),\n        SpeedtestHTTPHandler(source_address=source_address_tuple,\n                             timeout=timeout),\n        SpeedtestHTTPSHandler(source_address=source_address_tuple,\n                              timeout=timeout),\n        HTTPDefaultErrorHandler(),\n        HTTPRedirectHandler(),\n        HTTPErrorProcessor()\n    ]\n\n    opener = OpenerDirector()\n    opener.addheaders = [('User-agent', build_user_agent())]\n\n    for handler in handlers:\n        opener.add_handler(handler)\n\n    return opener\n\n\nclass GzipDecodedResponse(GZIP_BASE):\n    \"\"\"A file-like object to decode a response encoded with the gzip\n    method, as described in RFC 1952.\n\n    Largely copied from ``xmlrpclib``/``xmlrpc.client`` and modified\n    to work for py2.4-py3\n    \"\"\"\n    def __init__(self, response):\n        # response doesn't support tell() and read(), required by\n        # GzipFile\n        if not gzip:\n            raise SpeedtestHTTPError('HTTP response body is gzip encoded, '\n                                     'but gzip support is not available')\n        IO = BytesIO or StringIO\n        self.io = IO()\n        while 1:\n            chunk = response.read(1024)\n            if len(chunk) == 0:\n                break\n            self.io.write(chunk)\n        self.io.seek(0)\n        gzip.GzipFile.__init__(self, mode='rb', fileobj=self.io)\n\n    def close(self):\n        try:\n            gzip.GzipFile.close(self)\n        finally:\n            self.io.close()\n\n\ndef get_exception():\n    \"\"\"Helper function to work with py2.4-py3 for getting the current\n    exception in a try/except block\n    \"\"\"\n    return sys.exc_info()[1]\n\n\ndef distance(origin, destination):\n    \"\"\"Determine distance between 2 sets of [lat,lon] in km\"\"\"\n\n    lat1, lon1 = origin\n    lat2, lon2 = destination\n    radius = 6371  # km\n\n    dlat = math.radians(lat2 - lat1)\n    dlon = math.radians(lon2 - lon1)\n    a = (math.sin(dlat / 2) * math.sin(dlat / 2) +\n         math.cos(math.radians(lat1)) *\n         math.cos(math.radians(lat2)) * math.sin(dlon / 2) *\n         math.sin(dlon / 2))\n    c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))\n    d = radius * c\n\n    return d\n\n\ndef build_user_agent():\n    \"\"\"Build a Mozilla/5.0 compatible User-Agent string\"\"\"\n\n    ua_tuple = (\n        'Mozilla/5.0',\n        '(%s; U; %s; en-us)' % (platform.platform(),\n                                platform.architecture()[0]),\n        'Python/%s' % platform.python_version(),\n        '(KHTML, like Gecko)',\n        'speedtest-cli/%s' % __version__\n    )\n    user_agent = ' '.join(ua_tuple)\n    printer('User-Agent: %s' % user_agent, debug=True)\n    return user_agent\n\n\ndef build_request(url, data=None, headers=None, bump='0', secure=False):\n    \"\"\"Build a urllib2 request object\n\n    This function automatically adds a User-Agent header to all requests\n\n    \"\"\"\n\n    if not headers:\n        headers = {}\n\n    if url[0] == ':':\n        scheme = ('http', 'https')[bool(secure)]\n        schemed_url = '%s%s' % (scheme, url)\n    else:\n        schemed_url = url\n\n    if '?' in url:\n        delim = '&'\n    else:\n        delim = '?'\n\n    # WHO YOU GONNA CALL? CACHE BUSTERS!\n    final_url = '%s%sx=%s.%s' % (schemed_url, delim,\n                                 int(timeit.time.time() * 1000),\n                                 bump)\n\n    headers.update({\n        'Cache-Control': 'no-cache',\n    })\n\n    printer('%s %s' % (('GET', 'POST')[bool(data)], final_url),\n            debug=True)\n\n    return Request(final_url, data=data, headers=headers)\n\n\ndef catch_request(request, opener=None):\n    \"\"\"Helper function to catch common exceptions encountered when\n    establishing a connection with a HTTP/HTTPS request\n\n    \"\"\"\n\n    if opener:\n        _open = opener.open\n    else:\n        _open = urlopen\n\n    try:\n        uh = _open(request)\n        if request.get_full_url() != uh.geturl():\n            printer('Redirected to %s' % uh.geturl(), debug=True)\n        return uh, False\n    except HTTP_ERRORS:\n        e = get_exception()\n        return None, e\n\n\ndef get_response_stream(response):\n    \"\"\"Helper function to return either a Gzip reader if\n    ``Content-Encoding`` is ``gzip`` otherwise the response itself\n\n    \"\"\"\n\n    try:\n        getheader = response.headers.getheader\n    except AttributeError:\n        getheader = response.getheader\n\n    if getheader('content-encoding') == 'gzip':\n        return GzipDecodedResponse(response)\n\n    return response\n\n\ndef get_attributes_by_tag_name(dom, tag_name):\n    \"\"\"Retrieve an attribute from an XML document and return it in a\n    consistent format\n\n    Only used with xml.dom.minidom, which is likely only to be used\n    with python versions older than 2.5\n    \"\"\"\n    elem = dom.getElementsByTagName(tag_name)[0]\n    return dict(list(elem.attributes.items()))\n\n\ndef print_dots(shutdown_event):\n    \"\"\"Built in callback function used by Thread classes for printing\n    status\n    \"\"\"\n    def inner(current, total, start=False, end=False):\n        if event_is_set(shutdown_event):\n            return\n\n        sys.stdout.write('.')\n        if current + 1 == total and end is True:\n            sys.stdout.write('\\n')\n        sys.stdout.flush()\n    return inner\n\n\ndef do_nothing(*args, **kwargs):\n    pass\n\n\nclass HTTPDownloader(threading.Thread):\n    \"\"\"Thread class for retrieving a URL\"\"\"\n\n    def __init__(self, i, request, start, timeout, opener=None,\n                 shutdown_event=None):\n        threading.Thread.__init__(self)\n        self.request = request\n        self.result = [0]\n        self.starttime = start\n        self.timeout = timeout\n        self.i = i\n        if opener:\n            self._opener = opener.open\n        else:\n            self._opener = urlopen\n\n        if shutdown_event:\n            self._shutdown_event = shutdown_event\n        else:\n            self._shutdown_event = FakeShutdownEvent()\n\n    def run(self):\n        try:\n            if (timeit.default_timer() - self.starttime) <= self.timeout:\n                f = self._opener(self.request)\n                while (not event_is_set(self._shutdown_event) and\n                        (timeit.default_timer() - self.starttime) <=\n                        self.timeout):\n                    self.result.append(len(f.read(10240)))\n                    if self.result[-1] == 0:\n                        break\n                f.close()\n        except IOError:\n            pass\n        except HTTP_ERRORS:\n            pass\n\n\nclass HTTPUploaderData(object):\n    \"\"\"File like object to improve cutting off the upload once the timeout\n    has been reached\n    \"\"\"\n\n    def __init__(self, length, start, timeout, shutdown_event=None):\n        self.length = length\n        self.start = start\n        self.timeout = timeout\n\n        if shutdown_event:\n            self._shutdown_event = shutdown_event\n        else:\n            self._shutdown_event = FakeShutdownEvent()\n\n        self._data = None\n\n        self.total = [0]\n\n    def pre_allocate(self):\n        chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n        multiplier = int(round(int(self.length) / 36.0))\n        IO = BytesIO or StringIO\n        try:\n            self._data = IO(\n                ('content1=%s' %\n                 (chars * multiplier)[0:int(self.length) - 9]\n                 ).encode()\n            )\n        except MemoryError:\n            raise SpeedtestCLIError(\n                'Insufficient memory to pre-allocate upload data. Please '\n                'use --no-pre-allocate'\n            )\n\n    @property\n    def data(self):\n        if not self._data:\n            self.pre_allocate()\n        return self._data\n\n    def read(self, n=10240):\n        if ((timeit.default_timer() - self.start) <= self.timeout and\n                not event_is_set(self._shutdown_event)):\n            chunk = self.data.read(n)\n            self.total.append(len(chunk))\n            return chunk\n        else:\n            raise SpeedtestUploadTimeout()\n\n    def __len__(self):\n        return self.length\n\n\nclass HTTPUploader(threading.Thread):\n    \"\"\"Thread class for putting a URL\"\"\"\n\n    def __init__(self, i, request, start, size, timeout, opener=None,\n                 shutdown_event=None):\n        threading.Thread.__init__(self)\n        self.request = request\n        self.request.data.start = self.starttime = start\n        self.size = size\n        self.result = 0\n        self.timeout = timeout\n        self.i = i\n\n        if opener:\n            self._opener = opener.open\n        else:\n            self._opener = urlopen\n\n        if shutdown_event:\n            self._shutdown_event = shutdown_event\n        else:\n            self._shutdown_event = FakeShutdownEvent()\n\n    def run(self):\n        request = self.request\n        try:\n            if ((timeit.default_timer() - self.starttime) <= self.timeout and\n                    not event_is_set(self._shutdown_event)):\n                try:\n                    f = self._opener(request)\n                except TypeError:\n                    # PY24 expects a string or buffer\n                    # This also causes issues with Ctrl-C, but we will concede\n                    # for the moment that Ctrl-C on PY24 isn't immediate\n                    request = build_request(self.request.get_full_url(),\n                                            data=request.data.read(self.size))\n                    f = self._opener(request)\n                f.read(11)\n                f.close()\n                self.result = sum(self.request.data.total)\n            else:\n                self.result = 0\n        except (IOError, SpeedtestUploadTimeout):\n            self.result = sum(self.request.data.total)\n        except HTTP_ERRORS:\n            self.result = 0\n\n\nclass SpeedtestResults(object):\n    \"\"\"Class for holding the results of a speedtest, including:\n\n    Download speed\n    Upload speed\n    Ping/Latency to test server\n    Data about server that the test was run against\n\n    Additionally this class can return a result data as a dictionary or CSV,\n    as well as submit a POST of the result data to the speedtest.net API\n    to get a share results image link.\n    \"\"\"\n\n    def __init__(self, download=0, upload=0, ping=0, server=None, client=None,\n                 opener=None, secure=False):\n        self.download = download\n        self.upload = upload\n        self.ping = ping\n        if server is None:\n            self.server = {}\n        else:\n            self.server = server\n        self.client = client or {}\n\n        self._share = None\n        self.timestamp = '%sZ' % datetime.datetime.utcnow().isoformat()\n        self.bytes_received = 0\n        self.bytes_sent = 0\n\n        if opener:\n            self._opener = opener\n        else:\n            self._opener = build_opener()\n\n        self._secure = secure\n\n    def __repr__(self):\n        return repr(self.dict())\n\n    def share(self):\n        \"\"\"POST data to the speedtest.net API to obtain a share results\n        link\n        \"\"\"\n\n        if self._share:\n            return self._share\n\n        download = int(round(self.download / 1000.0, 0))\n        ping = int(round(self.ping, 0))\n        upload = int(round(self.upload / 1000.0, 0))\n\n        # Build the request to send results back to speedtest.net\n        # We use a list instead of a dict because the API expects parameters\n        # in a certain order\n        api_data = [\n            'recommendedserverid=%s' % self.server['id'],\n            'ping=%s' % ping,\n            'screenresolution=',\n            'promo=',\n            'download=%s' % download,\n            'screendpi=',\n            'upload=%s' % upload,\n            'testmethod=http',\n            'hash=%s' % md5(('%s-%s-%s-%s' %\n                             (ping, upload, download, '297aae72'))\n                            .encode()).hexdigest(),\n            'touchscreen=none',\n            'startmode=pingselect',\n            'accuracy=1',\n            'bytesreceived=%s' % self.bytes_received,\n            'bytessent=%s' % self.bytes_sent,\n            'serverid=%s' % self.server['id'],\n        ]\n\n        headers = {'Referer': 'http://c.speedtest.net/flash/speedtest.swf'}\n        request = build_request('://www.speedtest.net/api/api.php',\n                                data='&'.join(api_data).encode(),\n                                headers=headers, secure=self._secure)\n        f, e = catch_request(request, opener=self._opener)\n        if e:\n            raise ShareResultsConnectFailure(e)\n\n        response = f.read()\n        code = f.code\n        f.close()\n\n        if int(code) != 200:\n            raise ShareResultsSubmitFailure('Could not submit results to '\n                                            'speedtest.net')\n\n        qsargs = parse_qs(response.decode())\n        resultid = qsargs.get('resultid')\n        if not resultid or len(resultid) != 1:\n            raise ShareResultsSubmitFailure('Could not submit results to '\n                                            'speedtest.net')\n\n        self._share = 'http://www.speedtest.net/result/%s.png' % resultid[0]\n\n        return self._share\n\n    def dict(self):\n        \"\"\"Return dictionary of result data\"\"\"\n\n        return {\n            'download': self.download,\n            'upload': self.upload,\n            'ping': self.ping,\n            'server': self.server,\n            'timestamp': self.timestamp,\n            'bytes_sent': self.bytes_sent,\n            'bytes_received': self.bytes_received,\n            'share': self._share,\n            'client': self.client,\n        }\n\n    @staticmethod\n    def csv_header(delimiter=','):\n        \"\"\"Return CSV Headers\"\"\"\n\n        row = ['Server ID', 'Sponsor', 'Server Name', 'Timestamp', 'Distance',\n               'Ping', 'Download', 'Upload', 'Share', 'IP Address']\n        out = StringIO()\n        writer = csv.writer(out, delimiter=delimiter, lineterminator='')\n        writer.writerow([to_utf8(v) for v in row])\n        return out.getvalue()\n\n    def csv(self, delimiter=','):\n        \"\"\"Return data in CSV format\"\"\"\n\n        data = self.dict()\n        out = StringIO()\n        writer = csv.writer(out, delimiter=delimiter, lineterminator='')\n        row = [data['server']['id'], data['server']['sponsor'],\n               data['server']['name'], data['timestamp'],\n               data['server']['d'], data['ping'], data['download'],\n               data['upload'], self._share or '', self.client['ip']]\n        writer.writerow([to_utf8(v) for v in row])\n        return out.getvalue()\n\n    def json(self, pretty=False):\n        \"\"\"Return data in JSON format\"\"\"\n\n        kwargs = {}\n        if pretty:\n            kwargs.update({\n                'indent': 4,\n                'sort_keys': True\n            })\n        return json.dumps(self.dict(), **kwargs)\n\n\nclass Speedtest(object):\n    \"\"\"Class for performing standard speedtest.net testing operations\"\"\"\n\n    def __init__(self, config=None, source_address=None, timeout=10,\n                 secure=False, shutdown_event=None):\n        self.config = {}\n\n        self._source_address = source_address\n        self._timeout = timeout\n        self._opener = build_opener(source_address, timeout)\n\n        self._secure = secure\n\n        if shutdown_event:\n            self._shutdown_event = shutdown_event\n        else:\n            self._shutdown_event = FakeShutdownEvent()\n\n        self.get_config()\n        if config is not None:\n            self.config.update(config)\n\n        self.servers = {}\n        self.closest = []\n        self._best = {}\n\n        self.results = SpeedtestResults(\n            client=self.config['client'],\n            opener=self._opener,\n            secure=secure,\n        )\n\n    @property\n    def best(self):\n        if not self._best:\n            self.get_best_server()\n        return self._best\n\n    def get_config(self):\n        \"\"\"Download the speedtest.net configuration and return only the data\n        we are interested in\n        \"\"\"\n\n        headers = {}\n        if gzip:\n            headers['Accept-Encoding'] = 'gzip'\n        request = build_request('://www.speedtest.net/speedtest-config.php',\n                                headers=headers, secure=self._secure)\n        uh, e = catch_request(request, opener=self._opener)\n        if e:\n            raise ConfigRetrievalError(e)\n        configxml_list = []\n\n        stream = get_response_stream(uh)\n\n        while 1:\n            try:\n                configxml_list.append(stream.read(1024))\n            except (OSError, EOFError):\n                raise ConfigRetrievalError(get_exception())\n            if len(configxml_list[-1]) == 0:\n                break\n        stream.close()\n        uh.close()\n\n        if int(uh.code) != 200:\n            return None\n\n        configxml = ''.encode().join(configxml_list)\n\n        printer('Config XML:\\n%s' % configxml, debug=True)\n\n        try:\n            try:\n                root = ET.fromstring(configxml)\n            except ET.ParseError:\n                e = get_exception()\n                raise SpeedtestConfigError(\n                    'Malformed speedtest.net configuration: %s' % e\n                )\n            server_config = root.find('server-config').attrib\n            download = root.find('download').attrib\n            upload = root.find('upload').attrib\n            # times = root.find('times').attrib\n            client = root.find('client').attrib\n\n        except AttributeError:\n            try:\n                root = DOM.parseString(configxml)\n            except ExpatError:\n                e = get_exception()\n                raise SpeedtestConfigError(\n                    'Malformed speedtest.net configuration: %s' % e\n                )\n            server_config = get_attributes_by_tag_name(root, 'server-config')\n            download = get_attributes_by_tag_name(root, 'download')\n            upload = get_attributes_by_tag_name(root, 'upload')\n            # times = get_attributes_by_tag_name(root, 'times')\n            client = get_attributes_by_tag_name(root, 'client')\n\n        ignore_servers = [\n            int(i) for i in server_config['ignoreids'].split(',') if i\n        ]\n\n        ratio = int(upload['ratio'])\n        upload_max = int(upload['maxchunkcount'])\n        up_sizes = [32768, 65536, 131072, 262144, 524288, 1048576, 7340032]\n        sizes = {\n            'upload': up_sizes[ratio - 1:],\n            'download': [350, 500, 750, 1000, 1500, 2000, 2500,\n                         3000, 3500, 4000]\n        }\n\n        size_count = len(sizes['upload'])\n\n        upload_count = int(math.ceil(upload_max / size_count))\n\n        counts = {\n            'upload': upload_count,\n            'download': int(download['threadsperurl'])\n        }\n\n        threads = {\n            'upload': int(upload['threads']),\n            'download': int(server_config['threadcount']) * 2\n        }\n\n        length = {\n            'upload': int(upload['testlength']),\n            'download': int(download['testlength'])\n        }\n\n        self.config.update({\n            'client': client,\n            'ignore_servers': ignore_servers,\n            'sizes': sizes,\n            'counts': counts,\n            'threads': threads,\n            'length': length,\n            'upload_max': upload_count * size_count\n        })\n\n        try:\n            self.lat_lon = (float(client['lat']), float(client['lon']))\n        except ValueError:\n            raise SpeedtestConfigError(\n                'Unknown location: lat=%r lon=%r' %\n                (client.get('lat'), client.get('lon'))\n            )\n\n        printer('Config:\\n%r' % self.config, debug=True)\n\n        return self.config\n\n    def get_servers(self, servers=None, exclude=None):\n        \"\"\"Retrieve a the list of speedtest.net servers, optionally filtered\n        to servers matching those specified in the ``servers`` argument\n        \"\"\"\n        if servers is None:\n            servers = []\n\n        if exclude is None:\n            exclude = []\n\n        self.servers.clear()\n\n        for server_list in (servers, exclude):\n            for i, s in enumerate(server_list):\n                try:\n                    server_list[i] = int(s)\n                except ValueError:\n                    raise InvalidServerIDType(\n                        '%s is an invalid server type, must be int' % s\n                    )\n\n        urls = [\n            '://www.speedtest.net/speedtest-servers-static.php',\n            'http://c.speedtest.net/speedtest-servers-static.php',\n            '://www.speedtest.net/speedtest-servers.php',\n            'http://c.speedtest.net/speedtest-servers.php',\n        ]\n\n        headers = {}\n        if gzip:\n            headers['Accept-Encoding'] = 'gzip'\n\n        errors = []\n        for url in urls:\n            try:\n                request = build_request(\n                    '%s?threads=%s' % (url,\n                                       self.config['threads']['download']),\n                    headers=headers,\n                    secure=self._secure\n                )\n                uh, e = catch_request(request, opener=self._opener)\n                if e:\n                    errors.append('%s' % e)\n                    raise ServersRetrievalError()\n\n                stream = get_response_stream(uh)\n\n                serversxml_list = []\n                while 1:\n                    try:\n                        serversxml_list.append(stream.read(1024))\n                    except (OSError, EOFError):\n                        raise ServersRetrievalError(get_exception())\n                    if len(serversxml_list[-1]) == 0:\n                        break\n\n                stream.close()\n                uh.close()\n\n                if int(uh.code) != 200:\n                    raise ServersRetrievalError()\n\n                serversxml = ''.encode().join(serversxml_list)\n\n                printer('Servers XML:\\n%s' % serversxml, debug=True)\n\n                try:\n                    try:\n                        try:\n                            root = ET.fromstring(serversxml)\n                        except ET.ParseError:\n                            e = get_exception()\n                            raise SpeedtestServersError(\n                                'Malformed speedtest.net server list: %s' % e\n                            )\n                        elements = etree_iter(root, 'server')\n                    except AttributeError:\n                        try:\n                            root = DOM.parseString(serversxml)\n                        except ExpatError:\n                            e = get_exception()\n                            raise SpeedtestServersError(\n                                'Malformed speedtest.net server list: %s' % e\n                            )\n                        elements = root.getElementsByTagName('server')\n                except (SyntaxError, xml.parsers.expat.ExpatError):\n                    raise ServersRetrievalError()\n\n                for server in elements:\n                    try:\n                        attrib = server.attrib\n                    except AttributeError:\n                        attrib = dict(list(server.attributes.items()))\n\n                    if servers and int(attrib.get('id')) not in servers:\n                        continue\n\n                    if (int(attrib.get('id')) in self.config['ignore_servers']\n                            or int(attrib.get('id')) in exclude):\n                        continue\n\n                    try:\n                        d = distance(self.lat_lon,\n                                     (float(attrib.get('lat')),\n                                      float(attrib.get('lon'))))\n                    except Exception:\n                        continue\n\n                    attrib['d'] = d\n\n                    try:\n                        self.servers[d].append(attrib)\n                    except KeyError:\n                        self.servers[d] = [attrib]\n\n                break\n\n            except ServersRetrievalError:\n                continue\n\n        if (servers or exclude) and not self.servers:\n            raise NoMatchedServers()\n\n        return self.servers\n\n    def set_mini_server(self, server):\n        \"\"\"Instead of querying for a list of servers, set a link to a\n        speedtest mini server\n        \"\"\"\n\n        urlparts = urlparse(server)\n\n        name, ext = os.path.splitext(urlparts[2])\n        if ext:\n            url = os.path.dirname(server)\n        else:\n            url = server\n\n        request = build_request(url)\n        uh, e = catch_request(request, opener=self._opener)\n        if e:\n            raise SpeedtestMiniConnectFailure('Failed to connect to %s' %\n                                              server)\n        else:\n            text = uh.read()\n            uh.close()\n\n        extension = re.findall('upload_?[Ee]xtension: \"([^\"]+)\"',\n                               text.decode())\n        if not extension:\n            for ext in ['php', 'asp', 'aspx', 'jsp']:\n                try:\n                    f = self._opener.open(\n                        '%s/speedtest/upload.%s' % (url, ext)\n                    )\n                except Exception:\n                    pass\n                else:\n                    data = f.read().strip().decode()\n                    if (f.code == 200 and\n                            len(data.splitlines()) == 1 and\n                            re.match('size=[0-9]', data)):\n                        extension = [ext]\n                        break\n        if not urlparts or not extension:\n            raise InvalidSpeedtestMiniServer('Invalid Speedtest Mini Server: '\n                                             '%s' % server)\n\n        self.servers = [{\n            'sponsor': 'Speedtest Mini',\n            'name': urlparts[1],\n            'd': 0,\n            'url': '%s/speedtest/upload.%s' % (url.rstrip('/'), extension[0]),\n            'latency': 0,\n            'id': 0\n        }]\n\n        return self.servers\n\n    def get_closest_servers(self, limit=5):\n        \"\"\"Limit servers to the closest speedtest.net servers based on\n        geographic distance\n        \"\"\"\n\n        if not self.servers:\n            self.get_servers()\n\n        for d in sorted(self.servers.keys()):\n            for s in self.servers[d]:\n                self.closest.append(s)\n                if len(self.closest) == limit:\n                    break\n            else:\n                continue\n            break\n\n        printer('Closest Servers:\\n%r' % self.closest, debug=True)\n        return self.closest\n\n    def get_best_server(self, servers=None):\n        \"\"\"Perform a speedtest.net \"ping\" to determine which speedtest.net\n        server has the lowest latency\n        \"\"\"\n\n        if not servers:\n            if not self.closest:\n                servers = self.get_closest_servers()\n            servers = self.closest\n\n        if self._source_address:\n            source_address_tuple = (self._source_address, 0)\n        else:\n            source_address_tuple = None\n\n        user_agent = build_user_agent()\n\n        results = {}\n        for server in servers:\n            cum = []\n            url = os.path.dirname(server['url'])\n            stamp = int(timeit.time.time() * 1000)\n            latency_url = '%s/latency.txt?x=%s' % (url, stamp)\n            for i in range(0, 3):\n                this_latency_url = '%s.%s' % (latency_url, i)\n                printer('%s %s' % ('GET', this_latency_url),\n                        debug=True)\n                urlparts = urlparse(latency_url)\n                try:\n                    if urlparts[0] == 'https':\n                        h = SpeedtestHTTPSConnection(\n                            urlparts[1],\n                            source_address=source_address_tuple\n                        )\n                    else:\n                        h = SpeedtestHTTPConnection(\n                            urlparts[1],\n                            source_address=source_address_tuple\n                        )\n                    headers = {'User-Agent': user_agent}\n                    path = '%s?%s' % (urlparts[2], urlparts[4])\n                    start = timeit.default_timer()\n                    h.request(\"GET\", path, headers=headers)\n                    r = h.getresponse()\n                    total = (timeit.default_timer() - start)\n                except HTTP_ERRORS:\n                    e = get_exception()\n                    printer('ERROR: %r' % e, debug=True)\n                    cum.append(3600)\n                    continue\n\n                text = r.read(9)\n                if int(r.status) == 200 and text == 'test=test'.encode():\n                    cum.append(total)\n                else:\n                    cum.append(3600)\n                h.close()\n\n            avg = round((sum(cum) / 6) * 1000.0, 3)\n            results[avg] = server\n\n        try:\n            fastest = sorted(results.keys())[0]\n        except IndexError:\n            raise SpeedtestBestServerFailure('Unable to connect to servers to '\n                                             'test latency.')\n        best = results[fastest]\n        best['latency'] = fastest\n\n        self.results.ping = fastest\n        self.results.server = best\n\n        self._best.update(best)\n        printer('Best Server:\\n%r' % best, debug=True)\n        return best\n\n    def download(self, callback=do_nothing, threads=None):\n        \"\"\"Test download speed against speedtest.net\n\n        A ``threads`` value of ``None`` will fall back to those dictated\n        by the speedtest.net configuration\n        \"\"\"\n\n        urls = []\n        for size in self.config['sizes']['download']:\n            for _ in range(0, self.config['counts']['download']):\n                urls.append('%s/random%sx%s.jpg' %\n                            (os.path.dirname(self.best['url']), size, size))\n\n        request_count = len(urls)\n        requests = []\n        for i, url in enumerate(urls):\n            requests.append(\n                build_request(url, bump=i, secure=self._secure)\n            )\n\n        max_threads = threads or self.config['threads']['download']\n        in_flight = {'threads': 0}\n\n        def producer(q, requests, request_count):\n            for i, request in enumerate(requests):\n                thread = HTTPDownloader(\n                    i,\n                    request,\n                    start,\n                    self.config['length']['download'],\n                    opener=self._opener,\n                    shutdown_event=self._shutdown_event\n                )\n                while in_flight['threads'] >= max_threads:\n                    timeit.time.sleep(0.001)\n                thread.start()\n                q.put(thread, True)\n                in_flight['threads'] += 1\n                callback(i, request_count, start=True)\n\n        finished = []\n\n        def consumer(q, request_count):\n            _is_alive = thread_is_alive\n            while len(finished) < request_count:\n                thread = q.get(True)\n                while _is_alive(thread):\n                    thread.join(timeout=0.001)\n                in_flight['threads'] -= 1\n                finished.append(sum(thread.result))\n                callback(thread.i, request_count, end=True)\n\n        q = Queue(max_threads)\n        prod_thread = threading.Thread(target=producer,\n                                       args=(q, requests, request_count))\n        cons_thread = threading.Thread(target=consumer,\n                                       args=(q, request_count))\n        start = timeit.default_timer()\n        prod_thread.start()\n        cons_thread.start()\n        _is_alive = thread_is_alive\n        while _is_alive(prod_thread):\n            prod_thread.join(timeout=0.001)\n        while _is_alive(cons_thread):\n            cons_thread.join(timeout=0.001)\n\n        stop = timeit.default_timer()\n        self.results.bytes_received = sum(finished)\n        self.results.download = (\n            (self.results.bytes_received / (stop - start)) * 8.0\n        )\n        if self.results.download > 100000:\n            self.config['threads']['upload'] = 8\n        return self.results.download\n\n    def upload(self, callback=do_nothing, pre_allocate=True, threads=None):\n        \"\"\"Test upload speed against speedtest.net\n\n        A ``threads`` value of ``None`` will fall back to those dictated\n        by the speedtest.net configuration\n        \"\"\"\n\n        sizes = []\n\n        for size in self.config['sizes']['upload']:\n            for _ in range(0, self.config['counts']['upload']):\n                sizes.append(size)\n\n        # request_count = len(sizes)\n        request_count = self.config['upload_max']\n\n        requests = []\n        for i, size in enumerate(sizes):\n            # We set ``0`` for ``start`` and handle setting the actual\n            # ``start`` in ``HTTPUploader`` to get better measurements\n            data = HTTPUploaderData(\n                size,\n                0,\n                self.config['length']['upload'],\n                shutdown_event=self._shutdown_event\n            )\n            if pre_allocate:\n                data.pre_allocate()\n\n            headers = {'Content-length': size}\n            requests.append(\n                (\n                    build_request(self.best['url'], data, secure=self._secure,\n                                  headers=headers),\n                    size\n                )\n            )\n\n        max_threads = threads or self.config['threads']['upload']\n        in_flight = {'threads': 0}\n\n        def producer(q, requests, request_count):\n            for i, request in enumerate(requests[:request_count]):\n                thread = HTTPUploader(\n                    i,\n                    request[0],\n                    start,\n                    request[1],\n                    self.config['length']['upload'],\n                    opener=self._opener,\n                    shutdown_event=self._shutdown_event\n                )\n                while in_flight['threads'] >= max_threads:\n                    timeit.time.sleep(0.001)\n                thread.start()\n                q.put(thread, True)\n                in_flight['threads'] += 1\n                callback(i, request_count, start=True)\n\n        finished = []\n\n        def consumer(q, request_count):\n            _is_alive = thread_is_alive\n            while len(finished) < request_count:\n                thread = q.get(True)\n                while _is_alive(thread):\n                    thread.join(timeout=0.001)\n                in_flight['threads'] -= 1\n                finished.append(thread.result)\n                callback(thread.i, request_count, end=True)\n\n        q = Queue(threads or self.config['threads']['upload'])\n        prod_thread = threading.Thread(target=producer,\n                                       args=(q, requests, request_count))\n        cons_thread = threading.Thread(target=consumer,\n                                       args=(q, request_count))\n        start = timeit.default_timer()\n        prod_thread.start()\n        cons_thread.start()\n        _is_alive = thread_is_alive\n        while _is_alive(prod_thread):\n            prod_thread.join(timeout=0.1)\n        while _is_alive(cons_thread):\n            cons_thread.join(timeout=0.1)\n\n        stop = timeit.default_timer()\n        self.results.bytes_sent = sum(finished)\n        self.results.upload = (\n            (self.results.bytes_sent / (stop - start)) * 8.0\n        )\n        return self.results.upload\n\n\ndef ctrl_c(shutdown_event):\n    \"\"\"Catch Ctrl-C key sequence and set a SHUTDOWN_EVENT for our threaded\n    operations\n    \"\"\"\n    def inner(signum, frame):\n        shutdown_event.set()\n        printer('\\nCancelling...', error=True)\n        sys.exit(0)\n    return inner\n\n\ndef version():\n    \"\"\"Print the version\"\"\"\n\n    printer('speedtest-cli %s' % __version__)\n    printer('Python %s' % sys.version.replace('\\n', ''))\n    sys.exit(0)\n\n\ndef csv_header(delimiter=','):\n    \"\"\"Print the CSV Headers\"\"\"\n\n    printer(SpeedtestResults.csv_header(delimiter=delimiter))\n    sys.exit(0)\n\n\ndef parse_args():\n    \"\"\"Function to handle building and parsing of command line arguments\"\"\"\n    description = (\n        'Command line interface for testing internet bandwidth using '\n        'speedtest.net.\\n'\n        '------------------------------------------------------------'\n        '--------------\\n'\n        'https://github.com/sivel/speedtest-cli')\n\n    parser = ArgParser(description=description)\n    # Give optparse.OptionParser an `add_argument` method for\n    # compatibility with argparse.ArgumentParser\n    try:\n        parser.add_argument = parser.add_option\n    except AttributeError:\n        pass\n    parser.add_argument('--no-download', dest='download', default=True,\n                        action='store_const', const=False,\n                        help='Do not perform download test')\n    parser.add_argument('--no-upload', dest='upload', default=True,\n                        action='store_const', const=False,\n                        help='Do not perform upload test')\n    parser.add_argument('--single', default=False, action='store_true',\n                        help='Only use a single connection instead of '\n                             'multiple. This simulates a typical file '\n                             'transfer.')\n    parser.add_argument('--bytes', dest='units', action='store_const',\n                        const=('byte', 8), default=('bit', 1),\n                        help='Display values in bytes instead of bits. Does '\n                             'not affect the image generated by --share, nor '\n                             'output from --json or --csv')\n    parser.add_argument('--share', action='store_true',\n                        help='Generate and provide a URL to the speedtest.net '\n                             'share results image, not displayed with --csv')\n    parser.add_argument('--simple', action='store_true', default=False,\n                        help='Suppress verbose output, only show basic '\n                             'information')\n    parser.add_argument('--csv', action='store_true', default=False,\n                        help='Suppress verbose output, only show basic '\n                             'information in CSV format. Speeds listed in '\n                             'bit/s and not affected by --bytes')\n    parser.add_argument('--csv-delimiter', default=',', type=PARSER_TYPE_STR,\n                        help='Single character delimiter to use in CSV '\n                             'output. Default \",\"')\n    parser.add_argument('--csv-header', action='store_true', default=False,\n                        help='Print CSV headers')\n    parser.add_argument('--json', action='store_true', default=False,\n                        help='Suppress verbose output, only show basic '\n                             'information in JSON format. Speeds listed in '\n                             'bit/s and not affected by --bytes')\n    parser.add_argument('--list', action='store_true',\n                        help='Display a list of speedtest.net servers '\n                             'sorted by distance')\n    parser.add_argument('--server', type=PARSER_TYPE_INT, action='append',\n                        help='Specify a server ID to test against. Can be '\n                             'supplied multiple times')\n    parser.add_argument('--exclude', type=PARSER_TYPE_INT, action='append',\n                        help='Exclude a server from selection. Can be '\n                             'supplied multiple times')\n    parser.add_argument('--mini', help='URL of the Speedtest Mini server')\n    parser.add_argument('--source', help='Source IP address to bind to')\n    parser.add_argument('--timeout', default=10, type=PARSER_TYPE_FLOAT,\n                        help='HTTP timeout in seconds. Default 10')\n    parser.add_argument('--secure', action='store_true',\n                        help='Use HTTPS instead of HTTP when communicating '\n                             'with speedtest.net operated servers')\n    parser.add_argument('--no-pre-allocate', dest='pre_allocate',\n                        action='store_const', default=True, const=False,\n                        help='Do not pre allocate upload data. Pre allocation '\n                             'is enabled by default to improve upload '\n                             'performance. To support systems with '\n                             'insufficient memory, use this option to avoid a '\n                             'MemoryError')\n    parser.add_argument('--version', action='store_true',\n                        help='Show the version number and exit')\n    parser.add_argument('--debug', action='store_true',\n                        help=ARG_SUPPRESS, default=ARG_SUPPRESS)\n\n    options = parser.parse_args()\n    if isinstance(options, tuple):\n        args = options[0]\n    else:\n        args = options\n    return args\n\n\ndef validate_optional_args(args):\n    \"\"\"Check if an argument was provided that depends on a module that may\n    not be part of the Python standard library.\n\n    If such an argument is supplied, and the module does not exist, exit\n    with an error stating which module is missing.\n    \"\"\"\n    optional_args = {\n        'json': ('json/simplejson python module', json),\n        'secure': ('SSL support', HTTPSConnection),\n    }\n\n    for arg, info in optional_args.items():\n        if getattr(args, arg, False) and info[1] is None:\n            raise SystemExit('%s is not installed. --%s is '\n                             'unavailable' % (info[0], arg))\n\n\ndef printer(string, quiet=False, debug=False, error=False, **kwargs):\n    \"\"\"Helper function print a string with various features\"\"\"\n\n    if debug and not DEBUG:\n        return\n\n    if debug:\n        if sys.stdout.isatty():\n            out = '\\033[1;30mDEBUG: %s\\033[0m' % string\n        else:\n            out = 'DEBUG: %s' % string\n    else:\n        out = string\n\n    if error:\n        kwargs['file'] = sys.stderr\n\n    if not quiet:\n        print_(out, **kwargs)\n\n\ndef shell():\n    \"\"\"Run the full speedtest.net test\"\"\"\n\n    global DEBUG\n    shutdown_event = threading.Event()\n\n    signal.signal(signal.SIGINT, ctrl_c(shutdown_event))\n\n    args = parse_args()\n\n    # Print the version and exit\n    if args.version:\n        version()\n\n    if not args.download and not args.upload:\n        raise SpeedtestCLIError('Cannot supply both --no-download and '\n                                '--no-upload')\n\n    if len(args.csv_delimiter) != 1:\n        raise SpeedtestCLIError('--csv-delimiter must be a single character')\n\n    if args.csv_header:\n        csv_header(args.csv_delimiter)\n\n    validate_optional_args(args)\n\n    debug = getattr(args, 'debug', False)\n    if debug == 'SUPPRESSHELP':\n        debug = False\n    if debug:\n        DEBUG = True\n\n    if args.simple or args.csv or args.json:\n        quiet = True\n    else:\n        quiet = False\n\n    if args.csv or args.json:\n        machine_format = True\n    else:\n        machine_format = False\n\n    # Don't set a callback if we are running quietly\n    if quiet or debug:\n        callback = do_nothing\n    else:\n        callback = print_dots(shutdown_event)\n\n    printer('*• SPEEDTEST.NET*\\n\\n', quiet)\n    try:\n        speedtest = Speedtest(\n            source_address=args.source,\n            timeout=args.timeout,\n            secure=args.secure\n        )\n    except (ConfigRetrievalError,) + HTTP_ERRORS:\n        printer('Cannot retrieve speedtest configuration', error=True)\n        raise SpeedtestCLIError(get_exception())\n\n    if args.list:\n        try:\n            speedtest.get_servers()\n        except (ServersRetrievalError,) + HTTP_ERRORS:\n            printer('Cannot retrieve speedtest server list', error=True)\n            raise SpeedtestCLIError(get_exception())\n\n        for _, servers in sorted(speedtest.servers.items()):\n            for server in servers:\n                line = ('%(id)5s) %(sponsor)s (%(name)s, %(country)s) '\n                        '[%(d)0.2f km]' % server)\n                try:\n                    printer(line)\n                except IOError:\n                    e = get_exception()\n                    if e.errno != errno.EPIPE:\n                        raise\n        sys.exit(0)\n\n    printer('Testing from %(isp)s (%(ip)s)...' % speedtest.config['client'],\n            quiet)\n\n    if not args.mini:\n        printer('Retrieving speedtest.net server list...', quiet)\n        try:\n            speedtest.get_servers(servers=args.server, exclude=args.exclude)\n        except NoMatchedServers:\n            raise SpeedtestCLIError(\n                'No matched servers: %s' %\n                ', '.join('%s' % s for s in args.server)\n            )\n        except (ServersRetrievalError,) + HTTP_ERRORS:\n            printer('Cannot retrieve speedtest server list', error=True)\n            raise SpeedtestCLIError(get_exception())\n        except InvalidServerIDType:\n            raise SpeedtestCLIError(\n                '%s is an invalid server type, must '\n                'be an int' % ', '.join('%s' % s for s in args.server)\n            )\n\n        if args.server and len(args.server) == 1:\n            printer('Retrieving information for the selected server...', quiet)\n        else:\n            printer('Selecting best server based on ping...', quiet)\n        speedtest.get_best_server()\n    elif args.mini:\n        speedtest.get_best_server(speedtest.set_mini_server(args.mini))\n\n    results = speedtest.results\n\n    printer('Hosted by %(sponsor)s (%(name)s) [%(d)0.2f km]: '\n            '%(latency)s ms' % results.server, quiet)\n\n    if args.download:\n        printer('Testing download speed\\n', quiet,\n                end=('', '\\n')[bool(debug)])\n        speedtest.download(\n            callback=callback,\n            threads=(None, 1)[args.single]\n        )\n        printer('Download: %0.2f M%s/s' %\n                ((results.download / 1000.0 / 1000.0) / args.units[1],\n                 args.units[0]),\n                quiet)\n    else:\n        printer('Skipping download test', quiet)\n\n    if args.upload:\n        printer('Testing upload speed\\n', quiet,\n                end=('', '\\n')[bool(debug)])\n        speedtest.upload(\n            callback=callback,\n            pre_allocate=args.pre_allocate,\n            threads=(None, 1)[args.single]\n        )\n        printer('Upload: %0.2f M%s/s' %\n                ((results.upload / 1000.0 / 1000.0) / args.units[1],\n                 args.units[0]),\n                quiet)\n    else:\n        printer('Skipping upload test', quiet)\n\n    printer('Results:\\n%r' % results.dict(), debug=True)\n\n    if not args.simple and args.share:\n        results.share()\n\n    if args.simple:\n        printer('Ping: %s ms\\nDownload: %0.2f M%s/s\\nUpload: %0.2f M%s/s' %\n                (results.ping,\n                 (results.download / 1000.0 / 1000.0) / args.units[1],\n                 args.units[0],\n                 (results.upload / 1000.0 / 1000.0) / args.units[1],\n                 args.units[0]))\n    elif args.csv:\n        printer(results.csv(delimiter=args.csv_delimiter))\n    elif args.json:\n        printer(results.json())\n\n    if args.share and not machine_format:\n        printer('Share results: %s' % results.share())\n\n\ndef main():\n    try:\n        shell()\n    except KeyboardInterrupt:\n        printer('\\nCancelling...', error=True)\n    except (SpeedtestException, SystemExit):\n        e = get_exception()\n        # Ignore a successful exit, or argparse exit\n        if getattr(e, 'code', 1) not in (0, 2):\n            msg = '%s' % e\n            if not msg:\n                msg = '%r' % e\n            raise SystemExit('ERROR: %s' % msg)\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "src/database.json",
    "content": "{\n  \"sticker\": {},\n  \"database\": {},\n  \"game\": {\n    \"tebaklagu\": [],\n    \"family100\": [],\n    \"math\": [],\n    \"tebakgambar\": [],\n    \"tebakkata\": [],\n    \"lontong\": [],\n    \"lontong_desk\": [],\n    \"kalimat\": [],\n    \"lirik\": [],\n    \"tebakan\": []\n  },\n  \"settings\": {\n    \"447441437150@s.whatsapp.net\": {\n      \"status\": 0,\n      \"autobio\": true,\n      \"templateImage\": false,\n      \"templateLocation\": false,\n      \"templateGif\": false,\n      \"templateMsg\": false,\n      \"templateList\": false,\n      \"templateDoc\": false,\n      \"templateZimbot\": true,\n      \"chatbot\": false,\n      \"grouponly\": false,\n      \"autoblock\": false\n    },\n    \"27634090203@s.whatsapp.net\": {\n      \"status\": 0,\n      \"autobio\": true,\n      \"templateImage\": false,\n      \"templateLocation\": false,\n      \"templateGif\": false,\n      \"templateMsg\": false,\n      \"templateList\": false,\n      \"templateDoc\": false,\n      \"templateZimbot\": true,\n      \"chatbot\": false,\n      \"grouponly\": false,\n      \"autoblock\": false\n    }\n  },\n  \"others\": {\n    \"vote\": []\n  },\n  \"users\": {\n    \"447441437150@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"918099869761@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27642553046@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"919438269055@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27634090203@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": \"Infinity\"\n    },\n    \"6285865567034@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27712133797@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27725085939@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263717436170@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263713525699@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27846142621@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"258844288119@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"258822599632@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"917978711195@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263718794823@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263788872446@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27748187589@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263777767939@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"258863041845@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"6283822892316@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"6282126777639@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263777368790@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263716079900@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263775707580@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"9779803567841@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263719866828@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263771699141@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263782357220@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263716239347@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263771081535@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"212638499105@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"6281392068116@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"6289631095044@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263774636218@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27633473002@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"923474187615@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263780564398@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263714117336@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263773406036@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"2349073821579@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"212644870790@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263718532985@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"918188019676@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"601139986821@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27844564106@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"923111547082@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27746216450@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"919869807953@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27781004118@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263788927268@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263778037716@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263788306844@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"601163820524@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263778814755@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"27651739862@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"255684640070@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"233547283243@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"254768233153@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"6285692573306@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    },\n    \"263714002920@s.whatsapp.net\": {\n      \"afkTime\": -1,\n      \"afkReason\": \"\",\n      \"limit\": 100000\n    }\n  },\n  \"chats\": {\n    \"447441437150@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"918472856351-1630431464@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363041933152186@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": true,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363038656895036@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"27634090203-1632904922@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"27634090203@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"6288215470534-1600091220@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false\n    },\n    \"120363042048651049@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363040325594192@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363023956460625@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363042454246789@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false\n    },\n    \"258844288119-1622868359@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"27782977157-1618767131@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false\n    },\n    \"254738099457-1594537724@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"263771699141-1613299396@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363041908750970@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363040007582886@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"6283822892316@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"6289665185374-1514810664@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"autoblock\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"wame\": false,\n      \"antitwitter\": false,\n      \"antivn\": false,\n      \"antiphoto\": false,\n      \"antisticker\": false,\n      \"antivideo\": false\n    },\n    \"120363039326647607@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"263771774309-1604865550@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"120363045262056237@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"212638499105@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"263713381263@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"923474187615@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false\n    },\n    \"120363022726357621@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"918188019676@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"923111547082@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"27610590754@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false,\n      \"autoblock\": false\n    },\n    \"254792196739-1589641043@g.us\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false\n    },\n    \"6285773305337@s.whatsapp.net\": {\n      \"mute\": false,\n      \"chatbot\": false,\n      \"wame\": false,\n      \"antilink\": false,\n      \"antilinkyt\": false,\n      \"isWelcome\": false,\n      \"antilinkall\": false,\n      \"antiytchannel\": false,\n      \"antitiktok\": false,\n      \"antitelegram\": false,\n      \"antiinstagram\": false,\n      \"antifb\": false,\n      \"antibule\": false,\n      \"antiwame\": false,\n      \"antitwitter\": false,\n      \"antisticker\": false,\n      \"antiphoto\": false,\n      \"antivn\": false,\n      \"antivideo\": false\n    }\n  }\n}"
  },
  {
    "path": "src/math.js",
    "content": "// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\nlet modes = {\n    noob: [-3, 3,-3, 3, '+-', 15000, 10],\n    easy: [-10, 10, -10, 10, '*/+-', 20000, 40],\n    medium: [-40, 40, -20, 20, '*/+-', 40000, 150],\n    hard: [-100, 100, -70, 70, '*/+-', 60000, 350],\n    extreme: [-999999, 999999, -999999, 999999, '*/', 99999, 9999],\n    impossible: [-99999999999, 99999999999, -99999999999, 999999999999, '*/', 30000, 35000],\n    impossible2: [-999999999999999, 999999999999999, -999, 999, '/', 30000, 50000]\n  } \n  \n  let operators = {\n    '+': '+',\n    '-': '-',\n    '*': '×',\n    '/': '÷'\n  }\n\n  function randomInt(from, to) {\n    if (from > to) [from, to] = [to, from]\n    from = Math.floor(from)\n    to = Math.floor(to)\n    return Math.floor((to - from) * Math.random() + from)\n  }\n  \n  function pickRandom(list) {\n    return list[Math.floor(Math.random() * list.length)]\n  }\n\n  function genMath(mode) {\n      return new Promise((resolve, reject) => {\n        let [a1, a2, b1, b2, ops, time, bonus] = modes[mode]\n        let a = randomInt(a1, a2)\n        let b = randomInt(b1, b2)\n        let op = pickRandom([...ops])\n        let result = (new Function(`return ${a} ${op.replace('/', '*')} ${b < 0 ? `(${b})` : b}`))()\n        if (op == '/') [a, result] = [result, a]\n        hasil = { \n            soal: `${a} ${operators[op]} ${b}`,\n            mode: mode,\n            waktu: time,\n            hadiah: bonus,\n            jawaban: result\n         }\n         resolve(hasil)\n      })\n  }\n  \nmodule.exports = { modes, operators, randomInt, pickRandom, genMath }\n"
  },
  {
    "path": "storage/user/alat_tukar.js",
    "content": "  // ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n  const fs = require('fs')\n  let _inventoryOrang = JSON.parse(fs.readFileSync('./storage/user/inventory.json'))\n  let besiAwal = global.rpg.besiawal\n  let goldAwal = global.rpg.goldawal\n  let emeraldAwal = global.rpg.emeraldawal\n  let umpanAwal = global.rpg.umpanawal\n  let potionAwal = global.rpg.potionawal\n  const addInventori = (sender) => {\n        const obj = {id: sender, besi: besiAwal, gold: goldAwal, emerald: emeraldAwal, umpan: umpanAwal, potion: potionAwal}\n         _inventoryOrang.push(obj)\n        fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n   }\n  const cekInventoryAdaAtauGak = (sender) => {\n            let status = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n  const addBesi = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].besi += amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const kurangBesi = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].besi -= amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const getBesi = (sender) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _inventoryOrang[position].besi\n            }\n        }     \n  const addEmas = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].gold += amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const kurangEmas = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].gold -= amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const getEmas = (sender) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _inventoryOrang[position].gold\n            }\n        }     \n  const addEmerald = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].emerald += amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const kurangEmerald = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].emerald -= amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const getEmerald = (sender) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _inventoryOrang[position].emerald\n            }\n        }     \n        \n  const addUmpan = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].umpan += amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const kurangUmpan = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].umpan -= amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const getUmpan = (sender) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _inventoryOrang[position].umpan\n            }\n        }  \n  const addPotion = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].potion += amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const kurangPotion = (sender, amount) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _inventoryOrang[position].potion -= amount\n                fs.writeFileSync('./storage/user/inventory.json', JSON.stringify(_inventoryOrang))\n            }\n        }\n   const getPotion = (sender) => {\n            let position = false\n            Object.keys(_inventoryOrang).forEach((i) => {\n                if (_inventoryOrang[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _inventoryOrang[position].potion\n            }\n        }       \n  module.exports = { cekInventoryAdaAtauGak, \n                     addInventori, \n                     addBesi, \n                     addEmas, \n                     addEmerald, \n                     addUmpan,\n                     addPotion,\n                     kurangBesi, \n                     kurangEmas, \n                     kurangEmerald, \n                     kurangUmpan,\n                     kurangPotion,\n                     getBesi, \n                     getEmas, \n                     getEmerald,\n                     getUmpan,\n                     getPotion\n                  }"
  },
  {
    "path": "storage/user/buruan.js",
    "content": "  // ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n  const fs = require('fs')\n  let _hasilBuruan = JSON.parse(fs.readFileSync('./storage/user/hasil_buruan.json'))\n  \n  const addInventoriBuruan = (sender) => {\n        const obj = {id: sender, ikan: 0, ayam: 0, kelinci: 0, domba: 0, sapi: 0, gajah: 0}\n         _hasilBuruan.push(obj)\n        fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n   }\n  const cekDuluHasilBuruanNya = (sender) => {\n            let status = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n   const addAyam = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].ayam += amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const kurangAyam = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].ayam -= amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const getAyam = (sender) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _hasilBuruan[position].ayam\n            }\n        }    \n  const addIkan = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].ikan += amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const kurangIkan = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].ikan -= amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const getIkan = (sender) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _hasilBuruan[position].ikan\n            }\n        }      \n  const addKelinci = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].kelinci += amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const kurangKelinci = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].kelinci -= amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const getKelinci = (sender) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _hasilBuruan[position].kelinci\n            }\n        }     \n  const addDomba = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].domba += amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const kurangDomba = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].domba -= amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const getDomba = (sender) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _hasilBuruan[position].domba\n            }\n        } \n    const addSapi = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].sapi += amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const kurangSapi = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].sapi -= amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const getSapi = (sender) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _hasilBuruan[position].sapi\n            }\n        }     \n  const addGajah = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].gajah += amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const kurangGajah = (sender, amount) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _hasilBuruan[position].gajah -= amount\n                fs.writeFileSync('./storage/user/hasil_buruan.json', JSON.stringify(_hasilBuruan))\n            }\n        }\n   const getGajah = (sender) => {\n            let position = false\n            Object.keys(_hasilBuruan).forEach((i) => {\n                if (_hasilBuruan[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _hasilBuruan[position].gajah\n            }\n        }     \n        \n    module.exports = { cekDuluHasilBuruanNya, \n                     addInventoriBuruan, \n                     addIkan,\n                     addAyam, \n                     addKelinci, \n                     addDomba, \n                     addSapi,\n                     addGajah,\n                     kurangIkan,\n                     kurangAyam, \n                     kurangKelinci, \n                     kurangDomba, \n                     kurangSapi,\n                     kurangGajah,\n                     getIkan,\n                     getAyam, \n                     getKelinci, \n                     getDomba,\n                     getSapi,\n                     getGajah\n                  }\n  "
  },
  {
    "path": "storage/user/darah.js",
    "content": "  // ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n  const fs = require('fs')\n  let _darahOrg = JSON.parse(fs.readFileSync('./storage/user/darah.json'))\n\n  const addInventoriDarah = (sender, darah) => {\n        const obj = {id: sender, healt: darah}\n         _darahOrg.push(obj)\n        fs.writeFileSync('./storage/user/darah.json', JSON.stringify(_darahOrg))\n   }\n  const cekDuluJoinAdaApaKagaDiJson = (sender) => {\n            let status = false\n            Object.keys(_darahOrg).forEach((i) => {\n                if (_darahOrg[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n  const addDarah = (sender, amount) => {\n            let position = false\n            Object.keys(_darahOrg).forEach((i) => {\n                if (_darahOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _darahOrg[position].healt += amount\n                fs.writeFileSync('./storage/user/darah.json', JSON.stringify(_darahOrg))\n            }\n        }\n   const kurangDarah = (sender, amount) => {\n            let position = false\n            Object.keys(_darahOrg).forEach((i) => {\n                if (_darahOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _darahOrg[position].healt -= amount\n                fs.writeFileSync('./storage/user/darah.json', JSON.stringify(_darahOrg))\n            }\n        }\n   const getDarah = (sender) => {\n            let position = false\n            Object.keys(_darahOrg).forEach((i) => {\n                if (_darahOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _darahOrg[position].healt\n            }\n        }     \n        \n   module.exports = { addInventoriDarah, cekDuluJoinAdaApaKagaDiJson, addDarah, kurangDarah, getDarah }   "
  },
  {
    "path": "storage/user/darah.json",
    "content": "[{\"id\":\"6281575886399@s.whatsapp.net\",\"healt\":80},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":80},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":90},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":70},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":80},{\"id\":\"447441437150@s.whatsapp.net\",\"healt\":100},{\"id\":\"447441437150@s.whatsapp.net\",\"healt\":80},{\"id\":\"447441437150@s.whatsapp.net\",\"healt\":50},{\"id\":\"27634090203@s.whatsapp.net\",\"healt\":100}]"
  },
  {
    "path": "storage/user/hasil_buruan.json",
    "content": "[{\"id\":\"6281575886399@s.whatsapp.net\",\"ikan\":1,\"ayam\":1,\"kelinci\":6,\"domba\":0,\"sapi\":0,\"gajah\":2},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":4,\"ayam\":1,\"kelinci\":3,\"domba\":0,\"sapi\":2,\"gajah\":0},{\"id\":\"447441437150@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0},{\"id\":\"447441437150@s.whatsapp.net\",\"ikan\":15,\"ayam\":9,\"kelinci\":6,\"domba\":4,\"sapi\":6,\"gajah\":0},{\"id\":\"447441437150@s.whatsapp.net\",\"ikan\":29,\"ayam\":27,\"kelinci\":28,\"domba\":9,\"sapi\":9,\"gajah\":0},{\"id\":\"27634090203@s.whatsapp.net\",\"ikan\":0,\"ayam\":0,\"kelinci\":0,\"domba\":0,\"sapi\":0,\"gajah\":0}]"
  },
  {
    "path": "storage/user/inventory.json",
    "content": "[{\"id\":\"6281575886399@s.whatsapp.net\",\"besi\":17,\"gold\":10,\"emerald\":7,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":19,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":6,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":16,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":19,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":6,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":18,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":16,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":16,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":6,\"umpan\":5,\"potion\":1},{\"id\":\"447441437150@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"447441437150@s.whatsapp.net\",\"besi\":16,\"gold\":10,\"emerald\":6,\"umpan\":5,\"potion\":1},{\"id\":\"447441437150@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1},{\"id\":\"27634090203@s.whatsapp.net\",\"besi\":15,\"gold\":10,\"emerald\":5,\"umpan\":5,\"potion\":1}]"
  },
  {
    "path": "storage/user/limit.js",
    "content": "  const fs = require('fs')\n  let _limitOrg = JSON.parse(fs.readFileSync('./storage/user/limit.json'))\n  let limitAwal = global.limitawal.free\n  const addInventoriLimit = (sender) => {\n        const obj = {id: sender, limit: limitAwal}\n         _limitOrg.push(obj)\n        fs.writeFileSync('./storage/user/limit.json', JSON.stringify(_limitOrg))\n   }\n  const cekDuluJoinAdaApaKagaLimitnyaDiJson = (sender) => {\n            let status = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n  const addLimit = (sender, amount) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _limitOrg[position].limit += amount\n                fs.writeFileSync('./storage/user/limit.json', JSON.stringify(_limitOrg))\n            }\n        }\n   const kurangLimit = (sender, amount) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _limitOrg[position].limit -= amount\n                fs.writeFileSync('./storage/user/limit.json', JSON.stringify(_limitOrg))\n            }\n        }\n   const getLimit = (sender) => {\n            let position = false\n            Object.keys(_limitOrg).forEach((i) => {\n                if (_limitOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _limitOrg[position].limit\n            }\n        }     \n        \n   module.exports = { addInventoriLimit, cekDuluJoinAdaApaKagaLimitnyaDiJson, addLimit, kurangLimit, getLimit }   "
  },
  {
    "path": "storage/user/limit.json",
    "content": "[{\"id\":\"6281575886399@s.whatsapp.net\",\"limit\":35022}]"
  },
  {
    "path": "storage/user/monay.js",
    "content": "  // ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n  const fs = require('fs')\n  let _monayOrg = JSON.parse(fs.readFileSync('./storage/user/monay.json'))\n  let monayAwal = global.limitawal.monayawal\n  const addInventoriMonay = (sender) => {\n        const obj = {id: sender, monay: monayAwal}\n         _monayOrg.push(obj)\n        fs.writeFileSync('./storage/user/monay.json', JSON.stringify(_monayOrg))\n   }\n  const cekDuluJoinAdaApaKagaMonaynyaDiJson = (sender) => {\n            let status = false\n            Object.keys(_monayOrg).forEach((i) => {\n                if (_monayOrg[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n  const addMonay = (sender, amount) => {\n            let position = false\n            Object.keys(_monayOrg).forEach((i) => {\n                if (_monayOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _monayOrg[position].monay += amount\n                fs.writeFileSync('./storage/user/monay.json', JSON.stringify(_monayOrg))\n            }\n        }\n   const kurangMonay = (sender, amount) => {\n            let position = false\n            Object.keys(_monayOrg).forEach((i) => {\n                if (_monayOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _monayOrg[position].monay -= amount\n                fs.writeFileSync('./storage/user/monay.json', JSON.stringify(_monayOrg))\n            }\n        }\n   const getMonay = (sender) => {\n            let position = false\n            Object.keys(_monayOrg).forEach((i) => {\n                if (_monayOrg[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _monayOrg[position].monay\n            }\n        }     \n        \n   module.exports = { addInventoriMonay, cekDuluJoinAdaApaKagaMonaynyaDiJson, addMonay, kurangMonay, getMonay }   "
  },
  {
    "path": "storage/user/monay.json",
    "content": "[{\"id\":\"6281575886399@s.whatsapp.net\",\"monay\":1000},{\"id\":\"6281575886399@s.whatsapp.net\",\"monay\":-1224999000},{\"id\":\"6281575886399@s.whatsapp.net\",\"monay\":-69000},{\"id\":\"27634090203@s.whatsapp.net\"},{\"id\":\"27634090203@s.whatsapp.net\"},{\"id\":\"27634090203@s.whatsapp.net\"},{\"id\":\"27634090203@s.whatsapp.net\"},{\"id\":\"27634090203@s.whatsapp.net\",\"monay\":null}]"
  },
  {
    "path": "tez.js",
    "content": "/*const NewsAPI = require('newsapi');\n  const newsapi = new NewsAPI('306032cefd134ab38660d7db51dd18d1');\n  //By Drips\n  // To query top headlines\n  // All options passed to topHeadlines are optional, but you need to include at least one of them\n  newsapi.v2.sources({\n    q: 'mugabe',\n    sources: 'https://iharare.com/',\n  domains: 'iharare.com, iharare.com',\n  from: '2022-07-01',\n  to: '2022-07-08',\n  language: 'en',\n  sortBy: 'relevancy',\n  page: 2\n  })\n    .then(body => {\n    try {\n        return JSON.parse(body);\n    } catch {\n    throw (body);\n    }\n})\n.then(console.log)\n.catch(console.error);*/\n\n// ⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈⧈\n//▮ZIM BOT INC 2022 ®️ALL RIGHTS RESERVED\n//▮\n//▮FORK AND DON'T FORGET TO GIVE A STAR\n//▮\n//▮THIS SOFTWARE IS UNDER UZ COPYRIGHT\n//▮\n//▮REPORT ABUSE OF THIS SOFTWARE EMAIL US\n//▮reinhardtuna@mail.uk\n//▮WHATSAPP US : +44 7441 437150\n//▮YOUTUBE CHANNELL: https://youtube.com/c/DRIPSOFC\n//▮\n//╰▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n//\n//┏━━━━━━━━━━━━━━━━━━━━━━━━━\n//┃THIS SOFTWARE INCLUDES \n//┃SOME ENCRYPTED FILES\n//┃\n//┃THANKS FOR CHOOSING ZIMBOT\n//┃I WROTE THIS SCRIPT BY MYSELF THIS SCRIPT IS FOR EVERYONE DONT SELL IT\n//┗━━━━━━━━━━━━━━━━━━━━━━━━━\n//\n\nvar fs = require('fs')\n\nlet _RPG = JSON.parse(fs.readFileSync('./database/inventori.json'))\n\n        var addEmas = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].emas += amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        }\n        \n        var sellEmas = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].emas -= amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        }        \n        \n        var getEmas = (sender) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _RPG[position].emas\n            }\n        }\n\n     var addDm = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].diamond += amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        }\n        \n     var sellDm = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].diamond -= amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        }\n              \n           var getDm = (sender) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _RPG[position].diamond\n            }\n        }\n        \n       var addBesi = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].besi += amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        }\n        \n       var sellBesi = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].besi -= amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        }\n                \n       var getBesi = (sender) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _RPG[position].besi\n            }\n        }\n\n       var addFish = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].ikan += amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        }\n        \n       var sellFish = (sender, amount) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                _RPG[position].ikan -= amount\n                fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n            }\n        } \n               \n       var getFish = (sender) => {\n            let position = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    position = i\n                }\n            })\n            if (position !== false) {\n                return _RPG[position].ikan\n            }\n        }\n                      \n        var addInventori = (sender) => {\n            var obj = {id: sender, emas: 0, diamond: 0, besi: 0, ikan: 0}\n            _RPG.push(obj)\n            fs.writeFileSync('./database/inventori.json', JSON.stringify(_RPG))\n        }\n        \n        var checkPetualangUser = (sender) => {\n            let status = false\n            Object.keys(_RPG).forEach((i) => {\n                if (_RPG[i].id === sender) {\n                    status = true\n                }\n            })\n            return status\n        }\n        \n        \nmodule.exports = { checkPetualangUser, addInventori, addBesi, sellBesi, getBesi, addDm, sellDm, getDm, addEmas, sellEmas, getEmas , addFish, sellFish, getFish }"
  }
]