From 679b9f7352cda5b8af9ce487bbd0398a24d5190c Mon Sep 17 00:00:00 2001 From: night0721 Date: Thu, 30 Sep 2021 06:44:48 +0800 Subject: [PATCH] codeclient with codmclient interfaces --- LICENSE | 566 +++++++++++++++++-------- README.md | 7 +- docs/assets/highlight.css | 8 +- docs/assets/search.js | 2 +- docs/classes/CODMClient.html | 4 +- docs/classes/CodeClient.html | 6 + docs/index.html | 11 +- docs/interfaces/CodeData.html | 1 + docs/interfaces/PerkData.html | 1 + docs/interfaces/RedditObject.html | 1 + docs/modules.html | 6 +- package.json | 2 +- src/CODMClient/codmclient.interface.ts | 6 + src/CODMClient/codmclient.ts | 5 +- src/CODMClient/index.ts | 2 +- src/CodeClient/codeclient.interface.ts | 3 + src/CodeClient/codeclient.ts | 31 ++ src/CodeClient/index.ts | 2 + src/functions/reddit.ts | 16 +- src/index.ts | 5 +- src/utils/config.json | 3 +- 21 files changed, 487 insertions(+), 201 deletions(-) create mode 100644 docs/classes/CodeClient.html create mode 100644 docs/interfaces/CodeData.html create mode 100644 docs/interfaces/PerkData.html create mode 100644 docs/interfaces/RedditObject.html create mode 100644 src/CodeClient/codeclient.interface.ts create mode 100644 src/CodeClient/codeclient.ts create mode 100644 src/CodeClient/index.ts diff --git a/LICENSE b/LICENSE index 261eeb9..bcb050d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,429 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +Attribution-NonCommercial-ShareAlike 4.0 International - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +======================================================================= - 1. Definitions. +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +Using Creative Commons Public Licenses - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +======================================================================= - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International +Public License - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International Public License +("Public License"). To the extent this Public License may be +interpreted as a contract, You are granted the Licensed Rights in +consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the +Licensor receives from making the Licensed Material available under +these terms and conditions. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. +Section 1 -- Definitions. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +a. Adapted Material means material subject to Copyright and Similar +Rights that is derived from or based upon the Licensed Material +and in which the Licensed Material is translated, altered, +arranged, transformed, or otherwise modified in a manner requiring +permission under the Copyright and Similar Rights held by the +Licensor. For purposes of this Public License, where the Licensed +Material is a musical work, performance, or sound recording, +Adapted Material is always produced where the Licensed Material is +synched in timed relation with a moving image. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. +b. Adapter's License means the license You apply to Your Copyright +and Similar Rights in Your contributions to Adapted Material in +accordance with the terms and conditions of this Public License. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. +c. BY-NC-SA Compatible License means a license listed at +creativecommons.org/compatiblelicenses, approved by Creative +Commons as essentially the equivalent of this Public License. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +d. Copyright and Similar Rights means copyright and/or similar rights +closely related to copyright including, without limitation, +performance, broadcast, sound recording, and Sui Generis Database +Rights, without regard to how the rights are labeled or +categorized. For purposes of this Public License, the rights +specified in Section 2(b)(1)-(2) are not Copyright and Similar +Rights. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +e. Effective Technological Measures means those measures that, in the +absence of proper authority, may not be circumvented under laws +fulfilling obligations under Article 11 of the WIPO Copyright +Treaty adopted on December 20, 1996, and/or similar international +agreements. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +f. Exceptions and Limitations means fair use, fair dealing, and/or +any other exception or limitation to Copyright and Similar Rights +that applies to Your use of the Licensed Material. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +g. License Elements means the license attributes listed in the name +of a Creative Commons Public License. The License Elements of this +Public License are Attribution, NonCommercial, and ShareAlike. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +h. Licensed Material means the artistic or literary work, database, +or other material to which the Licensor applied this Public +License. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +i. Licensed Rights means the rights granted to You subject to the +terms and conditions of this Public License, which are limited to +all Copyright and Similar Rights that apply to Your use of the +Licensed Material and that the Licensor has authority to license. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +j. Licensor means the individual(s) or entity(ies) granting rights +under this Public License. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +k. NonCommercial means not primarily intended for or directed towards +commercial advantage or monetary compensation. For purposes of +this Public License, the exchange of the Licensed Material for +other material subject to Copyright and Similar Rights by digital +file-sharing or similar means is NonCommercial provided there is +no payment of monetary compensation in connection with the +exchange. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +l. Share means to provide material to the public by any means or +process that requires permission under the Licensed Rights, such +as reproduction, public display, public performance, distribution, +dissemination, communication, or importation, and to make material +available to the public including in ways that members of the +public may access the material from a place and at a time +individually chosen by them. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +m. Sui Generis Database Rights means rights other than copyright +resulting from Directive 96/9/EC of the European Parliament and of +the Council of 11 March 1996 on the legal protection of databases, +as amended and/or succeeded, as well as other essentially +equivalent rights anywhere in the world. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +n. You means the individual or entity exercising the Licensed Rights +under this Public License. Your has a corresponding meaning. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +Section 2 -- Scope. - END OF TERMS AND CONDITIONS +a. License grant. - APPENDIX: How to apply the Apache License to your work. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + a. reproduce and Share the Licensed Material, in whole or + in part, for NonCommercial purposes only; and - Copyright [yyyy] [name of copyright owner] + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. - http://www.apache.org/licenses/LICENSE-2.0 + 3. Term. The term of this Public License is specified in Section + 6(a). - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + +b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties, including when + the Licensed Material is used other than for NonCommercial + purposes. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + +a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + +b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-NC-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right +to extract, reuse, reproduce, and Share all or a substantial +portion of the contents of the database for NonCommercial purposes +only; + +b. if You include all or a substantial portion of the database +contents in a database in which You have Sui Generis Database +Rights, then the database in which You have Sui Generis Database +Rights (but not its individual contents) is Adapted Material, +including for purposes of Section 3(b); and + +c. You must comply with the conditions in Section 3(a) if You Share +all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + +a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE +EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS +AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF +ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, +IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, +WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, +ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT +KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT +ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + +b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE +TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, +NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, +INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, +COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR +USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN +ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR +DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR +IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + +c. The disclaimer of warranties and limitation of liability provided +above shall be interpreted in a manner that, to the extent +possible, most closely approximates an absolute disclaimer and +waiver of all liability. + +Section 6 -- Term and Termination. + +a. This Public License applies for the term of the Copyright and +Similar Rights licensed here. However, if You fail to comply with +this Public License, then Your rights under this Public License +terminate automatically. + +b. Where Your right to use the Licensed Material has terminated under +Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + +c. For the avoidance of doubt, the Licensor may also offer the +Licensed Material under separate terms or conditions or stop +distributing the Licensed Material at any time; however, doing so +will not terminate this Public License. + +d. Sections 1, 5, 6, 7, and 8 survive termination of this Public +License. + +Section 7 -- Other Terms and Conditions. + +a. The Licensor shall not be bound by any additional or different +terms or conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the +Licensed Material not stated herein are separate from and +independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + +a. For the avoidance of doubt, this Public License does not, and +shall not be interpreted to, reduce, limit, restrict, or impose +conditions on any use of the Licensed Material that could lawfully +be made without permission under this Public License. + +b. To the extent possible, if any provision of this Public License is +deemed unenforceable, it shall be automatically reformed to the +minimum extent necessary to make it enforceable. If the provision +cannot be reformed, it shall be severed from this Public License +without affecting the enforceability of the remaining terms and +conditions. + +c. No term or condition of this Public License will be waived and no +failure to comply consented to unless expressly agreed to by the +Licensor. + +d. Nothing in this Public License constitutes or may be interpreted +as a limitation upon, or waiver of, any privileges and immunities +that apply to the Licensor or You, including from the legal +processes of any jurisdiction or authority. + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/README.md b/README.md index bb85354..4ee0314 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

