├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE-CODE ├── README.md ├── docs ├── .vitepress │ ├── config.ts │ └── theme │ │ ├── components │ │ ├── ApplicationCommands.vue │ │ └── Footer.vue │ │ ├── custom.css │ │ ├── index.ts │ │ └── style.css ├── MARKDOWN-EXTENSIONS.md ├── discord-bot │ ├── commands.md │ ├── custom-api-system.md │ ├── custom-commands.md │ ├── getting-started.md │ ├── live-stream-announcements.md │ ├── live-stream-events.md │ ├── reminder-system.md │ └── variables.md ├── getting-started.md ├── index.md ├── public │ ├── 16px │ │ ├── senchabot-16px.png │ │ ├── senchabot-nobg-1-16px.png │ │ └── senchabot-nobg-16px.png │ ├── 32px │ │ ├── senchabot-32px.png │ │ ├── senchabot-nobg-1-32px.png │ │ └── senchabot-nobg-32px.png │ ├── 64px │ │ ├── senchabot-64px.png │ │ ├── senchabot-nobg-1-64px.png │ │ └── senchabot-nobg-64px.png │ ├── favicon.ico │ ├── senchabot-logo.ai │ └── svg │ │ ├── senchabot-nobg-1.svg │ │ ├── senchabot-nobg.svg │ │ └── senchabot.svg ├── tr │ ├── discord-bot │ │ ├── commands.md │ │ ├── custom-api-system.md │ │ ├── custom-commands.md │ │ ├── getting-started.md │ │ ├── live-stream-announcements.md │ │ ├── live-stream-events.md │ │ ├── reminder-system.md │ │ └── variables.md │ ├── getting-started.md │ ├── index.md │ └── twitch-bot │ │ ├── command-timer-system.md │ │ ├── commands.md │ │ ├── custom-api-system.md │ │ ├── custom-commands.md │ │ ├── getting-started.md │ │ ├── note-taking-system.md │ │ ├── reminder-system.md │ │ └── variables.md └── twitch-bot │ ├── command-timer-system.md │ ├── commands.md │ ├── custom-api-system.md │ ├── custom-commands.md │ ├── getting-started.md │ ├── note-taking-system.md │ ├── reminder-system.md │ └── variables.md ├── package.json └── yarn.lock /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | # Sample workflow for building and deploying a VitePress site to GitHub Pages 2 | # 3 | name: Deploy VitePress site to Pages 4 | 5 | on: 6 | # Runs on pushes targeting the `main` branch. Change this to `master` if you're 7 | # using the `master` branch as the default branch. 8 | push: 9 | branches: [main] 10 | 11 | # Allows you to run this workflow manually from the Actions tab 12 | workflow_dispatch: 13 | 14 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 15 | permissions: 16 | contents: read 17 | pages: write 18 | id-token: write 19 | 20 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 21 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 22 | concurrency: 23 | group: pages 24 | cancel-in-progress: false 25 | 26 | jobs: 27 | # Build job 28 | build: 29 | runs-on: ubuntu-latest 30 | steps: 31 | - name: Checkout 32 | uses: actions/checkout@v3 33 | with: 34 | fetch-depth: 0 # Not needed if lastUpdated is not enabled 35 | # - uses: pnpm/action-setup@v2 # Uncomment this if you're using pnpm 36 | # - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun 37 | - name: Setup Node 38 | uses: actions/setup-node@v3 39 | with: 40 | node-version: 18 41 | cache: yarn # or pnpm / yarn 42 | - name: Setup Pages 43 | uses: actions/configure-pages@v3 44 | - name: Install dependencies 45 | run: yarn install # or pnpm install / yarn install / bun install 46 | - name: Build with VitePress 47 | run: | 48 | yarn docs:build # or pnpm docs:build / npm run docs:build / bun run docs:build 49 | touch docs/.vitepress/dist/.nojekyll 50 | - name: Upload artifact 51 | uses: actions/upload-pages-artifact@v2 52 | with: 53 | path: docs/.vitepress/dist 54 | 55 | # Deployment job 56 | deploy: 57 | environment: 58 | name: github-pages 59 | url: ${{ steps.deployment.outputs.page_url }} 60 | needs: build 61 | runs-on: ubuntu-latest 62 | name: Deploy 63 | steps: 64 | - name: Deploy to GitHub Pages 65 | id: deployment 66 | uses: actions/deploy-pages@v2 67 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /coverage 2 | /src/client/shared.ts 3 | /src/node/shared.ts 4 | *.log 5 | *.tgz 6 | .DS_Store 7 | .idea 8 | .temp 9 | .vite_opt_cache 10 | .vscode 11 | dist 12 | cache 13 | temp 14 | examples-temp 15 | node_modules 16 | pnpm-global 17 | TODOs.md -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.md 2 | *.vue 3 | dist 4 | pnpm-lock.yaml 5 | cache 6 | template 7 | temp 8 | !CHANGELOG.md 9 | .temp -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 75 6 | } -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | hello@senchabot.app. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Wanted Changes 2 | 3 | 1. Fixes to incorrect statements or inaccuracies within the documentation. 4 | 2. Rewording or extending documentation to clarify unclear wording or complicated explanations. 5 | 3. Additions that fill gaps or missing pieces in the current documentation. 6 | 4. Fixing of spelling and grammatical errors in the documentation. 7 | 8 | ## Unwanted Changes 9 | 10 | 1. Whitespace or formatting changes. 11 | 2. Subjective wording changes. 12 | 3. Modifications to the overall structure and format of the docs. 13 | 4. Additions that replicate or needlessly restructure current documentation. 14 | 5. Additions that document unreleased product functionality. 15 | 16 | 17 | See the [README](https://github.com/senchabot-opensource/docs/blob/main/README.md) for licensing and legal information. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International 2 | 3 | Creative Commons Corporation ("Creative Commons") is not a law firm and 4 | does not provide legal services or legal advice. Distribution of 5 | Creative Commons public licenses does not create a lawyer-client or 6 | other relationship. Creative Commons makes its licenses and related 7 | information available on an "as-is" basis. Creative Commons gives no 8 | warranties regarding its licenses, any material licensed under their 9 | terms and conditions, or any related information. Creative Commons 10 | disclaims all liability for damages resulting from their use to the 11 | fullest extent possible. 12 | 13 | Using Creative Commons Public Licenses 14 | 15 | Creative Commons public licenses provide a standard set of terms and 16 | conditions that creators and other rights holders may use to share 17 | original works of authorship and other material subject to copyright and 18 | certain other rights specified in the public license below. The 19 | following considerations are for informational purposes only, are not 20 | exhaustive, and do not form part of our licenses. 21 | 22 | Considerations for licensors: Our public licenses are intended for use 23 | by those authorized to give the public permission to use material in 24 | ways otherwise restricted by copyright and certain other rights. Our 25 | licenses are irrevocable. Licensors should read and understand the terms 26 | and conditions of the license they choose before applying it. Licensors 27 | should also secure all rights necessary before applying our licenses so 28 | that the public can reuse the material as expected. Licensors should 29 | clearly mark any material not subject to the license. This includes 30 | other CC-licensed material, or material used under an exception or 31 | limitation to copyright. More considerations for licensors : 32 | wiki.creativecommons.org/Considerations\_for\_licensors 33 | 34 | Considerations for the public: By using one of our public licenses, a 35 | licensor grants the public permission to use the licensed material under 36 | specified terms and conditions. If the licensor's permission is not 37 | necessary for any reason–for example, because of any applicable 38 | exception or limitation to copyright–then that use is not regulated by 39 | the license. Our licenses grant only permissions under copyright and 40 | certain other rights that a licensor has authority to grant. Use of the 41 | licensed material may still be restricted for other reasons, including 42 | because others have copyright or other rights in the material. A 43 | licensor may make special requests, such as asking that all changes be 44 | marked or described. Although not required by our licenses, you are 45 | encouraged to respect those requests where reasonable. More 46 | considerations for the public : 47 | wiki.creativecommons.org/Considerations\_for\_licensees 48 | 49 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International 50 | Public License 51 | 52 | By exercising the Licensed Rights (defined below), You accept and agree 53 | to be bound by the terms and conditions of this Creative Commons 54 | Attribution-NonCommercial-ShareAlike 4.0 International Public License 55 | ("Public License"). To the extent this Public License may be interpreted 56 | as a contract, You are granted the Licensed Rights in consideration of 57 | Your acceptance of these terms and conditions, and the Licensor grants 58 | You such rights in consideration of benefits the Licensor receives from 59 | making the Licensed Material available under these terms and conditions. 60 | 61 | Section 1 – Definitions. 62 | 63 | - a. Adapted Material means material subject to Copyright and Similar 64 | Rights that is derived from or based upon the Licensed Material and 65 | in which the Licensed Material is translated, altered, arranged, 66 | transformed, or otherwise modified in a manner requiring permission 67 | under the Copyright and Similar Rights held by the Licensor. For 68 | purposes of this Public License, where the Licensed Material is a 69 | musical work, performance, or sound recording, Adapted Material is 70 | always produced where the Licensed Material is synched in timed 71 | relation with a moving image. 72 | - b. Adapter's License means the license You apply to Your Copyright 73 | and Similar Rights in Your contributions to Adapted Material in 74 | accordance with the terms and conditions of this Public License. 75 | - c. BY-NC-SA Compatible License means a license listed at 76 | creativecommons.org/compatiblelicenses, approved by Creative Commons 77 | as essentially the equivalent of this Public License. 78 | - d. Copyright and Similar Rights means copyright and/or similar 79 | rights closely related to copyright including, without limitation, 80 | performance, broadcast, sound recording, and Sui Generis Database 81 | Rights, without regard to how the rights are labeled or categorized. 82 | For purposes of this Public License, the rights specified in Section 83 | 2(b)(1)-(2) are not Copyright and Similar Rights. 84 | - e. Effective Technological Measures means those measures that, in 85 | the absence of proper authority, may not be circumvented under laws 86 | fulfilling obligations under Article 11 of the WIPO Copyright Treaty 87 | adopted on December 20, 1996, and/or similar international 88 | agreements. 89 | - f. Exceptions and Limitations means fair use, fair dealing, and/or 90 | any other exception or limitation to Copyright and Similar Rights 91 | that applies to Your use of the Licensed Material. 92 | - g. License Elements means the license attributes listed in the name 93 | of a Creative Commons Public License. The License Elements of this 94 | Public License are Attribution, NonCommercial, and ShareAlike. 95 | - h. Licensed Material means the artistic or literary work, database, 96 | or other material to which the Licensor applied this Public License. 97 | - i. Licensed Rights means the rights granted to You subject to the 98 | terms and conditions of this Public License, which are limited to 99 | all Copyright and Similar Rights that apply to Your use of the 100 | Licensed Material and that the Licensor has authority to license. 101 | - j. Licensor means the individual(s) or entity(ies) granting rights 102 | under this Public License. 103 | - k. NonCommercial means not primarily intended for or directed 104 | towards commercial advantage or monetary compensation. For purposes 105 | of this Public License, the exchange of the Licensed Material for 106 | other material subject to Copyright and Similar Rights by digital 107 | file-sharing or similar means is NonCommercial provided there is no 108 | payment of monetary compensation in connection with the exchange. 109 | - l. Share means to provide material to the public by any means or 110 | process that requires permission under the Licensed Rights, such as 111 | reproduction, public display, public performance, distribution, 112 | dissemination, communication, or importation, and to make material 113 | available to the public including in ways that members of the public 114 | may access the material from a place and at a time individually 115 | chosen by them. 116 | - m. Sui Generis Database Rights means rights other than copyright 117 | resulting from Directive 96/9/EC of the European Parliament and of 118 | the Council of 11 March 1996 on the legal protection of databases, 119 | as amended and/or succeeded, as well as other essentially equivalent 120 | rights anywhere in the world. 121 | - n. You means the individual or entity exercising the Licensed Rights 122 | under this Public License. Your has a corresponding meaning. 123 | 124 | Section 2 – Scope. 125 | 126 | - a. License grant. 127 | - 1. Subject to the terms and conditions of this Public License, 128 | the Licensor hereby grants You a worldwide, royalty-free, 129 | non-sublicensable, non-exclusive, irrevocable license to 130 | exercise the Licensed Rights in the Licensed Material to: 131 | - A. reproduce and Share the Licensed Material, in whole or in 132 | part, for NonCommercial purposes only; and 133 | - B. produce, reproduce, and Share Adapted Material for 134 | NonCommercial purposes only. 135 | - 2. Exceptions and Limitations. For the avoidance of doubt, where 136 | Exceptions and Limitations apply to Your use, this Public 137 | License does not apply, and You do not need to comply with its 138 | terms and conditions. 139 | - 3. Term. The term of this Public License is specified in Section 140 | 6(a). 141 | - 4. Media and formats; technical modifications allowed. The 142 | Licensor authorizes You to exercise the Licensed Rights in all 143 | media and formats whether now known or hereafter created, and to 144 | make technical modifications necessary to do so. The Licensor 145 | waives and/or agrees not to assert any right or authority to 146 | forbid You from making technical modifications necessary to 147 | exercise the Licensed Rights, including technical modifications 148 | necessary to circumvent Effective Technological Measures. For 149 | purposes of this Public License, simply making modifications 150 | authorized by this Section 2(a)(4) never produces Adapted 151 | Material. 152 | - 5. Downstream recipients. 153 | - A. Offer from the Licensor – Licensed Material. Every 154 | recipient of the Licensed Material automatically receives an 155 | offer from the Licensor to exercise the Licensed Rights 156 | under the terms and conditions of this Public License. 157 | - B. Additional offer from the Licensor – Adapted Material. 158 | Every recipient of Adapted Material from You automatically 159 | receives an offer from the Licensor to exercise the Licensed 160 | Rights in the Adapted Material under the conditions of the 161 | Adapter's License You apply. 162 | - C. No downstream restrictions. You may not offer or impose 163 | any additional or different terms or conditions on, or apply 164 | any Effective Technological Measures to, the Licensed 165 | Material if doing so restricts exercise of the Licensed 166 | Rights by any recipient of the Licensed Material. 167 | - 6. No endorsement. Nothing in this Public License constitutes or 168 | may be construed as permission to assert or imply that You are, 169 | or that Your use of the Licensed Material is, connected with, or 170 | sponsored, endorsed, or granted official status by, the Licensor 171 | or others designated to receive attribution as provided in 172 | Section 3(a)(1)(A)(i). 173 | - b. Other rights. 174 | - 1. Moral rights, such as the right of integrity, are not 175 | licensed under this Public License, nor are publicity, privacy, 176 | and/or other similar personality rights; however, to the extent 177 | possible, the Licensor waives and/or agrees not to assert any 178 | such rights held by the Licensor to the limited extent necessary 179 | to allow You to exercise the Licensed Rights, but not otherwise. 180 | - 2. Patent and trademark rights are not licensed under this 181 | Public License. 182 | - 3. To the extent possible, the Licensor waives any right to 183 | collect royalties from You for the exercise of the Licensed 184 | Rights, whether directly or through a collecting society under 185 | any voluntary or waivable statutory or compulsory licensing 186 | scheme. In all other cases the Licensor expressly reserves any 187 | right to collect such royalties, including when the Licensed 188 | Material is used other than for NonCommercial purposes. 189 | 190 | Section 3 – License Conditions. 191 | 192 | Your exercise of the Licensed Rights is expressly made subject to the 193 | following conditions. 194 | 195 | - a. Attribution. 196 | - 1. If You Share the Licensed Material (including in modified 197 | form), You must: 198 | - A. retain the following if it is supplied by the Licensor 199 | with the Licensed Material: 200 | - i. identification of the creator(s) of the Licensed 201 | Material and any others designated to receive 202 | attribution, in any reasonable manner requested by the 203 | Licensor (including by pseudonym if designated); 204 | - ii. a copyright notice; 205 | - iii. a notice that refers to this Public License; 206 | - iv. a notice that refers to the disclaimer of 207 | warranties; 208 | - v. a URI or hyperlink to the Licensed Material to the 209 | extent reasonably practicable; 210 | 211 | - B. indicate if You modified the Licensed Material and retain 212 | an indication of any previous modifications; and 213 | - C. indicate the Licensed Material is licensed under this 214 | Public License, and include the text of, or the URI or 215 | hyperlink to, this Public License. 216 | - 2. You may satisfy the conditions in Section 3(a)(1) in any 217 | reasonable manner based on the medium, means, and context in 218 | which You Share the Licensed Material. For example, it may be 219 | reasonable to satisfy the conditions by providing a URI or 220 | hyperlink to a resource that includes the required information. 221 | - 3. If requested by the Licensor, You must remove any of the 222 | information required by Section 3(a)(1)(A) to the extent 223 | reasonably practicable. 224 | - b. ShareAlike.In addition to the conditions in Section 3(a), if You 225 | Share Adapted Material You produce, the following conditions also 226 | apply. 227 | - 1. The Adapter's License You apply must be a Creative Commons 228 | license with the same License Elements, this version or later, 229 | or a BY-NC-SA Compatible License. 230 | - 2. You must include the text of, or the URI or hyperlink to, the 231 | Adapter's License You apply. You may satisfy this condition in 232 | any reasonable manner based on the medium, means, and context in 233 | which You Share Adapted Material. 234 | - 3. You may not offer or impose any additional or different terms 235 | or conditions on, or apply any Effective Technological Measures 236 | to, Adapted Material that restrict exercise of the rights 237 | granted under the Adapter's License You apply. 238 | 239 | Section 4 – Sui Generis Database Rights. 240 | 241 | Where the Licensed Rights include Sui Generis Database Rights that apply 242 | to Your use of the Licensed Material: 243 | 244 | - a. for the avoidance of doubt, Section 2(a)(1) grants You the right 245 | to extract, reuse, reproduce, and Share all or a substantial portion 246 | of the contents of the database for NonCommercial purposes only; 247 | - b. if You include all or a substantial portion of the database 248 | contents in a database in which You have Sui Generis Database 249 | Rights, then the database in which You have Sui Generis Database 250 | Rights (but not its individual contents) is Adapted Material, 251 | including for purposes of Section 3(b); and 252 | - c. You must comply with the conditions in Section 3(a) if You Share 253 | all or a substantial portion of the contents of the database. 254 | For the avoidance of doubt, this Section 4 supplements and does not 255 | replace Your obligations under this Public License where the 256 | Licensed Rights include other Copyright and Similar Rights. 257 | 258 | Section 5 – Disclaimer of Warranties and Limitation of Liability. 259 | 260 | - a. Unless otherwise separately undertaken by the Licensor, to the 261 | extent possible, the Licensor offers the Licensed Material as-is and 262 | as-available, and makes no representations or warranties of any kind 263 | concerning the Licensed Material, whether express, implied, 264 | statutory, or other. This includes, without limitation, warranties 265 | of title, merchantability, fitness for a particular purpose, 266 | non-infringement, absence of latent or other defects, accuracy, or 267 | the presence or absence of errors, whether or not known or 268 | discoverable. Where disclaimers of warranties are not allowed in 269 | full or in part, this disclaimer may not apply to You. 270 | - b. To the extent possible, in no event will the Licensor be liable 271 | to You on any legal theory (including, without limitation, 272 | negligence) or otherwise for any direct, special, indirect, 273 | incidental, consequential, punitive, exemplary, or other losses, 274 | costs, expenses, or damages arising out of this Public License or 275 | use of the Licensed Material, even if the Licensor has been advised 276 | of the possibility of such losses, costs, expenses, or damages. 277 | Where a limitation of liability is not allowed in full or in part, 278 | this limitation may not apply to You. 279 | - c. The disclaimer of warranties and limitation of liability provided 280 | above shall be interpreted in a manner that, to the extent possible, 281 | most closely approximates an absolute disclaimer and waiver of all 282 | liability. 283 | 284 | Section 6 – Term and Termination. 285 | 286 | - a. This Public License applies for the term of the Copyright and 287 | Similar Rights licensed here. However, if You fail to comply with 288 | this Public License, then Your rights under this Public License 289 | terminate automatically. 290 | - b. Where Your right to use the Licensed Material has terminated 291 | under Section 6(a), it reinstates: 292 | 293 | - 1. automatically as of the date the violation is cured, provided 294 | it is cured within 30 days of Your discovery of the violation; 295 | or 296 | - 2. upon express reinstatement by the Licensor. 297 | 298 | For the avoidance of doubt, this Section 6(b) does not affect any 299 | right the Licensor may have to seek remedies for Your violations of 300 | this Public License. 301 | 302 | - c. For the avoidance of doubt, the Licensor may also offer the 303 | Licensed Material under separate terms or conditions or stop 304 | distributing the Licensed Material at any time; however, doing so 305 | will not terminate this Public License. 306 | - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 307 | License. 308 | 309 | Section 7 – Other Terms and Conditions. 310 | 311 | - a. The Licensor shall not be bound by any additional or different 312 | terms or conditions communicated by You unless expressly agreed. 313 | - b. Any arrangements, understandings, or agreements regarding the 314 | Licensed Material not stated herein are separate from and 315 | independent of the terms and conditions of this Public License. 316 | 317 | Section 8 – Interpretation. 318 | 319 | - a. For the avoidance of doubt, this Public License does not, and 320 | shall not be interpreted to, reduce, limit, restrict, or impose 321 | conditions on any use of the Licensed Material that could lawfully 322 | be made without permission under this Public License. 323 | - b. To the extent possible, if any provision of this Public License 324 | is deemed unenforceable, it shall be automatically reformed to the 325 | minimum extent necessary to make it enforceable. If the provision 326 | cannot be reformed, it shall be severed from this Public License 327 | without affecting the enforceability of the remaining terms and 328 | conditions. 329 | - c. No term or condition of this Public License will be waived and no 330 | failure to comply consented to unless expressly agreed to by the 331 | Licensor. 332 | - d. Nothing in this Public License constitutes or may be interpreted 333 | as a limitation upon, or waiver of, any privileges and immunities 334 | that apply to the Licensor or You, including from the legal 335 | processes of any jurisdiction or authority. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Senchabot Documentation 2 | 3 | This repo contains the official Senchabot documentation, which can be viewed online [HERE](https://docs.senchabot.app). Before submitting pull-requests, please remember to _fully_ read the [Contributing](CONTRIBUTING.md) guidelines. 4 | 5 | ## Markdown Syntax and Example Usage 6 | 7 | For Markdown Syntax and Example Uses, visit [MARKDOWN-EXTENSIONS](https://docs.senchabot.app/MARKDOWN-EXTENSIONS) 8 | 9 | ## Need some help? 10 | 11 | Here are some Discord servers that can help you out with everything Senchabot: 12 | 13 | The [Official Senchabot Support/Developers server](https://discord.com/invite/h3NqsbHW4a) has plenty of help channels with knowledgeable people and Senchabot's developers to get you help with something you need, and get updates straight from the developers. However do keep in mind this is a purely on-topic server. If you are looking for a community, join the server below. 14 | 15 | The [Kamp US server](https://discord.gg/kampus) is a common hangout for developers. It's a great starting point for those looking to dive in and learn how to developer. 16 | 17 | ## License 18 | 19 | Except as otherwise noted, the Senchabot Documentation and other content in this repository is licensed under the Creative Commons Attribution-ShareAlike 4.0 License (see [LICENSE](https://github.com/senchabot-opensource/docs/blob/main/LICENSE)), and code samples in this repository are licensed under the AGPL-3.0 License (see [LICENSE-CODE](https://github.com/senchabot-opensource/docs/blob/main/LICENSE-CODE)). These licenses do not grant you rights to use any of Senchabot’s trademarks or other brand features. -------------------------------------------------------------------------------- /docs/.vitepress/config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitepress' 2 | 3 | // https://vitepress.dev/reference/site-config 4 | export default defineConfig({ 5 | vite: { 6 | ssr: { 7 | noExternal: ['@discord-message-components/vue'] 8 | } 9 | }, 10 | title: 'Senchabot', 11 | description: 'Documentation', 12 | 13 | lastUpdated: true, 14 | cleanUrls: true, 15 | ignoreDeadLinks: true, 16 | 17 | head: [ 18 | ['link', { rel: 'icon', href: '/favicon.ico' }], 19 | [ 20 | 'meta', 21 | { 22 | name: 'description', 23 | content: 24 | 'Open-source multi-platform bot development project, which works on Twitch and Discord.' 25 | } 26 | ], 27 | ['meta', { name: 'theme-color', content: '#20AB8C' }], 28 | ['meta', { name: 'og:type', content: 'website' }], 29 | ['meta', { name: 'og:site_name', content: 'Senchabot' }], 30 | [ 31 | 'meta', 32 | { 33 | name: 'og:image', 34 | content: 'https://avatars.githubusercontent.com/u/125701962' 35 | } 36 | ], 37 | [ 38 | 'meta', 39 | { 40 | name: 'og:description', 41 | content: 42 | 'Open-source multi-platform bot development project, which works on Twitch and Discord.' 43 | } 44 | ], 45 | ['meta', { name: 'twitter:site', content: '@senchabot' }], 46 | ['meta', { name: 'twitter:card', content: 'summary' }], 47 | [ 48 | 'meta', 49 | { 50 | name: 'twitter:description', 51 | content: 'Open-source Discord and Twitch bot' 52 | } 53 | ], 54 | [ 55 | 'meta', 56 | { 57 | name: 'twitter:image', 58 | content: 'https://avatars.githubusercontent.com/u/125701962' 59 | } 60 | ], 61 | ['meta', { name: 'robots', content: 'index,follow' }], 62 | [ 63 | 'script', 64 | { 65 | async: '', 66 | src: 'https://www.googletagmanager.com/gtag/js?id=G-ZXSVB4HQJH' 67 | } 68 | ], 69 | [ 70 | 'script', 71 | {}, 72 | `window.dataLayer = window.dataLayer || []; 73 | function gtag(){dataLayer.push(arguments);} 74 | gtag('js', new Date()); 75 | gtag('config', 'G-ZXSVB4HQJH');` 76 | ] 77 | ], 78 | 79 | themeConfig: { 80 | // https://vitepress.dev/reference/default-theme-config 81 | logo: { src: '/svg/senchabot-nobg-1.svg', width: 24, height: 24 }, 82 | 83 | i18nRouting: true, 84 | 85 | socialLinks: [ 86 | { icon: 'github', link: 'https://github.com/senchabot-opensource/' }, 87 | { icon: 'discord', link: 'https://discord.com/invite/h3NqsbHW4a' }, 88 | { 89 | icon: 'linkedin', 90 | link: 'https://www.linkedin.com/company/senchabot' 91 | } 92 | ], // available icons https://vitepress.dev/reference/default-theme-config#sociallinks 93 | 94 | nav: [ 95 | { 96 | text: 'Developers', 97 | link: 'https://github.com/senchabot-opensource/monorepo' 98 | } 99 | ], 100 | // Footer 101 | footer: { 102 | message: `Released under the GPL-3.0 License`, 103 | copyright: `Copyright © ${new Date().getFullYear()} SenchabotTerms of ServicePrivacy Policy` 104 | }, 105 | search: { 106 | provider: 'local', 107 | options: { 108 | locales: { 109 | tr: { 110 | translations: { 111 | button: { 112 | buttonText: 'Arama', 113 | buttonAriaLabel: 'Arama' 114 | }, 115 | modal: { 116 | displayDetails: 'Ayrıntılı listeyi görüntüle', 117 | resetButtonTitle: 'Arama kriterlerini temizleyin', 118 | backButtonTitle: 'Aramayı kapat', 119 | noResultsText: 'Hiçbir sonuç bulunamadı', 120 | footer: { 121 | selectText: 'navigasyon için', 122 | navigateText: 'seçmek için', 123 | navigateUpKeyAriaLabel: 'yukarı ok', 124 | navigateDownKeyAriaLabel: 'aşağı ok', 125 | closeText: 'kapatmak için' 126 | } 127 | } 128 | } 129 | } 130 | } 131 | } 132 | }, 133 | 134 | editLink: { 135 | pattern: 136 | 'https://github.com/senchabot-opensource/docs/edit/main/docs/:path' 137 | } 138 | }, 139 | locales: { 140 | root: { 141 | label: 'English', 142 | lang: 'en', 143 | link: '/', 144 | themeConfig: { 145 | sidebar: [ 146 | // Sidebar Top 147 | // { 148 | // items: [ 149 | // { text: "Introduction", link: "/" }, 150 | // { text: "Getting Started", link: "/getting-started" }, 151 | // ], 152 | // }, 153 | // Twitch - EN 154 | { 155 | text: 'Twitch', 156 | collapsed: false, 157 | items: [ 158 | { 159 | text: 'Getting Started', 160 | link: '/twitch-bot/getting-started' 161 | }, 162 | { 163 | text: 'Commands', 164 | link: '/twitch-bot/commands' 165 | }, 166 | { 167 | text: 'Custom Commands', 168 | link: '/twitch-bot/custom-commands' 169 | }, 170 | { 171 | text: 'Modules', 172 | collapsed: false, 173 | items: [ 174 | { 175 | text: 'Custom API System', 176 | link: '/twitch-bot/custom-api-system' 177 | }, 178 | { 179 | text: 'Command Timer System', 180 | link: '/twitch-bot/command-timer-system' 181 | } 182 | ] 183 | }, 184 | { 185 | text: 'Planned (Not Active)', 186 | collapsed: true, 187 | items: [ 188 | { 189 | text: 'Reminder System', 190 | link: '/twitch-bot/reminder-system' 191 | }, 192 | { 193 | text: 'Note Taking System', 194 | link: '/twitch-bot/note-taking-system' 195 | } 196 | ] 197 | }, 198 | { 199 | text: 'Variables', 200 | link: '/twitch-bot/variables' 201 | } 202 | ] 203 | }, 204 | // Discord - EN 205 | { 206 | text: 'Discord', 207 | collapsed: false, 208 | items: [ 209 | { 210 | text: 'Getting Started', 211 | link: '/discord-bot/getting-started' 212 | }, 213 | { text: 'Commands', link: '/discord-bot/commands' }, 214 | { 215 | text: 'Custom Commands', 216 | link: '/discord-bot/custom-commands' 217 | }, 218 | { 219 | text: 'Modules', 220 | collapsed: true, 221 | items: [ 222 | { 223 | text: 'Live Stream Announcements', 224 | link: '/discord-bot/live-stream-announcements' 225 | }, 226 | { 227 | text: 'Live Stream Events', 228 | link: '/discord-bot/live-stream-events' 229 | }, 230 | { 231 | text: 'Custom API System', 232 | link: '/discord-bot/custom-api-system' 233 | } 234 | // { 235 | // text: "Reminder System", 236 | // link: "/discord-bot/reminder-system", 237 | // }, 238 | ] 239 | } 240 | // { 241 | // text: "Variables", 242 | // link: "/discord-bot/variables", 243 | // }, 244 | ] 245 | } 246 | // Variables - Twitch & Discord 247 | // { text: "Variables", link: "/variables" }, 248 | ] 249 | } 250 | }, 251 | // TR - Turkish 252 | tr: { 253 | label: 'Türkçe', 254 | lang: 'tr', 255 | link: '/tr/', 256 | themeConfig: { 257 | docFooter: { 258 | prev: 'Önceki sayfa', 259 | next: 'Sonraki sayfa' 260 | }, 261 | outlineTitle: 'Bu sayfadaki', 262 | lastUpdatedText: 'Son güncelleme', 263 | editLink: { 264 | pattern: 265 | 'https://github.com/senchabot-opensource/docs/edit/main/docs/:path', 266 | text: 'Bu sayfayı düzenle' 267 | }, 268 | 269 | sidebar: [ 270 | // Sidebar Top - TR 271 | // { 272 | // items: [ 273 | // { text: 'Giriş', link: '/tr/' }, 274 | // { text: 'Başlamadan Önce', link: '/tr/getting-started' } 275 | // ] 276 | // }, 277 | // Twitch - TR 278 | { 279 | text: 'Twitch', 280 | collapsed: false, 281 | items: [ 282 | { 283 | text: 'Başlamadan Önce', 284 | link: '/tr/twitch-bot/getting-started' 285 | }, 286 | { 287 | text: 'Komutlar', 288 | link: '/tr/twitch-bot/commands' 289 | }, 290 | { 291 | text: 'Özel Komutlar', 292 | link: '/tr/twitch-bot/custom-commands' 293 | }, 294 | { 295 | text: 'Modüller', 296 | collapsed: false, 297 | items: [ 298 | { 299 | text: 'Custom API Sistemi', 300 | link: '/tr/twitch-bot/custom-api-system' 301 | }, 302 | { 303 | text: 'Komut Zamanlayıcı Sistemi', 304 | link: '/tr/twitch-bot/command-timer-system' 305 | } 306 | ] 307 | }, 308 | { 309 | text: 'Planlandı (Aktif Değil)', 310 | collapsed: true, 311 | items: [ 312 | { 313 | text: 'Hatırlatıcı Sistemi', 314 | link: '/tr/twitch-bot/reminder-system' 315 | }, 316 | { 317 | text: 'Not Sistemi', 318 | link: '/tr/twitch-bot/note-taking-system' 319 | } 320 | ] 321 | }, 322 | { 323 | text: 'Değişkenler', 324 | link: '/tr/twitch-bot/variables' 325 | } 326 | ] 327 | }, 328 | // Discord - TR 329 | { 330 | text: 'Discord', 331 | collapsed: false, 332 | items: [ 333 | { 334 | text: 'Başlamadan Önce', 335 | link: '/tr/discord-bot/getting-started' 336 | }, 337 | { text: 'Komutlar', link: '/tr/discord-bot/commands' }, 338 | { 339 | text: 'Özel Komutlar', 340 | link: '/tr/discord-bot/custom-commands' 341 | }, 342 | { 343 | text: 'Modüller', 344 | collapsed: true, 345 | items: [ 346 | { 347 | text: 'Canlı Yayın Duyuruları', 348 | link: '/tr/discord-bot/live-stream-announcements' 349 | }, 350 | { 351 | text: 'Canlı Yayın Etkinlikleri', 352 | link: '/tr/discord-bot/live-stream-events' 353 | }, 354 | { 355 | text: 'Custom API Sistemi', 356 | link: '/tr/discord-bot/custom-api-system' 357 | } 358 | // { 359 | // text: "Hatırlatıcı Sistemi", 360 | // link: "/tr/discord-bot/reminder-system", 361 | // }, 362 | ] 363 | } 364 | // { 365 | // text: "Değişkenler", 366 | // link: "/tr/discord-bot/variables", 367 | // }, 368 | ] 369 | } 370 | // Variables - Twitch & Discord - TR 371 | // { text: "Değişkenler", link: "/variables" }, 372 | ] 373 | } 374 | } 375 | } 376 | }) 377 | -------------------------------------------------------------------------------- /docs/.vitepress/theme/components/ApplicationCommands.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 55 | 56 | -------------------------------------------------------------------------------- /docs/.vitepress/theme/components/Footer.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | -------------------------------------------------------------------------------- /docs/.vitepress/theme/custom.css: -------------------------------------------------------------------------------- 1 | /* Global */ 2 | @import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;600&display=swap'); 3 | 4 | /* Links */ 5 | .vp-doc a { 6 | text-decoration: inherit; 7 | } 8 | 9 | /* Footer */ 10 | footer { 11 | margin-top: 24px; 12 | padding-top: 24px; 13 | border-top: 0.1px solid var(--vp-c-divider); 14 | } 15 | 16 | footer span { 17 | font-size: 0.7rem; 18 | display: block; 19 | line-height: 1.5; 20 | margin-bottom: 8px; 21 | color: var(--vp-c-text-3); 22 | } 23 | 24 | footer a:hover { 25 | color: var(--brand-primary);; 26 | } 27 | 28 | footer span a { 29 | text-decoration: underline; 30 | } 31 | 32 | /* Scrollbar Styles */ 33 | *::-webkit-scrollbar { 34 | width: 12px; 35 | } 36 | 37 | *::-webkit-scrollbar-track { 38 | border-radius: 8px; 39 | } 40 | 41 | *::-webkit-scrollbar-thumb { 42 | height: 56px; 43 | border-radius: 8px; 44 | border: 4px solid transparent; 45 | background-clip: content-box; 46 | background-color: #888; 47 | } 48 | 49 | *::-webkit-scrollbar-thumb:hover { 50 | background-color: #555; 51 | } 52 | 53 | /* Light Theme */ 54 | :root { 55 | /* Content ref large */ 56 | .content-ref { 57 | display: flex; 58 | flex-flow: row nowrap; 59 | align-items: center; 60 | justify-content: space-between; 61 | padding: 16px; 62 | margin: 16px 0; 63 | background-color: var(--vp-c-default-soft); 64 | border-radius: 12px; 65 | box-shadow: none; 66 | transition: box-shadow 0.25s; 67 | } 68 | 69 | .content-ref:hover { 70 | box-shadow: var(--vp-shadow-2); 71 | } 72 | 73 | .content-ref-section-title { 74 | display: block; 75 | font-size: 0.9rem; 76 | text-transform: uppercase; 77 | color: var(--vp-c-text-3); 78 | } 79 | 80 | .content-ref-page-title { 81 | display: block; 82 | font-size: 1.2rem; 83 | color: var(--brand-primary); 84 | transition: color 0.25s; 85 | } 86 | 87 | .content-ref:hover .content-ref-page-title { 88 | color: var(--brand-secondary); 89 | } 90 | 91 | .content-ref-svg { 92 | color: var(--brand-primary); 93 | transition: color 0.25s; 94 | } 95 | 96 | .content-ref:hover .content-ref-svg { 97 | color: var(--brand-secondary); 98 | } 99 | 100 | /* Content ref small */ 101 | .content-ref-s { 102 | display: flex; 103 | flex-flow: row nowrap; 104 | align-items: center; 105 | justify-content: space-between; 106 | padding: 16px; 107 | margin: 16px 0; 108 | background-color: var(--vp-c-default-soft); 109 | border-radius: 12px; 110 | box-shadow: none; 111 | transition: box-shadow 0.25s; 112 | } 113 | 114 | .content-ref-s:hover { 115 | box-shadow: var(--vp-shadow-2); 116 | } 117 | 118 | .content-ref-page-title-s { 119 | display: block; 120 | font-size: 1rem; 121 | color: var(--brand-primary); 122 | transition: color 0.25s; 123 | } 124 | 125 | .content-ref-s:hover .content-ref-page-title-s { 126 | color: var(--brand-secondary); 127 | } 128 | 129 | .content-ref-svg-s { 130 | color: var(--brand-primary); 131 | transition: color 0.25s; 132 | } 133 | 134 | .content-ref-s:hover .content-ref-svg-s { 135 | color: var(--brand-secondary); 136 | } 137 | 138 | /* Application Command Light Theme*/ 139 | .applicationCommand { 140 | color: #40444b; 141 | font-size: 14px; 142 | display: flex; 143 | flex-wrap: wrap; 144 | font-family: 'Noto Sans', sans-serif; 145 | border-radius: 8px; 146 | background-color: #dbdee1; 147 | } 148 | 149 | .applicationCommandIcon { 150 | width: 20px; 151 | height: 20px; 152 | margin: 8px 14px 8px 14px; 153 | position: sticky; 154 | } 155 | 156 | .applicationCommandName { 157 | font-weight: 600; 158 | margin-left: 4px; 159 | padding: 8px 0px 0px; 160 | } 161 | 162 | .optionPill { 163 | display: flex; 164 | border-radius: 4px; 165 | margin: 6px 0px 6px 6px; 166 | border: 1px solid transparent; 167 | align-self: flex-start; 168 | background-color: #E3E5E8; 169 | justify-content: flex-start; 170 | vertical-align: top; 171 | max-width: calc(100% - 30px); 172 | margin-top: 6px; 173 | } 174 | 175 | .optionPillKey { 176 | display: inline-block; 177 | padding: 1px 8px; 178 | border-top-left-radius: 4px; 179 | border-bottom-left-radius: 4px; 180 | user-select: none; 181 | flex-shrink: 0; 182 | } 183 | 184 | .optionPillValue { 185 | display: block; 186 | padding: 1px 8px; 187 | white-space: pre-wrap; 188 | background-color: #fff; 189 | flex: 1; 190 | } 191 | 192 | .optionPill2 { 193 | display: flex; 194 | border-radius: 4px; 195 | margin: 6px 0px 6px 6px; 196 | border: 1px solid transparent; 197 | align-self: flex-start; 198 | background-color: #E3E5E8; 199 | justify-content: flex-start; 200 | vertical-align: top; 201 | max-width: calc(100% - 30px); 202 | margin-top: 6px; 203 | } 204 | 205 | .optionPillKey2 { 206 | display: inline-block; 207 | padding: 1px 8px; 208 | border-top-left-radius: 4px; 209 | border-bottom-left-radius: 4px; 210 | user-select: none; 211 | flex-shrink: 0; 212 | } 213 | 214 | .optionPillValue2 { 215 | display: block; 216 | padding: 1px 8px; 217 | white-space: pre-wrap; 218 | background-color: #fff; 219 | flex: 1; 220 | } 221 | } 222 | 223 | /* Dark Theme */ 224 | .dark { 225 | 226 | /* Content ref large */ 227 | .content-ref { 228 | display: flex; 229 | flex-flow: row nowrap; 230 | align-items: center; 231 | justify-content: space-between; 232 | padding: 16px; 233 | margin: 16px 0; 234 | background-color: var(--vp-c-default-soft); 235 | border-radius: 12px; 236 | box-shadow: none; 237 | transition: box-shadow 0.25s; 238 | } 239 | 240 | .content-ref:hover { 241 | box-shadow: var(--vp-shadow-2); 242 | } 243 | 244 | .content-ref-section-title { 245 | display: block; 246 | font-size: 0.9rem; 247 | text-transform: uppercase; 248 | color: var(--vp-c-text-3); 249 | } 250 | 251 | .content-ref-page-title { 252 | display: block; 253 | font-size: 1.2rem; 254 | color: var(--brand-white); 255 | transition: color 0.25s; 256 | } 257 | 258 | .content-ref:hover .content-ref-page-title { 259 | color: var(--brand-primary); 260 | } 261 | 262 | .content-ref-svg { 263 | color: var(--brand-white); 264 | transition: color 0.25s; 265 | } 266 | 267 | .content-ref:hover .content-ref-svg { 268 | color: var(--brand-primary); 269 | } 270 | 271 | /* Content ref small */ 272 | .content-ref-s { 273 | display: flex; 274 | flex-flow: row nowrap; 275 | align-items: center; 276 | justify-content: space-between; 277 | padding: 16px; 278 | margin: 16px 0; 279 | background-color: var(--vp-c-default-soft); 280 | border-radius: 12px; 281 | box-shadow: none; 282 | transition: box-shadow 0.25s; 283 | } 284 | 285 | .content-ref-s:hover { 286 | box-shadow: var(--vp-shadow-2); 287 | } 288 | 289 | .content-ref-page-title-s { 290 | display: block; 291 | font-size: 1rem; 292 | color: var(--brand-white); 293 | transition: color 0.25s; 294 | } 295 | 296 | .content-ref-s:hover .content-ref-page-title-s { 297 | color: var(--brand-primary); 298 | } 299 | 300 | .content-ref-svg-s { 301 | color: var(--brand-white); 302 | transition: color 0.25s; 303 | } 304 | 305 | .content-ref-s:hover .content-ref-svg-s { 306 | color: var(--brand-primary); 307 | } 308 | 309 | /* Application Command Dark Theme*/ 310 | .applicationCommand { 311 | color: #dbdee1; 312 | font-size: 14px; 313 | display: flex; 314 | flex-wrap: wrap; 315 | font-family: 'Noto Sans', sans-serif; 316 | border-radius: 8px; 317 | background-color: #40444b; 318 | } 319 | 320 | .applicationCommandIcon { 321 | width: 20px; 322 | height: 20px; 323 | margin: 8px 14px 8px 14px; 324 | position: sticky; 325 | } 326 | 327 | .applicationCommandName { 328 | font-weight: 600; 329 | margin-left: 4px; 330 | padding: 8px 0px 0px; 331 | } 332 | 333 | .optionPill { 334 | display: flex; 335 | border-radius: 4px; 336 | margin: 6px 0px 6px 6px; 337 | border: 1px solid transparent; 338 | align-self: flex-start; 339 | background-color: #101113; 340 | justify-content: flex-start; 341 | vertical-align: top; 342 | max-width: calc(100% - 30px); 343 | margin-top: 6px; 344 | } 345 | 346 | .optionPillKey { 347 | display: inline-block; 348 | padding: 1px 8px; 349 | border-top-left-radius: 4px; 350 | border-bottom-left-radius: 4px; 351 | user-select: none; 352 | flex-shrink: 0; 353 | } 354 | 355 | .optionPillValue { 356 | display: block; 357 | padding: 1px 8px; 358 | white-space: pre-wrap; 359 | background-color: #222226; 360 | flex: 1; 361 | } 362 | 363 | .optionPill2 { 364 | display: flex; 365 | border-radius: 4px; 366 | margin: 6px 0px 6px 6px; 367 | border: 1px solid transparent; 368 | align-self: flex-start; 369 | background-color: #101113; 370 | justify-content: flex-start; 371 | vertical-align: top; 372 | max-width: calc(100% - 30px); 373 | margin-top: 6px; 374 | } 375 | 376 | .optionPillKey2 { 377 | display: inline-block; 378 | padding: 1px 8px; 379 | border-top-left-radius: 4px; 380 | border-bottom-left-radius: 4px; 381 | user-select: none; 382 | flex-shrink: 0; 383 | } 384 | 385 | .optionPillValue2 { 386 | display: block; 387 | padding: 1px 8px; 388 | white-space: pre-wrap; 389 | background-color: #222226; 390 | flex: 1; 391 | } 392 | } 393 | -------------------------------------------------------------------------------- /docs/.vitepress/theme/index.ts: -------------------------------------------------------------------------------- 1 | // https://vitepress.dev/guide/custom-theme 2 | import { h } from 'vue' 3 | import Theme from 'vitepress/theme' 4 | import '@theme/style.css' 5 | import '@theme/custom.css' 6 | 7 | import { 8 | DiscordButton, 9 | DiscordButtons, 10 | DiscordEmbed, 11 | DiscordEmbedField, 12 | DiscordEmbedFields, 13 | DiscordInteraction, 14 | DiscordMarkdown, 15 | DiscordMention, 16 | DiscordMessage, 17 | DiscordMessages, 18 | DiscordReaction, 19 | DiscordReactions, 20 | install as DiscordMessageComponents, 21 | } from '@discord-message-components/vue'; 22 | import '@discord-message-components/vue/dist/style.css'; 23 | 24 | import Footer from './components/Footer.vue' 25 | import ApplicationCommands from './components/ApplicationCommands.vue' 26 | 27 | export default { 28 | extends: Theme, 29 | Layout: () => { 30 | return h(Theme.Layout, null, { 31 | // https://vitepress.dev/guide/extending-default-theme#layout-slots 32 | 'sidebar-nav-after': () => h(Footer) 33 | }) 34 | }, 35 | enhanceApp({ app }) { 36 | app.use(DiscordMessageComponents, { 37 | profiles: { 38 | user: { 39 | author: 'Test User', 40 | avatar: "https://i.imgur.com/9HlPIUx.jpg", 41 | }, 42 | bot: { 43 | author: 'Senchabot', 44 | avatar: "https://avatars.githubusercontent.com/u/125701962", 45 | bot: true, 46 | }, 47 | }, 48 | }); 49 | 50 | app.component('ApplicationCommands', ApplicationCommands); 51 | 52 | app.component('DiscordButton', DiscordButton); 53 | app.component('DiscordButtons', DiscordButtons); 54 | app.component('DiscordEmbed', DiscordEmbed); 55 | app.component('DiscordEmbedField', DiscordEmbedField); 56 | app.component('DiscordEmbedFields', DiscordEmbedFields); 57 | app.component('DiscordInteraction', DiscordInteraction); 58 | app.component('DiscordMarkdown', DiscordMarkdown); 59 | app.component('DiscordMention', DiscordMention); 60 | app.component('DiscordMessage', DiscordMessage); 61 | app.component('DiscordMessages', DiscordMessages); 62 | app.component('DiscordReaction', DiscordReaction); 63 | app.component('DiscordReactions', DiscordReactions); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /docs/.vitepress/theme/style.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Customize default theme styling by overriding CSS variables: 3 | * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css 4 | */ 5 | 6 | /** 7 | * Colors 8 | * 9 | * Each colors have exact same color scale system with 3 levels of solid 10 | * colors with different brightness, and 1 soft color. 11 | * 12 | * - `XXX-1`: The most solid color used mainly for colored text. It must 13 | * satisfy the contrast ratio against when used on top of `XXX-soft`. 14 | * 15 | * - `XXX-2`: The color used mainly for hover state of the button. 16 | * 17 | * - `XXX-3`: The color for solid background, such as bg color of the button. 18 | * It must satisfy the contrast ratio with pure white (#ffffff) text on 19 | * top of it. 20 | * 21 | * - `XXX-soft`: The color used for subtle background such as custom container 22 | * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors 23 | * on top of it. 24 | * 25 | * The soft color must be semi transparent alpha channel. This is crucial 26 | * because it allows adding multiple "soft" colors on top of each other 27 | * to create a accent, such as when having inline code block inside 28 | * custom containers. 29 | * 30 | * - `default`: The color used purely for subtle indication without any 31 | * special meanings attched to it such as bg color for menu hover state. 32 | * 33 | * - `brand`: Used for primary brand colors, such as link text, button with 34 | * brand theme, etc. 35 | * 36 | * - `tip`: Used to indicate useful information. The default theme uses the 37 | * brand color for this by default. 38 | * 39 | * - `warning`: Used to indicate warning to the users. Used in custom 40 | * container, badges, etc. 41 | * 42 | * - `danger`: Used to show error, or dangerous message to the users. Used 43 | * in custom container, badges, etc. 44 | * -------------------------------------------------------------------------- */ 45 | 46 | :root { 47 | --brand-primary: #20ab8c; 48 | --brand-secondary: #003b43; 49 | --brand-black: #0b0e15; 50 | --brand-white: #ecfffa; 51 | 52 | --discord-brand: #5865f2; 53 | --twitch-brand: #9146FF; 54 | 55 | --vp-c-default-1: var(--vp-c-gray-1); 56 | --vp-c-default-2: var(--vp-c-gray-2); 57 | --vp-c-default-3: var(--vp-c-gray-3); 58 | --vp-c-default-soft: var(--vp-c-gray-soft); 59 | 60 | --vp-c-brand-1: var(--brand-secondary); 61 | --vp-c-brand-2: var(--brand-primary); 62 | --vp-c-brand-3: var(--brand-primary); 63 | --vp-c-brand-soft: var(--vp-c-indigo-soft); 64 | 65 | --vp-c-tip-1: var(--vp-c-brand-1); 66 | --vp-c-tip-2: var(--vp-c-brand-2); 67 | --vp-c-tip-3: var(--vp-c-brand-3); 68 | --vp-c-tip-soft: var(--vp-c-brand-soft); 69 | 70 | --vp-c-warning-1: var(--vp-c-yellow-1); 71 | --vp-c-warning-2: var(--vp-c-yellow-2); 72 | --vp-c-warning-3: var(--vp-c-yellow-3); 73 | --vp-c-warning-soft: var(--vp-c-yellow-soft); 74 | 75 | --vp-c-danger-1: var(--vp-c-red-1); 76 | --vp-c-danger-2: var(--vp-c-red-2); 77 | --vp-c-danger-3: var(--vp-c-red-3); 78 | --vp-c-danger-soft: var(--vp-c-red-soft); 79 | 80 | --vp-badge-info-border: var(--brand-black); 81 | --vp-badge-info-text: var(--brand-black); 82 | --vp-badge-info-bg: var(--vp-c-default-soft); 83 | 84 | --vp-badge-tip-border: var(--brand-black); 85 | --vp-badge-tip-text: var(--brand-black); 86 | --vp-badge-tip-bg: rgba(32, 171, 140, 0.5); 87 | 88 | --vp-badge-warning-border: transparent; 89 | --vp-badge-warning-text: var(--brand-white); 90 | --vp-badge-warning-bg: var(--vp-c-yellow-3); 91 | 92 | --vp-badge-danger-border: transparent; 93 | --vp-badge-danger-text: var(--brand-white); 94 | --vp-badge-danger-bg: var(--vp-c-danger-1); 95 | } 96 | 97 | .dark { 98 | --vp-c-default-1: var(--vp-c-gray-1); 99 | --vp-c-default-2: var(--vp-c-gray-2); 100 | --vp-c-default-3: var(--vp-c-gray-3); 101 | --vp-c-default-soft: var(--vp-c-gray-soft); 102 | 103 | --vp-c-brand-1: var(--brand-primary); 104 | --vp-c-brand-2: var(--brand-white); 105 | --vp-c-brand-3: var(--brand-secondary); 106 | --vp-c-brand-soft: var(--vp-c-indigo-soft); 107 | 108 | --vp-c-tip-1: var(--vp-c-brand-1); 109 | --vp-c-tip-2: var(--vp-c-brand-2); 110 | --vp-c-tip-3: var(--vp-c-brand-3); 111 | --vp-c-tip-soft: var(--vp-c-brand-soft); 112 | 113 | --vp-c-warning-1: var(--vp-c-yellow-1); 114 | --vp-c-warning-2: var(--vp-c-yellow-2); 115 | --vp-c-warning-3: var(--vp-c-yellow-3); 116 | --vp-c-warning-soft: var(--vp-c-yellow-soft); 117 | 118 | --vp-c-danger-1: var(--vp-c-red-1); 119 | --vp-c-danger-2: var(--vp-c-red-2); 120 | --vp-c-danger-3: var(--vp-c-red-3); 121 | --vp-c-danger-soft: var(--vp-c-red-soft); 122 | 123 | --vp-badge-info-border: transparent; 124 | --vp-badge-info-text: var(--brand-white); 125 | --vp-badge-info-bg: var(--vp-c-default-soft); 126 | 127 | --vp-badge-tip-border: transparent; 128 | --vp-badge-tip-text: var(--brand-white); 129 | --vp-badge-tip-bg: rgba(32, 171, 140, 0.3); 130 | 131 | --vp-badge-warning-border: transparent; 132 | --vp-badge-warning-text: var(--vp-c-yellow-1); 133 | --vp-badge-warning-bg: var(--vp-c-yellow-soft); 134 | 135 | --vp-badge-danger-border: transparent; 136 | --vp-badge-danger-text: var(--vp-c-red-1); 137 | --vp-badge-danger-bg: var(--vp-c-red-soft); 138 | } 139 | 140 | /** 141 | * Component: Button 142 | * -------------------------------------------------------------------------- */ 143 | 144 | :root { 145 | --vp-button-brand-border: transparent; 146 | --vp-button-brand-text: var(--vp-c-white); 147 | --vp-button-brand-bg: var(--vp-c-brand-3); 148 | --vp-button-brand-hover-border: transparent; 149 | --vp-button-brand-hover-text: var(--vp-c-white); 150 | --vp-button-brand-hover-bg: var(--vp-c-brand-2); 151 | --vp-button-brand-active-border: transparent; 152 | --vp-button-brand-active-text: var(--vp-c-white); 153 | --vp-button-brand-active-bg: var(--vp-c-brand-1); 154 | } 155 | 156 | /** 157 | * Component: Home 158 | * -------------------------------------------------------------------------- */ 159 | 160 | :root { 161 | --vp-home-hero-name-color: transparent; 162 | --vp-home-hero-name-background: -webkit-linear-gradient(120deg, 163 | #20ab8c 30%, 164 | #003b43); 165 | 166 | --vp-home-hero-image-background-image: linear-gradient(-45deg, 167 | #20ab8c 50%, 168 | #003b43 50%); 169 | --vp-home-hero-image-filter: blur(40px); 170 | } 171 | 172 | @media (min-width: 640px) { 173 | :root { 174 | --vp-home-hero-image-filter: blur(56px); 175 | } 176 | } 177 | 178 | @media (min-width: 960px) { 179 | :root { 180 | --vp-home-hero-image-filter: blur(72px); 181 | } 182 | } 183 | 184 | /** 185 | * Component: Custom Block 186 | * -------------------------------------------------------------------------- */ 187 | 188 | :root { 189 | --vp-custom-block-info-border: var(--brand-black); 190 | --vp-custom-block-info-text: var(--brand-black); 191 | --vp-custom-block-info-bg: var(--vp-c-default-soft); 192 | --vp-custom-block-info-code-bg: var(--vp-c-default-soft); 193 | 194 | /* --vp-custom-block-tip-border: transparent; */ 195 | --vp-custom-block-tip-border: var(--brand-black); 196 | --vp-custom-block-tip-text: var(--brand-black); 197 | --vp-custom-block-tip-bg: rgba(32, 171, 140, 0.5); 198 | --vp-custom-block-tip-code-bg: rgba(32, 171, 140, 0.3); 199 | 200 | --vp-custom-block-warning-border: var(--vp-c-yellow-1); 201 | --vp-custom-block-warning-text: var(--brand-black); 202 | --vp-custom-block-warning-bg: var(--vp-c-yellow-soft); 203 | --vp-custom-block-warning-code-bg: var(--vp-c-brand-soft); 204 | 205 | --vp-custom-block-danger-border: var(--vp-c-red-3); 206 | --vp-custom-block-danger-text: var(--brand-black); 207 | --vp-custom-block-danger-bg: var(--vp-c-red-soft); 208 | --vp-custom-block-danger-code-bg: var(--vp-c-red-soft); 209 | } 210 | 211 | .dark { 212 | --vp-custom-block-info-border: var(--brand-black); 213 | --vp-custom-block-info-text: var(--brand-white); 214 | --vp-custom-block-info-bg: var(--vp-c-default-soft); 215 | --vp-custom-block-info-code-bg: var(--vp-c-default-soft); 216 | 217 | /* --vp-custom-block-tip-border: transparent; */ 218 | --vp-custom-block-tip-border: var(--brand-primary); 219 | --vp-custom-block-tip-text: var(--brand-white); 220 | --vp-custom-block-tip-bg: rgba(32, 171, 140, 0.3); 221 | --vp-custom-block-tip-code-bg: rgba(32, 171, 140, 0.3); 222 | 223 | --vp-custom-block-warning-border: var(--vp-c-yellow-1); 224 | --vp-custom-block-warning-text: var(--brand-white); 225 | --vp-custom-block-warning-bg: var(--vp-c-yellow-soft); 226 | --vp-custom-block-warning-code-bg: var(--vp-c-brand-soft); 227 | 228 | --vp-custom-block-danger-border: var(--vp-c-red-3); 229 | --vp-custom-block-danger-text: var(--brand-white); 230 | --vp-custom-block-danger-bg: var(--vp-c-red-soft); 231 | --vp-custom-block-danger-code-bg: var(--vp-c-red-soft); 232 | } 233 | 234 | /** 235 | * Component: Algolia 236 | * -------------------------------------------------------------------------- */ 237 | 238 | .DocSearch { 239 | --docsearch-primary-color: var(--vp-c-brand-1) !important; 240 | } -------------------------------------------------------------------------------- /docs/MARKDOWN-EXTENSIONS.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Markdown Usages 6 | 7 |
8 | 9 | **Here you can find syntaxes and example usages according to the criteria we have set to contribute.** 10 | 11 |
12 | 13 | ## Links 14 | 15 | Both internal and external links gets special treatments. 16 | 17 | ### External Links 18 | 19 | ``` 20 | https://senchabot.app 21 | ``` 22 | 23 | ```md 24 | Here our cool [website](https://senchabot.app) 25 | ``` 26 | 27 |
28 | 29 | Here our cool [website](https://senchabot.app) 30 | 31 |
32 | 33 | ### Internal Links 34 | 35 | Internal links are converted to router link for SPA navigation. Also, every `index.md` contained in each sub-directory will automatically be converted to `index.html`, with corresponding URL `/`. 36 | 37 | For example, given the following directory structure: 38 | 39 | ``` 40 | . 41 | ├─ index.md 42 | ├─ foo 43 | │ ├─ index.md 44 | │ ├─ one.md 45 | │ └─ two.md 46 | └─ bar 47 | ├─ index.md 48 | ├─ three.md 49 | └─ four.md 50 | ``` 51 | 52 | And providing you are in `foo/one.md`: 53 | 54 | ```md 55 | [Home](/) 56 | [foo](/foo/) 57 | [foo heading](./#heading) 58 | [bar - three](../bar/three) 59 | [bar - three](../bar/three.md) 60 | [bar - four](../bar/four.html) 61 | ``` 62 | 63 | ## Badge 64 | 65 | The badge lets you add status to your headers. 66 | 67 | ```html 68 | ### Title 69 | ### Title 70 | ### Title 71 | ### Title 72 | ``` 73 | 74 | Code above renders like: 75 | 76 | **custom element** 77 | 78 | **Title** 79 | 80 | **Cool NEW feature** 81 | 82 | **Pre-Alpha** 83 | 84 | ## Custom Containers 85 | 86 | Custom containers can be defined by their types, titles, and contents. 87 | 88 | ### Default Title 89 | 90 | **Input** 91 | 92 | ```md 93 | ::: info 94 | This is an info box. 95 | ::: 96 | 97 | ::: tip 98 | This is a tip. 99 | ::: 100 | 101 | ::: warning 102 | This is a warning. 103 | ::: 104 | 105 | ::: danger 106 | This is a dangerous warning. 107 | ::: 108 | 109 | ::: details 110 | This is a details block. 111 | ::: 112 | ``` 113 | 114 | **Output** 115 | 116 | ::: info 117 | This is an info box. 118 | ::: 119 | 120 | ::: tip 121 | This is a tip. 122 | ::: 123 | 124 | ::: warning 125 | This is a warning. 126 | ::: 127 | 128 | ::: danger 129 | This is a dangerous warning. 130 | ::: 131 | 132 | ::: details 133 | This is a details block. 134 | ::: 135 | 136 | ### Custom Title 137 | 138 | You may set custom title by appending the text right after the "type" of the container. 139 | 140 | **Input** 141 | 142 | ````md 143 | ::: danger STOP 144 | Danger zone, do not proceed 145 | ::: 146 | 147 | ::: details Click me to view the code 148 | 149 | ```js 150 | !invite[your_channel_name]; 151 | ``` 152 | 153 | ::: 154 | ```` 155 | 156 | **Output** 157 | 158 | ::: danger STOP 159 | Danger zone, do not proceed 160 | ::: 161 | 162 | ::: details Click me to view the code 163 | 164 | ```js 165 | !invite[your_channel_name]; 166 | ``` 167 | 168 | ::: 169 | 170 | ### Custom Block 171 | 172 | You can use it with `
` block tag 173 | 174 | **Input** 175 | 176 | ```js 177 |
178 | This is an info box. 179 |
180 | 181 |
182 | This is an info box. 183 |
184 | 185 |
186 | This is an info box. 187 |
188 | 189 |
190 | This is an info box. 191 |
192 | 193 |
194 | This is an info box. 195 |
196 | ``` 197 | 198 | **Output** 199 | 200 |
201 | This is an info box. 202 |
203 | 204 |
205 | This is an tip box. 206 |
207 | 208 |
209 | This is an warning box. 210 |
211 | 212 |
213 | This is an danger box. 214 |
215 | 216 |
217 | This is an details box. 218 |
219 | 220 | ## Buttons 221 | 222 | We have custom button style 223 | 224 | ### Large Button Style 225 | 226 | **Input** 227 | 228 | ```js 229 | 230 | 239 | ``` 240 | 241 | **Output** 242 | 243 | 244 | 253 | 254 | ### Small Button Style 255 | 256 | **Input** 257 | 258 | ```js 259 | 260 | 268 | ``` 269 | 270 | **Output** 271 | 272 | 273 | 281 | 282 | ## Discord 283 | ### Discord Application Commands Style 284 | 285 | We use a special component for Discord application commands. 286 | 287 | **Input** 288 | 289 | ```js 290 | 296 | 297 | ``` 298 | 299 | **Output** 300 | 301 | 307 | 308 | 309 | You can also use it with two options: 310 | 311 | **Input** 312 | 313 | ```js 314 | 322 | 323 | ``` 324 | 325 | **Output** 326 | 327 | 335 | 336 | 337 | ### Displaying Discord messages 338 | 339 | We use [@discord-message-components/vue](https://github.com/Danktuary/discord-message-components/blob/main/packages/vue/README.md) to display "fake" Discord messages on pages. The reason for this is to make it easy for you to create, easy for anyone in the future to edit, and avoid having to take screenshots and using too many images on a page at once. Here's a preview of the components: 340 | 341 | 342 | 343 | !ping 344 | 345 | 346 | , pong! Took 50ms 347 | 348 | 349 | 350 | The syntax to make this display is quite simple as well: 351 | 352 | ```js 353 | 354 | 355 | !ping 356 | 357 | 358 | , pong! Took 50ms 359 | 360 | 361 | ``` 362 | #### Custom Command Messages 363 | 364 | **Input** 365 | ```js 366 | 367 | 368 | !ping 369 | 370 | 371 | pong! Took 50ms 372 | 373 | 374 | ``` 375 | **Output** 376 | 377 | 378 | !ping 379 | 380 | 381 | pong! Took 50ms 382 | 383 | 384 | 385 | #### Slash Command messages 386 | 387 | **`ephemeral` Version** 388 | 389 | **Input** 390 | 391 | ```js 392 | 393 | 394 | 397 | 398 | OUTPUT 399 | 400 | 401 | 402 | ``` 403 | 404 | **Output** 405 | 406 | 407 | 408 | 412 | 413 | OUTPUT 414 | 415 | 416 | 417 | 418 | **`highlight` Version** 419 | 420 | **Input** 421 | 422 | ```js 423 | 424 | 425 | 428 | 429 | OUTPUT 430 | 431 | 432 | 433 | ``` 434 | 435 | **Output** 436 | 437 | 438 | 439 | 443 | 444 | OUTPUT 445 | 446 | 447 | 448 | 449 | ### Embed messages 450 | 451 | **Input** 452 | 453 | ```js 454 | 455 | 456 | everyone, TestUser is live on Twitch! Go check it out! 457 | 466 | 467 | 468 | ``` 469 | 470 | **Output** 471 | 472 | 473 | 474 | everyone, TestUser is live on Twitch! Go check it out! 475 | 484 | 485 | 486 | 487 | These components are made with [Vue](https://vuejs.org/), but if you aren't familiar with Vue, don't worry about it. Just understand that you'll usually only need the `profile="user"`/`profile="bot"` attribute for the `` component. All `` components must be children of a single `` component for it to display properly. 488 | 489 | Do note the casing in `` syntax instead of ``. This is due to how VuePress renders markdown and HTML inside markdown files. It doesn't recognize `` as an HTML element, therefore rendering anything indented inside it as a regular code block. 490 | 491 | These components feature messages, mentions, embeds, interactions, and more. You can read more about how to use them by checking out [@discord-message-components/vue](https://github.com/Danktuary/discord-message-components/blob/main/packages/vue/README.md). 492 | 493 | ## Advanced 494 | 495 | This docs uses [markdown-it](https://github.com/markdown-it/markdown-it) as the Markdown renderer. 496 | -------------------------------------------------------------------------------- /docs/discord-bot/commands.md: -------------------------------------------------------------------------------- 1 | # Commands 2 | 3 | ## Global Commands 4 | 5 | | Command | Response | 6 | | :----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 7 | | invite | Senchabot Discord bot invite url. | 8 | | cmds | {channel.name}'s Channel Commands: ... | 9 | | help | Senchabot's Commands: cmds, acmd, dcmd, ucmd, acmda, dcmda, sozluk, ping, invite, help. | 10 | | senchabot | An open-source, multi-platform bot designed for seamless integration with Twitch and Discord • [senchabot.app](https://senchabot.app) • [github.com/senchabot-opensource/monorepo](https://github.com/senchabot-opensource/monorepo) | 11 | | kampus | discord.gg/kampus - github.com/kamp-us | 12 | | frontendship | discord.gg/frontendship | 13 | | ping | pong! VoHiYo 14 | 15 | 16 | 29 | 30 | ## Module Commands 31 | 32 | 33 | 34 | 42 | 43 | 44 | 45 | 53 | 54 | 55 | 56 | 64 | 65 | 66 | 67 | 75 | 76 |
77 | 78 | ::: info Cooldown System 79 | Command usage cooldown time is 2 seconds per user. 80 | ::: 81 | -------------------------------------------------------------------------------- /docs/discord-bot/custom-api-system.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Custom API System 6 | 7 | This system allows you to send a GET request to a URL through the specified template and receive a response through a custom command you have added to your channel. 8 | 9 | ``` 10 | {customapi.https://...} 11 | ``` 12 | 13 | #### Adding Commands to Your Server 14 | 15 | ``` 16 | !acmd [command_name] [command_content {customapi.https://...}] 17 | ``` 18 | 19 | ## What You Can Do with Custom API 20 | 21 | ### Display the Currently Playing Song on Spotify 22 | 23 | 24 | 25 | 34 | 35 | ``` 36 | {customapi.https://spotify.aidenwallis.co.uk/u/...} 37 | ``` 38 | 39 | ::: info Example Command Add 40 | 41 | 42 | 43 | !acmd song Currently Playing: {customapi.https://spotify.aidenwallis.co.uk/u/...} 44 | 45 | 46 | New Command Added: song 47 | 48 | 49 | ::: 50 | 51 | ::: details Example Usage 52 | 53 | 54 | 55 | !song 56 | 57 | 58 | Currently Playing: ANGELPLAYA - DANGEROUS 59 | 60 | 61 | ::: 62 | 63 | ::: info Adding Spotify Widget to Your Stream 64 | 65 | Use the link in the format `https://nowplaying.aidenwallis.co.uk/...` under the title "_Now Playing Widget_" on Aiden Wallis' website as a _browser source_ in your streaming software (OBS Studio, Streamlabs...). 66 | 67 | ::: 68 | 69 | ### Generate Random Text 70 | 71 | ``` 72 | {customapi.https://techy-api.vercel.app/api/text} 73 | ``` 74 | ::: info Example Command Add 75 | 76 | 77 | 78 | !acmd text {customapi.https://techy-api.vercel.app/api/text} 79 | 80 | 81 | New Command Added: text 82 | 83 | 84 | ::: 85 | 86 | ::: details Example Usage 87 | 88 | 89 | 90 | !text 91 | 92 | 93 | The hardest part was setting the traffic velocity 94 | 95 | 96 | ::: 97 | -------------------------------------------------------------------------------- /docs/discord-bot/custom-commands.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Custom Commands 6 | 7 | ## Server Commands 8 | 9 | ### Command Add 10 | 11 | ``` 12 | !acmd [command_name] [command_content] 13 | ``` 14 | 15 | ::: details Example Usage 16 | 17 | 18 | 19 | 20 | !acmd senchabot https://senchabot.app/ 21 | 22 | 23 | New Command Added: senchabot 24 | 25 | 26 | ::: 27 | 28 | ::: info Information 29 | 30 | In global commands, the [`!ucmd`](/twitch-bot/custom-commands#command-update) update command does not work. The `!lurk` command is an exception in this regard. 31 | ::: 32 | 33 | ### Command Update 34 | 35 | ``` 36 | !ucmd [command_name] [new_command_content] 37 | ``` 38 | 39 | ::: details Example Usage 40 | 41 | 42 | 43 | 44 | !ucmd senchabot https://docs.senchabot.app 45 | 46 | 47 | Command Updated: senchabot 48 | 49 | 50 | ::: 51 | 52 | ### Command Delete 53 | 54 | ``` 55 | !dcmd [command_name] 56 | ``` 57 | 58 | ::: details Example Usage 59 | 60 | 61 | 62 | 63 | !dcmd senchabot 64 | 65 | 66 | Command Deleted: senchabot 67 | 68 | 69 | ::: 70 | 71 | ### Alias Add 72 | 73 | ``` 74 | !acmda [command_name] [command_alias] 75 | ``` 76 | 77 | ::: details Example Usage 78 | 79 | 80 | 81 | 82 | !acmda senchabot discord-bot 83 | 84 | 85 | New Command Aliases Added: discord-bot 86 | 87 | 88 | ::: 89 | 90 | #### Add multiple aliases 91 | 92 | ``` 93 | !acmda [command_name] [command_alias(es) separated by space] 94 | ``` 95 | 96 | ::: details Example Usage 97 | 98 | 99 | 100 | 101 | !acmda senchabot discord-bot twitch-bot 102 | 103 | 104 | New Command Aliases Added: discord-bot, twitch-bot 105 | 106 | 107 | ::: 108 | 109 | ### Alias Delete 110 | 111 | ``` 112 | !dcmda [command_alias] 113 | ``` 114 | 115 | ::: details Example Usage 116 | 117 | 118 | 119 | 120 | !dcmda discord-bot 121 | 122 | 123 | Command Alias Deleted: discord-bot 124 | 125 | 126 | ::: 127 | 128 | #### Delete multiple aliases 129 | 130 | ``` 131 | !dcmda [command_alias(es) separated by space] 132 | ``` 133 | 134 | ::: details Example Usage 135 | 136 | 137 | 138 | 139 | !dcmda discord-bot twitch-bot 140 | 141 | 142 | Command Alias Deleted: discord-bot, twitch-bot 143 | 144 | 145 | ::: 146 | 147 | ## Access to Server Commands 148 | 149 | ``` 150 | !cmds 151 | ``` 152 | 153 | ::: details Example Usage 154 | 155 | 156 | 157 | 158 | !cmds 159 | 160 | 161 | Commands: senchabot, discord, twitch, streamers 162 | 163 | 164 | ::: 165 | 166 | -------------------------------------------------------------------------------- /docs/discord-bot/getting-started.md: -------------------------------------------------------------------------------- 1 | # Getting Started 2 | 3 | ## Invite to Your Discord Server 4 | 5 | 6 | 7 | 15 | 16 | Then, give Senchabot the desired authorizations. _It is recommended to give the marked authorizations._ 17 | -------------------------------------------------------------------------------- /docs/discord-bot/live-stream-announcements.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 4] 3 | --- 4 | 5 | # Live Stream Announcements 6 | 7 | ## Live Stream and Broadcaster Custom Settings 8 | 9 | ### Adding a Streamer 10 |
11 | 17 | 18 | 19 | ::: details Example Usage 20 | 26 | 27 |
28 | 29 | 30 | 34 | 35 | `senchabot` kullanıcı adlı Twitch yayıncısının yayın duyuruları `twitch-streams` isimli yazı kanalı için aktif edildi. 36 | 37 | 38 | 39 | ::: 40 | 41 | ::: info Information 42 | 43 | When adding a Twitch streamer, you must have previously added a default announcement channel with the `/set-twitch announcement default-channel`, or you can specify the channel name optionally. 44 | ::: 45 | 46 | ### Customizing the Announcement Channel 47 | 48 | You can assign a custom announcement channel to streamers. 49 | 57 | 58 | 59 | ::: details Example Usage 60 | 68 | 69 |
70 | 71 | 72 | 76 | 77 | Live stream announcements for the Twitch user `senchabot` have been activated for the channel `twitch-streams`. 78 | 79 | 80 | 81 | ::: 82 | 83 | ::: info Information 84 | 85 | If you don't specify the `channel` option when adding a streamer, the streamer's announcements will be sent to [the default announcement channel](#default-announcement-channel). 86 | ::: 87 | 88 | ### Custom Announcement Messages 89 | 90 |
91 | 92 | #### Adding an Announcement Message 93 | 94 |
95 | 103 | 104 | 105 | ::: details Example Usage 106 | 114 | 115 |
116 | 117 | 118 | 122 | 123 | senchabot kullanıcı adlı Twitch yayıncısı için duyuru mesajı içeriği ayarlandı: `{twitch.username}, {stream.category} yayınına başladı! {stream.title} → {twitch.url}` 124 | 125 | 126 | 127 | ::: 128 | 129 | #### Removing an Announcement Message 130 | 131 |
132 | 138 | 139 | 140 | ::: details Example Usage 141 | 147 | 148 |
149 | 150 | 151 | 155 | 156 | senchabot kullanıcı adlı Twitch yayıncısına özgü yayın duyuru mesajı silindi. 157 | 158 | 159 | 160 | ::: 161 | 162 | ### Deleting a Streamer 163 | 164 |
165 | 171 | 172 | 173 | ::: details Example Usage 174 | 180 | 181 |
182 | 183 | 184 | 188 | 189 | The Twitch streamer `senchabot` has been deleted from the database. 190 | 191 | 192 | 193 | ::: 194 | 195 | ## Default Announcement Channel 196 | 197 | When adding Twitch streamers without specifying the `channel` option, their announcements are made in the default announcement channel. 198 | 199 | ### Adding a Channel 200 |
201 | 207 | 208 | 209 | ::: details Example Usage 210 | 216 | 217 |
218 | 219 | 220 | 224 | 225 | The channel `twitch-streams` has been set-twitch as the default announcement channel. 226 | 227 | 228 | 229 | ::: 230 | 231 | ### Removing the Channel 232 |
233 | 237 | 238 | 239 | ::: details Example Usage 240 | 244 | 245 |
246 | 247 | 248 | 252 | 253 | The default Twitch live stream announcement channel setting has been removed. 254 | 255 | 256 | 257 | ::: 258 | 259 | ## Default Announcement Message 260 | 261 | ### Adding an Announcement Message 262 | 263 |
264 | 270 | 271 | 272 | ::: details Example Usage 273 | 279 | 280 |
281 | 282 | 283 | 287 | 288 | Varsayılan yayın duyuru mesajı içeriği ayarlandı: `{twitch.username}, {stream.category} yayınına başladı! {stream.title} -> {twitch.url}` 289 | 290 | 291 | 292 | ::: 293 | 294 | ### Removing the Announcement Message 295 | 296 |
297 | 301 | 302 | 303 | ::: details Example Usage 304 | 308 | 309 |
310 | 311 | 312 | 316 | 317 | Varsayılan yayın duyuru mesajı içeriği kaldırıldı. Özelleştirilmiş duyuru mesajı olmayan yayıncıların duyuruları belirtilen formatta gönderilecektir. `{twitch.username}, {stream.category} yayınına başladı! {stream.title}: {twitch.url}` 318 | 319 | 320 | 321 | ::: 322 | -------------------------------------------------------------------------------- /docs/discord-bot/live-stream-events.md: -------------------------------------------------------------------------------- 1 | # Live Stream Events 2 | 3 | Senchabot creates server activity by tracking [live stream announcements](/discord-bot/live-stream-announcements) in the specified channels. 4 | 5 | ## Selecting the Event Channel 6 | 7 | Choose the live stream announcements channel that Senchabot will monitor to create Discord events. 8 | 14 | 15 | 16 | ::: details Example Usage 17 | 23 | 24 |
25 | 26 | 27 | 31 | 32 | The channel named `twitch-streams` has been added to the list for Twitch stream announcement events. 33 | 34 | 35 | 36 | ::: 37 | 38 | ## Removing the Event Channel 39 | 40 | Remove the specified channel from the list of channels that Senchabot tracks. 41 | 42 | 48 | 49 | 50 | ::: details Example Usage 51 | 57 | 58 |
59 | 60 | 61 | 65 | 66 | The text channel named `twitch-streams` has been removed from the list of stream event text channels. 67 | 68 | 69 | 70 | ::: 71 | -------------------------------------------------------------------------------- /docs/discord-bot/reminder-system.md: -------------------------------------------------------------------------------- 1 | # Reminder System 2 | -------------------------------------------------------------------------------- /docs/discord-bot/variables.md: -------------------------------------------------------------------------------- 1 | Twitch Stream Variables 2 | {twitch.username} 3 | {twitch.url} 4 | {stream.title} 5 | {stream.category} 6 | -------------------------------------------------------------------------------- /docs/getting-started.md: -------------------------------------------------------------------------------- 1 | # Getting Started -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | 4 | 5 | 13 | 14 | 15 | 23 | 24 | -------------------------------------------------------------------------------- /docs/public/16px/senchabot-16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/16px/senchabot-16px.png -------------------------------------------------------------------------------- /docs/public/16px/senchabot-nobg-1-16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/16px/senchabot-nobg-1-16px.png -------------------------------------------------------------------------------- /docs/public/16px/senchabot-nobg-16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/16px/senchabot-nobg-16px.png -------------------------------------------------------------------------------- /docs/public/32px/senchabot-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/32px/senchabot-32px.png -------------------------------------------------------------------------------- /docs/public/32px/senchabot-nobg-1-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/32px/senchabot-nobg-1-32px.png -------------------------------------------------------------------------------- /docs/public/32px/senchabot-nobg-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/32px/senchabot-nobg-32px.png -------------------------------------------------------------------------------- /docs/public/64px/senchabot-64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/64px/senchabot-64px.png -------------------------------------------------------------------------------- /docs/public/64px/senchabot-nobg-1-64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/64px/senchabot-nobg-1-64px.png -------------------------------------------------------------------------------- /docs/public/64px/senchabot-nobg-64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/64px/senchabot-nobg-64px.png -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/public/senchabot-logo.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senchabot-opensource/docs/06c9ba89a2afda6809558387b95add5f8de314fe/docs/public/senchabot-logo.ai -------------------------------------------------------------------------------- /docs/public/svg/senchabot-nobg-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/public/svg/senchabot-nobg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/public/svg/senchabot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/commands.md: -------------------------------------------------------------------------------- 1 | # Komutlar 2 | 3 | ## Ön Tanımlı Komutlar 4 | 5 | | Komut | Senchabot'un Yanıtı | 6 | | :----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 7 | | invite | Senchabot'un sunucu davet linkini gönderir. | 8 | | cmds | {channel.name}'s Channel Commands: ... | 9 | | help | Senchabot's Commands: cmds, acmd, dcmd, ucmd, acmda, dcmda, sozluk, ping, invite, help. | 10 | | senchabot | An open-source, multi-platform bot designed for seamless integration with Twitch and Discord • [senchabot.app](https://senchabot.app) • [github.com/senchabot-opensource/monorepo](https://github.com/senchabot-opensource/monorepo) | 11 | | kampus | discord.gg/kampus - github.com/kamp-us | 12 | | frontendship | discord.gg/frontendship | 13 | | ping | pong! VoHiYo | 14 | 15 | 35 | 36 | ## Sözlük 37 | 38 | ``` 39 | !sozluk [term_name] 40 | ``` 41 | 42 | ::: details Örnek Kullanım 43 | 44 | 45 | 46 | 47 | 48 | 49 | !sozluk senchabot 50 | 51 | 52 | 53 | 54 | Senchabot: Açık kaynak Discord ve Twitch botu. 55 | 56 | 57 | 58 | ::: 59 | 60 | 61 | 62 | ## Modül Komutları 63 | 64 | 65 | 66 | 74 | 75 | 76 | 77 | 85 | 86 | 87 | 88 | 96 | 97 | 98 | 99 | 107 | 108 |
109 | 110 | ::: info Cooldown Sistemi 111 | Komut kullanım bekleme süresi kullanıcı başına 2 saniyedir. 112 | ::: 113 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/custom-api-system.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Custom API Sistemi 6 | 7 | Belirtilen şablon aracılığıyla bir URL'ye GET isteği göndermenize ve kanalınıza eklemiş olduğunuz özel komut aracılığıyla yanıt almanıza olanak tanıyan sistemdir. 8 | 9 | ``` 10 | {customapi.https://...} 11 | ``` 12 | 13 | #### Sunucuna Komut Ekle 14 | 15 | ``` 16 | !acmd [komut_adı] [komut_içeriği {customapi.https://...}] 17 | ``` 18 | 19 | ## Custom API'yle Yapılabilecekler 20 | 21 | ### Spotify'da Çalan Şarkıyı Göster 22 | 23 | 24 | 25 | 34 | 35 | 36 | ``` 37 | {customapi.https://spotify.aidenwallis.co.uk/u/...} 38 | ``` 39 | ::: info Örnek Komut Ekleme 40 | 41 | 42 | 43 | !acmd şarkı Şu An Çalan Şarkı: {customapi.https://spotify.aidenwallis.co.uk/u/...} 44 | 45 | 46 | New Command Added: şarkı 47 | 48 | 49 | ::: 50 | 51 | ::: details Örnek Kullanım 52 | 53 | 54 | 55 | !şarkı 56 | 57 | 58 | Şu An Çalan Şarkı: ANGELPLAYA - DANGEROUS 59 | 60 | 61 | ::: 62 | 63 | ::: info Yayınınıza Spotify Widgetı Ekleme 64 | 65 | Aiden Wallis'in sitesinde bulunan _Now Playin Widget_ başlığı altındaki `https://nowplaying.aidenwallis.co.uk/...` şeklindeki linki kullanmakta olduğunuz yayın aracına (OBS Studio, Streamlabs...) _tarayıcı kaynağı_ olarak ekleyiniz. 66 | 67 | ::: 68 | 69 | ### Rastgele Metin Yazdırma 70 | 71 | ``` 72 | {customapi.https://techy-api.vercel.app/api/text} 73 | ``` 74 | ::: info Örnek Komut Ekleme 75 | 76 | 77 | 78 | !acmd metin {customapi.https://techy-api.vercel.app/api/text}. 79 | 80 | 81 | New Command Added: metin 82 | 83 | 84 | ::: 85 | 86 | ::: details Örnek Kullanım 87 | 88 | 89 | 90 | !metin 91 | 92 | 93 | The hardest part was setting the traffic velocity 94 | 95 | 96 | ::: 97 | 98 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/custom-commands.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Özel Komutlar 6 | 7 | ## Sunucu Komutları 8 | 9 | ### Komut Ekleme 10 | 11 | ``` 12 | !acmd [komut_adı] [komut_içeriği] 13 | ``` 14 | 15 | ::: details Örnek Kullanım 16 | 17 | 18 | 19 | 20 | !acmd senchabot https://senchabot.app/ 21 | 22 | 23 | New Command Added: senchabot 24 | 25 | 26 | ::: 27 | 28 | ### Komut Güncelleme 29 | 30 | ``` 31 | !ucmd [komut_adı] [yeni_komut_içeriği] 32 | ``` 33 | 34 | ::: details Örnek Kullanım 35 | 36 | 37 | 38 | !ucmd senchabot https://docs.senchabot.app 39 | 40 | 41 | Command Updated: senchabot 42 | 43 | 44 | ::: 45 | 46 | ### Komut Silme 47 | 48 | ``` 49 | !dcmd [komut_adı] 50 | ``` 51 | 52 | ::: details Örnek Kullanım 53 | 54 | 55 | 56 | !dcmd senchabot 57 | 58 | 59 | Command Deleted: senchabot 60 | 61 | 62 | ::: 63 | 64 | ### Alias Add 65 | 66 | ``` 67 | !acmda [komut_adı] [komut_takma_adı] 68 | ``` 69 | 70 | ::: details Örnek Kullanım 71 | 72 | 73 | 74 | !acmda senchabot discord-bot 75 | 76 | 77 | New Command Aliases Added: discord-bot 78 | 79 | 80 | ::: 81 | 82 | #### Çoklu takma ad ekleme 83 | 84 | ``` 85 | !acmda [komut_adı] [komut_takma_adları (boşluk bırakarak)] 86 | ``` 87 | 88 | ::: details Örnek Kullanım 89 | 90 | 91 | 92 | 93 | !acmda senchabot discord-bot twitch-bot 94 | 95 | 96 | New Command Aliases Added: discord-bot, twitch-bot 97 | 98 | 99 | ::: 100 | 101 | ### Takma Ad Silme 102 | 103 | ``` 104 | !dcmda [komut_takma_adı] 105 | ``` 106 | 107 | ::: details Örnek Kullanım 108 | 109 | 110 | 111 | 112 | !dcmda discord-bot 113 | 114 | 115 | Command Alias Deleted: discord-bot 116 | 117 | 118 | ::: 119 | 120 | #### Çoklu takma ad silme 121 | 122 | ``` 123 | !dcmda [komut_takma_adları (boşluk bırakarak)] 124 | ``` 125 | 126 | ::: details Örnek Kullanım 127 | 128 | 129 | 130 | 131 | !dcmda discord-bot twitch-bot 132 | 133 | 134 | Command Alias Deleted: discord-bot, twitch-bot 135 | 136 | 137 | ::: 138 | 139 | ## Kanal Komutlarına Erişim 140 | 141 | ``` 142 | !cmds 143 | ``` 144 | 145 | ::: details Örnek Yanıt 146 | 147 | 148 | 149 | 150 | !cmds 151 | 152 | 153 | Commands: senchabot, discord, twitch, streamers 154 | 155 | 156 | ::: 157 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/getting-started.md: -------------------------------------------------------------------------------- 1 | # Senchabot - Discord Kullanım Kılavuzu 2 | 3 | ## Discord Sunucunuza Davet Edin 4 | 5 | Senchabot'u sunucunuza davet ediniz. 6 | 7 | 8 | 9 | 17 | 18 | Ardından dilediğiniz rolleri Senchabot'a veriniz. _İşaretli rollerin verilmesi önerilir._ 19 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/live-stream-announcements.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 4] 3 | --- 4 | 5 | # Canlı Yayın Duyuruları 6 | 7 | ## Yayın ve Yayıncı Özel Ayarları 8 | 9 | ### Yayıncı Ekleme 10 |
11 | 17 | 18 | 19 | ::: details Örnek Kullanım 20 | 26 | 27 |
28 | 29 | 30 | 34 | 35 | `senchabot` kullanıcı adlı Twitch yayıncısının yayın duyuruları `twitch-streams` isimli yazı kanalı için aktif edildi. 36 | 37 | 38 | 39 | ::: 40 | 41 | ::: info Bilgilendirme 42 | 43 | Twitch yayıncısı eklerken daha önce `/set-twitch announcement default-channel` komutuyla varsayılan duyuru kanalı eklemiş olmalı veya isteğe bağlı kanal adını belirtmelisiniz. 44 | ::: 45 | 46 | ### Duyuru Kanalı Özelleştirme 47 | 48 | Yayıncılara özel duyuru kanalı atayabilirsininiz. 49 | 57 | 58 | 59 | ::: details Örnek Kullanım 60 | 68 | 69 |
70 | 71 | 72 | 76 | 77 | `senchabot` kullanıcı adlı Twitch yayıncısının yayın duyuruları `twitch-yayınları` isimli kanal için aktif edildi. 78 | 79 | 80 | 81 | ::: 82 | 83 | ::: info Bilgilendirme 84 | 85 | Yayıncı eklenirken `channel` opsiyonu yazılmazsa yayıncının duyuru mesajları [varsayılan duyuru kanalına](#varsayılan-duyuru-kanalı) gönderilir. 86 | ::: 87 | 88 | ### Özelleştirilmiş Duyuru Mesajı 89 |
90 | 98 | 99 | 100 | ::: details Örnek Kullanım 101 | 109 | 110 |
111 | 112 | 113 | 117 | 118 | senchabot kullanıcı adlı Twitch yayıncısı için duyuru mesajı içeriği ayarlandı: `{twitch.username}, {stream.category} yayınına başladı! {stream.title} → {twitch.url}` 119 | 120 | 121 | 122 | ::: 123 | 124 | #### Duyuru Mesajını Kaldırma 125 | 126 |
127 | 133 | 134 | 135 | ::: details Örnek Kullanım 136 | 142 | 143 |
144 | 145 | 146 | 150 | 151 | senchabot kullanıcı adlı Twitch yayıncısına özgü yayın duyuru mesajı silindi. 152 | 153 | 154 | 155 | ::: 156 | 157 | ### Yayıncı Silme 158 | 159 |
160 | 166 | 167 | 168 | ::: details Örnek Kullanım 169 | 175 | 176 |
177 | 178 | 179 | 183 | 184 | `senchabot` kullanıcı adlı Twitch streamer veritabanından silindi. 185 | 186 | 187 | 188 | ::: 189 | 190 | ## Varsayılan Duyuru Kanalı 191 | 192 | Twitch yayıncıları eklenirken `channel` opsiyonu girilmediğinde yayıncıların duyuruları varsayılan duyuru kanalında yapılır. 193 | 194 | ### Kanal Ekleme 195 |
196 | 202 | 203 | 204 | ::: details Örnek Kullanım 205 | 211 | 212 |
213 | 214 | 215 | 219 | 220 | `twitch-yayınları` isimli kanal varsayılan duyuru kanalı olarak ayarlandı. 221 | 222 | 223 | 224 | ::: 225 | 226 | ### Kanalı Kaldırma 227 |
228 | 232 | 233 | 234 | ::: details Örnek Kullanım 235 | 239 | 240 |
241 | 242 | 243 | 247 | 248 | Varsayılan Twitch canlı yayın duyuru kanalı ayarı kaldırıldı. 249 | 250 | 251 | 252 | ::: 253 | 254 | ## Varsayılan Duyuru Mesajı 255 | 256 | ### Duyuru Mesajı Ekleme 257 | 258 |
259 | 265 | 266 | 267 | ::: details Örnek Kullanım 268 | 274 | 275 |
276 | 277 | 278 | 282 | 283 | Yayın duyuru mesajı içeriği ayarlandı: `{twitch.username}, {stream.category} yayınına başladı! {stream.title} -> {twitch.url}` 284 | 285 | 286 | 287 | ::: 288 | 289 | ### Duyuru Mesajını Kaldırma 290 | 291 |
292 | 296 | 297 | 298 | ::: details Örnek Kullanım 299 | 303 | 304 |
305 | 306 | 307 | 311 | 312 | Varsayılan yayın duyuru mesajı içeriği kaldırıldı. Özelleştirilmiş duyuru mesajı olmayan yayıncıların duyuruları belirtilen formatta gönderilecektir. `{twitch.username}, {stream.category} yayınına başladı! {stream.title}: {twitch.url}` 313 | 314 | 315 | 316 | ::: 317 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/live-stream-events.md: -------------------------------------------------------------------------------- 1 | # Canlı Yayın Etkinlikleri 2 | 3 | Senchabot, belirtilen kanallarda [canlı yayın duyurularını](/tr/discord-bot/live-stream-announcements) takip ederek sunucu etkinliği oluşturur. 4 | 5 | ## Etkinlik Kanalını Belirleme 6 | 7 | Discord etkinliklerini oluşturmak için Senchabot'un mesajlarını takip edeceği canlı yayın duyuruları kanalı seçiniz. 8 | 9 | 15 | 16 | 17 | ::: details Örnek Kullanım 18 | 24 | 25 |
26 | 27 | 28 | 32 | 33 | `twitch-yayınları` isimli kanal Twitch yayın duyurusu etkinlikleri için listeye eklendi. 34 | 35 | 36 | 37 | ::: 38 | 39 | ## Etkinlik Kanalını Silme 40 | 41 | Senchabot'un mesajlarını takip ettiği kanallar listesinden belirtilen kanalı kaldırınız. 42 | 43 | 49 | 50 | 51 | ::: details Örnek Kullanım 52 | 58 | 59 |
60 | 61 | 62 | 66 | 67 | `twitch-yayınları` isimli yazı kanalı yayın etkinlik yazı kanalları listesinden kaldırıldı. 68 | 69 | 70 | 71 | ::: 72 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/reminder-system.md: -------------------------------------------------------------------------------- 1 | # Hatırlatıcı Sistemi 2 | -------------------------------------------------------------------------------- /docs/tr/discord-bot/variables.md: -------------------------------------------------------------------------------- 1 | # Komut Değişkenleri 2 | 3 | Komut içeriğine eklenen değişkenlerdir. 4 | 5 | ``` 6 | !acmd [komut_adı] [komut_içeriği {komut.değişkeni}] 7 | ``` 8 | 9 | ## `{user.name}` 10 | 11 | Komutu kullanan kişinin kullanıcı adını yazar. 12 | 13 | ::: details Örnek Kullanım 14 | 15 | Komut Ekleme 16 | 17 | ``` 18 | !acmd günaydın Günaydın {user.name}! 19 | 20 | ``` 21 | 22 | Kullanıcı Mesajı ve Yanıtı 23 | 24 | ``` 25 | senchabot-app: !günaydın 26 | 27 | Senchabot: Günaydın senchabot-app! 28 | 29 | ``` 30 | 31 | ::: 32 | 33 | Twitch Stream Variables 34 | {twitch.username} 35 | {twitch.url} 36 | {stream.title} 37 | {stream.category} 38 | -------------------------------------------------------------------------------- /docs/tr/getting-started.md: -------------------------------------------------------------------------------- 1 | # Başlamadan Önce 2 | -------------------------------------------------------------------------------- /docs/tr/index.md: -------------------------------------------------------------------------------- 1 | # Giriş 2 | 3 | 4 | 12 | 13 | 14 | 22 | 23 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/command-timer-system.md: -------------------------------------------------------------------------------- 1 | # Komut Zamanlayıcı Sistemi 2 | 3 | ## Komut Zamanlayıcısı Ekleme 4 | 5 | ``` 6 | !atimer [command_name] [interval (integer, minute)] 7 | ``` 8 | 9 | Belirlediğiniz süreyle istediğiniz [özel komutu](/tr/twitch-bot/custom-commands) döndürür. 10 | 11 | ::: details Örnek Kullanım 12 | 13 | Komut Ekleme 14 | 15 | ``` 16 | !atimer su-ic 30 17 | ``` 18 | 19 | Senchabot'un Yanıtı 20 | 21 | ``` 22 | Command Timer Enabled: su-ic. 23 | ``` 24 | Örnek Sonuç 25 | ``` 26 | Senchabot (08:00 AM): Su içmeyi unutma! 27 | Senchabot (08:30 AM): Su içmeyi unutma! 28 | Senchabot (09:00 AM): Su içmeyi unutma! 29 | Senchabot (09:30 AM): Su içmeyi unutma! 30 | ``` 31 | ::: 32 | 33 | 34 | ::: info Bilgilendirme 35 | `!timers` komutuyla komut zamanlayıcı listesine ulaşabilirsiniz. 36 | 37 | En fazla 3 komut zamanlayıcısı oluşturabilirsiniz. 38 | ::: 39 | 40 | 41 | ## Komut Zamanlayıcısı Silme 42 | 43 | ``` 44 | !dtimer [command_name] 45 | ``` 46 | 47 | ::: details Örnek Kullanım 48 | 49 | Komut Silme 50 | 51 | ``` 52 | !dtimer su-ic 53 | ``` 54 | 55 | Senchabot'un Yanıtı 56 | 57 | ``` 58 | Command Timer Deleted: su-ic. 59 | ``` 60 | 61 | ::: 62 | 63 | ## Zamanlayıcı Komutlarına Erişim 64 | 65 | ``` 66 | !timers 67 | ``` 68 | 69 | ::: details Örnek Yanıt 70 | 71 | ``` 72 | Command Timers: drink-water, senchabot, discord. 73 | ``` 74 | ::: 75 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/commands.md: -------------------------------------------------------------------------------- 1 | # Komutlar 2 | 3 | ## Ön Tanımlı Komutlar 4 | 5 | | Komut | Senchabot'un Yanıtı | 6 | | :----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 7 | | cmds | {channel.name}'s Channel Commands: ... | 8 | | help | Senchabot's Commands: cmds, acmd, dcmd, ucmd, acmda, dcmda, sozluk, ping, invite, help. | 9 | | senchabot | An open-source, multi-platform bot designed for seamless integration with Twitch and Discord • [senchabot.app](https://senchabot.app) • [github.com/senchabot-opensource/monorepo](https://github.com/senchabot-opensource/monorepo) | 10 | | kampus | discord.gg/kampus - github.com/kamp-us | 11 | | frontendship | discord.gg/frontendship | | 12 | | lurk | Teşekkürler! {user.name} | 13 | | ping | pong! VoHiYo | 14 | 15 | ::: info Bilgilendirme 16 | 17 | Ön tanımlı komutlarda [`!ucmd`](/tr/twitch-bot/custom-commands#komut-guncelleme) güncelleme komutu çalışmamaktadır. `!lurk` komutu bu konuda istisnadır. 18 | ::: 19 | 20 | 21 | 22 | 30 | 31 | ## Sözlük 32 | 33 | ``` 34 | !sozluk [term_name] 35 | ``` 36 | 37 | ::: details Örnek Kullanım 38 | 39 | Kullanıcı Mesajı 40 | 41 | ``` 42 | !sozluk senchabot 43 | ``` 44 | 45 | Senchabot'un Yanıtı 46 | 47 | ``` 48 | Açık kaynak Discord ve Twitch botu. 49 | ``` 50 | 51 | ::: 52 | 53 | ## Takip Çağrısı 54 | 55 | ``` 56 | !so {user.name} 57 | ``` 58 | 59 | ::: details Örnek Kullanım 60 | 61 | Kullanıcı Mesajı 62 | 63 | ``` 64 | !so senchabot 65 | ``` 66 | 67 | Senchabot'un Yanıtı 68 | 69 | ``` 70 | Follow @senchabot over at twitch.tv/senchabot <3 71 | ``` 72 | *Yukarıdaki mesajı yazdırıp takip çağrısı oluşturur.* 73 | ::: 74 | 75 | ## Modül Komutları 76 | 77 | 78 | 79 | 87 | 88 | 89 | 90 | 98 | 99 | 100 | 101 | 109 | 110 | 111 | 112 | 120 | 121 |
122 | 123 | ::: info Cooldown Sistemi 124 | Komut kullanım bekleme süresi kullanıcı başına 2 saniyedir. 125 | ::: 126 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/custom-api-system.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Custom API Sistemi 6 | 7 | Belirtilen şablon aracılığıyla bir URL'ye GET isteği göndermenize ve kanalınıza eklemiş olduğunuz özel komut aracılığıyla yanıt almanıza olanak tanıyan sistemdir. 8 | 9 | ``` 10 | {customapi.https://...} 11 | ``` 12 | 13 | #### Yayın Sohbetine Komut Ekle 14 | 15 | ``` 16 | !acmd [komut_adı] [komut_içeriği {customapi.https://...}] 17 | ``` 18 | 19 | ## Custom API'yle Yapılabilecekler 20 | 21 | ### Spotify'da Çalan Şarkıyı Göster 22 | 23 | 24 | 25 | 34 | 35 | ::: details Örnek Kullanım 36 | Komut Ekleme 37 | 38 | ``` 39 | !acmd şarkı Şu An Çalan Şarkı: {customapi.https://spotify.aidenwallis.co.uk/u/...} 40 | ``` 41 | 42 | Kullanıcı Mesajı 43 | 44 | ``` 45 | !şarkı 46 | ``` 47 | 48 | Senchabot'un Yanıtı 49 | 50 | ``` 51 | Şu An Çalan Şarkı: ANGELPLAYA - DANGEROUS 52 | ``` 53 | 54 | ::: 55 | 56 | ::: info Yayınınıza Spotify Widgetı Ekleme 57 | 58 | Aiden Wallis'in sitesinde bulunan _Now Playin Widget_ başlığı altındaki `https://nowplaying.aidenwallis.co.uk/...` şeklindeki linki kullanmakta olduğunuz yayın aracına (OBS Studio, Streamlabs...) _tarayıcı kaynağı_ olarak ekleyiniz. 59 | 60 | ::: 61 | 62 | ### Rastgele Metin Yazdırma 63 | 64 | ``` 65 | {customapi.https://techy-api.vercel.app/api/text} 66 | ``` 67 | 68 | ::: details Örnek Kullanım 69 | Komut Ekleme 70 | 71 | ``` 72 | !acmd metin {customapi.https://techy-api.vercel.app/api/text}. 73 | ``` 74 | 75 | Kullanıcı Mesajı 76 | 77 | ``` 78 | !metin 79 | ``` 80 | 81 | Senchabot'un Yanıtı 82 | 83 | ``` 84 | The hardest part was setting the traffic velocity 85 | ``` 86 | 87 | ::: 88 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/custom-commands.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Özel Komutlar 6 | 7 | ## Kanal Komutları 8 | 9 | ### Komut Ekleme 10 | 11 | ``` 12 | !acmd [komut_adı] [komut_içeriği] 13 | ``` 14 | 15 | ::: details Örnek Kullanım 16 | 17 | ``` 18 | !acmd senchabot https://senchabot.app/ 19 | ``` 20 | 21 | ::: 22 | 23 | ### Komut Güncelleme 24 | 25 | ``` 26 | !ucmd [komut_adı] [yeni_komut_içeriği] 27 | ``` 28 | 29 | ::: details Örnek Kullanım 30 | 31 | ``` 32 | !ucmd senchabot https://github.com/senchabot-opensource/monorepo 33 | ``` 34 | 35 | ::: 36 | 37 | ### Komut Silme 38 | 39 | ``` 40 | !dcmd [komut_adı] 41 | ``` 42 | 43 | ::: details Örnek Kullanım 44 | 45 | ``` 46 | !dcmd senchabot 47 | ``` 48 | 49 | ::: 50 | 51 | ### Alias Add 52 | 53 | ``` 54 | !acmda [komut_adı] [komut_takma_adı] 55 | ``` 56 | 57 | ::: details Örnek Kullanım 58 | 59 | ``` 60 | !acmda senchabot senchabot-link 61 | ``` 62 | 63 | ::: 64 | 65 | #### Çoklu takma ad ekleme 66 | 67 | ``` 68 | !acmda [komut_adı] [komut_takma_adları (boşluk bırakarak)] 69 | ``` 70 | 71 | ::: details Örnek Kullanım 72 | 73 | ``` 74 | !acmda senchabot senchabot-link senchabot-github senchabot-app 75 | ``` 76 | 77 | ::: 78 | 79 | ### Takma Ad Silme 80 | 81 | ``` 82 | !dcmda [komut_takma_adı] 83 | ``` 84 | 85 | ::: details Örnek Kullanım 86 | 87 | ``` 88 | !dcmda senchabot-link 89 | ``` 90 | 91 | ::: 92 | 93 | #### Çoklu takma ad silme 94 | 95 | ``` 96 | !dcmda [komut_takma_adları (boşluk bırakarak)] 97 | ``` 98 | 99 | ::: details Örnek Kullanım 100 | 101 | ``` 102 | !dcmda senchabot-link senchabot-github 103 | ``` 104 | 105 | ::: 106 | 107 | ## Kanal Komutlarına Erişim 108 | 109 | ``` 110 | !cmds 111 | ``` 112 | 113 | ::: details Örnek Yanıt 114 | 115 | ``` 116 | Senchabot's Channel Commands: senchabot, senchabot-site. 117 | ``` 118 | 119 | ::: 120 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/getting-started.md: -------------------------------------------------------------------------------- 1 | # Başlamadan Önce 2 | 3 | ## Twitch Kanalınıza Davet Edin 4 | 5 | Komutu [Senchabot](https://twitch.tv/senchabot/)'un sohbetine yazarak botu kanalınıza davet ediniz. 6 | 7 | ``` 8 | !invite [your_channel_name] 9 | ``` 10 | 11 | Ardından Senchabot'a `moderatör` rolü veriniz. 12 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/note-taking-system.md: -------------------------------------------------------------------------------- 1 | # Note Taking System 2 | 3 | ``` 4 | !note [content] 5 | ``` 6 | 7 | Kontrol Panelinin "Notlar" bölümünde listelenecek notları yayın sohbetinden oluşturmanızı sağlar. 8 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/reminder-system.md: -------------------------------------------------------------------------------- 1 | # Hatırlatıcı Sistemi 2 | 3 | ``` 4 | !reminder "[content]" [time] 5 | ``` 6 | 7 | Belirlediğiniz süre sonunda komuta girmiş olduğunuz metni döndürür. 8 | 9 | ::: details Örnek Kullanım 10 | 11 | Kullanıcı Mesajı 12 | 13 | ``` 14 | !reminder "Su içmeyi unutma!" 1h 15 | ``` 16 | 17 | 1 Saat Sonra Senchabot'un Yanıtı 18 | 19 | ``` 20 | Su içmeyi unutma! 21 | ``` 22 | 23 | ::: 24 | -------------------------------------------------------------------------------- /docs/tr/twitch-bot/variables.md: -------------------------------------------------------------------------------- 1 | # Komut Değişkenleri 2 | 3 | Komut içeriğine eklenen değişkenlerdir. 4 | 5 | ``` 6 | !acmd [komut_adı] [komut_içeriği {komut.değişkeni}] 7 | ``` 8 | 9 | ## `{user.name}` 10 | 11 | Komutu kullanan kişinin kullanıcı adını döndürür. 12 | 13 | ::: details Örnek Kullanım 14 | 15 | Komut Ekleme 16 | 17 | ``` 18 | !acmd günaydın Günaydın {user.name}! 19 | 20 | ``` 21 | 22 | Kullanıcı Mesajı ve Yanıtı 23 | 24 | ``` 25 | senchabot-app: !günaydın 26 | 27 | Senchabot: Günaydın senchabot-app! 28 | 29 | ``` 30 | 31 | ::: 32 | 33 | ## `{random_number}` 34 | 35 | 18-70 arasında rastgele sayı döndürür. 36 | 37 | ::: details Örnek Kullanım 38 | 39 | Komut Eklleme 40 | 41 | ``` 42 | !acmd yas {random.number} yaşındasın, bence! 43 | ``` 44 | 45 | Kullanıcı Mesajı ve Yanıtı 46 | 47 | ``` 48 | senchabot-app: !yas 49 | 50 | Senchabot: 29 yaşındasın, bence! 51 | ``` 52 | 53 | ::: 54 | 55 | ## `{date}` 56 | 57 | Komutun çalıştırıldığı tarihi döndürür. 58 | 59 | ::: details Örnek Kullanım 60 | 61 | Komut Ekleme 62 | 63 | ``` 64 | !acmd tarih Bugünün tarihi: {date} 65 | ``` 66 | 67 | Kullanıcı Mesajı ve Yanıtı 68 | 69 | ``` 70 | senchabot-app: !tarih 71 | 72 | Senchabot: Bugünün tarihi: 09/09/2023 73 | ``` 74 | 75 | ::: 76 | 77 | ## `{cmd.date}` 78 | 79 | Komutun oluşturulduğu tarihi döndürür. 80 | 81 | ::: details Örnek Kullanım 82 | 83 | Komut Ekleme 84 | 85 | ``` 86 | !acmd zafer 30 Ağustos Zafer Bayramı Kutlu Olsun! -{cmd.date} 87 | ``` 88 | 89 | Kullanıcı Mesajı ve Yanıtı 90 | 91 | ``` 92 | senchabot-app: !zafer 93 | 94 | Senchabot: 30 Ağustos Zafer Bayramı Kutlu Olsun! -30/08/2023 95 | ``` 96 | 97 | ::: 98 | 99 | ## `{channel.name}` 100 | 101 | Komutun çalıştırıldığı kanalın adını döndürür. 102 | 103 | ::: details Örnek Kullanım 104 | 105 | Komut Ekleme 106 | 107 | ``` 108 | !acmd twitch-botu {channel.name}, Senchabot'u kullanmayı tercih ediyor! 109 | ``` 110 | 111 | Kullanıcı Mesajı ve Yanıtı 112 | 113 | ``` 114 | senchabot-app: !twitch-botu 115 | 116 | Senchabot: senchabot-app, Senchabot'u kullanmayı tercih ediyor! 117 | ``` 118 | 119 | ::: 120 | -------------------------------------------------------------------------------- /docs/twitch-bot/command-timer-system.md: -------------------------------------------------------------------------------- 1 | # Command Timer System 2 | 3 | ## Add Command Timer 4 | 5 | ``` 6 | !atimer [command_name] [interval (integer, minute)] 7 | ``` 8 | Returns the [custom command](/twitch-bot/custom-commands) you specified within the specified time. 9 | 10 | ::: details Example Usage 11 | 12 | Adding the Command Timer 13 | 14 | ``` 15 | !atimer drink-water 30 16 | ``` 17 | 18 | Senchabot's Response 19 | 20 | ``` 21 | Command Timer Enabled: drink-water. 22 | ``` 23 | Example Result 24 | ``` 25 | Senchabot (08:00 AM): Don't forget to drink water! 26 | Senchabot (08:30 AM): Don't forget to drink water! 27 | Senchabot (09:00 AM): Don't forget to drink water! 28 | Senchabot (09:30 AM): Don't forget to drink water! 29 | ``` 30 | ::: 31 | 32 | 33 | ::: info Information 34 | 35 | You can list the command timers you added with the `!timers` command. 36 | 37 | You can create up to 3 command timers. 38 | ::: 39 | 40 | 41 | ## Delete Command Timer 42 | 43 | ``` 44 | !dtimer [command_name] 45 | ``` 46 | 47 | ::: details Example Usage 48 | 49 | Deleting the Command 50 | 51 | ``` 52 | !dtimer drink-water 53 | ``` 54 | 55 | Senchabot's Response 56 | 57 | ``` 58 | Command Timer Deleted: drink-water. 59 | ``` 60 | 61 | ::: 62 | 63 | ## Access to Command Timers 64 | 65 | ``` 66 | !timers 67 | ``` 68 | 69 | ::: details Example Response 70 | 71 | ``` 72 | Command Timers: drink-water, senchabot, discord. 73 | ``` 74 | ::: 75 | -------------------------------------------------------------------------------- /docs/twitch-bot/commands.md: -------------------------------------------------------------------------------- 1 | # Commands 2 | 3 | ## Global Commands 4 | 5 | | Command | Response | 6 | | :----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 7 | | cmds | {channel.name}'s Channel Commands: ... | 8 | | help | Senchabot's Commands: cmds, acmd, dcmd, ucmd, acmda, dcmda, sozluk, ping, invite, help. | 9 | | senchabot | An open-source, multi-platform bot designed for seamless integration with Twitch and Discord • [senchabot.app](https://senchabot.app) • [github.com/senchabot-opensource/monorepo](https://github.com/senchabot-opensource/monorepo) | 10 | | kampus | discord.gg/kampus - github.com/kamp-us | 11 | | frontendship | discord.gg/frontendship | 12 | | ping | pong! VoHiYo | 13 | 14 | ::: info Information 15 | 16 | In global commands, the [`!ucmd`](/twitch-bot/custom-commands#command-update) update command does not work. The `!lurk` command is an exception in this regard. 17 | ::: 18 | 19 | 20 | 21 | 29 | 30 | ## Shoutout 31 | 32 | ``` 33 | !so {user.name} 34 | ``` 35 | ::: details Example Usage 36 | 37 | User Message 38 | 39 | ``` 40 | !so senchabot 41 | ``` 42 | 43 | Senchabot's Response 44 | 45 | ``` 46 | Follow @senchabot over at twitch.tv/senchabot <3 47 | ``` 48 | *Returns the above message and generates a shoutout.* 49 | ::: 50 | 51 | 52 | ## Module Commands 53 | 54 | 55 | 56 | 64 | 65 | 66 | 67 | 75 | 76 | 77 | 78 | 86 | 87 | 88 | 89 | 97 | 98 |
99 | 100 | ::: info Cooldown System 101 | Command usage cooldown time is 2 seconds per user. 102 | ::: 103 | -------------------------------------------------------------------------------- /docs/twitch-bot/custom-api-system.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Custom API System 6 | 7 | This system allows you to send a GET request to a URL through the specified template and receive a response through a custom command you have added to your channel. 8 | 9 | ``` 10 | {customapi.https://...} 11 | ``` 12 | 13 | #### Adding Commands to the Broadcast Chat 14 | 15 | ``` 16 | !acmd [command_name] [command_content {customapi.https://...}] 17 | ``` 18 | 19 | ## What You Can Do with Custom API 20 | 21 | ### Display the Currently Playing Song on Spotify 22 | 23 | 24 | 25 | 34 | 35 | ::: details Example Usage 36 | 37 | Adding the Command 38 | 39 | ``` 40 | !acmd song Currently Playing: {customapi.https://spotify.aidenwallis.co.uk/u/...} 41 | ``` 42 | 43 | User Message 44 | 45 | ``` 46 | !song 47 | ``` 48 | 49 | Senchabot's Response 50 | 51 | ``` 52 | Currently Playing: ANGELPLAYA - DANGEROUS 53 | ``` 54 | 55 | ::: 56 | 57 | ::: info Adding Spotify Widget to Your Stream 58 | 59 | Use the link in the format `https://nowplaying.aidenwallis.co.uk/...` under the title "_Now Playing Widget_" on Aiden Wallis' website as a _browser source_ in your streaming software (OBS Studio, Streamlabs...). 60 | 61 | ::: 62 | 63 | ### Generate Random Text 64 | 65 | ``` 66 | {customapi.https://techy-api.vercel.app/api/text} 67 | ``` 68 | 69 | ::: details Example Usage 70 | Adding the Command 71 | 72 | ``` 73 | !acmd text {customapi.https://techy-api.vercel.app/api/text} 74 | ``` 75 | 76 | User Message 77 | 78 | ``` 79 | !text 80 | ``` 81 | 82 | Senchabot's Response 83 | 84 | ``` 85 | The hardest part was setting the traffic velocity 86 | ``` 87 | 88 | ::: -------------------------------------------------------------------------------- /docs/twitch-bot/custom-commands.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: [2, 3] 3 | --- 4 | 5 | # Custom Commands 6 | 7 | ## Channel Commands 8 | 9 | ### Command Add 10 | 11 | ``` 12 | !acmd [command_name] [command_content] 13 | ``` 14 | 15 | ::: details Example Usage 16 | 17 | ``` 18 | !acmd senchabot https://senchabot.app/ 19 | ``` 20 | 21 | ::: 22 | 23 | ### Command Update 24 | 25 | ``` 26 | !ucmd [command_name] [new_command_content] 27 | ``` 28 | 29 | ::: details Example Usage 30 | 31 | ``` 32 | !ucmd senchabot https://github.com/senchabot-opensource/monorepo 33 | ``` 34 | 35 | ::: 36 | 37 | ### Command Delete 38 | 39 | ``` 40 | !dcmd [command_name] 41 | ``` 42 | 43 | ::: details Example Usage 44 | 45 | ``` 46 | !dcmd senchabot 47 | ``` 48 | 49 | ::: 50 | 51 | ### Alias Add 52 | 53 | ``` 54 | !acmda [command_name] [command_alias] 55 | ``` 56 | 57 | ::: details Example Usage 58 | 59 | ``` 60 | !acmda senchabot senchabot-link 61 | ``` 62 | 63 | ::: 64 | 65 | #### Add multiple aliases 66 | 67 | ``` 68 | !acmda [command_name] [command_alias(es) separated by space] 69 | ``` 70 | 71 | ::: details Example Usage 72 | 73 | ``` 74 | !acmda senchabot senchabot-link senchabot-github senchabot-app 75 | ``` 76 | 77 | ::: 78 | 79 | ### Alias Delete 80 | 81 | ``` 82 | !dcmda [command_alias] 83 | ``` 84 | 85 | ::: details Example Usage 86 | 87 | ``` 88 | !dcmda senchabot-link 89 | ``` 90 | 91 | ::: 92 | 93 | #### Delete multiple aliases 94 | 95 | ``` 96 | !dcmda [command_alias(es) separated by space] 97 | ``` 98 | 99 | ::: details Example Usage 100 | 101 | ``` 102 | !dcmda senchabot-link senchabot-github 103 | ``` 104 | 105 | ::: 106 | 107 | ## Access to Channel Commands 108 | 109 | ``` 110 | !cmds 111 | ``` 112 | 113 | ::: details Example Response 114 | 115 | ``` 116 | Senchabot's Channel Commands: senchabot, senchabot-site. 117 | ``` 118 | ::: 119 | -------------------------------------------------------------------------------- /docs/twitch-bot/getting-started.md: -------------------------------------------------------------------------------- 1 | # Getting Started 2 | 3 | ## Invite to Your Twitch Channel 4 | 5 | Invite the bot to your channel by writing the command in [Senchabot](https://twitch.tv/senchabot/)'s chat. 6 | 7 | ``` 8 | !invite [your_channel_name] 9 | ``` 10 | 11 | Then, give moderation role to Senchabot. 12 | -------------------------------------------------------------------------------- /docs/twitch-bot/note-taking-system.md: -------------------------------------------------------------------------------- 1 | # Note Taking System 2 | 3 | ``` 4 | !note [content] 5 | ``` 6 | 7 | Allows you to create notes in the chat that will be listed in the "Notes" section of the control panel. 8 | -------------------------------------------------------------------------------- /docs/twitch-bot/reminder-system.md: -------------------------------------------------------------------------------- 1 | # Reminder System 2 | 3 | ``` 4 | !reminder "[content]" [time] 5 | ``` 6 | 7 | Returns the text you entered in the command after the specified time has elapsed. 8 | 9 | ::: details Example Usage 10 | 11 | User Message 12 | 13 | ``` 14 | !reminder "Don't forget to drink water!" 1h 15 | ``` 16 | 17 | Senchabot's Response, 1 Hour Later 18 | 19 | ``` 20 | Don't forget to drink water! 21 | ``` 22 | 23 | ::: 24 | -------------------------------------------------------------------------------- /docs/twitch-bot/variables.md: -------------------------------------------------------------------------------- 1 | # Command Variables 2 | 3 | 4 | 5 | Variables added to the command content. 6 | 7 | ``` 8 | !acmd [command_name] [command_content {command.variable}] 9 | ``` 10 | 11 | ## `{user.name}` 12 | 13 | 14 | 15 | Returns the username of the person using the command. 16 | 17 | ::: details Example Usage 18 | 19 | Command Add 20 | 21 | ``` 22 | !acmd good-morning Good morning {user.name}! 23 | 24 | ``` 25 | 26 | 27 | 28 | User Message and Response 29 | 30 | ``` 31 | senchabot-app: !good-morning 32 | 33 | Senchabot: Good morning senchabot-app! 34 | 35 | ``` 36 | 37 | ::: 38 | 39 | ## `{random_number}` 40 | 41 | 42 | 43 | Returns a random number between 18-70. 44 | 45 | ::: details Example Usage 46 | 47 | Command Add 48 | 49 | ``` 50 | !acmd age {random.number} 51 | ``` 52 | 53 | 54 | 55 | User Message and Response 56 | 57 | ``` 58 | senchabot-app: !age 59 | 60 | Senchabot: I think... You're 29 years old! 61 | ``` 62 | 63 | ::: 64 | 65 | ## `{date}` 66 | 67 | 68 | 69 | Returns the date of the day it is used. 70 | 71 | ::: details Example Usage 72 | 73 | Command Add 74 | 75 | ``` 76 | !acmd date Date: {date} 77 | ``` 78 | 79 | 80 | 81 | User Message and Response 82 | 83 | ``` 84 | senchabot-app: !date 85 | 86 | Senchabot: Date: 09/09/2023 87 | ``` 88 | 89 | ::: 90 | 91 | ## `{cmd.date}` 92 | 93 | 94 | 95 | Returns the date of the command was created. 96 | 97 | ::: details Example Usage 98 | 99 | Command Add 100 | 101 | ``` 102 | !acmd christmas Happy christmas! -{cmd.date} 103 | ``` 104 | 105 | 106 | 107 | User Message and Response 108 | 109 | ``` 110 | senchabot-app: !christmas 111 | 112 | Senchabot: Happy christmas! -25/12/2023 113 | ``` 114 | 115 | ::: 116 | 117 | ## `{channel.name}` 118 | 119 | 120 | 121 | Returns the name of the channel that the command is used. 122 | 123 | ::: details Example Usage 124 | 125 | Command Add 126 | 127 | ``` 128 | !acmd twitch-bot {channel.name} prefers to use the Senchabot! 129 | ``` 130 | 131 | 132 | 133 | User Message and Response 134 | 135 | ``` 136 | senchabot-app: !twitch-bot 137 | 138 | Senchabot: senchabot-app, prefers to use the Senchabot! 139 | ``` 140 | 141 | ::: 142 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "senchabot-docs", 3 | "version": "0.1.0", 4 | "description": "Official Senchabot Documentation", 5 | "main": "index.js", 6 | "repository": "https://github.com/senchabot-opensource/docs.git", 7 | "author": "Senchabot Dev Krew", 8 | "type": "module", 9 | "scripts": { 10 | "docs:dev": "vitepress dev docs", 11 | "docs:build": "vitepress build docs", 12 | "docs:preview": "vitepress preview docs" 13 | }, 14 | "devDependencies": { 15 | "vitepress": "^1.0.0-rc.10" 16 | }, 17 | "dependencies": { 18 | "@discord-message-components/vue": "^0.2.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@algolia/autocomplete-core@1.9.3": 6 | version "1.9.3" 7 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" 8 | integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== 9 | dependencies: 10 | "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" 11 | "@algolia/autocomplete-shared" "1.9.3" 12 | 13 | "@algolia/autocomplete-plugin-algolia-insights@1.9.3": 14 | version "1.9.3" 15 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" 16 | integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== 17 | dependencies: 18 | "@algolia/autocomplete-shared" "1.9.3" 19 | 20 | "@algolia/autocomplete-preset-algolia@1.9.3": 21 | version "1.9.3" 22 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" 23 | integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== 24 | dependencies: 25 | "@algolia/autocomplete-shared" "1.9.3" 26 | 27 | "@algolia/autocomplete-shared@1.9.3": 28 | version "1.9.3" 29 | resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" 30 | integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== 31 | 32 | "@algolia/cache-browser-local-storage@4.19.1": 33 | version "4.19.1" 34 | resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.19.1.tgz#d29f42775ed4d117182897ac164519c593faf399" 35 | integrity sha512-FYAZWcGsFTTaSAwj9Std8UML3Bu8dyWDncM7Ls8g+58UOe4XYdlgzXWbrIgjaguP63pCCbMoExKr61B+ztK3tw== 36 | dependencies: 37 | "@algolia/cache-common" "4.19.1" 38 | 39 | "@algolia/cache-common@4.19.1": 40 | version "4.19.1" 41 | resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.19.1.tgz#faa5eeacaffd6023c2cf26e9866bdb06193f9b26" 42 | integrity sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg== 43 | 44 | "@algolia/cache-in-memory@4.19.1": 45 | version "4.19.1" 46 | resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.19.1.tgz#afe4f0f21149800358379871089e0141fb72415b" 47 | integrity sha512-+PDWL+XALGvIginigzu8oU6eWw+o76Z8zHbBovWYcrtWOEtinbl7a7UTt3x3lthv+wNuFr/YD1Gf+B+A9V8n5w== 48 | dependencies: 49 | "@algolia/cache-common" "4.19.1" 50 | 51 | "@algolia/client-account@4.19.1": 52 | version "4.19.1" 53 | resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.19.1.tgz#1fa65881baab79ad35af6bcf44646a13b8d5edc9" 54 | integrity sha512-Oy0ritA2k7AMxQ2JwNpfaEcgXEDgeyKu0V7E7xt/ZJRdXfEpZcwp9TOg4TJHC7Ia62gIeT2Y/ynzsxccPw92GA== 55 | dependencies: 56 | "@algolia/client-common" "4.19.1" 57 | "@algolia/client-search" "4.19.1" 58 | "@algolia/transporter" "4.19.1" 59 | 60 | "@algolia/client-analytics@4.19.1": 61 | version "4.19.1" 62 | resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.19.1.tgz#e6ed79acd4de5a0284c9696bf4e1c25278ba34db" 63 | integrity sha512-5QCq2zmgdZLIQhHqwl55ZvKVpLM3DNWjFI4T+bHr3rGu23ew2bLO4YtyxaZeChmDb85jUdPDouDlCumGfk6wOg== 64 | dependencies: 65 | "@algolia/client-common" "4.19.1" 66 | "@algolia/client-search" "4.19.1" 67 | "@algolia/requester-common" "4.19.1" 68 | "@algolia/transporter" "4.19.1" 69 | 70 | "@algolia/client-common@4.19.1": 71 | version "4.19.1" 72 | resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.19.1.tgz#40a8387316fa61d62ad1091beb3a8e227f008e75" 73 | integrity sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA== 74 | dependencies: 75 | "@algolia/requester-common" "4.19.1" 76 | "@algolia/transporter" "4.19.1" 77 | 78 | "@algolia/client-personalization@4.19.1": 79 | version "4.19.1" 80 | resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.19.1.tgz#fe362e0684dc74c3504c3641c5a7488c6ae02e07" 81 | integrity sha512-8CWz4/H5FA+krm9HMw2HUQenizC/DxUtsI5oYC0Jxxyce1vsr8cb1aEiSJArQT6IzMynrERif1RVWLac1m36xw== 82 | dependencies: 83 | "@algolia/client-common" "4.19.1" 84 | "@algolia/requester-common" "4.19.1" 85 | "@algolia/transporter" "4.19.1" 86 | 87 | "@algolia/client-search@4.19.1": 88 | version "4.19.1" 89 | resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.19.1.tgz#5e54601aa5f5cea790cec3f2cde4af9d6403871e" 90 | integrity sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw== 91 | dependencies: 92 | "@algolia/client-common" "4.19.1" 93 | "@algolia/requester-common" "4.19.1" 94 | "@algolia/transporter" "4.19.1" 95 | 96 | "@algolia/logger-common@4.19.1": 97 | version "4.19.1" 98 | resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.19.1.tgz#0e46a11510f3e94e1afc0ac780ae52e9597be78f" 99 | integrity sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw== 100 | 101 | "@algolia/logger-console@4.19.1": 102 | version "4.19.1" 103 | resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.19.1.tgz#656a6f4ebb5de39af6ef7095c398d9ab3cceb87d" 104 | integrity sha512-jj72k9GKb9W0c7TyC3cuZtTr0CngLBLmc8trzZlXdfvQiigpUdvTi1KoWIb2ZMcRBG7Tl8hSb81zEY3zI2RlXg== 105 | dependencies: 106 | "@algolia/logger-common" "4.19.1" 107 | 108 | "@algolia/requester-browser-xhr@4.19.1": 109 | version "4.19.1" 110 | resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.19.1.tgz#7341ea2f980b8980a2976110142026721e452187" 111 | integrity sha512-09K/+t7lptsweRTueHnSnmPqIxbHMowejAkn9XIcJMLdseS3zl8ObnS5GWea86mu3vy4+8H+ZBKkUN82Zsq/zg== 112 | dependencies: 113 | "@algolia/requester-common" "4.19.1" 114 | 115 | "@algolia/requester-common@4.19.1": 116 | version "4.19.1" 117 | resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.19.1.tgz#f3396c77631b9d36e8d4d6f819a2c27f9ddbf7a1" 118 | integrity sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ== 119 | 120 | "@algolia/requester-node-http@4.19.1": 121 | version "4.19.1" 122 | resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.19.1.tgz#ea210de9642628b3bdda1dd7fcd1fcb686da442e" 123 | integrity sha512-6DK52DHviBHTG2BK/Vv2GIlEw7i+vxm7ypZW0Z7vybGCNDeWzADx+/TmxjkES2h15+FZOqVf/Ja677gePsVItA== 124 | dependencies: 125 | "@algolia/requester-common" "4.19.1" 126 | 127 | "@algolia/transporter@4.19.1": 128 | version "4.19.1" 129 | resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.19.1.tgz#b5787299740c4bec9ba05502d98c14b5999860c8" 130 | integrity sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ== 131 | dependencies: 132 | "@algolia/cache-common" "4.19.1" 133 | "@algolia/logger-common" "4.19.1" 134 | "@algolia/requester-common" "4.19.1" 135 | 136 | "@babel/parser@^7.20.15", "@babel/parser@^7.21.3": 137 | version "7.22.16" 138 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" 139 | integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== 140 | 141 | "@discord-message-components/core@^0.2.1": 142 | version "0.2.1" 143 | resolved "https://registry.yarnpkg.com/@discord-message-components/core/-/core-0.2.1.tgz#25ed35b3aa42eee89e6c9d4e084c747e40953aae" 144 | integrity sha512-oPxBpq5vS7yLYvfMcHpCt1JVcGuRtnksPsJoiAmtmWDOeiO83BWfWvC1Xhvb2B6gNpg/H6+y6XuX3FhuHORJfA== 145 | dependencies: 146 | "@discord-message-components/markdown" "^0.2.0" 147 | color-rgba "^2.2.3" 148 | 149 | "@discord-message-components/markdown@^0.2.0": 150 | version "0.2.0" 151 | resolved "https://registry.yarnpkg.com/@discord-message-components/markdown/-/markdown-0.2.0.tgz#532496d28a4a5ba352bab1a4947bd8f11ea99af6" 152 | integrity sha512-Av+Q6rUNTtYqKI0NqkcPDNoYv2U7YcWNQmAEDU1JMR7lZOoz5R/iSGV1TwAs6uoYNawDovBECiEQgIDUxKKPBg== 153 | dependencies: 154 | simple-markdown "^0.7.3" 155 | 156 | "@discord-message-components/vue@^0.2.1": 157 | version "0.2.1" 158 | resolved "https://registry.yarnpkg.com/@discord-message-components/vue/-/vue-0.2.1.tgz#34cf53a9aecec3ce32296963c0d35c4e8199c509" 159 | integrity sha512-BLs6JshamjKh28f9boWIDMZ/BqWqLfg9wUUGxE3PqnMaomqKgs1eeWMKff/20Ie1cBJ6vYSYCxxxQUsw97SptQ== 160 | dependencies: 161 | "@discord-message-components/core" "^0.2.1" 162 | 163 | "@docsearch/css@3.5.2", "@docsearch/css@^3.5.2": 164 | version "3.5.2" 165 | resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.5.2.tgz#610f47b48814ca94041df969d9fcc47b91fc5aac" 166 | integrity sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA== 167 | 168 | "@docsearch/js@^3.5.2": 169 | version "3.5.2" 170 | resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.5.2.tgz#a11cb2e7e62890e9e940283fed6972ecf632629d" 171 | integrity sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg== 172 | dependencies: 173 | "@docsearch/react" "3.5.2" 174 | preact "^10.0.0" 175 | 176 | "@docsearch/react@3.5.2": 177 | version "3.5.2" 178 | resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.5.2.tgz#2e6bbee00eb67333b64906352734da6aef1232b9" 179 | integrity sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng== 180 | dependencies: 181 | "@algolia/autocomplete-core" "1.9.3" 182 | "@algolia/autocomplete-preset-algolia" "1.9.3" 183 | "@docsearch/css" "3.5.2" 184 | algoliasearch "^4.19.1" 185 | 186 | "@esbuild/android-arm64@0.18.20": 187 | version "0.18.20" 188 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" 189 | integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== 190 | 191 | "@esbuild/android-arm@0.18.20": 192 | version "0.18.20" 193 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" 194 | integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== 195 | 196 | "@esbuild/android-x64@0.18.20": 197 | version "0.18.20" 198 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" 199 | integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== 200 | 201 | "@esbuild/darwin-arm64@0.18.20": 202 | version "0.18.20" 203 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" 204 | integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== 205 | 206 | "@esbuild/darwin-x64@0.18.20": 207 | version "0.18.20" 208 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" 209 | integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== 210 | 211 | "@esbuild/freebsd-arm64@0.18.20": 212 | version "0.18.20" 213 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" 214 | integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== 215 | 216 | "@esbuild/freebsd-x64@0.18.20": 217 | version "0.18.20" 218 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" 219 | integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== 220 | 221 | "@esbuild/linux-arm64@0.18.20": 222 | version "0.18.20" 223 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" 224 | integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== 225 | 226 | "@esbuild/linux-arm@0.18.20": 227 | version "0.18.20" 228 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" 229 | integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== 230 | 231 | "@esbuild/linux-ia32@0.18.20": 232 | version "0.18.20" 233 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" 234 | integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== 235 | 236 | "@esbuild/linux-loong64@0.18.20": 237 | version "0.18.20" 238 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" 239 | integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== 240 | 241 | "@esbuild/linux-mips64el@0.18.20": 242 | version "0.18.20" 243 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" 244 | integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== 245 | 246 | "@esbuild/linux-ppc64@0.18.20": 247 | version "0.18.20" 248 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" 249 | integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== 250 | 251 | "@esbuild/linux-riscv64@0.18.20": 252 | version "0.18.20" 253 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" 254 | integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== 255 | 256 | "@esbuild/linux-s390x@0.18.20": 257 | version "0.18.20" 258 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" 259 | integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== 260 | 261 | "@esbuild/linux-x64@0.18.20": 262 | version "0.18.20" 263 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" 264 | integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== 265 | 266 | "@esbuild/netbsd-x64@0.18.20": 267 | version "0.18.20" 268 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" 269 | integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== 270 | 271 | "@esbuild/openbsd-x64@0.18.20": 272 | version "0.18.20" 273 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" 274 | integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== 275 | 276 | "@esbuild/sunos-x64@0.18.20": 277 | version "0.18.20" 278 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" 279 | integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== 280 | 281 | "@esbuild/win32-arm64@0.18.20": 282 | version "0.18.20" 283 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" 284 | integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== 285 | 286 | "@esbuild/win32-ia32@0.18.20": 287 | version "0.18.20" 288 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" 289 | integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== 290 | 291 | "@esbuild/win32-x64@0.18.20": 292 | version "0.18.20" 293 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" 294 | integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== 295 | 296 | "@jridgewell/sourcemap-codec@^1.4.15": 297 | version "1.4.15" 298 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" 299 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 300 | 301 | "@types/prop-types@*": 302 | version "15.7.5" 303 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 304 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 305 | 306 | "@types/react@>=16.0.0": 307 | version "18.2.21" 308 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" 309 | integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA== 310 | dependencies: 311 | "@types/prop-types" "*" 312 | "@types/scheduler" "*" 313 | csstype "^3.0.2" 314 | 315 | "@types/scheduler@*": 316 | version "0.16.3" 317 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" 318 | integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== 319 | 320 | "@types/web-bluetooth@^0.0.17": 321 | version "0.0.17" 322 | resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz#5c9f3c617f64a9735d7b72a7cc671e166d900c40" 323 | integrity sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA== 324 | 325 | "@vue/compiler-core@3.3.4": 326 | version "3.3.4" 327 | resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" 328 | integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== 329 | dependencies: 330 | "@babel/parser" "^7.21.3" 331 | "@vue/shared" "3.3.4" 332 | estree-walker "^2.0.2" 333 | source-map-js "^1.0.2" 334 | 335 | "@vue/compiler-dom@3.3.4": 336 | version "3.3.4" 337 | resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" 338 | integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== 339 | dependencies: 340 | "@vue/compiler-core" "3.3.4" 341 | "@vue/shared" "3.3.4" 342 | 343 | "@vue/compiler-sfc@3.3.4": 344 | version "3.3.4" 345 | resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" 346 | integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== 347 | dependencies: 348 | "@babel/parser" "^7.20.15" 349 | "@vue/compiler-core" "3.3.4" 350 | "@vue/compiler-dom" "3.3.4" 351 | "@vue/compiler-ssr" "3.3.4" 352 | "@vue/reactivity-transform" "3.3.4" 353 | "@vue/shared" "3.3.4" 354 | estree-walker "^2.0.2" 355 | magic-string "^0.30.0" 356 | postcss "^8.1.10" 357 | source-map-js "^1.0.2" 358 | 359 | "@vue/compiler-ssr@3.3.4": 360 | version "3.3.4" 361 | resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" 362 | integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== 363 | dependencies: 364 | "@vue/compiler-dom" "3.3.4" 365 | "@vue/shared" "3.3.4" 366 | 367 | "@vue/devtools-api@^6.5.0": 368 | version "6.5.0" 369 | resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" 370 | integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== 371 | 372 | "@vue/reactivity-transform@3.3.4": 373 | version "3.3.4" 374 | resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" 375 | integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== 376 | dependencies: 377 | "@babel/parser" "^7.20.15" 378 | "@vue/compiler-core" "3.3.4" 379 | "@vue/shared" "3.3.4" 380 | estree-walker "^2.0.2" 381 | magic-string "^0.30.0" 382 | 383 | "@vue/reactivity@3.3.4": 384 | version "3.3.4" 385 | resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" 386 | integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== 387 | dependencies: 388 | "@vue/shared" "3.3.4" 389 | 390 | "@vue/runtime-core@3.3.4": 391 | version "3.3.4" 392 | resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" 393 | integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== 394 | dependencies: 395 | "@vue/reactivity" "3.3.4" 396 | "@vue/shared" "3.3.4" 397 | 398 | "@vue/runtime-dom@3.3.4": 399 | version "3.3.4" 400 | resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" 401 | integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== 402 | dependencies: 403 | "@vue/runtime-core" "3.3.4" 404 | "@vue/shared" "3.3.4" 405 | csstype "^3.1.1" 406 | 407 | "@vue/server-renderer@3.3.4": 408 | version "3.3.4" 409 | resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" 410 | integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== 411 | dependencies: 412 | "@vue/compiler-ssr" "3.3.4" 413 | "@vue/shared" "3.3.4" 414 | 415 | "@vue/shared@3.3.4": 416 | version "3.3.4" 417 | resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" 418 | integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== 419 | 420 | "@vueuse/core@10.4.1", "@vueuse/core@^10.4.1": 421 | version "10.4.1" 422 | resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.4.1.tgz#fc2c8a83a571c207aaedbe393b22daa6d35123f2" 423 | integrity sha512-DkHIfMIoSIBjMgRRvdIvxsyboRZQmImofLyOHADqiVbQVilP8VVHDhBX2ZqoItOgu7dWa8oXiNnScOdPLhdEXg== 424 | dependencies: 425 | "@types/web-bluetooth" "^0.0.17" 426 | "@vueuse/metadata" "10.4.1" 427 | "@vueuse/shared" "10.4.1" 428 | vue-demi ">=0.14.5" 429 | 430 | "@vueuse/integrations@^10.4.1": 431 | version "10.4.1" 432 | resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.4.1.tgz#a48356a0bad49f5e724cd9acaebd73d2b66f22a9" 433 | integrity sha512-uRBPyG5Lxoh1A/J+boiioPT3ELEAPEo4t8W6Mr4yTKIQBeW/FcbsotZNPr4k9uz+3QEksMmflWloS9wCnypM7g== 434 | dependencies: 435 | "@vueuse/core" "10.4.1" 436 | "@vueuse/shared" "10.4.1" 437 | vue-demi ">=0.14.5" 438 | 439 | "@vueuse/metadata@10.4.1": 440 | version "10.4.1" 441 | resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.4.1.tgz#9d2ff5c67abf17a8c07865c2413fbd0e92f7b7d7" 442 | integrity sha512-2Sc8X+iVzeuMGHr6O2j4gv/zxvQGGOYETYXEc41h0iZXIRnRbJZGmY/QP8dvzqUelf8vg0p/yEA5VpCEu+WpZg== 443 | 444 | "@vueuse/shared@10.4.1": 445 | version "10.4.1" 446 | resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.4.1.tgz#d5ce33033c156efb60664b5d6034d6cd4e2f530c" 447 | integrity sha512-vz5hbAM4qA0lDKmcr2y3pPdU+2EVw/yzfRsBdu+6+USGa4PxqSQRYIUC9/NcT06y+ZgaTsyURw2I9qOFaaXHAg== 448 | dependencies: 449 | vue-demi ">=0.14.5" 450 | 451 | algoliasearch@^4.19.1: 452 | version "4.19.1" 453 | resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.19.1.tgz#18111fb422eaf841737adb92d5ab12133d244218" 454 | integrity sha512-IJF5b93b2MgAzcE/tuzW0yOPnuUyRgGAtaPv5UUywXM8kzqfdwZTO4sPJBzoGz1eOy6H9uEchsJsBFTELZSu+g== 455 | dependencies: 456 | "@algolia/cache-browser-local-storage" "4.19.1" 457 | "@algolia/cache-common" "4.19.1" 458 | "@algolia/cache-in-memory" "4.19.1" 459 | "@algolia/client-account" "4.19.1" 460 | "@algolia/client-analytics" "4.19.1" 461 | "@algolia/client-common" "4.19.1" 462 | "@algolia/client-personalization" "4.19.1" 463 | "@algolia/client-search" "4.19.1" 464 | "@algolia/logger-common" "4.19.1" 465 | "@algolia/logger-console" "4.19.1" 466 | "@algolia/requester-browser-xhr" "4.19.1" 467 | "@algolia/requester-common" "4.19.1" 468 | "@algolia/requester-node-http" "4.19.1" 469 | "@algolia/transporter" "4.19.1" 470 | 471 | ansi-sequence-parser@^1.1.0: 472 | version "1.1.1" 473 | resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf" 474 | integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg== 475 | 476 | color-name@^1.0.0: 477 | version "1.1.4" 478 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 479 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 480 | 481 | color-parse@^1.4.2: 482 | version "1.4.3" 483 | resolved "https://registry.yarnpkg.com/color-parse/-/color-parse-1.4.3.tgz#6dadfb49128c554c60c49d63f3d025f2c5a7ff22" 484 | integrity sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A== 485 | dependencies: 486 | color-name "^1.0.0" 487 | 488 | color-rgba@^2.2.3: 489 | version "2.4.0" 490 | resolved "https://registry.yarnpkg.com/color-rgba/-/color-rgba-2.4.0.tgz#ae85819c530262c29fc2da129fc7c8f9efc57015" 491 | integrity sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q== 492 | dependencies: 493 | color-parse "^1.4.2" 494 | color-space "^2.0.0" 495 | 496 | color-space@^2.0.0: 497 | version "2.0.1" 498 | resolved "https://registry.yarnpkg.com/color-space/-/color-space-2.0.1.tgz#da39871175baf4a5785ba519397df04b8d67e0fa" 499 | integrity sha512-nKqUYlo0vZATVOFHY810BSYjmCARrG7e5R3UE3CQlyjJTvv5kSSmPG1kzm/oDyyqjehM+lW1RnEt9It9GNa5JA== 500 | 501 | csstype@^3.0.2, csstype@^3.1.1: 502 | version "3.1.2" 503 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" 504 | integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== 505 | 506 | esbuild@^0.18.10: 507 | version "0.18.20" 508 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" 509 | integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== 510 | optionalDependencies: 511 | "@esbuild/android-arm" "0.18.20" 512 | "@esbuild/android-arm64" "0.18.20" 513 | "@esbuild/android-x64" "0.18.20" 514 | "@esbuild/darwin-arm64" "0.18.20" 515 | "@esbuild/darwin-x64" "0.18.20" 516 | "@esbuild/freebsd-arm64" "0.18.20" 517 | "@esbuild/freebsd-x64" "0.18.20" 518 | "@esbuild/linux-arm" "0.18.20" 519 | "@esbuild/linux-arm64" "0.18.20" 520 | "@esbuild/linux-ia32" "0.18.20" 521 | "@esbuild/linux-loong64" "0.18.20" 522 | "@esbuild/linux-mips64el" "0.18.20" 523 | "@esbuild/linux-ppc64" "0.18.20" 524 | "@esbuild/linux-riscv64" "0.18.20" 525 | "@esbuild/linux-s390x" "0.18.20" 526 | "@esbuild/linux-x64" "0.18.20" 527 | "@esbuild/netbsd-x64" "0.18.20" 528 | "@esbuild/openbsd-x64" "0.18.20" 529 | "@esbuild/sunos-x64" "0.18.20" 530 | "@esbuild/win32-arm64" "0.18.20" 531 | "@esbuild/win32-ia32" "0.18.20" 532 | "@esbuild/win32-x64" "0.18.20" 533 | 534 | estree-walker@^2.0.2: 535 | version "2.0.2" 536 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 537 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 538 | 539 | focus-trap@^7.5.2: 540 | version "7.5.2" 541 | resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" 542 | integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw== 543 | dependencies: 544 | tabbable "^6.2.0" 545 | 546 | fsevents@~2.3.2: 547 | version "2.3.3" 548 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 549 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 550 | 551 | jsonc-parser@^3.2.0: 552 | version "3.2.0" 553 | resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" 554 | integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== 555 | 556 | magic-string@^0.30.0: 557 | version "0.30.3" 558 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" 559 | integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== 560 | dependencies: 561 | "@jridgewell/sourcemap-codec" "^1.4.15" 562 | 563 | mark.js@8.11.1: 564 | version "8.11.1" 565 | resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" 566 | integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== 567 | 568 | minisearch@^6.1.0: 569 | version "6.1.0" 570 | resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-6.1.0.tgz#6e74e743dbd0e88fa5ca52fef2391e0aa7055252" 571 | integrity sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg== 572 | 573 | nanoid@^3.3.6: 574 | version "3.3.6" 575 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" 576 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== 577 | 578 | picocolors@^1.0.0: 579 | version "1.0.0" 580 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 581 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 582 | 583 | postcss@^8.1.10, postcss@^8.4.27: 584 | version "8.4.29" 585 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" 586 | integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== 587 | dependencies: 588 | nanoid "^3.3.6" 589 | picocolors "^1.0.0" 590 | source-map-js "^1.0.2" 591 | 592 | preact@^10.0.0: 593 | version "10.17.1" 594 | resolved "https://registry.yarnpkg.com/preact/-/preact-10.17.1.tgz#0a1b3c658c019e759326b9648c62912cf5c2dde1" 595 | integrity sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA== 596 | 597 | rollup@^3.27.1: 598 | version "3.29.0" 599 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.0.tgz#1b40e64818afc979c7e5bef93de675829288986b" 600 | integrity sha512-nszM8DINnx1vSS+TpbWKMkxem0CDWk3cSit/WWCBVs9/JZ1I/XLwOsiUglYuYReaeWWSsW9kge5zE5NZtf/a4w== 601 | optionalDependencies: 602 | fsevents "~2.3.2" 603 | 604 | shiki@^0.14.3: 605 | version "0.14.4" 606 | resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.4.tgz#2454969b466a5f75067d0f2fa0d7426d32881b20" 607 | integrity sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ== 608 | dependencies: 609 | ansi-sequence-parser "^1.1.0" 610 | jsonc-parser "^3.2.0" 611 | vscode-oniguruma "^1.7.0" 612 | vscode-textmate "^8.0.0" 613 | 614 | simple-markdown@^0.7.3: 615 | version "0.7.3" 616 | resolved "https://registry.yarnpkg.com/simple-markdown/-/simple-markdown-0.7.3.tgz#e32150b2ec6f8287197d09869fd928747a9c5640" 617 | integrity sha512-uGXIc13NGpqfPeFJIt/7SHHxd6HekEJYtsdoCM06mEBPL9fQH/pSD7LRM6PZ7CKchpSvxKL4tvwMamqAaNDAyg== 618 | dependencies: 619 | "@types/react" ">=16.0.0" 620 | 621 | source-map-js@^1.0.2: 622 | version "1.0.2" 623 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 624 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 625 | 626 | tabbable@^6.2.0: 627 | version "6.2.0" 628 | resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" 629 | integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== 630 | 631 | vite@^4.4.9: 632 | version "4.4.9" 633 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" 634 | integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== 635 | dependencies: 636 | esbuild "^0.18.10" 637 | postcss "^8.4.27" 638 | rollup "^3.27.1" 639 | optionalDependencies: 640 | fsevents "~2.3.2" 641 | 642 | vitepress@^1.0.0-rc.10: 643 | version "1.0.0-rc.10" 644 | resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.0.0-rc.10.tgz#c33361e84a1ad64d3eb3039dc302dc4f00054585" 645 | integrity sha512-+MsahIWqq5WUEmj6MR4obcKYbT7im07jZPCQPdNJExkeOSbOAJ4xypSLx88x7rvtzWHhHc5aXbOhCRvGEGjFrw== 646 | dependencies: 647 | "@docsearch/css" "^3.5.2" 648 | "@docsearch/js" "^3.5.2" 649 | "@vue/devtools-api" "^6.5.0" 650 | "@vueuse/core" "^10.4.1" 651 | "@vueuse/integrations" "^10.4.1" 652 | focus-trap "^7.5.2" 653 | mark.js "8.11.1" 654 | minisearch "^6.1.0" 655 | shiki "^0.14.3" 656 | vite "^4.4.9" 657 | vue "^3.3.4" 658 | 659 | vscode-oniguruma@^1.7.0: 660 | version "1.7.0" 661 | resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" 662 | integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== 663 | 664 | vscode-textmate@^8.0.0: 665 | version "8.0.0" 666 | resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" 667 | integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== 668 | 669 | vue-demi@>=0.14.5: 670 | version "0.14.6" 671 | resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" 672 | integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== 673 | 674 | vue@^3.3.4: 675 | version "3.3.4" 676 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" 677 | integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== 678 | dependencies: 679 | "@vue/compiler-dom" "3.3.4" 680 | "@vue/compiler-sfc" "3.3.4" 681 | "@vue/runtime-dom" "3.3.4" 682 | "@vue/server-renderer" "3.3.4" 683 | "@vue/shared" "3.3.4" 684 | --------------------------------------------------------------------------------