CATH

+

CATH

@@ -14,7 +14,6 @@ Node Package

- **Cath** is a powerful [Node.js](https://nodejs.org) module that can easily interact and get data from the Cath API If you like this package, feel free to **Star** and **fork** this repository.

@@ -22,13 +21,13 @@ If you like this package, feel free to CODMClient | cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class CODMClient

name

APIClient

kind

constructor

param key

Authorization Key for API (Only for CODM commands)

-

Hierarchy

  • CODMClient

Index

Constructors

Properties

Methods

Constructors

constructor

  • Parameters

    • key: string

    Returns CODMClient

Properties

key

key: string

Methods

getperk

  • getperk(name: string): Promise<object>
  • +

Hierarchy

  • CODMClient

Index

Constructors

Properties

Methods

Constructors

constructor

  • Parameters

    • key: string

    Returns CODMClient

Properties

key

key: string

Methods

getperk

  • getperk(name: string): Promise<PerkData>
  • Sends a CODM perk object

    Parameters

    • name: string
      -

    Returns Promise<object>

Generated using TypeDoc

\ No newline at end of file +

Returns Promise<PerkData>

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/CodeClient.html b/docs/classes/CodeClient.html new file mode 100644 index 0000000..61de045 --- /dev/null +++ b/docs/classes/CodeClient.html @@ -0,0 +1,6 @@ +CodeClient | cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class CodeClient

name

CodeClient

+
kind

constructor

+

Hierarchy

  • CodeClient

Index

Constructors

Methods

Constructors

constructor

  • Returns CodeClient

Methods

createBin

  • createBin(title: String, description: String, code: String): Promise<CodeData>
  • +

    Sends the link of the code

    +

    Parameters

    • title: String
    • description: String
    • code: String
      +

    Returns Promise<CodeData>

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index da7031b..6563de3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,4 @@ -cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

cath

CATH

+cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

cath

CATH

@@ -14,7 +14,6 @@ Node Package

-

Cath is a powerful Node.js module that can easily interact and get data from the Cath API If you like this package, feel free to Star and fork this repository.

@@ -22,10 +21,10 @@ If you like this package, feel free to npm install cath +
npm install cath
 

Download from yarn

-
yarn add cath
+
yarn add cath
 
@@ -35,7 +34,7 @@ If you like this package, feel free to

Launch of the module

-
const cath = require("cath");

const reddit_data = await cath.getreddit("meme");
console.log(reddit_data); // returns an object

const answer = await cath.random8ball();
console.log(answer); // a random answer from 8ball +
const cath = require("cath");

const reddit_data = await cath.getreddit("meme");
console.log(reddit_data); // returns an object

const answer = await cath.random8ball();
console.log(answer); // a random answer from 8ball
@@ -55,4 +54,4 @@ To Request new features contact us on Discord using the support server.

-

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/CodeData.html b/docs/interfaces/CodeData.html new file mode 100644 index 0000000..899db58 --- /dev/null +++ b/docs/interfaces/CodeData.html @@ -0,0 +1 @@ +CodeData | cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface CodeData

Hierarchy

  • CodeData

Index

Properties

Properties

url

url: string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/PerkData.html b/docs/interfaces/PerkData.html new file mode 100644 index 0000000..570ee75 --- /dev/null +++ b/docs/interfaces/PerkData.html @@ -0,0 +1 @@ +PerkData | cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PerkData

Hierarchy

  • PerkData

Index

Properties

effects

effects: string

name

name: string

perk

perk: string

type

type: string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/RedditObject.html b/docs/interfaces/RedditObject.html new file mode 100644 index 0000000..c72ac35 --- /dev/null +++ b/docs/interfaces/RedditObject.html @@ -0,0 +1 @@ +RedditObject | cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface RedditObject

Hierarchy

  • RedditObject

Index

Properties

footer

footer: String

image

image: String

title

title: String

url

url: String

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html index 7c1b405..8472741 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,5 +1,5 @@ -cath
Options
All
  • Public
  • Public/Protected
  • All
Menu

cath

Index

Functions

getreddit

  • getreddit(sub: string): Promise<object>

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Private method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/package.json b/package.json index c6d28a1..5c916d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cath", - "version": "1.3.0", + "version": "1.3.2-dev", "description": "A powerful package that can interact with Cath API", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/src/CODMClient/codmclient.interface.ts b/src/CODMClient/codmclient.interface.ts index ecff099..8f19a0d 100644 --- a/src/CODMClient/codmclient.interface.ts +++ b/src/CODMClient/codmclient.interface.ts @@ -4,3 +4,9 @@ export interface CODMClientOptions { */ key: string; } +export interface PerkData { + name: string; + perk: string; + effects: string; + type: string; +} diff --git a/src/CODMClient/codmclient.ts b/src/CODMClient/codmclient.ts index db34729..dd162d0 100644 --- a/src/CODMClient/codmclient.ts +++ b/src/CODMClient/codmclient.ts @@ -1,5 +1,6 @@ import axios from "axios"; import config from "../utils/config.json"; +import { PerkData } from "./codmclient.interface"; /** * @name APIClient * @kind constructor @@ -12,10 +13,10 @@ export class CODMClient { } /** * Sends a CODM perk object - * @return {Promise} + * @return {Promise} * @param {String} name */ - public async getperk(name: string): Promise { + public async getperk(name: string): Promise { const data = await axios .get(`${config.api}/api/v1/codm/perks?name=${name}`, { headers: { diff --git a/src/CODMClient/index.ts b/src/CODMClient/index.ts index ee6a90e..17b09ab 100644 --- a/src/CODMClient/index.ts +++ b/src/CODMClient/index.ts @@ -1,2 +1,2 @@ -export { CODMClientOptions } from "./codmclient.interface"; +export { CODMClientOptions, PerkData } from "./codmclient.interface"; export { CODMClient } from "./codmclient"; diff --git a/src/CodeClient/codeclient.interface.ts b/src/CodeClient/codeclient.interface.ts new file mode 100644 index 0000000..84abe5c --- /dev/null +++ b/src/CodeClient/codeclient.interface.ts @@ -0,0 +1,3 @@ +export interface CodeData { + url: string; +} diff --git a/src/CodeClient/codeclient.ts b/src/CodeClient/codeclient.ts new file mode 100644 index 0000000..79ff668 --- /dev/null +++ b/src/CodeClient/codeclient.ts @@ -0,0 +1,31 @@ +import axios from "axios"; +import config from "../utils/config.json"; +import { CodeData } from "./codeclient.interface"; +/** + * @name CodeClient + * @kind constructor + */ +export class CodeClient { + constructor() {} + /** + * Sends the link of the code + * @return {Promise} + * @param {String} title + * @param {String} description + * @param {String} code + */ + public async createBin( + title: String, + description: String, + code: String + ): Promise { + const data = await axios + .post(`${config.code}/botcreate`, { + title, + description, + code, + }) + .then(res => res.data); + return data; + } +} diff --git a/src/CodeClient/index.ts b/src/CodeClient/index.ts new file mode 100644 index 0000000..b941bd7 --- /dev/null +++ b/src/CodeClient/index.ts @@ -0,0 +1,2 @@ +export { CodeData } from "./codeclient.interface"; +export { CodeClient } from "./codeclient"; diff --git a/src/functions/reddit.ts b/src/functions/reddit.ts index 2deebd3..f5e9579 100644 --- a/src/functions/reddit.ts +++ b/src/functions/reddit.ts @@ -1,9 +1,9 @@ import axios from "axios"; /** * Sends an embed of reddit - * @return {Promise} + * @return {Promise} */ -export async function getreddit(sub: string): Promise { +export async function getreddit(sub: string): Promise { const content = await axios .get(`https://www.reddit.com/r/${sub}/random/.json`) .then(res => res.data); @@ -14,11 +14,17 @@ export async function getreddit(sub: string): Promise { let memeUpvotes = content[0].data.children[0].data.ups; let memeDownvotes = content[0].data.children[0].data.downs; let memeNumComments = content[0].data.children[0].data.num_comments; - const obj: object = { - title: `A cat image | ${memeTitle}`, - url: `${memeURL}`, + const obj: RedditObject = { + title: memeTitle, + url: memeURL, image: memeImage, footer: ` 👍 ${memeUpvotes} 💬 ${memeNumComments}`, }; return obj; } +export interface RedditObject { + title: String; + url: String; + image: String; + footer: String; +} diff --git a/src/index.ts b/src/index.ts index 81d622e..3ee4c0c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -export { CODMClient, CODMClientOptions } from "./CODMClient/index"; +export { CODMClient, CODMClientOptions, PerkData } from "./CODMClient/index"; export { StarboardClient, StarboardClientOptions, @@ -6,5 +6,6 @@ export { StarboardGuildOptions, starMessageData, } from "./StarboardClient/index"; +export { CodeClient, CodeData } from "./CodeClient/index"; export { random8ball } from "./functions/8ball"; -export { getreddit } from "./functions/reddit"; +export { getreddit, RedditObject } from "./functions/reddit"; diff --git a/src/utils/config.json b/src/utils/config.json index 8de52d8..2d7abb5 100644 --- a/src/utils/config.json +++ b/src/utils/config.json @@ -1,3 +1,4 @@ { - "api": "https://api.cath.gq" + "api": "https://api.cath.gq", + "code": "https://code.cath.gq" }