From 7227e04394e12f2771260416f6eb55d7a1e0536f Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Sat, 24 Dec 2022 12:58:11 +0900
Subject: [PATCH 01/37] Reset commit
---
...20\343\202\260\345\240\261\345\221\212.md" | 25 -
...57\343\202\250\343\202\271\343\203\210.md" | 13 -
.github/dependabot.yml | 11 -
.github/workflows/codeql-analysis.yml | 74 --
.github/workflows/main.yml | 33 -
.gitignore | 129 ---
CODE_OF_CONDUCT.md | 128 ---
CONTRIBUTING.md | 23 -
LICENSE | 674 --------------
README.md | 1 -
cogs/5000.py | 71 --
cogs/afk.py | 78 --
cogs/auto-news.py | 26 -
cogs/ban_member.py | 28 -
cogs/bot_info.py | 30 -
cogs/bot_invite.py | 83 --
cogs/bot_process.py | 44 -
cogs/embed.py | 81 --
cogs/global-chat.py | 64 --
cogs/help.py | 59 --
cogs/imgcheck.py | 111 ---
cogs/ping.py | 16 -
cogs/role_all.py | 54 --
cogs/role_list.py | 22 -
cogs/splatoon2.py | 12 -
cogs/trans.py | 44 -
cogs/uptime.py | 16 -
cogs/userinfo.py | 111 ---
cogs/verify.py | 56 --
cogs/voicetext.py | 32 -
voice/voice.mp3 => index.js | 0
index.ts | 0
main.py | 68 --
package.json | 10 +
poetry.lock | 844 ------------------
pyproject.toml | 15 -
webserver.py | 18 -
37 files changed, 10 insertions(+), 3094 deletions(-)
delete mode 100644 ".github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
delete mode 100644 ".github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
delete mode 100644 .github/dependabot.yml
delete mode 100644 .github/workflows/codeql-analysis.yml
delete mode 100644 .github/workflows/main.yml
delete mode 100644 .gitignore
delete mode 100644 CODE_OF_CONDUCT.md
delete mode 100644 CONTRIBUTING.md
delete mode 100644 LICENSE
delete mode 100644 README.md
delete mode 100644 cogs/5000.py
delete mode 100644 cogs/afk.py
delete mode 100644 cogs/auto-news.py
delete mode 100644 cogs/ban_member.py
delete mode 100644 cogs/bot_info.py
delete mode 100644 cogs/bot_invite.py
delete mode 100644 cogs/bot_process.py
delete mode 100644 cogs/embed.py
delete mode 100644 cogs/global-chat.py
delete mode 100644 cogs/help.py
delete mode 100644 cogs/imgcheck.py
delete mode 100644 cogs/ping.py
delete mode 100644 cogs/role_all.py
delete mode 100644 cogs/role_list.py
delete mode 100644 cogs/splatoon2.py
delete mode 100644 cogs/trans.py
delete mode 100644 cogs/uptime.py
delete mode 100644 cogs/userinfo.py
delete mode 100644 cogs/verify.py
delete mode 100644 cogs/voicetext.py
rename voice/voice.mp3 => index.js (100%)
create mode 100644 index.ts
delete mode 100644 main.py
create mode 100644 package.json
delete mode 100644 poetry.lock
delete mode 100644 pyproject.toml
delete mode 100644 webserver.py
diff --git "a/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md" "b/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
deleted file mode 100644
index 12bbaf9..0000000
--- "a/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
+++ /dev/null
@@ -1,25 +0,0 @@
----
-name: バグ報告
-about: バグを報告するためのIssue
-title: 'bug: ○○が動作しない'
-labels: bug
-assignees: ''
-
----
-
-**バグについて説明する**
-バグの内容を明確かつ簡潔に説明すること
-
-**再現方法**
-動作を再現するための手順を書いて下さい。
-
-**期待される動作**
-期待したことが明確に、かつ簡潔に書かれていること。
-
-**スクリーンショット**
-問題を説明するためのスクリーンショットを貼り付けて下さい。
-
-**Discordの何版で発生しますか?**
-(例) Android版
-
-**追加情報**
diff --git "a/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md" "b/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
deleted file mode 100644
index 6bf03c8..0000000
--- "a/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
+++ /dev/null
@@ -1,13 +0,0 @@
----
-name: 機能リクエスト
-about: EightBotに機能を提案する
-title: 'Feature Request: ○○を追加してほしい'
-labels: enhancement
-assignees: ''
-
----
-
-**ご希望の内容**
-作ってほしいものを明確かつ簡潔に説明すること。
-
-**追加情報**
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index ac6621f..0000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# To get started with Dependabot version updates, you'll need to specify which
-# package ecosystems to update and where the package manifests are located.
-# Please see the documentation for all configuration options:
-# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
-
-version: 2
-updates:
- - package-ecosystem: "" # See documentation for possible values
- directory: "/" # Location of package manifests
- schedule:
- interval: "weekly"
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index 33b7a50..0000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-# For most projects, this workflow file will not need changing; you simply need
-# to commit it to your repository.
-#
-# You may wish to alter this file to override the set of languages analyzed,
-# or to provide custom queries or build logic.
-#
-# ******** NOTE ********
-# We have attempted to detect the languages in your repository. Please check
-# the `language` matrix defined below to confirm you have the correct set of
-# supported CodeQL languages.
-#
-name: "CodeQL"
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- # The branches below must be a subset of the branches above
- branches: [ "main" ]
- schedule:
- - cron: '36 8 * * 1'
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
- security-events: write
-
- strategy:
- fail-fast: false
- matrix:
- language: [ 'python' ]
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
- # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v2
- with:
- languages: ${{ matrix.language }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
-
- # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
- # queries: security-extended,security-and-quality
-
-
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@v2
-
- # ℹ️ Command-line programs to run using the OS shell.
- # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
-
- # If the Autobuild fails above, remove it and uncomment the following three lines.
- # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
-
- # - run: |
- # echo "Run, Build Application using script"
- # ./location_of_script_within_repo/buildscript.sh
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
- with:
- category: "/language:${{matrix.language}}"
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index 21cc655..0000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-# This workflow will install Python dependencies, run tests and lint with a single version of Python
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
-
-name: Flake8 Lint
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-permissions:
- contents: read
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v3
- - name: Set up Python 3.8
- uses: actions/setup-python@v4
- with:
- python-version: "3.8"
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install flake8
- - name: Lint with flake8
- run: |
- flake8 . --count --ignore=E501,E722,C901 --select=E9,F63,F7,F82 --show-source --statistics
- flake8 . --count --ignore=E501,E722,C901 --exit-zero --max-complexity=10 --max-line-length=127 --statistics
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index b2ebdde..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,129 +0,0 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-wheels/
-pip-wheel-metadata/
-share/python-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-MANIFEST
-
-# PyInstaller
-# Usually these files are written by a python script from a template
-# before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.nox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-*.py,cover
-.hypothesis/
-.pytest_cache/
-
-# Translations
-*.mo
-*.pot
-.vscode/
-# Django stuff:
-*.log
-local_settings.py
-db.sqlite3
-db.sqlite3-journal
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# IPython
-profile_default/
-ipython_config.py
-
-# pyenv
-.python-version
-
-# pipenv
-# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
-# However, in case of collaboration, if having platform-specific dependencies or dependencies
-# having no cross-platform support, pipenv may install dependencies that don't work, or not
-# install all needed dependencies.
-#Pipfile.lock
-
-# PEP 582; used by e.g. github.com/David-OConnor/pyflow
-__pypackages__/
-
-# Celery stuff
-celerybeat-schedule
-celerybeat.pid
-
-# SageMath parsed files
-*.sage.py
-
-# Environments
-.env
-.venv
-env/
-venv/
-ENV/
-env.bak/
-venv.bak/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-
-# mypy
-.mypy_cache/
-.dmypy.json
-dmypy.json
-
-# Pyre type checker
-.pyre/
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index dc63861..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socio-economic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people
-* Being respectful of differing opinions, viewpoints, and experiences
-* Giving and gracefully accepting constructive feedback
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience
-* Focusing on what is best not just for us as individuals, but for the
- overall community
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-support server.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 08a836d..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# この Bot へ貢献
-
-## Issue を作成するとき
-
-1. その内容の Issue が既に存在していないかを確認して下さい。(クローズ済みのものも)
-2. 内容を書き込みます。(テンプレートの場合は文字などを変更します)
-3. Issue を作成します。
-
-## Pull request を作成する時
-
-1. その内容の Pull request が既に存在していないかを確認して下さい。(マージ済み、クローズ済みのものも)
-2. もう実装されていないか確認して下さい。
-3. Fork し、コードを書いて、内容を書き込みます。
-4. Pull request を作成します。
- WIP の場合は、`🚧WIP: oo`にしてください。
-
-## コミットメッセージ
-
-何かを作った: `✨new: ○○`
-何かを修正した: `🐛fix: ○○`
-何かを変更した: `🔄change: ○○`
-何かを更新した: `🆙update: ○○`
-何かを削除した: `🗑️delete: oo`
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index bd908fe..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C) 2022 EightBot Developer
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C) 2022 EightBot Developer
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/README.md b/README.md
deleted file mode 100644
index 86bd3e3..0000000
--- a/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# EightBot
\ No newline at end of file
diff --git a/cogs/5000.py b/cogs/5000.py
deleted file mode 100644
index 6e07a2d..0000000
--- a/cogs/5000.py
+++ /dev/null
@@ -1,71 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-import urllib.parse
-
-
-class gosentyouen(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.choices(
- type=[
- app_commands.Choice(name="png(お勧め)", value="png"),
- app_commands.Choice(name="jpg", value="jpg"),
- app_commands.Choice(name="webp", value="webp"),
- ]
- )
- @app_commands.choices(
- hoshii=[
- app_commands.Choice(name="固定する", value="true"),
- app_commands.Choice(name="固定しない", value="false"),
- ]
- )
- @app_commands.choices(
- quality=[
- app_commands.Choice(name="低", value="30"),
- app_commands.Choice(name="中", value="70"),
- app_commands.Choice(name="高", value="100"),
- ]
- )
- @app_commands.choices(
- noalpha=[
- app_commands.Choice(name="白にする", value="true"),
- app_commands.Choice(name="白にしない", value="false"),
- ]
- )
- @app_commands.choices(
- rainbow=[
- app_commands.Choice(name="虹色にする", value="true"),
- app_commands.Choice(name="虹色にしない", value="false"),
- ]
- )
- @app_commands.describe(
- hoshii="下部文字列を「欲しい!」に固定する",
- noalpha="背景色を白にする",
- rainbow="虹色にする",
- type="画像拡張子",
- quality="画質(1-100)",
- bottom="下部文字列",
- top="上部文字列",
- )
- @app_commands.command(name="5000", description="5000兆円ほしいを生成します。")
- async def gosen(
- self,
- i: discord.Interaction,
- top: str,
- bottom: str,
- type: str,
- quality: str,
- hoshii: str,
- noalpha: str,
- rainbow: str,
- ):
- embed = discord.Embed(title="5000兆円ほしい!!", color=0x3498DB).set_image(url=f"https://gsapi.cbrx.io/image?top={urllib.parse.quote(top)}&bottom={urllib.parse.quote(bottom)}&type={urllib.parse.quote(type)}&q={urllib.parse.quote(quality)}&hoshii={urllib.parse.quote(hoshii)}&noalpha={urllib.parse.quote(noalpha)}&rainbow={urllib.parse.quote(rainbow)}")
- await i.response.send_message(
- embed=embed
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(gosentyouen(bot))
diff --git a/cogs/afk.py b/cogs/afk.py
deleted file mode 100644
index c00a18f..0000000
--- a/cogs/afk.py
+++ /dev/null
@@ -1,78 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-from replit import db
-import discord
-
-
-def afk_set_db(key, data):
- db[f"afk_{key}"] = data
-
-
-def afk_get(key):
- return db[f"afk_{key}"]
-
-
-class afk(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(reason="afkになる理由")
- @app_commands.command(name="afk_set", description="afkをセット又は解除します。")
- async def afks(self, i: discord.Interaction, reason: str):
- try:
- afk_set_db(int(i.user.id), reason)
- await i.response.send_message(
- embed=discord.Embed(
- title="<:check_mark:985366958537076766> : 成功",
- description="afkをセットしました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
- except:
- await i.response.send_message(
- embed=discord.Embed(
- title="<:error_mark:985366305156767794> : 失敗",
- description="何らかのエラーが発生しました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
-
- @app_commands.command(name="afk_kaizyo", description="afkを解除します")
- async def afkk(self, i: discord.Interaction):
- try:
- afk_set_db(int(i.user.id), False)
- await i.response.send_message(
- embed=discord.Embed(
- title="<:check_mark:985366958537076766> : 成功",
- description="afkを解除しました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
- except:
- await i.response.send_message(
- embed=discord.Embed(
- title="<:error_mark:985366305156767794> : 失敗",
- description="何らかのエラーが発生しました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
-
- @commands.Cog.listener(name="on_message")
- async def afk_msg(self, message: discord.Message):
- try:
- if message.mentions:
- for d in message.mentions:
- if afk_get[int(d.id)]:
- await message.channel.send(
- "このユーザーはafkです。(こののメッセージは10秒後に削除されます。)", delete_after=10
- )
- except:
- pass
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(afk(bot))
diff --git a/cogs/auto-news.py b/cogs/auto-news.py
deleted file mode 100644
index 8217d2d..0000000
--- a/cogs/auto-news.py
+++ /dev/null
@@ -1,26 +0,0 @@
-import discord
-from discord.ext import commands
-
-
-class auto_news(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_message")
- async def msg_auto_news(self, msg: discord.Message):
- if msg.channel.type == discord.ChannelType.news:
- if msg.channel.topic:
- if msg.channel.topic.startswith("eight-auto-news"):
- await msg.publish()
- await msg.add_reaction("✅")
- return
- else:
- return
- else:
- return
- else:
- return
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(auto_news(bot))
diff --git a/cogs/ban_member.py b/cogs/ban_member.py
deleted file mode 100644
index db50753..0000000
--- a/cogs/ban_member.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class ban_member(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="ban_member", description="Banされたユーザー一覧を表示します。")
- async def ban_members(self, i: discord.Interaction):
- m = []
- async for entry in i.guild.bans(limit=999999):
- m.append(f"{entry.user.name}, ")
- if not len(m) == 0:
- end = len(m) - 1
- m[end] = m[end].split(", ")[0]
- send_content = "".join(m)
- elif len(m) == 0:
- send_content = "Banされたユーザーはいません。"
- try:
- await i.response.send_message(embed=discord.Embed(title="Banされたユーザー", description=send_content, color=0x3498DB), ephemeral=True)
- except:
- await i.response.send_message(embed=discord.Embed(title="Banされたユーザー", description="取得できませんでした。", color=0x3498DB), ephemeral=True)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(ban_member(bot))
diff --git a/cogs/bot_info.py b/cogs/bot_info.py
deleted file mode 100644
index e2169fa..0000000
--- a/cogs/bot_info.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-from replit import db
-
-
-def bot_command_count_get(data):
- return db[f"bot_command_{data}_count_db"]
-
-
-def bot_command_all_count_db_get():
- return db[f"bot_command_all_count_db"]
-
-
-class bot_info(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="bot_info", description="Botの情報を表示します。")
- async def botinfo(self, i: discord.Interaction):
- await i.response.send_message(
- embed=discord.Embed(title="Botの情報", color=0x3498DB).add_field(
- name="全コマンドの合計実行数", value=str(bot_command_all_count_db_get())
- ),
- ephemeral=True,
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(bot_info(bot))
diff --git a/cogs/bot_invite.py b/cogs/bot_invite.py
deleted file mode 100644
index 1488800..0000000
--- a/cogs/bot_invite.py
+++ /dev/null
@@ -1,83 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-from replit import db
-
-
-def db_set(key, data):
- db[f"bot_invite_db_id_{key}"] = data
-
-
-def db_get(key):
- return db[f"bot_invite_db_id_{key}"]
-
-class MyView(discord.ui.View):
- def __init__(self):
- super().__init__(timeout=None)
- self.add_item(MySelect())
-
-class MySelect(discord.ui.Select):
- def __init__(self):
- super().__init__(placeholder="招待するBotの権限を選択して下さい",
- min_values=1,
- custom_id="bot_invite_myview_select_menu",
- max_values=1,
- options=[
- discord.SelectOption(
- label="管理者",
- description="全ての権限を有効にしたURLを生成します。",
- value="admin",
- ),
- discord.SelectOption(
- label="権限選択式", description="全ての権限を選択式にしたURLを生成します。", value="all"
- ),
- discord.SelectOption(
- label="権限なし", description="全ての権限をなしにしたURLを生成します。", value="none"
- ),
- ])
-
- async def callback(self, i: discord.Interaction):
- bot_id = db_get(i.message.id)
- d = self.values[0]
- if d == "admin":
- await i.response.send_message(
- ephemeral=True,
- content=f"[Botを招待]({discord.utils.oauth_url(int(bot_id), permissions=discord.Permissions(permissions=discord.Permissions.administrator.flag))})"
- )
- elif d == "all":
- await i.response.send_message(
- ephemeral=True,
- content=f"[Botを招待]({discord.utils.oauth_url(int(bot_id), permissions=discord.Permissions(permissions=discord.Permissions.all().value))})"
- )
- elif d == "none":
- await i.response.send_message(
- ephemeral=True,
- content=f"[Botを招待]({discord.utils.oauth_url(int(bot_id))})"
- )
- else:
- await i.response.send_message("不明なパラメーターが選択されました。", ephemeral=True)
-
-class bot_invite(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(bot="招待するBot")
- @app_commands.command(name="bot_invite", description="Botの招待リンクを生成します。")
- async def botinvite(self, i: discord.Interaction, bot: discord.User = None):
- if bot:
- if bot.bot:
- await i.response.send_message("セレクトメニューをクリックして選択してください")
- msg = await self.bot.get_channel(i.channel.id).send(view=MyView())
- db_set(int(msg.id), int(bot.id))
- self.bot.add_view(MyView(), message_id=msg.id)
- else:
- await i.response.send_message("指定したものはBotではありません。")
- else:
- await i.response.send_message("セレクトメニューをクリックして選択してください")
- msg = await self.bot.get_channel(i.channel.id).send(view=MyView())
- db_set(int(msg.id), int(self.bot.user.id))
- self.bot.add_view(MyView(), message_id=msg.id)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(bot_invite(bot))
diff --git a/cogs/bot_process.py b/cogs/bot_process.py
deleted file mode 100644
index 4f3b560..0000000
--- a/cogs/bot_process.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import discord
-from discord.ext import commands
-from replit import db
-
-
-def bot_command_count_get(data):
- return db[f"bot_command_{data}_count_db"]
-
-
-def bot_command_count(data):
- try:
- db[f"bot_command_{data}_count_db"] = int(bot_command_count_get(data)) + 1
- except KeyError:
- db[f"bot_command_{data}_count_db"] = 0 + 1
-
-
-def bot_command_all_count_db_get():
- return db["bot_command_all_count_db"]
-
-
-def bot_command_count_p1():
- try:
- db["bot_command_all_count_db"] = int(bot_command_all_count_db_get()) + 1
- return
- except KeyError:
- db["bot_command_all_count_db"] = 0 + 1
-
-
-class bot_process(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_interaction")
- async def interaction(self, i: discord.Interaction):
- if i.type == discord.InteractionType.application_command:
- bot_command_count_p1()
- if i.command:
- bot_command_count(data=i.command.name)
- else:
- return
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(bot_process(bot))
diff --git a/cogs/embed.py b/cogs/embed.py
deleted file mode 100644
index 47e6ee3..0000000
--- a/cogs/embed.py
+++ /dev/null
@@ -1,81 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-from discord import ui, TextStyle
-
-
-class Modal(ui.Modal, title='Embed作成パネル'):
- titles = ui.TextInput(label="タイトル", style=TextStyle.long,
- placeholder="埋め込みのタイトル。256文字まで", max_length=256, required=False)
- description = ui.TextInput(label="説明", style=TextStyle.long,
- placeholder="埋め込みの説明。4000文字まで", max_length=4000, required=True)
- set_footer_text = ui.TextInput(label="フッターテキスト", style=TextStyle.long,
- placeholder="フッターテキスト。2048文字まで", max_length=2048, required=False)
- f_icon_url = ui.TextInput(label="フッターアイコン", style=TextStyle.short,
- placeholder="フッターアイコンのURL。Http(s)のみ", required=False)
- samuneiru = ui.TextInput(label="サムネイル", style=TextStyle.short,
- placeholder="埋め込みコンテンツのサムネイル。Http(s)のみ", required=False)
-
- async def on_submit(self, interaction: discord.Interaction):
- if str(self.f_icon_url).startswith("http://") or str(self.samuneiru).startswith("http://") or str(self.f_icon_url).startswith("https://") or str(self.samuneiru).startswith("https://"):
- await interaction.response.send_message("URLはhttp(s)から始まります。", ephemeral=True)
- return
- embed = discord.Embed(title=self.titles, description=self.description)
- embed.set_footer(text=self.set_footer_text, icon_url=self.f_icon_url)
- embed.set_thumbnail(url=self.samuneiru)
- buttonView = discord.ui.View(timeout=None)
- buttonView.add_item(discord.ui.Button(
- label="Discord Color", style=discord.ButtonStyle.primary, custom_id="color_01"
- ))
- buttonView.add_item(
- discord.ui.Button(
- label="灰色", style=discord.ButtonStyle.secondary, custom_id="color_02"
- ))
- buttonView.add_item(
- discord.ui.Button(
- label="緑", style=discord.ButtonStyle.success, custom_id="color_03"
- ))
- buttonView.add_item(
- discord.ui.Button(
- label="赤", style=discord.ButtonStyle.danger, custom_id="color_04"
- ))
- await interaction.response.send_message(embed=embed, view=buttonView)
-
-
-class embed_make(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_interaction")
- async def color_interaction(self, i: discord.Interaction):
- if i.data.get("custom_id") == "color_01":
- em = i.message.embeds[0]
- em.color = 0x5865F2
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
- if i.data.get("custom_id") == "color_02":
- em = i.message.embeds[0]
- em.color = 0x4F545C
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
- if i.data.get("custom_id") == "color_03":
- em = i.message.embeds[0]
- em.color = 0x43B581
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
- if i.data.get("custom_id") == "color_04":
- em = i.message.embeds[0]
- em.color = 0xF04747
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
-
- else:
- return
-
- @app_commands.command(name="embed_make", description="Embedを作成し、送信します。")
- async def embed_make(self, i: discord.Interaction):
- await i.response.send_modal(Modal())
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(embed_make(bot))
diff --git a/cogs/global-chat.py b/cogs/global-chat.py
deleted file mode 100644
index 99c913b..0000000
--- a/cogs/global-chat.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import discord
-from discord.ext import commands
-
-
-class global_chat_cog(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_message")
- async def global_chat_msg_sys(self, message: discord.Message):
- if message.channel.type != discord.ChannelType.text:
- return
- if message.channel.topic:
- if not message.channel.topic.startswith("eight-global"):
- return
- if message.author.bot:
- return
- for channel in self.bot.get_all_channels():
- if channel.type != discord.ChannelType.text:
- continue
- if not channel.topic:
- continue
- if channel.topic.startswith("eight-global"):
- if channel == message.channel:
- continue
- embed = discord.Embed(description=message.content, color=0x3498DB)
- if hasattr(message.author.avatar, 'key'):
- embed.set_author(name="{}#{}".format(message.author.name, message.author.discriminator), icon_url="https://media.discordapp.net/avatars/{}/{}.png?size=1024".format(
- message.author.id, message.author.avatar.key))
- else:
- embed.set_author(name="{}#{}".format(
- message.author.name, message.author.discriminator), url=f"https://discord.com/users/{message.author.id}")
- if hasattr(message.guild.icon, 'key'):
- embed.set_footer(text="{} / mID:{}".format(message.guild.name, message.id),
- icon_url="https://media.discordapp.net/icons/{}/{}.png?size=1024".format(message.guild.id, message.guild.icon.key))
- else:
- embed.set_footer(
- text="{} / mID:{}".format(message.guild.name, message.id))
- if message.attachments != []:
- embed.set_image(url=message.attachments[0].url)
- if message.stickers != []:
- embed.set_thumbnail(url=message.stickers[0].url)
- if message.reference:
- reference_msg = await message.channel.fetch_message(message.reference.message_id)
- if reference_msg.embeds and reference_msg.author == self.bot.user:
- reference_message_content = reference_msg.embeds[0].description
- reference_message_author = reference_msg.embeds[0].author.name
- elif reference_msg.author != self.bot.user:
- reference_message_content = reference_msg.content
- reference_message_author = reference_msg.author.name + \
- '#'+reference_msg.author.discriminator
- reference_content = ""
- for string in reference_message_content.splitlines():
- reference_content += "> " + string + "\n"
- reference_value = "**@{}**\n{}".format(
- reference_message_author, reference_content)
- embed.add_field(
- name='返信', value=reference_value, inline=True)
-
- await channel.send(embed=embed)
- await message.add_reaction('✅')
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(global_chat_cog(bot))
diff --git a/cogs/help.py b/cogs/help.py
deleted file mode 100644
index b308abf..0000000
--- a/cogs/help.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import discord
-from discord.ext import commands
-import Paginator
-from discord import app_commands
-
-a = "Tips: /help コマンド名でコマンドを検索できます。"
-cmd = []
-
-class Help(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
- for command in self.bot.tree.walk_commands():
- cmd.append(app_commands.Choice(name=command.name, value=command.name))
-
- @discord.app_commands.choices(
- cmd=cmd
- )
- @app_commands.command(name="help", description="helpを表示します。")
- async def help(self, i: discord.Interaction, cmd: str = None) -> None:
- if not cmd:
- he = discord.Embed(title="ページ2", color=0x3498DB)
- he.set_footer(text=a)
- ee = discord.Embed(
- title="ページ1",
- color=0x3498DB,
- ).set_footer(text=a)
- num = 0
- for command in self.bot.tree.walk_commands():
- num = num + 1
- if num > 24:
- he.add_field(name=command.name, value=command.description)
- else:
- ee.add_field(name=command.name, value=command.description)
- embeds = [
- ee,
- he,
- ]
- return await Paginator.Simple().start(i, pages=embeds)
- elif cmd:
- if self.bot.tree.get_command(cmd):
- return await i.response.send_message(
- embed=discord.Embed(
- title=self.bot.tree.get_command(cmd).name,
- description=self.bot.tree.get_command(cmd).description,
- color=0x3498DB,
- )
- )
- else:
- return await i.response.send_message(
- embed=discord.Embed(
- title="エラー",
- description="検索した名前のコマンドは存在しません。",
- color=0x3498DB,
- )
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(Help(bot))
diff --git a/cogs/imgcheck.py b/cogs/imgcheck.py
deleted file mode 100644
index f47c277..0000000
--- a/cogs/imgcheck.py
+++ /dev/null
@@ -1,111 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-import aiohttp
-import urllib.parse
-import asyncio
-
-
-class imgcheck(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="img_url_check", description="URLの画像から拾い画かチェックするコマンド。")
- async def img_url_check(self, i: discord.Interaction, url: str):
- load_text = "拾い画チェッカーAPIに接続しています"
- await i.response.send_message(load_text)
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}.")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}..")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}...")
- async with aiohttp.ClientSession() as session:
- async with session.get(
- f"https://api.irucabot.com/imgcheck/check_url?url={urllib.parse.quote(url)}"
- ) as resp:
- resp_data = await resp.json()
- if resp_data["status"] == "success":
- if resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画です。",
- description=f"この画像と一致している画像が{resp_data['count']}個ありました。\n[Google画像検索結果]({resp_data['resulturl']})\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- elif not resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画ではない可能性が高いです。",
- description=f"この画像と一致している画像が0個ありました。\n\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- else:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="起るはずの無いことが起こりました。",
- description=f"起るはずの無いことが起こったので、結果を表示できません。",
- ),
- )
- elif resp_data["status"] == "error":
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="エラーが発生しました。", description=resp_data["message_ja"]
- ),
- )
-
- @app_commands.command(name="img_check", description="拾い画チェッカー。")
- async def imgcheck(self, i: discord.Interaction, img: discord.Attachment):
- load_text = "拾い画チェッカーAPIに接続しています"
- await i.response.send_message(load_text)
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}.")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}..")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}...")
- async with aiohttp.ClientSession() as session:
- async with session.get(
- f"https://api.irucabot.com/imgcheck/check_url?url={urllib.parse.quote(img.url)}"
- ) as resp:
- resp_data = await resp.json()
- if resp_data["status"] == "success":
- if resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画です。",
- description=f"この画像と一致している画像が{resp_data['count']}個ありました。\n[Google画像検索結果]({resp_data['resulturl']})\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- elif not resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画ではない可能性が高いです。",
- description=f"この画像と一致している画像が0個ありました。\n\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- else:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="起るはずの無いことが起こりました。",
- description=f"起るはずの無いことが起こったので、結果を表示できません。",
- ),
- )
- elif resp_data["status"] == "error":
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="エラーが発生しました。", description=resp_data["message_ja"]
- ),
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(imgcheck(bot))
diff --git a/cogs/ping.py b/cogs/ping.py
deleted file mode 100644
index d1d7ef3..0000000
--- a/cogs/ping.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class ping(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="ping", description="ping値を測定します。")
- async def pingpong(self, i: discord.Interaction):
- await i.response.send_message(f"{round(self.bot.latency * 1000)}ms")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(ping(bot))
diff --git a/cogs/role_all.py b/cogs/role_all.py
deleted file mode 100644
index ac6411e..0000000
--- a/cogs/role_all.py
+++ /dev/null
@@ -1,54 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-import enum
-
-
-class bot(enum.Enum):
- はい = True
- いいえ = False
-
-
-class roleall(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(bot="Botにもロールを付与する?")
- @app_commands.choices(
- bot=[
- app_commands.Choice(name="はい", value="y"),
- app_commands.Choice(name="いいえ", value="f"),
- ]
- )
- @app_commands.command(name="role_all_add", description="全メンバーにロールを付与します。")
- async def roleall_add(self, i: discord.Interaction, role: discord.Role, bot: str):
- if bot == "y":
- for member in i.guild.members:
- await member.add_roles(role)
- elif bot == "f":
- for member in i.guild.members:
- if not member.bot:
- await member.add_roles(role)
-
- @app_commands.describe(bot="Botのロールも除去する?")
- @app_commands.choices(
- bot=[
- app_commands.Choice(name="はい", value="y"),
- app_commands.Choice(name="いいえ", value="f"),
- ]
- )
- @app_commands.command(name="role_all_remove", description="全員からロールを除去します。")
- async def roleall_remove(
- self, i: discord.Interaction, role: discord.Role, bot: str
- ):
- if bot == "y":
- for member in i.guild.members:
- await member.remove_roles(role)
- elif bot == "f":
- for member in i.guild.members:
- if not member.bot:
- await member.remove_roles(role)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(roleall(bot))
diff --git a/cogs/role_list.py b/cogs/role_list.py
deleted file mode 100644
index 01e4eea..0000000
--- a/cogs/role_list.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class role_list(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="role_list", description="ロールのリストを送信します。")
- async def rolelists(self, i: discord.Interaction):
- guild = i.guild
- if len(guild.roles) > 1:
- role = "\n".join([r.mention for r in guild.roles][1:])
- embed = discord.Embed(title="ロール一覧", description=f"{role}")
- await i.response.send_message(embed=embed)
- else:
- await i.response.send_message("ロールが見つかりませんでした。")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(role_list(bot))
diff --git a/cogs/splatoon2.py b/cogs/splatoon2.py
deleted file mode 100644
index 4b9b6d3..0000000
--- a/cogs/splatoon2.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from discord.ext import commands
-
-
-class splatoon_cog_one(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- # 近日追加。
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(splatoon_cog_one(bot))
diff --git a/cogs/trans.py b/cogs/trans.py
deleted file mode 100644
index bff49d3..0000000
--- a/cogs/trans.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-import async_google_trans_new
-
-
-class trans_kinou(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(text="翻訳するテキスト", lang="翻訳をする言語")
- @app_commands.choices(
- lang=[
- app_commands.Choice(name="アルメニア語", value="hy"),
- app_commands.Choice(name="中国語(簡体)", value="zh"),
- app_commands.Choice(name="オランダ語", value="nl"),
- app_commands.Choice(name="英語", value="en"),
- app_commands.Choice(name="エスペラント語", value="eo"),
- app_commands.Choice(name="フランス語", value="fr"),
- app_commands.Choice(name="グルジア語", value="ka"),
- app_commands.Choice(name="ドイツ語", value="de"),
- app_commands.Choice(name="ギリシャ語", value="el"),
- app_commands.Choice(name="イタリア語", value="it"),
- app_commands.Choice(name="日本語", value="ja"),
- app_commands.Choice(name="韓国語", value="ko"),
- app_commands.Choice(name="クルド語", value="ku"),
- app_commands.Choice(name="ペルシャ語", value="fa"),
- app_commands.Choice(name="ポーランド語", value="pl"),
- app_commands.Choice(name="ポルトガル語(ポルトガル、ブラジル)", value="pt"),
- app_commands.Choice(name="ルーマニア語", value="ro"),
- app_commands.Choice(name="スペイン語", value="es"),
- app_commands.Choice(name="スウェーデン語", value="sv"),
- app_commands.Choice(name="トルコ語", value="tr"),
- app_commands.Choice(name="ウルドゥー語", value="ur"),
- ]
- )
- @app_commands.command(name="google_trans", description="Google翻訳をします。")
- async def trans_cmd(self, i: discord.Interaction, lang: str, text: str):
- g = async_google_trans_new.AsyncTranslator()
- await i.response.send_message(content=await g.translate(text, lang))
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(trans_kinou(bot))
diff --git a/cogs/uptime.py b/cogs/uptime.py
deleted file mode 100644
index 881e852..0000000
--- a/cogs/uptime.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class uptime(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="up_time", description="Botの起動時間を送信します。")
- async def uptime(self, i: discord.Interaction):
- await i.response.send_message(f"")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(uptime(bot))
diff --git a/cogs/userinfo.py b/cogs/userinfo.py
deleted file mode 100644
index 26c06a8..0000000
--- a/cogs/userinfo.py
+++ /dev/null
@@ -1,111 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-import Paginator
-
-
-class Userinfo(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(user="ユーザー")
- @app_commands.command(name="userinfo", description="指定したユーザーの情報を返します。")
- async def userinfo(self, i: discord.Interaction, user: discord.User):
- try:
- if user.bot is True:
- b = "はい"
- else:
- b = "いいえ"
- if user.system is True:
- c = "はい"
- else:
- c = "いいえ"
- mg = i.guild.get_member(user.id)
- if mg:
- if mg.pending:
- aaa = "いいえ"
- else:
- aaa = "はい"
- eee = discord.Embed(
- title="サーバーメンバー情報",
- color=discord.Colour.blurple(),
- )
- eee.add_field(name="ニックネーム", value=mg.nick)
- eee.add_field(name="参加日時", value=discord.utils.format_dt(mg.joined_at))
- eee.add_field(name="メンバー認証をしていますか?", value=aaa).set_thumbnail(
- url=user.display_avatar.url
- )
- if mg.premium_since:
- eee.add_field(
- name="ブーストした日時", value=discord.utils.format_dt(mg.premium_since)
- )
- if mg.timed_out_until:
- eee.add_field(
- name="タイムアウトが解除される日時",
- value=discord.utils.format_dt(mg.timed_out_until),
- )
- aaaauuu = None
- if not user.avatar.url:
- aaaauuu = user.default_avatar.url
- else:
- aaaauuu = user.avatar.url
- embeds = [
- discord.Embed(title="基本情報", color=discord.Colour.blurple())
- .add_field(name="ユーザー名", value=user.name)
- .add_field(name="id", value=f"`{user.id}`")
- .add_field(name="ディスクリミネーター", value=f"`{user.discriminator}`")
- .add_field(name="Botアカウントですか?", value=b)
- .add_field(name="システムユーザーですか?", value=c)
- .add_field(name="初期アイコンのURL", value=user.default_avatar.url)
- .add_field(
- name="アカウント作成日時", value=discord.utils.format_dt(user.created_at)
- )
- .add_field(name="メンション", value=user.mention)
- .set_thumbnail(url=aaaauuu),
- eee,
- ]
- await Paginator.Simple().start(i, pages=embeds)
- else:
- arre = None
- if not user.avatar.url:
- arre = user.default_avatar.url
- else:
- arre = user.avatar.url
- await i.response.send_message(
- embed=discord.Embed(title="基本情報", color=discord.Colour.blurple())
- .add_field(name="ユーザー名", value=user.name)
- .add_field(name="id", value=f"`{user.id}`")
- .add_field(name="ディスクリミネーター", value=f"`{user.discriminator}`")
- .add_field(name="Botアカウントですか?", value=b)
- .add_field(name="システムユーザーですか?", value=c)
- .add_field(name="初期アイコンのURL", value=user.default_avatar.url)
- .add_field(
- name="アカウント作成日", value=discord.utils.format_dt(user.created_at)
- )
- .add_field(name="メンション", value=user.mention)
- .set_thumbnail(arre)
- )
- except:
- arre2 = None
- if not user.avatar.url:
- arre2 = user.default_avatar.url
- else:
- arre2 = user.avatar.url
- await i.response.send_message(
- embed=discord.Embed(title="基本情報", color=discord.Colour.blurple())
- .add_field(name="ユーザー名", value=user.name)
- .add_field(name="id", value=f"`{user.id}`")
- .add_field(name="ディスクリミネーター", value=f"`{user.discriminator}`")
- .add_field(name="Botアカウントですか?", value=b)
- .add_field(name="システムユーザーですか?", value=c)
- .add_field(name="初期アイコンのURL", value=user.default_avatar.url)
- .add_field(
- name="アカウント作成日", value=discord.utils.format_dt(user.created_at)
- )
- .add_field(name="メンション", value=user.mention)
- .set_thumbnail(arre2)
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(Userinfo(bot))
diff --git a/cogs/verify.py b/cogs/verify.py
deleted file mode 100644
index 4358cb0..0000000
--- a/cogs/verify.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-from replit import db
-
-
-def verify_db(key, data):
- db[f"verify_1_db_{key}"] = data
-
-
-def verify_db_get(key):
- return db[f"verify_1_db_{key}"]
-
-
-class Button1(discord.ui.Button):
- def __init__(self):
- super().__init__(
- label="認証", style=discord.ButtonStyle.primary, custom_id="verify_type_1"
- )
-
-
-class verify(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_interaction")
- async def verify_interaction_callback(self, i: discord.Interaction):
- if i.data.get("custom_id") == "verify_type_1":
- data = verify_db_get(int(i.message.id))
- await i.guild.get_member(i.user.id).add_roles(
- i.guild.get_role(int(data["role_id"]))
- )
- await i.response.send_message("ロールを付与しました。", ephemeral=True)
- else:
- return
-
- @app_commands.describe(name="パネルの名前", description="パネルの説明", role="付与するロール")
- @app_commands.command(name="verify", description="ボタン式の認証パネルを生成します。")
- async def nomal_verify(
- self, i: discord.Interaction, name: str, description: str, role: discord.Role
- ):
- buttonView = discord.ui.View(timeout=None)
- buttonView.add_item(Button1())
-
- msg = await self.bot.get_channel(i.channel.id).send(
- embed=discord.Embed(title=name, description=description).add_field(
- name="付与するロール", value=f"{role.mention}"
- ),
- view=buttonView,
- )
- verify_db(int(msg.id), {"msg_id": int(msg.id), "role_id": role.id})
- await i.response.send_message("パネルの生成が完了しました。", ephemeral=True)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(verify(bot))
diff --git a/cogs/voicetext.py b/cogs/voicetext.py
deleted file mode 100644
index 039cb73..0000000
--- a/cogs/voicetext.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-import string
-import random
-import requests
-
-# Todo: aiohttpを使うようにする
-
-
-def voicesave(text):
- url = f"https://www.google.com/speech-api/v1/synthesize?text={text}&nc=mpeg&lang=ja&speed=0.5&client=lr-language-tts"
- randomstring = "".join(random.choices(string.ascii_letters + string.digits, k=10))
- name = "../voice/" + randomstring + ".mp3"
- response = requests.get(url, timeout=100)
- with open(name, "wb") as file:
- file.write(response.content)
-
-
-class voice_text(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(text="喋らせるテキスト")
- @app_commands.command(name="voice_text", description="googleの声が出力できます。")
- async def voice(self, i: discord.Interaction, text: str):
- save = voicesave(text)
- await i.response.send_message(file=discord.File(save))
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(voice_text(bot))
diff --git a/voice/voice.mp3 b/index.js
similarity index 100%
rename from voice/voice.mp3
rename to index.js
diff --git a/index.ts b/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/main.py b/main.py
deleted file mode 100644
index 23dd94b..0000000
--- a/main.py
+++ /dev/null
@@ -1,68 +0,0 @@
-from discord import (
- Intents,
- Status,
- Activity,
- ActivityType,
- Game,
- errors,
- AllowedMentions,
-)
-from itertools import cycle
-from discord.ext import commands, tasks
-from os import listdir, getenv
-from webserver import keep_alive
-from datetime import datetime
-
-
-class EightBot(commands.Bot):
- async def setup_hook(self):
- self.kidou = 0
- await keep_alive()
- for name in listdir("cogs"):
- if not name.startswith(("_", ".")):
- await bot.load_extension(
- f"cogs.{name[:-3] if name.endswith('.py') else name}"
- )
- await bot.load_extension("jishaku")
- await self.tree.sync()
-
-
-bot = EightBot(
- command_prefix="eg!",
- intents=Intents.all(),
- activity=Activity(
- type=ActivityType.watching,
- name="起動準備をしています...",
- ),
- allowed_mentions=AllowedMentions(
- everyone=False, users=True, roles=False, replied_user=True
- ),
- status=Status.dnd,
- help_command=None,
-)
-
-
-@tasks.loop(seconds=5)
-async def status_swap(cycle_d):
- await bot.change_presence(activity=Game(next(cycle_d)), status=Status.online)
-
-
-@bot.listen(name="on_ready")
-async def bot_ready():
- bot.kidou = int(datetime.now().timestamp())
- print("login.")
- await status_swap.start(
- cycle(
- [
- f"/help | {len(bot.guilds)} server",
- f"/help | {len(bot.users)} user",
- ]
- )
- )
-
-
-try:
- bot.run(getenv("token"))
-
-except errors.HTTPException:
- print("レートリミットに引っかかってます。")
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..a4b407d
--- /dev/null
+++ b/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "eightbot",
+ "version": "2.2.0",
+ "description": "Discord BOT",
+ "main": "index.js",
+ "repository": "https://github.com/EightBot-Developer/EightBot",
+ "author": "gx1285",
+ "license": "MIT",
+ "private": true
+}
diff --git a/poetry.lock b/poetry.lock
deleted file mode 100644
index fcbac30..0000000
--- a/poetry.lock
+++ /dev/null
@@ -1,844 +0,0 @@
-[[package]]
-name = "aiohttp"
-version = "3.8.3"
-description = "Async http client/server framework (asyncio)"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-aiosignal = ">=1.1.2"
-async-timeout = ">=4.0.0a3,<5.0"
-attrs = ">=17.3.0"
-charset-normalizer = ">=2.0,<3.0"
-frozenlist = ">=1.1.1"
-multidict = ">=4.5,<7.0"
-yarl = ">=1.0,<2.0"
-
-[package.extras]
-speedups = ["Brotli", "aiodns", "cchardet"]
-
-[[package]]
-name = "aiosignal"
-version = "1.2.0"
-description = "aiosignal: a list of registered asynchronous callbacks"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-frozenlist = ">=1.1.0"
-
-[[package]]
-name = "async-timeout"
-version = "4.0.2"
-description = "Timeout context manager for asyncio programs"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[[package]]
-name = "attrs"
-version = "22.1.0"
-description = "Classes Without Boilerplate"
-category = "main"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"]
-docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"]
-tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"]
-tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"]
-
-[[package]]
-name = "autoflake"
-version = "1.7.7"
-description = "Removes unused imports and unused variables"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-pyflakes = ">=1.1.0"
-tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""}
-
-[[package]]
-name = "black"
-version = "22.10.0"
-description = "The uncompromising code formatter."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-click = ">=8.0.0"
-mypy-extensions = ">=0.4.3"
-pathspec = ">=0.9.0"
-platformdirs = ">=2"
-tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""}
-typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}
-
-[package.extras]
-colorama = ["colorama (>=0.4.3)"]
-d = ["aiohttp (>=3.7.4)"]
-jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
-uvloop = ["uvloop (>=0.15.2)"]
-
-[[package]]
-name = "certifi"
-version = "2022.12.7"
-description = "Python package for providing Mozilla's CA Bundle."
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[[package]]
-name = "charset-normalizer"
-version = "2.1.1"
-description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-category = "main"
-optional = false
-python-versions = ">=3.6.0"
-
-[package.extras]
-unicode-backport = ["unicodedata2"]
-
-[[package]]
-name = "click"
-version = "8.1.3"
-description = "Composable command line interface toolkit"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-colorama = {version = "*", markers = "platform_system == \"Windows\""}
-
-[[package]]
-name = "colorama"
-version = "0.4.6"
-description = "Cross-platform colored terminal text."
-category = "main"
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
-
-[[package]]
-name = "discord"
-version = "2.0.0"
-description = "A mirror package for discord.py. Please install that instead."
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-"discord.py" = ">=2.0.0"
-
-[[package]]
-name = "discord-py"
-version = "2.0.1"
-description = "A Python wrapper for the Discord API"
-category = "main"
-optional = false
-python-versions = ">=3.8.0"
-
-[package.dependencies]
-aiohttp = ">=3.7.4,<4"
-
-[package.extras]
-docs = ["sphinx (==4.4.0)", "sphinxcontrib-trio (==1.1.2)", "sphinxcontrib-websupport", "typing-extensions (>=4.3,<5)"]
-speed = ["Brotli", "aiodns (>=1.1)", "cchardet (==2.1.7)", "orjson (>=3.5.4)"]
-test = ["coverage[toml]", "pytest", "pytest-asyncio", "pytest-cov", "pytest-mock", "typing-extensions (>=4.3,<5)"]
-voice = ["PyNaCl (>=1.3.0,<1.6)"]
-
-[[package]]
-name = "flask"
-version = "2.2.2"
-description = "A simple framework for building complex web applications."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-click = ">=8.0"
-importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""}
-itsdangerous = ">=2.0"
-Jinja2 = ">=3.0"
-Werkzeug = ">=2.2.2"
-
-[package.extras]
-async = ["asgiref (>=3.2)"]
-dotenv = ["python-dotenv"]
-
-[[package]]
-name = "frozenlist"
-version = "1.3.1"
-description = "A list-like structure which implements collections.abc.MutableSequence"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "idna"
-version = "3.4"
-description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
-optional = false
-python-versions = ">=3.5"
-
-[[package]]
-name = "importlib-metadata"
-version = "5.0.0"
-description = "Read metadata from Python packages"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-zipp = ">=0.5"
-
-[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"]
-perf = ["ipython"]
-testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"]
-
-[[package]]
-name = "itsdangerous"
-version = "2.1.2"
-description = "Safely pass data to untrusted environments and back."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "jinja2"
-version = "3.1.2"
-description = "A very fast and expressive template engine."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-MarkupSafe = ">=2.0"
-
-[package.extras]
-i18n = ["Babel (>=2.7)"]
-
-[[package]]
-name = "markupsafe"
-version = "2.1.1"
-description = "Safely add untrusted strings to HTML/XML markup."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "multidict"
-version = "6.0.2"
-description = "multidict implementation"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "mypy-extensions"
-version = "0.4.3"
-description = "Experimental type system extensions for programs checked with the mypy typechecker."
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "numpy"
-version = "1.23.4"
-description = "NumPy is the fundamental package for array computing with Python."
-category = "main"
-optional = false
-python-versions = ">=3.8"
-
-[[package]]
-name = "pathspec"
-version = "0.10.1"
-description = "Utility library for gitignore style pattern matching of file paths."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "platformdirs"
-version = "2.5.2"
-description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.extras]
-docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"]
-test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"]
-
-[[package]]
-name = "pyflakes"
-version = "2.5.0"
-description = "passive checker of Python programs"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[[package]]
-name = "requests"
-version = "2.28.1"
-description = "Python HTTP for Humans."
-category = "main"
-optional = false
-python-versions = ">=3.7, <4"
-
-[package.dependencies]
-certifi = ">=2017.4.17"
-charset-normalizer = ">=2,<3"
-idna = ">=2.5,<4"
-urllib3 = ">=1.21.1,<1.27"
-
-[package.extras]
-socks = ["PySocks (>=1.5.6,!=1.5.7)"]
-use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
-
-[[package]]
-name = "tomli"
-version = "2.0.1"
-description = "A lil' TOML parser"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "typing-extensions"
-version = "4.4.0"
-description = "Backported and Experimental Type Hints for Python 3.7+"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "urllib3"
-version = "1.26.12"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4"
-
-[package.extras]
-brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
-
-[[package]]
-name = "werkzeug"
-version = "2.2.2"
-description = "The comprehensive WSGI web application library."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-MarkupSafe = ">=2.1.1"
-
-[package.extras]
-watchdog = ["watchdog"]
-
-[[package]]
-name = "yarl"
-version = "1.8.1"
-description = "Yet another URL library"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-idna = ">=2.0"
-multidict = ">=4.0"
-
-[[package]]
-name = "zipp"
-version = "3.10.0"
-description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"]
-testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
-
-[metadata]
-lock-version = "1.1"
-python-versions = ">=3.8.0,<3.9"
-content-hash = "6b93baa97031f984ee2e674fc0a2984e050647b41795831dc33368561b0db784"
-
-[metadata.files]
-aiohttp = [
- {file = "aiohttp-3.8.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ba71c9b4dcbb16212f334126cc3d8beb6af377f6703d9dc2d9fb3874fd667ee9"},
- {file = "aiohttp-3.8.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d24b8bb40d5c61ef2d9b6a8f4528c2f17f1c5d2d31fed62ec860f6006142e83e"},
- {file = "aiohttp-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f88df3a83cf9df566f171adba39d5bd52814ac0b94778d2448652fc77f9eb491"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97decbb3372d4b69e4d4c8117f44632551c692bb1361b356a02b97b69e18a62"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309aa21c1d54b8ef0723181d430347d7452daaff93e8e2363db8e75c72c2fb2d"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad5383a67514e8e76906a06741febd9126fc7c7ff0f599d6fcce3e82b80d026f"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20acae4f268317bb975671e375493dbdbc67cddb5f6c71eebdb85b34444ac46b"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05a3c31c6d7cd08c149e50dc7aa2568317f5844acd745621983380597f027a18"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d6f76310355e9fae637c3162936e9504b4767d5c52ca268331e2756e54fd4ca5"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:256deb4b29fe5e47893fa32e1de2d73c3afe7407738bd3c63829874661d4822d"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:5c59fcd80b9049b49acd29bd3598cada4afc8d8d69bd4160cd613246912535d7"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:059a91e88f2c00fe40aed9031b3606c3f311414f86a90d696dd982e7aec48142"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2feebbb6074cdbd1ac276dbd737b40e890a1361b3cc30b74ac2f5e24aab41f7b"},
- {file = "aiohttp-3.8.3-cp310-cp310-win32.whl", hash = "sha256:5bf651afd22d5f0c4be16cf39d0482ea494f5c88f03e75e5fef3a85177fecdeb"},
- {file = "aiohttp-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:653acc3880459f82a65e27bd6526e47ddf19e643457d36a2250b85b41a564715"},
- {file = "aiohttp-3.8.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:86fc24e58ecb32aee09f864cb11bb91bc4c1086615001647dbfc4dc8c32f4008"},
- {file = "aiohttp-3.8.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75e14eac916f024305db517e00a9252714fce0abcb10ad327fb6dcdc0d060f1d"},
- {file = "aiohttp-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d1fde0f44029e02d02d3993ad55ce93ead9bb9b15c6b7ccd580f90bd7e3de476"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ab94426ddb1ecc6a0b601d832d5d9d421820989b8caa929114811369673235c"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89d2e02167fa95172c017732ed7725bc8523c598757f08d13c5acca308e1a061"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:02f9a2c72fc95d59b881cf38a4b2be9381b9527f9d328771e90f72ac76f31ad8"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c7149272fb5834fc186328e2c1fa01dda3e1fa940ce18fded6d412e8f2cf76d"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:512bd5ab136b8dc0ffe3fdf2dfb0c4b4f49c8577f6cae55dca862cd37a4564e2"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7018ecc5fe97027214556afbc7c502fbd718d0740e87eb1217b17efd05b3d276"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:88c70ed9da9963d5496d38320160e8eb7e5f1886f9290475a881db12f351ab5d"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:da22885266bbfb3f78218dc40205fed2671909fbd0720aedba39b4515c038091"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:e65bc19919c910127c06759a63747ebe14f386cda573d95bcc62b427ca1afc73"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:08c78317e950e0762c2983f4dd58dc5e6c9ff75c8a0efeae299d363d439c8e34"},
- {file = "aiohttp-3.8.3-cp311-cp311-win32.whl", hash = "sha256:45d88b016c849d74ebc6f2b6e8bc17cabf26e7e40c0661ddd8fae4c00f015697"},
- {file = "aiohttp-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:96372fc29471646b9b106ee918c8eeb4cca423fcbf9a34daa1b93767a88a2290"},
- {file = "aiohttp-3.8.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c971bf3786b5fad82ce5ad570dc6ee420f5b12527157929e830f51c55dc8af77"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff25f48fc8e623d95eca0670b8cc1469a83783c924a602e0fbd47363bb54aaca"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e381581b37db1db7597b62a2e6b8b57c3deec95d93b6d6407c5b61ddc98aca6d"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db19d60d846283ee275d0416e2a23493f4e6b6028825b51290ac05afc87a6f97"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25892c92bee6d9449ffac82c2fe257f3a6f297792cdb18ad784737d61e7a9a85"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:398701865e7a9565d49189f6c90868efaca21be65c725fc87fc305906be915da"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4a4fbc769ea9b6bd97f4ad0b430a6807f92f0e5eb020f1e42ece59f3ecfc4585"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:b29bfd650ed8e148f9c515474a6ef0ba1090b7a8faeee26b74a8ff3b33617502"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:1e56b9cafcd6531bab5d9b2e890bb4937f4165109fe98e2b98ef0dcfcb06ee9d"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:ec40170327d4a404b0d91855d41bfe1fe4b699222b2b93e3d833a27330a87a6d"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2df5f139233060578d8c2c975128fb231a89ca0a462b35d4b5fcf7c501ebdbe1"},
- {file = "aiohttp-3.8.3-cp36-cp36m-win32.whl", hash = "sha256:f973157ffeab5459eefe7b97a804987876dd0a55570b8fa56b4e1954bf11329b"},
- {file = "aiohttp-3.8.3-cp36-cp36m-win_amd64.whl", hash = "sha256:437399385f2abcd634865705bdc180c8314124b98299d54fe1d4c8990f2f9494"},
- {file = "aiohttp-3.8.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:09e28f572b21642128ef31f4e8372adb6888846f32fecb288c8b0457597ba61a"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f3553510abdbec67c043ca85727396ceed1272eef029b050677046d3387be8d"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e168a7560b7c61342ae0412997b069753f27ac4862ec7867eff74f0fe4ea2ad9"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db4c979b0b3e0fa7e9e69ecd11b2b3174c6963cebadeecfb7ad24532ffcdd11a"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e164e0a98e92d06da343d17d4e9c4da4654f4a4588a20d6c73548a29f176abe2"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8a78079d9a39ca9ca99a8b0ac2fdc0c4d25fc80c8a8a82e5c8211509c523363"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:21b30885a63c3f4ff5b77a5d6caf008b037cb521a5f33eab445dc566f6d092cc"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4b0f30372cef3fdc262f33d06e7b411cd59058ce9174ef159ad938c4a34a89da"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:8135fa153a20d82ffb64f70a1b5c2738684afa197839b34cc3e3c72fa88d302c"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:ad61a9639792fd790523ba072c0555cd6be5a0baf03a49a5dd8cfcf20d56df48"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:978b046ca728073070e9abc074b6299ebf3501e8dee5e26efacb13cec2b2dea0"},
- {file = "aiohttp-3.8.3-cp37-cp37m-win32.whl", hash = "sha256:0d2c6d8c6872df4a6ec37d2ede71eff62395b9e337b4e18efd2177de883a5033"},
- {file = "aiohttp-3.8.3-cp37-cp37m-win_amd64.whl", hash = "sha256:21d69797eb951f155026651f7e9362877334508d39c2fc37bd04ff55b2007091"},
- {file = "aiohttp-3.8.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ca9af5f8f5812d475c5259393f52d712f6d5f0d7fdad9acdb1107dd9e3cb7eb"},
- {file = "aiohttp-3.8.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d90043c1882067f1bd26196d5d2db9aa6d268def3293ed5fb317e13c9413ea4"},
- {file = "aiohttp-3.8.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d737fc67b9a970f3234754974531dc9afeea11c70791dcb7db53b0cf81b79784"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebf909ea0a3fc9596e40d55d8000702a85e27fd578ff41a5500f68f20fd32e6c"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5835f258ca9f7c455493a57ee707b76d2d9634d84d5d7f62e77be984ea80b849"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da37dcfbf4b7f45d80ee386a5f81122501ec75672f475da34784196690762f4b"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87f44875f2804bc0511a69ce44a9595d5944837a62caecc8490bbdb0e18b1342"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:527b3b87b24844ea7865284aabfab08eb0faf599b385b03c2aa91fc6edd6e4b6"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d5ba88df9aa5e2f806650fcbeedbe4f6e8736e92fc0e73b0400538fd25a4dd96"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e7b8813be97cab8cb52b1375f41f8e6804f6507fe4660152e8ca5c48f0436017"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:2dea10edfa1a54098703cb7acaa665c07b4e7568472a47f4e64e6319d3821ccf"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:713d22cd9643ba9025d33c4af43943c7a1eb8547729228de18d3e02e278472b6"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2d252771fc85e0cf8da0b823157962d70639e63cb9b578b1dec9868dd1f4f937"},
- {file = "aiohttp-3.8.3-cp38-cp38-win32.whl", hash = "sha256:66bd5f950344fb2b3dbdd421aaa4e84f4411a1a13fca3aeb2bcbe667f80c9f76"},
- {file = "aiohttp-3.8.3-cp38-cp38-win_amd64.whl", hash = "sha256:84b14f36e85295fe69c6b9789b51a0903b774046d5f7df538176516c3e422446"},
- {file = "aiohttp-3.8.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16c121ba0b1ec2b44b73e3a8a171c4f999b33929cd2397124a8c7fcfc8cd9e06"},
- {file = "aiohttp-3.8.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8d6aaa4e7155afaf994d7924eb290abbe81a6905b303d8cb61310a2aba1c68ba"},
- {file = "aiohttp-3.8.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43046a319664a04b146f81b40e1545d4c8ac7b7dd04c47e40bf09f65f2437346"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599418aaaf88a6d02a8c515e656f6faf3d10618d3dd95866eb4436520096c84b"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92a2964319d359f494f16011e23434f6f8ef0434acd3cf154a6b7bec511e2fb7"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73a4131962e6d91109bca6536416aa067cf6c4efb871975df734f8d2fd821b37"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:598adde339d2cf7d67beaccda3f2ce7c57b3b412702f29c946708f69cf8222aa"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:75880ed07be39beff1881d81e4a907cafb802f306efd6d2d15f2b3c69935f6fb"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a0239da9fbafd9ff82fd67c16704a7d1bccf0d107a300e790587ad05547681c8"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4e3a23ec214e95c9fe85a58470b660efe6534b83e6cbe38b3ed52b053d7cb6ad"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:47841407cc89a4b80b0c52276f3cc8138bbbfba4b179ee3acbd7d77ae33f7ac4"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:54d107c89a3ebcd13228278d68f1436d3f33f2dd2af5415e3feaeb1156e1a62c"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c37c5cce780349d4d51739ae682dec63573847a2a8dcb44381b174c3d9c8d403"},
- {file = "aiohttp-3.8.3-cp39-cp39-win32.whl", hash = "sha256:f178d2aadf0166be4df834c4953da2d7eef24719e8aec9a65289483eeea9d618"},
- {file = "aiohttp-3.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:88e5be56c231981428f4f506c68b6a46fa25c4123a2e86d156c58a8369d31ab7"},
- {file = "aiohttp-3.8.3.tar.gz", hash = "sha256:3828fb41b7203176b82fe5d699e0d845435f2374750a44b480ea6b930f6be269"},
-]
-aiosignal = [
- {file = "aiosignal-1.2.0-py3-none-any.whl", hash = "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a"},
- {file = "aiosignal-1.2.0.tar.gz", hash = "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"},
-]
-async-timeout = [
- {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"},
- {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"},
-]
-attrs = [
- {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"},
- {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"},
-]
-autoflake = [
- {file = "autoflake-1.7.7-py3-none-any.whl", hash = "sha256:a9b43d08f8e455824e4f7b3f078399f59ba538ba53872f466c09e55c827773ef"},
- {file = "autoflake-1.7.7.tar.gz", hash = "sha256:c8e4fc41aa3eae0f5c94b939e3a3d50923d7a9306786a6cbf4866a077b8f6832"},
-]
-black = [
- {file = "black-22.10.0-1fixedarch-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa"},
- {file = "black-22.10.0-1fixedarch-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef"},
- {file = "black-22.10.0-1fixedarch-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6"},
- {file = "black-22.10.0-1fixedarch-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d"},
- {file = "black-22.10.0-1fixedarch-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4"},
- {file = "black-22.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb"},
- {file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"},
- {file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"},
- {file = "black-22.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae"},
- {file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"},
- {file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"},
- {file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"},
- {file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"},
- {file = "black-22.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff"},
- {file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"},
- {file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"},
- {file = "black-22.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0"},
- {file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"},
- {file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"},
- {file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"},
- {file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"},
-]
-certifi = [
- {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"},
- {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"},
-]
-charset-normalizer = [
- {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"},
- {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"},
-]
-click = [
- {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
- {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
-]
-colorama = [
- {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
- {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
-]
-discord = [
- {file = "discord-2.0.0-py3-none-any.whl", hash = "sha256:ffc714978d338d2b506e4924d66d7d02a649378a46743e2bdf42ef1bd43d1a67"},
- {file = "discord-2.0.0.tar.gz", hash = "sha256:b6df1dd56c19750b3cb9b69de85bf463e712a0db232546ae8109c04bf0a61083"},
-]
-discord-py = [
- {file = "discord.py-2.0.1-py3-none-any.whl", hash = "sha256:aeb186348bf011708b085b2715cf92bbb72c692eb4f59c4c0b488130cc4c4b7e"},
- {file = "discord.py-2.0.1.tar.gz", hash = "sha256:309146476e986cb8faf038cd5d604d4b3834ef15c2d34df697ce5064bf5cd779"},
-]
-flask = [
- {file = "Flask-2.2.2-py3-none-any.whl", hash = "sha256:b9c46cc36662a7949f34b52d8ec7bb59c0d74ba08ba6cb9ce9adc1d8676d9526"},
- {file = "Flask-2.2.2.tar.gz", hash = "sha256:642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b"},
-]
-frozenlist = [
- {file = "frozenlist-1.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5f271c93f001748fc26ddea409241312a75e13466b06c94798d1a341cf0e6989"},
- {file = "frozenlist-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9c6ef8014b842f01f5d2b55315f1af5cbfde284eb184075c189fd657c2fd8204"},
- {file = "frozenlist-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:219a9676e2eae91cb5cc695a78b4cb43d8123e4160441d2b6ce8d2c70c60e2f3"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b47d64cdd973aede3dd71a9364742c542587db214e63b7529fbb487ed67cddd9"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2af6f7a4e93f5d08ee3f9152bce41a6015b5cf87546cb63872cc19b45476e98a"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a718b427ff781c4f4e975525edb092ee2cdef6a9e7bc49e15063b088961806f8"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c56c299602c70bc1bb5d1e75f7d8c007ca40c9d7aebaf6e4ba52925d88ef826d"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717470bfafbb9d9be624da7780c4296aa7935294bd43a075139c3d55659038ca"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:31b44f1feb3630146cffe56344704b730c33e042ffc78d21f2125a6a91168131"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c3b31180b82c519b8926e629bf9f19952c743e089c41380ddca5db556817b221"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:d82bed73544e91fb081ab93e3725e45dd8515c675c0e9926b4e1f420a93a6ab9"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49459f193324fbd6413e8e03bd65789e5198a9fa3095e03f3620dee2f2dabff2"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:94e680aeedc7fd3b892b6fa8395b7b7cc4b344046c065ed4e7a1e390084e8cb5"},
- {file = "frozenlist-1.3.1-cp310-cp310-win32.whl", hash = "sha256:fabb953ab913dadc1ff9dcc3a7a7d3dc6a92efab3a0373989b8063347f8705be"},
- {file = "frozenlist-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:eee0c5ecb58296580fc495ac99b003f64f82a74f9576a244d04978a7e97166db"},
- {file = "frozenlist-1.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0bc75692fb3770cf2b5856a6c2c9de967ca744863c5e89595df64e252e4b3944"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086ca1ac0a40e722d6833d4ce74f5bf1aba2c77cbfdc0cd83722ffea6da52a04"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b51eb355e7f813bcda00276b0114c4172872dc5fb30e3fea059b9367c18fbcb"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:74140933d45271c1a1283f708c35187f94e1256079b3c43f0c2267f9db5845ff"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee4c5120ddf7d4dd1eaf079af3af7102b56d919fa13ad55600a4e0ebe532779b"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97d9e00f3ac7c18e685320601f91468ec06c58acc185d18bb8e511f196c8d4b2"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6e19add867cebfb249b4e7beac382d33215d6d54476bb6be46b01f8cafb4878b"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a027f8f723d07c3f21963caa7d585dcc9b089335565dabe9c814b5f70c52705a"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:61d7857950a3139bce035ad0b0945f839532987dfb4c06cfe160254f4d19df03"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:53b2b45052e7149ee8b96067793db8ecc1ae1111f2f96fe1f88ea5ad5fd92d10"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bbb1a71b1784e68870800b1bc9f3313918edc63dbb8f29fbd2e767ce5821696c"},
- {file = "frozenlist-1.3.1-cp37-cp37m-win32.whl", hash = "sha256:ab6fa8c7871877810e1b4e9392c187a60611fbf0226a9e0b11b7b92f5ac72792"},
- {file = "frozenlist-1.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f89139662cc4e65a4813f4babb9ca9544e42bddb823d2ec434e18dad582543bc"},
- {file = "frozenlist-1.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4c0c99e31491a1d92cde8648f2e7ccad0e9abb181f6ac3ddb9fc48b63301808e"},
- {file = "frozenlist-1.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:61e8cb51fba9f1f33887e22488bad1e28dd8325b72425f04517a4d285a04c519"},
- {file = "frozenlist-1.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc2f3e368ee5242a2cbe28323a866656006382872c40869b49b265add546703f"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58fb94a01414cddcdc6839807db77ae8057d02ddafc94a42faee6004e46c9ba8"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:022178b277cb9277d7d3b3f2762d294f15e85cd2534047e68a118c2bb0058f3e"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:572ce381e9fe027ad5e055f143763637dcbac2542cfe27f1d688846baeef5170"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19127f8dcbc157ccb14c30e6f00392f372ddb64a6ffa7106b26ff2196477ee9f"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42719a8bd3792744c9b523674b752091a7962d0d2d117f0b417a3eba97d1164b"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2743bb63095ef306041c8f8ea22bd6e4d91adabf41887b1ad7886c4c1eb43d5f"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:fa47319a10e0a076709644a0efbcaab9e91902c8bd8ef74c6adb19d320f69b83"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52137f0aea43e1993264a5180c467a08a3e372ca9d378244c2d86133f948b26b"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:f5abc8b4d0c5b556ed8cd41490b606fe99293175a82b98e652c3f2711b452988"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1e1cf7bc8cbbe6ce3881863671bac258b7d6bfc3706c600008925fb799a256e2"},
- {file = "frozenlist-1.3.1-cp38-cp38-win32.whl", hash = "sha256:0dde791b9b97f189874d654c55c24bf7b6782343e14909c84beebd28b7217845"},
- {file = "frozenlist-1.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:9494122bf39da6422b0972c4579e248867b6b1b50c9b05df7e04a3f30b9a413d"},
- {file = "frozenlist-1.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:31bf9539284f39ff9398deabf5561c2b0da5bb475590b4e13dd8b268d7a3c5c1"},
- {file = "frozenlist-1.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0c8c803f2f8db7217898d11657cb6042b9b0553a997c4a0601f48a691480fab"},
- {file = "frozenlist-1.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da5ba7b59d954f1f214d352308d1d86994d713b13edd4b24a556bcc43d2ddbc3"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74e6b2b456f21fc93ce1aff2b9728049f1464428ee2c9752a4b4f61e98c4db96"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526d5f20e954d103b1d47232e3839f3453c02077b74203e43407b962ab131e7b"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b499c6abe62a7a8d023e2c4b2834fce78a6115856ae95522f2f974139814538c"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab386503f53bbbc64d1ad4b6865bf001414930841a870fc97f1546d4d133f141"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f63c308f82a7954bf8263a6e6de0adc67c48a8b484fab18ff87f349af356efd"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:12607804084d2244a7bd4685c9d0dca5df17a6a926d4f1967aa7978b1028f89f"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:da1cdfa96425cbe51f8afa43e392366ed0b36ce398f08b60de6b97e3ed4affef"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f810e764617b0748b49a731ffaa525d9bb36ff38332411704c2400125af859a6"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:35c3d79b81908579beb1fb4e7fcd802b7b4921f1b66055af2578ff7734711cfa"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c92deb5d9acce226a501b77307b3b60b264ca21862bd7d3e0c1f3594022f01bc"},
- {file = "frozenlist-1.3.1-cp39-cp39-win32.whl", hash = "sha256:5e77a8bd41e54b05e4fb2708dc6ce28ee70325f8c6f50f3df86a44ecb1d7a19b"},
- {file = "frozenlist-1.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:625d8472c67f2d96f9a4302a947f92a7adbc1e20bedb6aff8dbc8ff039ca6189"},
- {file = "frozenlist-1.3.1.tar.gz", hash = "sha256:3a735e4211a04ccfa3f4833547acdf5d2f863bfeb01cfd3edaffbc251f15cec8"},
-]
-idna = [
- {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
- {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
-]
-importlib-metadata = [
- {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"},
- {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"},
-]
-itsdangerous = [
- {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"},
- {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"},
-]
-jinja2 = [
- {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"},
- {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"},
-]
-markupsafe = [
- {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"},
- {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"},
-]
-multidict = [
- {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2"},
- {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3"},
- {file = "multidict-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389"},
- {file = "multidict-6.0.2-cp310-cp310-win32.whl", hash = "sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293"},
- {file = "multidict-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658"},
- {file = "multidict-6.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15"},
- {file = "multidict-6.0.2-cp37-cp37m-win32.whl", hash = "sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc"},
- {file = "multidict-6.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a"},
- {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60"},
- {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86"},
- {file = "multidict-6.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d"},
- {file = "multidict-6.0.2-cp38-cp38-win32.whl", hash = "sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57"},
- {file = "multidict-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96"},
- {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c"},
- {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e"},
- {file = "multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937"},
- {file = "multidict-6.0.2-cp39-cp39-win32.whl", hash = "sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a"},
- {file = "multidict-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae"},
- {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"},
-]
-mypy-extensions = [
- {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
- {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
-]
-numpy = [
- {file = "numpy-1.23.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:95d79ada05005f6f4f337d3bb9de8a7774f259341c70bc88047a1f7b96a4bcb2"},
- {file = "numpy-1.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:926db372bc4ac1edf81cfb6c59e2a881606b409ddc0d0920b988174b2e2a767f"},
- {file = "numpy-1.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c237129f0e732885c9a6076a537e974160482eab8f10db6292e92154d4c67d71"},
- {file = "numpy-1.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8365b942f9c1a7d0f0dc974747d99dd0a0cdfc5949a33119caf05cb314682d3"},
- {file = "numpy-1.23.4-cp310-cp310-win32.whl", hash = "sha256:2341f4ab6dba0834b685cce16dad5f9b6606ea8a00e6da154f5dbded70fdc4dd"},
- {file = "numpy-1.23.4-cp310-cp310-win_amd64.whl", hash = "sha256:d331afac87c92373826af83d2b2b435f57b17a5c74e6268b79355b970626e329"},
- {file = "numpy-1.23.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:488a66cb667359534bc70028d653ba1cf307bae88eab5929cd707c761ff037db"},
- {file = "numpy-1.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ce03305dd694c4873b9429274fd41fc7eb4e0e4dea07e0af97a933b079a5814f"},
- {file = "numpy-1.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8981d9b5619569899666170c7c9748920f4a5005bf79c72c07d08c8a035757b0"},
- {file = "numpy-1.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a70a7d3ce4c0e9284e92285cba91a4a3f5214d87ee0e95928f3614a256a1488"},
- {file = "numpy-1.23.4-cp311-cp311-win32.whl", hash = "sha256:5e13030f8793e9ee42f9c7d5777465a560eb78fa7e11b1c053427f2ccab90c79"},
- {file = "numpy-1.23.4-cp311-cp311-win_amd64.whl", hash = "sha256:7607b598217745cc40f751da38ffd03512d33ec06f3523fb0b5f82e09f6f676d"},
- {file = "numpy-1.23.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ab46e4e7ec63c8a5e6dbf5c1b9e1c92ba23a7ebecc86c336cb7bf3bd2fb10e5"},
- {file = "numpy-1.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8aae2fb3180940011b4862b2dd3756616841c53db9734b27bb93813cd79fce6"},
- {file = "numpy-1.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c053d7557a8f022ec823196d242464b6955a7e7e5015b719e76003f63f82d0f"},
- {file = "numpy-1.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0882323e0ca4245eb0a3d0a74f88ce581cc33aedcfa396e415e5bba7bf05f68"},
- {file = "numpy-1.23.4-cp38-cp38-win32.whl", hash = "sha256:dada341ebb79619fe00a291185bba370c9803b1e1d7051610e01ed809ef3a4ba"},
- {file = "numpy-1.23.4-cp38-cp38-win_amd64.whl", hash = "sha256:0fe563fc8ed9dc4474cbf70742673fc4391d70f4363f917599a7fa99f042d5a8"},
- {file = "numpy-1.23.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c67b833dbccefe97cdd3f52798d430b9d3430396af7cdb2a0c32954c3ef73894"},
- {file = "numpy-1.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f76025acc8e2114bb664294a07ede0727aa75d63a06d2fae96bf29a81747e4a7"},
- {file = "numpy-1.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12ac457b63ec8ded85d85c1e17d85efd3c2b0967ca39560b307a35a6703a4735"},
- {file = "numpy-1.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95de7dc7dc47a312f6feddd3da2500826defdccbc41608d0031276a24181a2c0"},
- {file = "numpy-1.23.4-cp39-cp39-win32.whl", hash = "sha256:f2f390aa4da44454db40a1f0201401f9036e8d578a25f01a6e237cea238337ef"},
- {file = "numpy-1.23.4-cp39-cp39-win_amd64.whl", hash = "sha256:f260da502d7441a45695199b4e7fd8ca87db659ba1c78f2bbf31f934fe76ae0e"},
- {file = "numpy-1.23.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:61be02e3bf810b60ab74e81d6d0d36246dbfb644a462458bb53b595791251911"},
- {file = "numpy-1.23.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:296d17aed51161dbad3c67ed6d164e51fcd18dbcd5dd4f9d0a9c6055dce30810"},
- {file = "numpy-1.23.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4d52914c88b4930dafb6c48ba5115a96cbab40f45740239d9f4159c4ba779962"},
- {file = "numpy-1.23.4.tar.gz", hash = "sha256:ed2cc92af0efad20198638c69bb0fc2870a58dabfba6eb722c933b48556c686c"},
-]
-pathspec = [
- {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"},
- {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"},
-]
-platformdirs = [
- {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
- {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
-]
-pyflakes = [
- {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"},
- {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"},
-]
-requests = [
- {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
- {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
-]
-tomli = [
- {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
- {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
-]
-typing-extensions = [
- {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"},
- {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"},
-]
-urllib3 = [
- {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"},
- {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"},
-]
-werkzeug = [
- {file = "Werkzeug-2.2.2-py3-none-any.whl", hash = "sha256:f979ab81f58d7318e064e99c4506445d60135ac5cd2e177a2de0089bfd4c9bd5"},
- {file = "Werkzeug-2.2.2.tar.gz", hash = "sha256:7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f"},
-]
-yarl = [
- {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:abc06b97407868ef38f3d172762f4069323de52f2b70d133d096a48d72215d28"},
- {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3"},
- {file = "yarl-1.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9de955d98e02fab288c7718662afb33aab64212ecb368c5dc866d9a57bf48880"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ec362167e2c9fd178f82f252b6d97669d7245695dc057ee182118042026da40"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20df6ff4089bc86e4a66e3b1380460f864df3dd9dccaf88d6b3385d24405893b"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5999c4662631cb798496535afbd837a102859568adc67d75d2045e31ec3ac497"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed19b74e81b10b592084a5ad1e70f845f0aacb57577018d31de064e71ffa267a"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e4808f996ca39a6463f45182e2af2fae55e2560be586d447ce8016f389f626f"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2d800b9c2eaf0684c08be5f50e52bfa2aa920e7163c2ea43f4f431e829b4f0fd"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6628d750041550c5d9da50bb40b5cf28a2e63b9388bac10fedd4f19236ef4957"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f5af52738e225fcc526ae64071b7e5342abe03f42e0e8918227b38c9aa711e28"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:76577f13333b4fe345c3704811ac7509b31499132ff0181f25ee26619de2c843"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0c03f456522d1ec815893d85fccb5def01ffaa74c1b16ff30f8aaa03eb21e453"},
- {file = "yarl-1.8.1-cp310-cp310-win32.whl", hash = "sha256:ea30a42dc94d42f2ba4d0f7c0ffb4f4f9baa1b23045910c0c32df9c9902cb272"},
- {file = "yarl-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:9130ddf1ae9978abe63808b6b60a897e41fccb834408cde79522feb37fb72fb0"},
- {file = "yarl-1.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0ab5a138211c1c366404d912824bdcf5545ccba5b3ff52c42c4af4cbdc2c5035"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0fb2cb4204ddb456a8e32381f9a90000429489a25f64e817e6ff94879d432fc"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:85cba594433915d5c9a0d14b24cfba0339f57a2fff203a5d4fd070e593307d0b"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ca7e596c55bd675432b11320b4eacc62310c2145d6801a1f8e9ad160685a231"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0f77539733e0ec2475ddcd4e26777d08996f8cd55d2aef82ec4d3896687abda"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29e256649f42771829974e742061c3501cc50cf16e63f91ed8d1bf98242e5507"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7fce6cbc6c170ede0221cc8c91b285f7f3c8b9fe28283b51885ff621bbe0f8ee"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:59ddd85a1214862ce7c7c66457f05543b6a275b70a65de366030d56159a979f0"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:12768232751689c1a89b0376a96a32bc7633c08da45ad985d0c49ede691f5c0d"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:b19255dde4b4f4c32e012038f2c169bb72e7f081552bea4641cab4d88bc409dd"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6c8148e0b52bf9535c40c48faebb00cb294ee577ca069d21bd5c48d302a83780"},
- {file = "yarl-1.8.1-cp37-cp37m-win32.whl", hash = "sha256:de839c3a1826a909fdbfe05f6fe2167c4ab033f1133757b5936efe2f84904c07"},
- {file = "yarl-1.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:dd032e8422a52e5a4860e062eb84ac94ea08861d334a4bcaf142a63ce8ad4802"},
- {file = "yarl-1.8.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:19cd801d6f983918a3f3a39f3a45b553c015c5aac92ccd1fac619bd74beece4a"},
- {file = "yarl-1.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6347f1a58e658b97b0a0d1ff7658a03cb79bdbda0331603bed24dd7054a6dea1"},
- {file = "yarl-1.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c0da7e44d0c9108d8b98469338705e07f4bb7dab96dbd8fa4e91b337db42548"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5587bba41399854703212b87071c6d8638fa6e61656385875f8c6dff92b2e461"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31a9a04ecccd6b03e2b0e12e82131f1488dea5555a13a4d32f064e22a6003cfe"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:205904cffd69ae972a1707a1bd3ea7cded594b1d773a0ce66714edf17833cdae"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea513a25976d21733bff523e0ca836ef1679630ef4ad22d46987d04b372d57fc"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0b51530877d3ad7a8d47b2fff0c8df3b8f3b8deddf057379ba50b13df2a5eae"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d2b8f245dad9e331540c350285910b20dd913dc86d4ee410c11d48523c4fd546"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ab2a60d57ca88e1d4ca34a10e9fb4ab2ac5ad315543351de3a612bbb0560bead"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:449c957ffc6bc2309e1fbe67ab7d2c1efca89d3f4912baeb8ead207bb3cc1cd4"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a165442348c211b5dea67c0206fc61366212d7082ba8118c8c5c1c853ea4d82e"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b3ded839a5c5608eec8b6f9ae9a62cb22cd037ea97c627f38ae0841a48f09eae"},
- {file = "yarl-1.8.1-cp38-cp38-win32.whl", hash = "sha256:c1445a0c562ed561d06d8cbc5c8916c6008a31c60bc3655cdd2de1d3bf5174a0"},
- {file = "yarl-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:56c11efb0a89700987d05597b08a1efcd78d74c52febe530126785e1b1a285f4"},
- {file = "yarl-1.8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e80ed5a9939ceb6fda42811542f31c8602be336b1fb977bccb012e83da7e4936"},
- {file = "yarl-1.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6afb336e23a793cd3b6476c30f030a0d4c7539cd81649683b5e0c1b0ab0bf350"},
- {file = "yarl-1.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c322cbaa4ed78a8aac89b2174a6df398faf50e5fc12c4c191c40c59d5e28357"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fae37373155f5ef9b403ab48af5136ae9851151f7aacd9926251ab26b953118b"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5395da939ffa959974577eff2cbfc24b004a2fb6c346918f39966a5786874e54"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:076eede537ab978b605f41db79a56cad2e7efeea2aa6e0fa8f05a26c24a034fb"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d1a50e461615747dd93c099f297c1994d472b0f4d2db8a64e55b1edf704ec1c"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7de89c8456525650ffa2bb56a3eee6af891e98f498babd43ae307bd42dca98f6"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4a88510731cd8d4befaba5fbd734a7dd914de5ab8132a5b3dde0bbd6c9476c64"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2d93a049d29df172f48bcb09acf9226318e712ce67374f893b460b42cc1380ae"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:21ac44b763e0eec15746a3d440f5e09ad2ecc8b5f6dcd3ea8cb4773d6d4703e3"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d0272228fabe78ce00a3365ffffd6f643f57a91043e119c289aaba202f4095b0"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:99449cd5366fe4608e7226c6cae80873296dfa0cde45d9b498fefa1de315a09e"},
- {file = "yarl-1.8.1-cp39-cp39-win32.whl", hash = "sha256:8b0af1cf36b93cee99a31a545fe91d08223e64390c5ecc5e94c39511832a4bb6"},
- {file = "yarl-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:de49d77e968de6626ba7ef4472323f9d2e5a56c1d85b7c0e2a190b2173d3b9be"},
- {file = "yarl-1.8.1.tar.gz", hash = "sha256:af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf"},
-]
-zipp = [
- {file = "zipp-3.10.0-py3-none-any.whl", hash = "sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1"},
- {file = "zipp-3.10.0.tar.gz", hash = "sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8"},
-]
diff --git a/pyproject.toml b/pyproject.toml
deleted file mode 100644
index 422aa47..0000000
--- a/pyproject.toml
+++ /dev/null
@@ -1,15 +0,0 @@
-[tool.poetry]
-name = "EightBot"
-version = "2.0.0"
-description = ""
-authors = ["EightBotDev "]
-
-[tool.poetry.dependencies]
-python = ">=3.8.0,<3.9"
-numpy = "^1.22.2"
-Flask = "^2.2.0"
-urllib3 = "^1.26.12"
-discord = "^2.1.0"
-requests = "^2.28.1"
-black = "^22.10.0"
-autoflake = "^1.7.7"
diff --git a/webserver.py b/webserver.py
deleted file mode 100644
index c506005..0000000
--- a/webserver.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from flask import Flask
-from threading import Thread
-
-app = Flask("")
-
-
-@app.route("/")
-def home():
- return "online!"
-
-
-def run():
- app.run(host="0.0.0.0", port=8080)
-
-
-async def keep_alive():
- t = Thread(target=run)
- t.start()
From 38cf75b0e6e9b7ac083cf820340d01b04ff71e3d Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Sat, 24 Dec 2022 14:54:11 +0900
Subject: [PATCH 02/37] remove: index.ts
---
index.js | 0
package.json | 3 ++-
2 files changed, 2 insertions(+), 1 deletion(-)
delete mode 100644 index.js
diff --git a/index.js b/index.js
deleted file mode 100644
index e69de29..0000000
diff --git a/package.json b/package.json
index a4b407d..82ccbbf 100644
--- a/package.json
+++ b/package.json
@@ -2,9 +2,10 @@
"name": "eightbot",
"version": "2.2.0",
"description": "Discord BOT",
- "main": "index.js",
+ "main": "index.ts",
"repository": "https://github.com/EightBot-Developer/EightBot",
"author": "gx1285",
"license": "MIT",
+ "type": "module",
"private": true
}
From d28a8f3037e493315abacb1c017e69a3f9851e11 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Sat, 24 Dec 2022 14:56:34 +0900
Subject: [PATCH 03/37] =?UTF-8?q?=E2=9C=A8new:=20code=5Fof=5Fconduct=20&?=
=?UTF-8?q?=20CONTRIBUTING?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CODE_OF_CONDUCT.md | 128 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 128 insertions(+)
create mode 100644 CODE_OF_CONDUCT.md
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..21dd59e
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,128 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+- Demonstrating empathy and kindness toward other people
+- Being respectful of differing opinions, viewpoints, and experiences
+- Giving and gracefully accepting constructive feedback
+- Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+- Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+- The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+- Trolling, insulting or derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+- Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+support server.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
From aa9c7dca0bf7acad1004106a39cc25f4f6dc5a0f Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Sat, 24 Dec 2022 15:02:59 +0900
Subject: [PATCH 04/37] commit
---
CONTRIBUTING.md | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..08a836d
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+# この Bot へ貢献
+
+## Issue を作成するとき
+
+1. その内容の Issue が既に存在していないかを確認して下さい。(クローズ済みのものも)
+2. 内容を書き込みます。(テンプレートの場合は文字などを変更します)
+3. Issue を作成します。
+
+## Pull request を作成する時
+
+1. その内容の Pull request が既に存在していないかを確認して下さい。(マージ済み、クローズ済みのものも)
+2. もう実装されていないか確認して下さい。
+3. Fork し、コードを書いて、内容を書き込みます。
+4. Pull request を作成します。
+ WIP の場合は、`🚧WIP: oo`にしてください。
+
+## コミットメッセージ
+
+何かを作った: `✨new: ○○`
+何かを修正した: `🐛fix: ○○`
+何かを変更した: `🔄change: ○○`
+何かを更新した: `🆙update: ○○`
+何かを削除した: `🗑️delete: oo`
From 30d2e899ab9d8de50d0fc95e44a635d11a727efe Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Sat, 24 Dec 2022 15:36:11 +0900
Subject: [PATCH 05/37] =?UTF-8?q?new:=20=E3=83=A9=E3=82=A4=E3=82=BB?=
=?UTF-8?q?=E3=83=B3=E3=82=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
LICENCE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 674 insertions(+)
create mode 100644 LICENCE
diff --git a/LICENCE b/LICENCE
new file mode 100644
index 0000000..a31e0ad
--- /dev/null
+++ b/LICENCE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C) 2022 EightBot Developer
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C) 2022 EightBot Developer
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
\ No newline at end of file
From 977f39b292d4a432c205b0a66c5f766aca731bb4 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Sun, 25 Dec 2022 17:18:15 +0900
Subject: [PATCH 06/37] =?UTF-8?q?=E2=9C=A8new:=20ping=20and=20more...?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.sample | 3 +
.gitignore | 2 +
README.md | 6 +
commands/ping.ts | 53 +++++++
env.md | 16 ++
index.ts | 10 ++
package.json | 18 ++-
tsconfig.json | 14 ++
yarn.lock | 375 +++++++++++++++++++++++++++++++++++++++++++++++
9 files changed, 493 insertions(+), 4 deletions(-)
create mode 100644 .env.sample
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 commands/ping.ts
create mode 100644 env.md
create mode 100644 tsconfig.json
create mode 100644 yarn.lock
diff --git a/.env.sample b/.env.sample
new file mode 100644
index 0000000..7d90e76
--- /dev/null
+++ b/.env.sample
@@ -0,0 +1,3 @@
+token=Th1sIsN0tT0k3n.k0r3hat0k3nd3hanaidesu.Th1sIsN0tT0k3nk0r3hat0k3nd3hanaidesu
+test_token=Th1sIsN0tT0k3n.k0r3hat0k3nd3hanaidesu.Th1sIsN0tT0k3nk0r3hat0k3nd3hanaidesu
+test_mode = "y or n"
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3ec544c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+node_modules/
+.env
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a53fb35
--- /dev/null
+++ b/README.md
@@ -0,0 +1,6 @@
+# EightBot
+
+
+
+
+
diff --git a/commands/ping.ts b/commands/ping.ts
new file mode 100644
index 0000000..9596f5b
--- /dev/null
+++ b/commands/ping.ts
@@ -0,0 +1,53 @@
+import { isMessageInstance } from "@sapphire/discord.js-utilities";
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageEmbed } from "discord.js";
+export class PingCommand extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("ping")
+ .setDescription("Returns the current Ping value of the bot.")
+ .setDescriptionLocalizations({
+ ja: "Botの現在のPing値を返します。",
+ "en-US": "Returns the current Ping value of the bot.",
+ })
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ const msg = await interaction.reply({
+ embeds: [
+ new MessageEmbed().setDescription("**Ping?**").setColor(0x3498db),
+ ],
+ ephemeral: true,
+ fetchReply: true,
+ });
+
+ if (isMessageInstance(msg)) {
+ const diff = msg.createdTimestamp - interaction.createdTimestamp;
+ const ping = Math.round(this.container.client.ws.ping);
+ return interaction.editReply({
+ embeds: [
+ new MessageEmbed()
+ .setDescription("**Pong 🏓!**")
+ .setColor(0x3498db)
+ .addFields(
+ {
+ name: "往復でかかった時間",
+ value: `${diff / 1000}秒(${diff}ミリ秒)`,
+ },
+ { name: "ハートビート", value: `${ping / 1000}秒(${ping}ミリ秒)` }
+ ),
+ ],
+ });
+ }
+
+ return interaction.editReply("Failed to retrieve ping :(");
+ }
+}
diff --git a/env.md b/env.md
new file mode 100644
index 0000000..98627ed
--- /dev/null
+++ b/env.md
@@ -0,0 +1,16 @@
+# env.readme
+
+env の key の説明です。
+
+## token
+
+本番環境の DiscordBot のトークンを入れてください。
+
+## test_token
+
+テスト環境の DiscordBot のトークンを入れてください。
+
+## test_mode
+
+テストモードを ON にするか。ON にすると実験機能が追加されます。
+入力値は`y` or `n`です。
diff --git a/index.ts b/index.ts
index e69de29..a713072 100644
--- a/index.ts
+++ b/index.ts
@@ -0,0 +1,10 @@
+import { SapphireClient } from "@sapphire/framework";
+import { config } from "dotenv";
+const client = new SapphireClient({ intents: ["GUILDS", "GUILD_MESSAGES"] });
+// replitで動かす場合は5行目を消してください。
+config();
+if (process.env.test_mode === "y") {
+ client.login(process.env.test_token);
+} else {
+ client.login(process.env.token);
+}
diff --git a/package.json b/package.json
index 82ccbbf..4b36820 100644
--- a/package.json
+++ b/package.json
@@ -4,8 +4,18 @@
"description": "Discord BOT",
"main": "index.ts",
"repository": "https://github.com/EightBot-Developer/EightBot",
- "author": "gx1285",
- "license": "MIT",
- "type": "module",
- "private": true
+ "author": "EightBot developer",
+ "private": true,
+ "scripts": {
+ "start": "yarn node --loader ts-node/esm ."
+ },
+ "dependencies": {
+ "@sapphire/framework": "^3.1.4",
+ "@types/node": "^18.11.17",
+ "discord-api-types": "0.33.5",
+ "discord.js": "13.x",
+ "dotenv": "^16.0.3",
+ "ts-node": "^10.9.1",
+ "typescript": "^4.9.4"
+ }
}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..9c79f84
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compilerOptions": {
+ "module": "NodeNext",
+ "moduleResolution": "Node",
+ "target": "ES2022",
+ "jsx": "react",
+ "strictNullChecks": true,
+ "strictFunctionTypes": true
+ },
+ "exclude": [
+ "node_modules",
+ "**/node_modules/*"
+ ]
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..9a57402
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,375 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@cspotcode/source-map-support@^0.8.0":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
+ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
+ dependencies:
+ "@jridgewell/trace-mapping" "0.3.9"
+
+"@discordjs/builders@^0.16.0":
+ version "0.16.0"
+ resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-0.16.0.tgz#3201f57fa57c4dd77aebb480cf47da77b7ba2e8c"
+ integrity sha512-9/NCiZrLivgRub2/kBc0Vm5pMBE5AUdYbdXsLu/yg9ANgvnaJ0bZKTY8yYnLbsEc/LYUP79lEIdC73qEYhWq7A==
+ dependencies:
+ "@sapphire/shapeshift" "^3.5.1"
+ discord-api-types "^0.36.2"
+ fast-deep-equal "^3.1.3"
+ ts-mixer "^6.0.1"
+ tslib "^2.4.0"
+
+"@discordjs/collection@^0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.7.0.tgz#1a6c00198b744ba2b73a64442145da637ac073b8"
+ integrity sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==
+
+"@discordjs/collection@^1.2.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.3.0.tgz#65bf9674db72f38c25212be562bb28fa0dba6aa3"
+ integrity sha512-ylt2NyZ77bJbRij4h9u/wVy7qYw/aDqQLWnadjvDqW/WoWCxrsX6M3CIw9GVP5xcGCDxsrKj5e0r5evuFYwrKg==
+
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
+"@jridgewell/trace-mapping@0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@sapphire/async-queue@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8"
+ integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==
+
+"@sapphire/discord-utilities@^2.12.0":
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/discord-utilities/-/discord-utilities-2.12.0.tgz#d0ec3d345877593142cddbfcd08e5420868bf055"
+ integrity sha512-E/Qqb8PwEoX/WLVfcGvTglTgEGGcc/2rGtKBqhMcHcEEtNIY8dhQVYbW/KMNJpR/J81OqUJquVzpkzRe6fQWiw==
+ dependencies:
+ discord-api-types "^0.36.3"
+
+"@sapphire/discord.js-utilities@^5.1.2":
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/@sapphire/discord.js-utilities/-/discord.js-utilities-5.1.2.tgz#0dec0c700375fa5f787d2f9ebd7fdaed7bcc5a95"
+ integrity sha512-zKXUkVzueT3Zag9D/ubpey0g/vLXLCVVFlmYoZqpkx1HsTLSTKz4hxbD7IQ/8q7rvI5Pm/Ex1jajPHMLXKmlpw==
+ dependencies:
+ "@sapphire/discord-utilities" "^2.12.0"
+ "@sapphire/duration" "^1.0.0"
+ "@sapphire/utilities" "^3.11.0"
+ tslib "^2.4.1"
+
+"@sapphire/duration@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/duration/-/duration-1.0.0.tgz#baec4898ee71099093580db774474b25167150ff"
+ integrity sha512-B+6nKYnBmIlqqbamcR4iBvbQHz6/Kq2JUVM0rA3lQ+aYUYDdcA1Spt66CKtPWwdTYEtSv0VY6Jv27WCtFNYTUg==
+
+"@sapphire/framework@^3.1.4":
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/@sapphire/framework/-/framework-3.1.4.tgz#1f880ed1e39e5aa300ef87f9f3a7f3b846a8625b"
+ integrity sha512-IuivG0V/fRkBb5F7TTjgIEl9XIMZ57HjpJ31+Aev0FwYDW6/WqHXUjLE3FLUWQ1gZsDNpnu1C0c1qW4VkLdzKg==
+ dependencies:
+ "@discordjs/builders" "^0.16.0"
+ "@sapphire/discord-utilities" "^2.12.0"
+ "@sapphire/discord.js-utilities" "^5.1.2"
+ "@sapphire/lexure" "^1.1.2"
+ "@sapphire/pieces" "^3.6.0"
+ "@sapphire/ratelimits" "^2.4.5"
+ "@sapphire/result" "^2.6.0"
+ "@sapphire/stopwatch" "^1.5.0"
+ "@sapphire/utilities" "^3.11.0"
+
+"@sapphire/lexure@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@sapphire/lexure/-/lexure-1.1.2.tgz#219b91a0b2165d0e6b34c773e592141b2b1b92e1"
+ integrity sha512-+v3P3EMDdFoybHH7c7cMcz30jEyxujkxWu5f958cf/Sm27fMM0IqwILnNFUpExZCBAueEM/eoSgbRl4q+K+0jg==
+ dependencies:
+ "@sapphire/result" "^2.6.0"
+
+"@sapphire/pieces@^3.6.0":
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/pieces/-/pieces-3.6.0.tgz#e0017f39255a5711ca5bc4794ad28b97cd464445"
+ integrity sha512-6Zd6as4e8501NLbjbjTxsi0lVkT850kJroqyjBZClBW32Izr+1XW6sGQM/hl3Pil1/L4QMQqu4khszHejtnbjA==
+ dependencies:
+ "@discordjs/collection" "^1.2.0"
+ "@sapphire/utilities" "^3.11.0"
+ tslib "^2.4.0"
+
+"@sapphire/ratelimits@^2.4.5":
+ version "2.4.5"
+ resolved "https://registry.yarnpkg.com/@sapphire/ratelimits/-/ratelimits-2.4.5.tgz#40049436fcd3694acb8ddaf2eb61ea0963a0f9a0"
+ integrity sha512-2wqpVPRaPUE+CWStLm6wGLj1uA4Ln/9qbH4Ue/eCHC6/R5lJz0+8nGD1LpiYOcyeVLTHbmwODGeD92obkPej2g==
+ dependencies:
+ "@sapphire/timer-manager" "^1.0.0"
+
+"@sapphire/result@^2.6.0":
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/result/-/result-2.6.0.tgz#0d29996fb96403b76018a2fa8f10198f4c65d06e"
+ integrity sha512-gdW6n/oDZ8aC1439Ub3RiLQ6L4VHAxbN0AhGJWNkEZ6Z6Ww2V62fwRiA/73OPfgYQKXk9ljhAFiqNO91KAonHQ==
+
+"@sapphire/shapeshift@^3.5.1":
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.8.1.tgz#b98dc6a7180f9b38219267917b2e6fa33f9ec656"
+ integrity sha512-xG1oXXBhCjPKbxrRTlox9ddaZTvVpOhYLmKmApD/vIWOV1xEYXnpoFs68zHIZBGbqztq6FrUPNPerIrO1Hqeaw==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ lodash "^4.17.21"
+
+"@sapphire/stopwatch@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/stopwatch/-/stopwatch-1.5.0.tgz#4acf7352f969f0c81d69a838ecbfc8b6026ff660"
+ integrity sha512-DtyKugdy3JTqm6JnEepTY64fGJAqlusDVrlrzifEgSCfGYCqpvB+SBldkWtDH+z+zLcp+PyaFLq7xpVfkhmvGg==
+ dependencies:
+ tslib "^2.4.0"
+
+"@sapphire/timer-manager@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/timer-manager/-/timer-manager-1.0.0.tgz#e8ecf15a7042ee611048b4f90fab1399653d3934"
+ integrity sha512-vxxnv75QPMGKt6IB6nL2xRJfwzcUQ9DBGzJLg6G8eS5O4u7j3IR/yr/GQsa4gIpjw6kQOgn8lUdnSTlpnERTbQ==
+
+"@sapphire/utilities@^3.11.0":
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/utilities/-/utilities-3.11.0.tgz#2dccfb332dc5c119e1425cce6b2c64160b770bad"
+ integrity sha512-ich7J+329UTEgWxgk8b871rMhbFW/hvXdabdiKaUKd6g10eIMkIakWf+EGkDQsiDSiebIXll9TIPPmWtN3cVSw==
+
+"@tsconfig/node10@^1.0.7":
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
+ integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
+
+"@tsconfig/node12@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
+ integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
+
+"@tsconfig/node14@^1.0.0":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
+ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
+
+"@tsconfig/node16@^1.0.2":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"
+ integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==
+
+"@types/node-fetch@^2.6.2":
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da"
+ integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==
+ dependencies:
+ "@types/node" "*"
+ form-data "^3.0.0"
+
+"@types/node@*", "@types/node@^18.11.17":
+ version "18.11.17"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.17.tgz#5c009e1d9c38f4a2a9d45c0b0c493fe6cdb4bcb5"
+ integrity sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==
+
+"@types/ws@^8.5.3":
+ version "8.5.3"
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d"
+ integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==
+ dependencies:
+ "@types/node" "*"
+
+acorn-walk@^8.1.1:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
+ integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
+
+acorn@^8.4.1:
+ version "8.8.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
+ integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
+
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+create-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+ integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+discord-api-types@0.33.5, discord-api-types@^0.33.5:
+ version "0.33.5"
+ resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.33.5.tgz#6548b70520f7b944c60984dca4ab58654d664a12"
+ integrity sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==
+
+discord-api-types@^0.36.2, discord-api-types@^0.36.3:
+ version "0.36.3"
+ resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.36.3.tgz#a931b7e57473a5c971d6937fa5f392eb30047579"
+ integrity sha512-bz/NDyG0KBo/tY14vSkrwQ/n3HKPf87a0WFW/1M9+tXYK+vp5Z5EksawfCWo2zkAc6o7CClc0eff1Pjrqznlwg==
+
+discord.js@13.x:
+ version "13.12.0"
+ resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-13.12.0.tgz#e4839c14a02b1947e063b72f09a49b11336a58f5"
+ integrity sha512-K5qhREsYcTHkEqt7+7LcSoXTeQYZpI+SQRs9ei/FhbhUpirmjqFtN99P8W2mrKUyhhy7WXWm7rnna0AooKtIpw==
+ dependencies:
+ "@discordjs/builders" "^0.16.0"
+ "@discordjs/collection" "^0.7.0"
+ "@sapphire/async-queue" "^1.5.0"
+ "@types/node-fetch" "^2.6.2"
+ "@types/ws" "^8.5.3"
+ discord-api-types "^0.33.5"
+ form-data "^4.0.0"
+ node-fetch "^2.6.7"
+ ws "^8.9.0"
+
+dotenv@^16.0.3:
+ version "16.0.3"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
+ integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
+
+fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+form-data@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
+ integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+lodash@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+make-error@^1.1.1:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+node-fetch@^2.6.7:
+ version "2.6.7"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
+ integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+
+ts-mixer@^6.0.1:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.2.tgz#3e4e4bb8daffb24435f6980b15204cb5b287e016"
+ integrity sha512-zvHx3VM83m2WYCE8XL99uaM7mFwYSkjR2OZti98fabHrwkjsCvgwChda5xctein3xGOyaQhtTeDq/1H/GNvF3A==
+
+ts-node@^10.9.1:
+ version "10.9.1"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
+ integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
+ dependencies:
+ "@cspotcode/source-map-support" "^0.8.0"
+ "@tsconfig/node10" "^1.0.7"
+ "@tsconfig/node12" "^1.0.7"
+ "@tsconfig/node14" "^1.0.0"
+ "@tsconfig/node16" "^1.0.2"
+ acorn "^8.4.1"
+ acorn-walk "^8.1.1"
+ arg "^4.1.0"
+ create-require "^1.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ v8-compile-cache-lib "^3.0.1"
+ yn "3.1.1"
+
+tslib@^2.4.0, tslib@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
+ integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
+
+typescript@^4.9.4:
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
+ integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==
+
+v8-compile-cache-lib@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
+ integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
+
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+
+whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+ws@^8.9.0:
+ version "8.11.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
+ integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
+
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
From 76adc6e97f1e0d6b9ff6d6a78c28e2457b6557ee Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 19:35:47 +0900
Subject: [PATCH 07/37] new: poll
---
.gitignore | 6 +-
commands/{ => bot}/ping.ts | 8 +-
commands/server/poll.ts | 85 ++++
commands/server/poll_stop.ts | 49 +++
commands/server/verify.ts | 23 ++
db/readme.md | 1 +
index.ts | 9 +-
listeners/poll.ts | 105 +++++
listeners/poll_res.ts | 56 +++
listeners/ready.ts | 15 +
package.json | 3 +
yarn.lock | 759 +++++++++++++++++++++++++++++++++++
12 files changed, 1109 insertions(+), 10 deletions(-)
rename commands/{ => bot}/ping.ts (83%)
create mode 100644 commands/server/poll.ts
create mode 100644 commands/server/poll_stop.ts
create mode 100644 commands/server/verify.ts
create mode 100644 db/readme.md
create mode 100644 listeners/poll.ts
create mode 100644 listeners/poll_res.ts
create mode 100644 listeners/ready.ts
diff --git a/.gitignore b/.gitignore
index 3ec544c..2789900 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,6 @@
+# node_modules folder
node_modules/
-.env
\ No newline at end of file
+# env
+.env
+# sqlite file
+db.sqlite
\ No newline at end of file
diff --git a/commands/ping.ts b/commands/bot/ping.ts
similarity index 83%
rename from commands/ping.ts
rename to commands/bot/ping.ts
index 9596f5b..cb7caa1 100644
--- a/commands/ping.ts
+++ b/commands/bot/ping.ts
@@ -10,13 +10,7 @@ export class PingCommand extends Command {
registry: ChatInputCommand.Registry
) {
registry.registerChatInputCommand((builder) =>
- builder
- .setName("ping")
- .setDescription("Returns the current Ping value of the bot.")
- .setDescriptionLocalizations({
- ja: "Botの現在のPing値を返します。",
- "en-US": "Returns the current Ping value of the bot.",
- })
+ builder.setName("ping").setDescription("Botの現在のPing値を返します。")
);
}
diff --git a/commands/server/poll.ts b/commands/server/poll.ts
new file mode 100644
index 0000000..00d2d29
--- /dev/null
+++ b/commands/server/poll.ts
@@ -0,0 +1,85 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import {
+ MessageActionRow,
+ Modal,
+ TextInputComponent,
+ ModalActionRowComponent,
+} from "discord.js";
+export class PingCommand extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("poll")
+ .setDescription("簡易投票を作成します。")
+ .addIntegerOption((option) =>
+ option
+ .setName("選択肢の数")
+ .setDescription("選択肢の数を入力してください。")
+ .addChoices({ name: "2", value: 2 }, { name: "3", value: 3 })
+ .setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ const modal = new Modal().setCustomId("poll_MODAL").setTitle("poll作成");
+ const i = interaction.options.getInteger("選択肢の数");
+ const title = new TextInputComponent()
+ .setCustomId("title")
+ .setLabel("タイトル")
+ .setStyle("PARAGRAPH")
+ .setRequired(true);
+ if (i === 2) {
+ const o = new TextInputComponent()
+ .setCustomId("1")
+ .setLabel("選択肢1")
+ .setRequired(true)
+ .setStyle("SHORT");
+ const t = new TextInputComponent()
+ .setCustomId("2")
+ .setLabel("選択肢2")
+ .setRequired(true)
+ .setStyle("SHORT");
+ modal.addComponents(
+ new MessageActionRow().addComponents(title),
+ new MessageActionRow().addComponents(o),
+ new MessageActionRow().addComponents(t)
+ );
+ return await interaction.showModal(modal);
+ } else if (i === 3) {
+ const o = new TextInputComponent()
+ .setCustomId("1")
+ .setLabel("選択肢1")
+ .setRequired(true)
+ .setStyle("SHORT");
+ const t = new TextInputComponent()
+ .setCustomId("2")
+ .setLabel("選択肢2")
+ .setRequired(true)
+ .setStyle("SHORT");
+ const t2 = new TextInputComponent()
+ .setCustomId("3")
+ .setLabel("選択肢3")
+ .setRequired(true)
+ .setStyle("SHORT");
+ modal.addComponents(
+ new MessageActionRow().addComponents(title),
+ new MessageActionRow().addComponents(o),
+ new MessageActionRow().addComponents(t),
+ new MessageActionRow().addComponents(t2)
+ );
+ return await interaction.showModal(modal);
+ } else {
+ return await interaction.reply({
+ content: "不明なエラーが発生しました。",
+ ephemeral: true,
+ });
+ }
+ }
+}
diff --git a/commands/server/poll_stop.ts b/commands/server/poll_stop.ts
new file mode 100644
index 0000000..8bf6687
--- /dev/null
+++ b/commands/server/poll_stop.ts
@@ -0,0 +1,49 @@
+import { Command } from "@sapphire/framework";
+import { ApplicationCommandType } from "discord-api-types/v9";
+import { MessageEmbed } from "discord.js";
+import Keyv from "keyv";
+export class PingCommand extends Command {
+ poll: Keyv;
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ this.poll = new Keyv("sqlite://db/db.sqlite", { table: "poll" });
+ this.poll.on("error", (e) => this.container.logger.error(e));
+ }
+
+ public override registerApplicationCommands(registry: Command.Registry) {
+ registry.registerContextMenuCommand((builder) =>
+ builder.setName("投票を集計する").setType(ApplicationCommandType.Message)
+ );
+ }
+
+ public async contextMenuRun(interaction: Command.ContextMenuInteraction) {
+ if (!interaction.isMessageContextMenu()) return;
+ if (await this.poll.get(`${interaction.targetMessage.id}`)) {
+ if (await this.poll.get(`${interaction.targetMessage.id}_3`)) {
+ await interaction.reply({
+ embeds: [
+ new MessageEmbed()
+ .setTitle(
+ interaction.targetMessage.embeds[0].title + "の集計結果"
+ )
+ .setDescription(
+ `1番: ${await this.poll.get(
+ `${interaction.targetMessage.id}_1`
+ )}票\n2番: ${await this.poll.get(
+ `${interaction.targetMessage.id}_2`
+ )}票\n3番: ${await this.poll.get(
+ `${interaction.targetMessage.id}_3`
+ )}票`
+ )
+ .setColor(0x3498db),
+ ],
+ });
+ }
+ } else {
+ return await interaction.reply({
+ content: "このメッセージはEightBot簡易投票ではありません。",
+ ephemeral: true,
+ });
+ }
+ }
+}
diff --git a/commands/server/verify.ts b/commands/server/verify.ts
new file mode 100644
index 0000000..6e91335
--- /dev/null
+++ b/commands/server/verify.ts
@@ -0,0 +1,23 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+
+export class PingCommand extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("verify")
+ .setDescription("Returns the current Ping value of the bot.")
+ .setDescriptionLocalizations({
+ ja: "Botの現在のPing値を返します。",
+ "en-US": "Returns the current Ping value of the bot.",
+ })
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {}
+}
diff --git a/db/readme.md b/db/readme.md
new file mode 100644
index 0000000..a811a6a
--- /dev/null
+++ b/db/readme.md
@@ -0,0 +1 @@
+このフォルダはsqliteファイルを保存するフォルダです。
\ No newline at end of file
diff --git a/index.ts b/index.ts
index a713072..a161530 100644
--- a/index.ts
+++ b/index.ts
@@ -1,10 +1,15 @@
import { SapphireClient } from "@sapphire/framework";
+import { Intents } from "discord.js";
import { config } from "dotenv";
-const client = new SapphireClient({ intents: ["GUILDS", "GUILD_MESSAGES"] });
-// replitで動かす場合は5行目を消してください。
+const client = new SapphireClient({ intents: Intents.FLAGS.GUILDS });
+// replitで動かす場合は6行目を消してください。
config();
if (process.env.test_mode === "y") {
+ console.info("\x1b[46m\x1b[30mInfo\x1b[49m\x1b[39m Log in in Test mode.");
client.login(process.env.test_token);
} else {
+ console.info(
+ "\x1b[46m\x1b[30mInfo\x1b[49m\x1b[39m Log in in production mode."
+ );
client.login(process.env.token);
}
diff --git a/listeners/poll.ts b/listeners/poll.ts
new file mode 100644
index 0000000..769e2d5
--- /dev/null
+++ b/listeners/poll.ts
@@ -0,0 +1,105 @@
+import { Listener, Events } from "@sapphire/framework";
+import {
+ Interaction,
+ CacheType,
+ MessageEmbed,
+ Message,
+ MessageActionRow,
+ MessageButton,
+} from "discord.js";
+import Keyv from "keyv";
+
+export class Poll_modal extends Listener {
+ poll: Keyv;
+ public constructor(context: Listener.Context, options: Listener.Options) {
+ super(context, {
+ ...options,
+ once: false,
+ event: Events.InteractionCreate,
+ });
+ this.poll = new Keyv("sqlite://db/db.sqlite", { table: "poll" });
+ this.poll.on("error", (e) => this.container.logger.info(e));
+ }
+ public async run(interaction: Interaction) {
+ if (!interaction.isModalSubmit()) return;
+
+ if (interaction.customId === "poll_MODAL") {
+ try {
+ const row = new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setCustomId("1")
+ .setLabel("1")
+ .setStyle("PRIMARY")
+ )
+ .addComponents(
+ new MessageButton()
+ .setCustomId("2")
+ .setLabel("2")
+ .setStyle("PRIMARY")
+ )
+ .addComponents(
+ new MessageButton()
+ .setCustomId("3")
+ .setLabel("3")
+ .setStyle("PRIMARY")
+ );
+ const embed = new MessageEmbed()
+ .setTitle(interaction.fields.getTextInputValue("title"))
+ .setDescription(
+ `1: ${interaction.fields.getTextInputValue(
+ "1"
+ )}\n2: ${interaction.fields.getTextInputValue(
+ "2"
+ )}\n3: ${interaction.fields.getTextInputValue("3")}`
+ )
+ .setColor(0x3498db);
+
+ await interaction.reply({
+ content: "アンケートを生成しました。",
+ ephemeral: true,
+ });
+ const msg = await interaction.channel?.send({
+ embeds: [embed],
+ components: [row],
+ });
+ await this.poll.set(`${msg?.id}`, true);
+ await this.poll.set(`${msg?.id}_1`, 0);
+ await this.poll.set(`${msg?.id}_2`, 0);
+ await this.poll.set(`${msg?.id}_3`, 0);
+ } catch {
+ const row = new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setCustomId("1")
+ .setLabel("1")
+ .setStyle("PRIMARY")
+ )
+ .addComponents(
+ new MessageButton()
+ .setCustomId("2")
+ .setLabel("2")
+ .setStyle("PRIMARY")
+ );
+ const embed = new MessageEmbed()
+ .setTitle(interaction.fields.getTextInputValue("title"))
+ .setDescription(
+ `1: ${interaction.fields.getTextInputValue(
+ "1"
+ )}\n2: ${interaction.fields.getTextInputValue("2")}`
+ )
+ .setColor(0x3498db);
+ await interaction.reply({
+ content: "アンケートを生成しました。",
+ ephemeral: true,
+ });
+ const ch = await interaction.channel?.send({
+ embeds: [embed],
+ components: [row],
+ });
+ await this.poll.set(`${ch?.id}_1`, 0);
+ await this.poll.set(`${ch?.id}_2`, 0);
+ }
+ }
+ }
+}
diff --git a/listeners/poll_res.ts b/listeners/poll_res.ts
new file mode 100644
index 0000000..343fb18
--- /dev/null
+++ b/listeners/poll_res.ts
@@ -0,0 +1,56 @@
+import { Listener, Events } from "@sapphire/framework";
+import { Interaction, CacheType } from "discord.js";
+import Keyv from "keyv";
+
+export class PollResponse extends Listener {
+ poll: Keyv;
+ public constructor(context: Listener.Context, options: Listener.Options) {
+ super(context, {
+ ...options,
+ once: false,
+ event: Events.InteractionCreate,
+ });
+ this.poll = new Keyv("sqlite://db/db.sqlite", { table: "poll" });
+ this.poll.on("error", (e) => this.container.logger.error(e));
+ }
+ public async run(interaction: Interaction) {
+ if (!interaction.isButton()) return;
+ if (interaction.customId === "1") {
+ if (!(await this.poll.get(`${interaction.message.id}`))) {
+ return await interaction.reply({
+ content: "投票は終了しました。",
+ ephemeral: true,
+ });
+ } else {
+ let num: number = await this.poll.get(`${interaction.message.id}_1`);
+ num = num + 1;
+ await this.poll.set(`${interaction.message.id}_1`, num);
+ await interaction.reply({ content: "投票しました。", ephemeral: true });
+ }
+ } else if (interaction.customId === "2") {
+ if (!(await this.poll.get(`${interaction.message.id}`))) {
+ return await interaction.reply({
+ content: "投票は終了しました。",
+ ephemeral: true,
+ });
+ } else {
+ let num: number = await this.poll.get(`${interaction.message.id}_2`);
+ num = num + 1;
+ await this.poll.set(`${interaction.message.id}_2`, num);
+ await interaction.reply({ content: "投票しました。", ephemeral: true });
+ }
+ } else if (interaction.customId === "3") {
+ if (!(await this.poll.get(`${interaction.message.id}`))) {
+ return await interaction.reply({
+ content: "投票は終了しました。",
+ ephemeral: true,
+ });
+ } else {
+ let num: number = await this.poll.get(`${interaction.message.id}_3`);
+ num = num + 1;
+ await this.poll.set(`${interaction.message.id}_3`, num);
+ await interaction.reply({ content: "投票しました。", ephemeral: true });
+ }
+ }
+ }
+}
diff --git a/listeners/ready.ts b/listeners/ready.ts
new file mode 100644
index 0000000..c17f352
--- /dev/null
+++ b/listeners/ready.ts
@@ -0,0 +1,15 @@
+import { Events, Listener } from "@sapphire/framework";
+import { Client } from "discord.js";
+export class ReadyListener extends Listener {
+ public constructor(context: Listener.Context, options: Listener.Options) {
+ super(context, {
+ ...options,
+ once: true,
+ event: Events.ClientReady,
+ });
+ }
+ public run(client: Client) {
+ const { username, id } = client.user!;
+ this.container.logger.info(`Successfully logged in as ${username} (${id})`);
+ }
+}
diff --git a/package.json b/package.json
index 4b36820..fc27afc 100644
--- a/package.json
+++ b/package.json
@@ -10,11 +10,14 @@
"start": "yarn node --loader ts-node/esm ."
},
"dependencies": {
+ "@keyv/sqlite": "^3.6.4",
"@sapphire/framework": "^3.1.4",
"@types/node": "^18.11.17",
"discord-api-types": "0.33.5",
"discord.js": "13.x",
"dotenv": "^16.0.3",
+ "keyv": "^4.5.2",
+ "pify": "^6.1.0",
"ts-node": "^10.9.1",
"typescript": "^4.9.4"
}
diff --git a/yarn.lock b/yarn.lock
index 9a57402..e3c77aa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -30,6 +30,11 @@
resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.3.0.tgz#65bf9674db72f38c25212be562bb28fa0dba6aa3"
integrity sha512-ylt2NyZ77bJbRij4h9u/wVy7qYw/aDqQLWnadjvDqW/WoWCxrsX6M3CIw9GVP5xcGCDxsrKj5e0r5evuFYwrKg==
+"@gar/promisify@^1.0.1":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
+ integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
+
"@jridgewell/resolve-uri@^3.0.3":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
@@ -48,6 +53,45 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@keyv/sqlite@^3.6.4":
+ version "3.6.4"
+ resolved "https://registry.yarnpkg.com/@keyv/sqlite/-/sqlite-3.6.4.tgz#5582efe86e3fbbf9a65b895973d73d6d5950c879"
+ integrity sha512-nE7bjOU6lmGn3QBkaAZS+LLvBHebBKDwDbMGlTbhRNJoREam69LZewspGbePb8dpZS1C6IazedVRCq2eb5kFWw==
+ dependencies:
+ pify "^5.0.0"
+ sqlite3 "^5.1.4"
+
+"@mapbox/node-pre-gyp@^1.0.0":
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c"
+ integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==
+ dependencies:
+ detect-libc "^2.0.0"
+ https-proxy-agent "^5.0.0"
+ make-dir "^3.1.0"
+ node-fetch "^2.6.7"
+ nopt "^5.0.0"
+ npmlog "^5.0.1"
+ rimraf "^3.0.2"
+ semver "^7.3.5"
+ tar "^6.1.11"
+
+"@npmcli/fs@^1.0.0":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257"
+ integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==
+ dependencies:
+ "@gar/promisify" "^1.0.1"
+ semver "^7.3.5"
+
+"@npmcli/move-file@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
+ integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
+ dependencies:
+ mkdirp "^1.0.4"
+ rimraf "^3.0.2"
+
"@sapphire/async-queue@^1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8"
@@ -143,6 +187,11 @@
resolved "https://registry.yarnpkg.com/@sapphire/utilities/-/utilities-3.11.0.tgz#2dccfb332dc5c119e1425cce6b2c64160b770bad"
integrity sha512-ich7J+329UTEgWxgk8b871rMhbFW/hvXdabdiKaUKd6g10eIMkIakWf+EGkDQsiDSiebIXll9TIPPmWtN3cVSw==
+"@tootallnate/once@1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
+ integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+
"@tsconfig/node10@^1.0.7":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
@@ -183,6 +232,11 @@
dependencies:
"@types/node" "*"
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
acorn-walk@^8.1.1:
version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
@@ -193,6 +247,56 @@ acorn@^8.4.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
+agent-base@6, agent-base@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
+agentkeepalive@^4.1.3:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717"
+ integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==
+ dependencies:
+ debug "^4.1.0"
+ depd "^1.1.2"
+ humanize-ms "^1.2.1"
+
+aggregate-error@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+"aproba@^1.0.3 || ^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
+ integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
+
+are-we-there-yet@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c"
+ integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^3.6.0"
+
+are-we-there-yet@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd"
+ integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^3.6.0"
+
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
@@ -203,6 +307,58 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+cacache@^15.2.0:
+ version "15.3.0"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
+ integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
+ dependencies:
+ "@npmcli/fs" "^1.0.0"
+ "@npmcli/move-file" "^1.0.1"
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ glob "^7.1.4"
+ infer-owner "^1.0.4"
+ lru-cache "^6.0.0"
+ minipass "^3.1.1"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.2"
+ mkdirp "^1.0.3"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^8.0.1"
+ tar "^6.0.2"
+ unique-filename "^1.1.1"
+
+chownr@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
+clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+color-support@^1.1.2, color-support@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
+ integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
+
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -210,16 +366,48 @@ combined-stream@^1.0.8:
dependencies:
delayed-stream "~1.0.0"
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+console-control-strings@^1.0.0, console-control-strings@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+ integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
+
create-require@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+debug@4, debug@^4.1.0, debug@^4.3.3:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
+
+depd@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
+
+detect-libc@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
+ integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==
+
diff@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
@@ -255,6 +443,28 @@ dotenv@^16.0.3:
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+encoding@^0.1.12:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
+ integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
+ dependencies:
+ iconv-lite "^0.6.2"
+
+env-paths@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+ integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+
+err-code@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
+ integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+
fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -278,16 +488,211 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
+fs-minipass@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+ integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+ dependencies:
+ minipass "^3.0.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+gauge@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395"
+ integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==
+ dependencies:
+ aproba "^1.0.3 || ^2.0.0"
+ color-support "^1.1.2"
+ console-control-strings "^1.0.0"
+ has-unicode "^2.0.1"
+ object-assign "^4.1.1"
+ signal-exit "^3.0.0"
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+ wide-align "^1.1.2"
+
+gauge@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
+ integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
+ dependencies:
+ aproba "^1.0.3 || ^2.0.0"
+ color-support "^1.1.3"
+ console-control-strings "^1.1.0"
+ has-unicode "^2.0.1"
+ signal-exit "^3.0.7"
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+ wide-align "^1.1.5"
+
+glob@^7.1.3, glob@^7.1.4:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+graceful-fs@^4.2.6:
+ version "4.2.10"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
+ integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
+
+has-unicode@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
+
+http-cache-semantics@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
+ integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
+
+http-proxy-agent@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
+ integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
+ dependencies:
+ "@tootallnate/once" "1"
+ agent-base "6"
+ debug "4"
+
+https-proxy-agent@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
+ integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
+humanize-ms@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
+ integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
+ dependencies:
+ ms "^2.0.0"
+
+iconv-lite@^0.6.2:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
+infer-owner@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+ integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ip@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
+ integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-lambda@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
+ integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+keyv@^4.5.2:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56"
+ integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==
+ dependencies:
+ json-buffer "3.0.1"
+
lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
+make-dir@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
make-error@^1.1.1:
version "1.3.6"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+make-fetch-happen@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968"
+ integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==
+ dependencies:
+ agentkeepalive "^4.1.3"
+ cacache "^15.2.0"
+ http-cache-semantics "^4.1.0"
+ http-proxy-agent "^4.0.1"
+ https-proxy-agent "^5.0.0"
+ is-lambda "^1.0.1"
+ lru-cache "^6.0.0"
+ minipass "^3.1.3"
+ minipass-collect "^1.0.2"
+ minipass-fetch "^1.3.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.4"
+ negotiator "^0.6.2"
+ promise-retry "^2.0.1"
+ socks-proxy-agent "^6.0.0"
+ ssri "^8.0.0"
+
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
@@ -300,6 +705,99 @@ mime-types@^2.1.12:
dependencies:
mime-db "1.52.0"
+minimatch@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minipass-collect@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+ integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-fetch@^1.3.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6"
+ integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==
+ dependencies:
+ minipass "^3.1.0"
+ minipass-sized "^1.0.3"
+ minizlib "^2.0.0"
+ optionalDependencies:
+ encoding "^0.1.12"
+
+minipass-flush@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+ integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
+ integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-sized@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70"
+ integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3:
+ version "3.3.6"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
+ integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
+ dependencies:
+ yallist "^4.0.0"
+
+minipass@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b"
+ integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==
+ dependencies:
+ yallist "^4.0.0"
+
+minizlib@^2.0.0, minizlib@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
+ integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+ dependencies:
+ minipass "^3.0.0"
+ yallist "^4.0.0"
+
+mkdirp@^1.0.3, mkdirp@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@^2.0.0:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+negotiator@^0.6.2:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+node-addon-api@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
+ integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
+
node-fetch@^2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
@@ -307,6 +805,224 @@ node-fetch@^2.6.7:
dependencies:
whatwg-url "^5.0.0"
+node-gyp@8.x:
+ version "8.4.1"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937"
+ integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==
+ dependencies:
+ env-paths "^2.2.0"
+ glob "^7.1.4"
+ graceful-fs "^4.2.6"
+ make-fetch-happen "^9.1.0"
+ nopt "^5.0.0"
+ npmlog "^6.0.0"
+ rimraf "^3.0.2"
+ semver "^7.3.5"
+ tar "^6.1.2"
+ which "^2.0.2"
+
+nopt@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88"
+ integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==
+ dependencies:
+ abbrev "1"
+
+npmlog@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0"
+ integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==
+ dependencies:
+ are-we-there-yet "^2.0.0"
+ console-control-strings "^1.1.0"
+ gauge "^3.0.0"
+ set-blocking "^2.0.0"
+
+npmlog@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
+ integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
+ dependencies:
+ are-we-there-yet "^3.0.0"
+ console-control-strings "^1.1.0"
+ gauge "^4.0.3"
+ set-blocking "^2.0.0"
+
+object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+pify@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f"
+ integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==
+
+pify@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-6.1.0.tgz#db9f2ebfba65f0bc144db65ae84d1a486ab72909"
+ integrity sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw==
+
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
+
+promise-retry@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
+ integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
+ dependencies:
+ err-code "^2.0.2"
+ retry "^0.12.0"
+
+readable-stream@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
+
+rimraf@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+"safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+semver@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^7.3.5:
+ version "7.3.8"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
+ integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
+ dependencies:
+ lru-cache "^6.0.0"
+
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+
+signal-exit@^3.0.0, signal-exit@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+smart-buffer@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+ integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+socks-proxy-agent@^6.0.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce"
+ integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==
+ dependencies:
+ agent-base "^6.0.2"
+ debug "^4.3.3"
+ socks "^2.6.2"
+
+socks@^2.6.2:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55"
+ integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==
+ dependencies:
+ ip "^2.0.0"
+ smart-buffer "^4.2.0"
+
+sqlite3@^5.1.4:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.4.tgz#35f83d368963168b324ad2f0fffce09f3b8723a7"
+ integrity sha512-i0UlWAzPlzX3B5XP2cYuhWQJsTtlMD6obOa1PgeEQ4DHEXUuyJkgv50I3isqZAP5oFc2T8OFvakmDh2W6I+YpA==
+ dependencies:
+ "@mapbox/node-pre-gyp" "^1.0.0"
+ node-addon-api "^4.2.0"
+ tar "^6.1.11"
+ optionalDependencies:
+ node-gyp "8.x"
+
+ssri@^8.0.0, ssri@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
+ integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
+ dependencies:
+ minipass "^3.1.1"
+
+"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
+ version "6.1.13"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b"
+ integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^4.0.0"
+ minizlib "^2.1.1"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -346,6 +1062,25 @@ typescript@^4.9.4:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==
+unique-filename@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+ dependencies:
+ unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+ integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
+ dependencies:
+ imurmurhash "^0.1.4"
+
+util-deprecate@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
v8-compile-cache-lib@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
@@ -364,11 +1099,35 @@ whatwg-url@^5.0.0:
tr46 "~0.0.3"
webidl-conversions "^3.0.0"
+which@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+wide-align@^1.1.2, wide-align@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
+ integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
+ dependencies:
+ string-width "^1.0.2 || 2 || 3 || 4"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
ws@^8.9.0:
version "8.11.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
yn@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
From 8cf608f514478cfa37fc14911d17ee0595b7955a Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:06:37 +0900
Subject: [PATCH 08/37] =?UTF-8?q?new:=20=E3=82=A2=E3=82=AD=E3=83=8D?=
=?UTF-8?q?=E3=83=BC=E3=82=BF=E3=83=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/akinator.ts | 35 +++++
package.json | 1 +
yarn.lock | 268 +++++++++++++++++++++++++++++++-
3 files changed, 298 insertions(+), 6 deletions(-)
create mode 100644 commands/individual/akinator.ts
diff --git a/commands/individual/akinator.ts b/commands/individual/akinator.ts
new file mode 100644
index 0000000..2dee2fb
--- /dev/null
+++ b/commands/individual/akinator.ts
@@ -0,0 +1,35 @@
+import { isMessageInstance } from "@sapphire/discord.js-utilities";
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageEmbed } from "discord.js";
+import akinator from "discord.js-akinator";
+export class PingCommand extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("akinator")
+ .setDescription("アキネーターをプレイすることができます。")
+ .addStringOption((option) =>
+ option
+ .setName("")
+ .setDescription("選択肢の数を入力してください。")
+ .setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ akinator(interaction, {
+ language: "ja",
+ childMode: false,
+ gameType: "character",
+ useButtons: true,
+ embedColor: "#3498db",
+ });
+ }
+}
diff --git a/package.json b/package.json
index fc27afc..d044424 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"@types/node": "^18.11.17",
"discord-api-types": "0.33.5",
"discord.js": "13.x",
+ "discord.js-akinator": "3.4.5",
"dotenv": "^16.0.3",
"keyv": "^4.5.2",
"pify": "^6.1.0",
diff --git a/yarn.lock b/yarn.lock
index e3c77aa..f26777f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -187,6 +187,18 @@
resolved "https://registry.yarnpkg.com/@sapphire/utilities/-/utilities-3.11.0.tgz#2dccfb332dc5c119e1425cce6b2c64160b770bad"
integrity sha512-ich7J+329UTEgWxgk8b871rMhbFW/hvXdabdiKaUKd6g10eIMkIakWf+EGkDQsiDSiebIXll9TIPPmWtN3cVSw==
+"@sindresorhus/is@^0.14.0":
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
+ integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
+
+"@szmarczak/http-timer@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
+ integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
+ dependencies:
+ defer-to-connect "^1.0.1"
+
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -232,6 +244,14 @@
dependencies:
"@types/node" "*"
+"@vitalets/google-translate-api@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@vitalets/google-translate-api/-/google-translate-api-7.0.0.tgz#0aa37d92d475daf4a434ded27e72d80b03686a23"
+ integrity sha512-zuKF+jG0EhFzRU/QAyHgTVzIDhrv5zDUmQWy7umwZryMbG8H0jK4fdMGrgla5AhQGU8ViiDWi/xbxNCKK7KHYA==
+ dependencies:
+ configstore "^5.0.1"
+ got "^9.6.0"
+
abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
@@ -271,6 +291,14 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
+aki-api@^6.0.8:
+ version "6.0.8"
+ resolved "https://registry.yarnpkg.com/aki-api/-/aki-api-6.0.8.tgz#2e2091ea1ffdc0773ec4585f0441d00c95b16b2e"
+ integrity sha512-fOMHSPfcyT2WFrf2wsQf5GNpwCSJzWA7+YO3DU8j8wOS16I10lmpIxXkdx3rCiWfmhD6kXVdUaEGJ4DKkiPbMA==
+ dependencies:
+ axios "^0.21.1"
+ https-proxy-agent "^5.0.0"
+
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
@@ -307,6 +335,13 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+axios@^0.21.1:
+ version "0.21.4"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
+ integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
+ dependencies:
+ follow-redirects "^1.14.0"
+
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -344,6 +379,19 @@ cacache@^15.2.0:
tar "^6.0.2"
unique-filename "^1.1.1"
+cacheable-request@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
+ integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
+ dependencies:
+ clone-response "^1.0.2"
+ get-stream "^5.1.0"
+ http-cache-semantics "^4.0.0"
+ keyv "^3.0.0"
+ lowercase-keys "^2.0.0"
+ normalize-url "^4.1.0"
+ responselike "^1.0.2"
+
chownr@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
@@ -354,6 +402,13 @@ clean-stack@^2.0.0:
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+clone-response@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"
+ integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
+ dependencies:
+ mimic-response "^1.0.0"
+
color-support@^1.1.2, color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
@@ -371,6 +426,18 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+configstore@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
+ integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
+ dependencies:
+ dot-prop "^5.2.0"
+ graceful-fs "^4.1.2"
+ make-dir "^3.0.0"
+ unique-string "^2.0.0"
+ write-file-atomic "^3.0.0"
+ xdg-basedir "^4.0.0"
+
console-control-strings@^1.0.0, console-control-strings@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
@@ -381,6 +448,11 @@ create-require@^1.1.0:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+crypto-random-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+ integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
debug@4, debug@^4.1.0, debug@^4.3.3:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -388,6 +460,18 @@ debug@4, debug@^4.1.0, debug@^4.3.3:
dependencies:
ms "2.1.2"
+decompress-response@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+ integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==
+ dependencies:
+ mimic-response "^1.0.0"
+
+defer-to-connect@^1.0.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
+ integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -423,7 +507,16 @@ discord-api-types@^0.36.2, discord-api-types@^0.36.3:
resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.36.3.tgz#a931b7e57473a5c971d6937fa5f392eb30047579"
integrity sha512-bz/NDyG0KBo/tY14vSkrwQ/n3HKPf87a0WFW/1M9+tXYK+vp5Z5EksawfCWo2zkAc6o7CClc0eff1Pjrqznlwg==
-discord.js@13.x:
+discord.js-akinator@3.4.5:
+ version "3.4.5"
+ resolved "https://registry.yarnpkg.com/discord.js-akinator/-/discord.js-akinator-3.4.5.tgz#728dab9578e362575f7d79da350ab525f9ee7e34"
+ integrity sha512-jn2zb3weEhGuF62AoBmn7i69XXkMMNcGFhZ+BnkCRiz1f/eJEvDDn2hawyghPCr7zbD66aMOmS/SFyKx+ViJcQ==
+ dependencies:
+ "@vitalets/google-translate-api" "^7.0.0"
+ aki-api "^6.0.8"
+ discord.js "^13.6.0"
+
+discord.js@13.x, discord.js@^13.6.0:
version "13.12.0"
resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-13.12.0.tgz#e4839c14a02b1947e063b72f09a49b11336a58f5"
integrity sha512-K5qhREsYcTHkEqt7+7LcSoXTeQYZpI+SQRs9ei/FhbhUpirmjqFtN99P8W2mrKUyhhy7WXWm7rnna0AooKtIpw==
@@ -438,11 +531,23 @@ discord.js@13.x:
node-fetch "^2.6.7"
ws "^8.9.0"
+dot-prop@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+ integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+ dependencies:
+ is-obj "^2.0.0"
+
dotenv@^16.0.3:
version "16.0.3"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
+duplexer3@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e"
+ integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
+
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -455,6 +560,13 @@ encoding@^0.1.12:
dependencies:
iconv-lite "^0.6.2"
+end-of-stream@^1.1.0:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
env-paths@^2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
@@ -470,6 +582,11 @@ fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+follow-redirects@^1.14.0:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
+ integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+
form-data@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
@@ -529,6 +646,20 @@ gauge@^4.0.3:
strip-ansi "^6.0.1"
wide-align "^1.1.5"
+get-stream@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+get-stream@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
glob@^7.1.3, glob@^7.1.4:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
@@ -541,7 +672,24 @@ glob@^7.1.3, glob@^7.1.4:
once "^1.3.0"
path-is-absolute "^1.0.0"
-graceful-fs@^4.2.6:
+got@^9.6.0:
+ version "9.6.0"
+ resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
+ integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
+ dependencies:
+ "@sindresorhus/is" "^0.14.0"
+ "@szmarczak/http-timer" "^1.1.2"
+ cacheable-request "^6.0.0"
+ decompress-response "^3.3.0"
+ duplexer3 "^0.1.4"
+ get-stream "^4.1.0"
+ lowercase-keys "^1.0.1"
+ mimic-response "^1.0.1"
+ p-cancelable "^1.0.0"
+ to-readable-stream "^1.0.0"
+ url-parse-lax "^3.0.0"
+
+graceful-fs@^4.1.2, graceful-fs@^4.2.6:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
@@ -551,7 +699,7 @@ has-unicode@^2.0.1:
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
-http-cache-semantics@^4.1.0:
+http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
@@ -630,16 +778,38 @@ is-lambda@^1.0.1:
resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+is-typedarray@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+json-buffer@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
+ integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==
+
json-buffer@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+keyv@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
+ integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
+ dependencies:
+ json-buffer "3.0.0"
+
keyv@^4.5.2:
version "4.5.2"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56"
@@ -652,6 +822,16 @@ lodash@^4.17.21:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
+ integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
+
+lowercase-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
+ integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
@@ -659,7 +839,7 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
-make-dir@^3.1.0:
+make-dir@^3.0.0, make-dir@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
@@ -705,6 +885,11 @@ mime-types@^2.1.12:
dependencies:
mime-db "1.52.0"
+mimic-response@^1.0.0, mimic-response@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+ integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+
minimatch@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
@@ -828,6 +1013,11 @@ nopt@^5.0.0:
dependencies:
abbrev "1"
+normalize-url@^4.1.0:
+ version "4.5.1"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
+ integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
+
npmlog@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0"
@@ -853,13 +1043,18 @@ object-assign@^4.1.1:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-once@^1.3.0:
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
+p-cancelable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
+ integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
+
p-map@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
@@ -882,6 +1077,11 @@ pify@^6.1.0:
resolved "https://registry.yarnpkg.com/pify/-/pify-6.1.0.tgz#db9f2ebfba65f0bc144db65ae84d1a486ab72909"
integrity sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw==
+prepend-http@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
+ integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
+
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
@@ -895,6 +1095,14 @@ promise-retry@^2.0.1:
err-code "^2.0.2"
retry "^0.12.0"
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
@@ -904,6 +1112,13 @@ readable-stream@^3.6.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+responselike@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
+ integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==
+ dependencies:
+ lowercase-keys "^1.0.0"
+
retry@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
@@ -943,7 +1158,7 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
-signal-exit@^3.0.0, signal-exit@^3.0.7:
+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -1023,6 +1238,11 @@ tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
mkdirp "^1.0.3"
yallist "^4.0.0"
+to-readable-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
+ integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -1057,6 +1277,13 @@ tslib@^2.4.0, tslib@^2.4.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
+typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+ dependencies:
+ is-typedarray "^1.0.0"
+
typescript@^4.9.4:
version "4.9.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
@@ -1076,6 +1303,20 @@ unique-slug@^2.0.0:
dependencies:
imurmurhash "^0.1.4"
+unique-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+ integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+ dependencies:
+ crypto-random-string "^2.0.0"
+
+url-parse-lax@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
+ integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==
+ dependencies:
+ prepend-http "^2.0.0"
+
util-deprecate@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -1118,11 +1359,26 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+write-file-atomic@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+ integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
+ dependencies:
+ imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
+ signal-exit "^3.0.2"
+ typedarray-to-buffer "^3.1.5"
+
ws@^8.9.0:
version "8.11.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
+xdg-basedir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
+ integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
From 56148e9a5237076dcb86b540011485552d2f3524 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:07:32 +0900
Subject: [PATCH 09/37] =?UTF-8?q?fix:=20=E3=82=A2=E3=82=AD=E3=83=8D?=
=?UTF-8?q?=E3=83=BC=E3=82=BF=E3=83=BC=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/akinator.ts | 6 ------
1 file changed, 6 deletions(-)
diff --git a/commands/individual/akinator.ts b/commands/individual/akinator.ts
index 2dee2fb..f2b4bb8 100644
--- a/commands/individual/akinator.ts
+++ b/commands/individual/akinator.ts
@@ -14,12 +14,6 @@ export class PingCommand extends Command {
builder
.setName("akinator")
.setDescription("アキネーターをプレイすることができます。")
- .addStringOption((option) =>
- option
- .setName("")
- .setDescription("選択肢の数を入力してください。")
- .setRequired(true)
- )
);
}
From 9be7920a481c557de102e37704c57e59d7ffa7e4 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:18:18 +0900
Subject: [PATCH 10/37] delete: all
---
...20\343\202\260\345\240\261\345\221\212.md" | 25 -
...57\343\202\250\343\202\271\343\203\210.md" | 13 -
.github/dependabot.yml | 11 -
.github/workflows/codeql-analysis.yml | 74 --
.github/workflows/main.yml | 33 -
.gitignore | 132 ---
CODE_OF_CONDUCT.md | 128 ---
CONTRIBUTING.md | 23 -
LICENSE | 674 --------------
README.md | 1 -
cogs/2022.py | 27 -
cogs/5000.py | 71 --
cogs/afk.py | 78 --
cogs/auto-news.py | 26 -
cogs/ban_member.py | 38 -
cogs/bot_info.py | 30 -
cogs/bot_invite.py | 88 --
cogs/bot_process.py | 44 -
cogs/embed.py | 118 ---
cogs/global-chat.py | 92 --
cogs/help.py | 58 --
cogs/imgcheck.py | 111 ---
cogs/ping.py | 16 -
cogs/role_all.py | 54 --
cogs/role_list.py | 22 -
cogs/splatoon2.py | 12 -
cogs/trans.py | 44 -
cogs/uptime.py | 16 -
cogs/userinfo.py | 47 -
cogs/verify.py | 56 --
cogs/voicetext.py | 10 -
cogs/weather.py | 65 --
main.py | 69 --
poetry.lock | 844 ------------------
pyproject.toml | 15 -
voice/voice.mp3 | 0
webserver.py | 18 -
37 files changed, 3183 deletions(-)
delete mode 100644 ".github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
delete mode 100644 ".github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
delete mode 100644 .github/dependabot.yml
delete mode 100644 .github/workflows/codeql-analysis.yml
delete mode 100644 .github/workflows/main.yml
delete mode 100644 .gitignore
delete mode 100644 CODE_OF_CONDUCT.md
delete mode 100644 CONTRIBUTING.md
delete mode 100644 LICENSE
delete mode 100644 README.md
delete mode 100644 cogs/2022.py
delete mode 100644 cogs/5000.py
delete mode 100644 cogs/afk.py
delete mode 100644 cogs/auto-news.py
delete mode 100644 cogs/ban_member.py
delete mode 100644 cogs/bot_info.py
delete mode 100644 cogs/bot_invite.py
delete mode 100644 cogs/bot_process.py
delete mode 100644 cogs/embed.py
delete mode 100644 cogs/global-chat.py
delete mode 100644 cogs/help.py
delete mode 100644 cogs/imgcheck.py
delete mode 100644 cogs/ping.py
delete mode 100644 cogs/role_all.py
delete mode 100644 cogs/role_list.py
delete mode 100644 cogs/splatoon2.py
delete mode 100644 cogs/trans.py
delete mode 100644 cogs/uptime.py
delete mode 100644 cogs/userinfo.py
delete mode 100644 cogs/verify.py
delete mode 100644 cogs/voicetext.py
delete mode 100644 cogs/weather.py
delete mode 100644 main.py
delete mode 100644 poetry.lock
delete mode 100644 pyproject.toml
delete mode 100644 voice/voice.mp3
delete mode 100644 webserver.py
diff --git "a/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md" "b/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
deleted file mode 100644
index 12bbaf9..0000000
--- "a/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
+++ /dev/null
@@ -1,25 +0,0 @@
----
-name: バグ報告
-about: バグを報告するためのIssue
-title: 'bug: ○○が動作しない'
-labels: bug
-assignees: ''
-
----
-
-**バグについて説明する**
-バグの内容を明確かつ簡潔に説明すること
-
-**再現方法**
-動作を再現するための手順を書いて下さい。
-
-**期待される動作**
-期待したことが明確に、かつ簡潔に書かれていること。
-
-**スクリーンショット**
-問題を説明するためのスクリーンショットを貼り付けて下さい。
-
-**Discordの何版で発生しますか?**
-(例) Android版
-
-**追加情報**
diff --git "a/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md" "b/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
deleted file mode 100644
index 6bf03c8..0000000
--- "a/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
+++ /dev/null
@@ -1,13 +0,0 @@
----
-name: 機能リクエスト
-about: EightBotに機能を提案する
-title: 'Feature Request: ○○を追加してほしい'
-labels: enhancement
-assignees: ''
-
----
-
-**ご希望の内容**
-作ってほしいものを明確かつ簡潔に説明すること。
-
-**追加情報**
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index ac6621f..0000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# To get started with Dependabot version updates, you'll need to specify which
-# package ecosystems to update and where the package manifests are located.
-# Please see the documentation for all configuration options:
-# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
-
-version: 2
-updates:
- - package-ecosystem: "" # See documentation for possible values
- directory: "/" # Location of package manifests
- schedule:
- interval: "weekly"
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index 33b7a50..0000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-# For most projects, this workflow file will not need changing; you simply need
-# to commit it to your repository.
-#
-# You may wish to alter this file to override the set of languages analyzed,
-# or to provide custom queries or build logic.
-#
-# ******** NOTE ********
-# We have attempted to detect the languages in your repository. Please check
-# the `language` matrix defined below to confirm you have the correct set of
-# supported CodeQL languages.
-#
-name: "CodeQL"
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- # The branches below must be a subset of the branches above
- branches: [ "main" ]
- schedule:
- - cron: '36 8 * * 1'
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
- security-events: write
-
- strategy:
- fail-fast: false
- matrix:
- language: [ 'python' ]
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
- # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v2
- with:
- languages: ${{ matrix.language }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
-
- # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
- # queries: security-extended,security-and-quality
-
-
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@v2
-
- # ℹ️ Command-line programs to run using the OS shell.
- # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
-
- # If the Autobuild fails above, remove it and uncomment the following three lines.
- # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
-
- # - run: |
- # echo "Run, Build Application using script"
- # ./location_of_script_within_repo/buildscript.sh
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
- with:
- category: "/language:${{matrix.language}}"
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index 21cc655..0000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-# This workflow will install Python dependencies, run tests and lint with a single version of Python
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
-
-name: Flake8 Lint
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-permissions:
- contents: read
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v3
- - name: Set up Python 3.8
- uses: actions/setup-python@v4
- with:
- python-version: "3.8"
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install flake8
- - name: Lint with flake8
- run: |
- flake8 . --count --ignore=E501,E722,C901 --select=E9,F63,F7,F82 --show-source --statistics
- flake8 . --count --ignore=E501,E722,C901 --exit-zero --max-complexity=10 --max-line-length=127 --statistics
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 44555c8..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,132 +0,0 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-wheels/
-pip-wheel-metadata/
-share/python-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-MANIFEST
-
-# PyInstaller
-# Usually these files are written by a python script from a template
-# before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.nox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-*.py,cover
-.hypothesis/
-.pytest_cache/
-
-# Translations
-*.mo
-*.pot
-.vscode/
-# Django stuff:
-*.log
-local_settings.py
-db.sqlite3
-db.sqlite3-journal
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# IPython
-profile_default/
-ipython_config.py
-
-# pyenv
-.python-version
-
-# pipenv
-# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
-# However, in case of collaboration, if having platform-specific dependencies or dependencies
-# having no cross-platform support, pipenv may install dependencies that don't work, or not
-# install all needed dependencies.
-#Pipfile.lock
-
-# PEP 582; used by e.g. github.com/David-OConnor/pyflow
-__pypackages__/
-
-# Celery stuff
-celerybeat-schedule
-celerybeat.pid
-
-# SageMath parsed files
-*.sage.py
-
-# Environments
-.env
-.venv
-env/
-venv/
-ENV/
-env.bak/
-venv.bak/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-
-# mypy
-.mypy_cache/
-.dmypy.json
-dmypy.json
-
-# Pyre type checker
-.pyre/
-
-# test
-test.json
\ No newline at end of file
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index dc63861..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socio-economic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people
-* Being respectful of differing opinions, viewpoints, and experiences
-* Giving and gracefully accepting constructive feedback
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience
-* Focusing on what is best not just for us as individuals, but for the
- overall community
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-support server.
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
-
-Community Impact Guidelines were inspired by [Mozilla's code of conduct
-enforcement ladder](https://github.com/mozilla/diversity).
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see the FAQ at
-https://www.contributor-covenant.org/faq. Translations are available at
-https://www.contributor-covenant.org/translations.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 08a836d..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# この Bot へ貢献
-
-## Issue を作成するとき
-
-1. その内容の Issue が既に存在していないかを確認して下さい。(クローズ済みのものも)
-2. 内容を書き込みます。(テンプレートの場合は文字などを変更します)
-3. Issue を作成します。
-
-## Pull request を作成する時
-
-1. その内容の Pull request が既に存在していないかを確認して下さい。(マージ済み、クローズ済みのものも)
-2. もう実装されていないか確認して下さい。
-3. Fork し、コードを書いて、内容を書き込みます。
-4. Pull request を作成します。
- WIP の場合は、`🚧WIP: oo`にしてください。
-
-## コミットメッセージ
-
-何かを作った: `✨new: ○○`
-何かを修正した: `🐛fix: ○○`
-何かを変更した: `🔄change: ○○`
-何かを更新した: `🆙update: ○○`
-何かを削除した: `🗑️delete: oo`
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index bd908fe..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C) 2022 EightBot Developer
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C) 2022 EightBot Developer
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/README.md b/README.md
deleted file mode 100644
index 86bd3e3..0000000
--- a/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# EightBot
\ No newline at end of file
diff --git a/cogs/2022.py b/cogs/2022.py
deleted file mode 100644
index a2ef215..0000000
--- a/cogs/2022.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-import time
-
-
-class count_down(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="2022年が終わるまであとどのくらい")
- async def count(
- self,
- i: discord.Interaction,
- ):
- """2022年が終わるまであとどのくらい"""
- c = 1672498800 - int(time.time())
- await i.response.send_message(
- f"2022年が終わるまであと{c}秒です。"
- + f"\n2022年が終わるまであと約{int(c /60 )}分です。"
- + f"\n2022年が終わるまであと約{int(c /3600 )}時間です。"
- + f"\n2022年が終わるまであと約{int(c /86400 )}日です。"
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(count_down(bot))
diff --git a/cogs/5000.py b/cogs/5000.py
deleted file mode 100644
index 7ba83e3..0000000
--- a/cogs/5000.py
+++ /dev/null
@@ -1,71 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-import urllib.parse
-
-
-class gosentyouen(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.choices(
- type=[
- app_commands.Choice(name="png(お勧め)", value="png"),
- app_commands.Choice(name="jpg", value="jpg"),
- app_commands.Choice(name="webp", value="webp"),
- ]
- )
- @app_commands.choices(
- hoshii=[
- app_commands.Choice(name="固定する", value="true"),
- app_commands.Choice(name="固定しない", value="false"),
- ]
- )
- @app_commands.choices(
- quality=[
- app_commands.Choice(name="低", value="30"),
- app_commands.Choice(name="中", value="70"),
- app_commands.Choice(name="高", value="100"),
- ]
- )
- @app_commands.choices(
- noalpha=[
- app_commands.Choice(name="白にする", value="true"),
- app_commands.Choice(name="白にしない", value="false"),
- ]
- )
- @app_commands.choices(
- rainbow=[
- app_commands.Choice(name="虹色にする", value="true"),
- app_commands.Choice(name="虹色にしない", value="false"),
- ]
- )
- @app_commands.describe(
- hoshii="下部文字列を「欲しい!」に固定する",
- noalpha="背景色を白にする",
- rainbow="虹色にする",
- type="画像拡張子",
- quality="画質(1-100)",
- bottom="下部文字列",
- top="上部文字列",
- )
- @app_commands.command(name="5000", description="5000兆円ほしいを生成します。")
- async def gosen(
- self,
- i: discord.Interaction,
- top: str,
- bottom: str,
- type: str,
- quality: str,
- hoshii: str,
- noalpha: str,
- rainbow: str,
- ):
- embed = discord.Embed(title="5000兆円ほしい!!", color=0x3498DB).set_image(
- url=f"https://gsapi.cbrx.io/image?top={urllib.parse.quote(top)}&bottom={urllib.parse.quote(bottom)}&type={urllib.parse.quote(type)}&q={urllib.parse.quote(quality)}&hoshii={urllib.parse.quote(hoshii)}&noalpha={urllib.parse.quote(noalpha)}&rainbow={urllib.parse.quote(rainbow)}"
- )
- await i.response.send_message(embed=embed)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(gosentyouen(bot))
diff --git a/cogs/afk.py b/cogs/afk.py
deleted file mode 100644
index db417ab..0000000
--- a/cogs/afk.py
+++ /dev/null
@@ -1,78 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-from replit import db
-import discord
-
-
-def afk_set_db(key, data):
- db[f"afk_{key}"] = data
-
-
-def afk_get(key):
- return db[f"afk_{key}"]
-
-
-class afk(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(reason="afkになる理由")
- @app_commands.command(name="afk_set", description="afkをセット又は解除します。")
- async def afks(self, i: discord.Interaction, reason: str):
- try:
- afk_set_db(int(i.user.id), reason)
- await i.response.send_message(
- embed=discord.Embed(
- title="<:check_mark:985366958537076766> : 成功",
- description="afkをセットしました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
- except:
- await i.response.send_message(
- embed=discord.Embed(
- title="<:error_mark:985366305156767794> : 失敗",
- description="何らかのエラーが発生しました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
-
- @app_commands.command(name="afk_kaizyo", description="afkを解除します")
- async def afkk(self, i: discord.Interaction):
- try:
- afk_set_db(int(i.user.id), False)
- await i.response.send_message(
- embed=discord.Embed(
- title="<:check_mark:985366958537076766> : 成功",
- description="afkを解除しました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
- except:
- await i.response.send_message(
- embed=discord.Embed(
- title="<:error_mark:985366305156767794> : 失敗",
- description="何らかのエラーが発生しました。",
- color=0x3498DB,
- ),
- ephemeral=True,
- )
-
- @commands.Cog.listener(name="on_message")
- async def afk_msg(self, message: discord.Message):
- try:
- if message.mentions:
- for d in message.mentions:
- if afk_get[int(d.id)]:
- await message.channel.send(
- "このユーザーはafkです。(こののメッセージは10秒後に削除されます。)", delete_after=10
- )
- except:
- pass
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(afk(bot))
diff --git a/cogs/auto-news.py b/cogs/auto-news.py
deleted file mode 100644
index 8217d2d..0000000
--- a/cogs/auto-news.py
+++ /dev/null
@@ -1,26 +0,0 @@
-import discord
-from discord.ext import commands
-
-
-class auto_news(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_message")
- async def msg_auto_news(self, msg: discord.Message):
- if msg.channel.type == discord.ChannelType.news:
- if msg.channel.topic:
- if msg.channel.topic.startswith("eight-auto-news"):
- await msg.publish()
- await msg.add_reaction("✅")
- return
- else:
- return
- else:
- return
- else:
- return
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(auto_news(bot))
diff --git a/cogs/ban_member.py b/cogs/ban_member.py
deleted file mode 100644
index 0561a63..0000000
--- a/cogs/ban_member.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class ban_member(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="ban_member", description="Banされたユーザー一覧を表示します。")
- async def ban_members(self, i: discord.Interaction):
- m = []
- async for entry in i.guild.bans(limit=999999):
- m.append(f"{entry.user.name}, ")
- if not len(m) == 0:
- end = len(m) - 1
- m[end] = m[end].split(", ")[0]
- send_content = "".join(m)
- elif len(m) == 0:
- send_content = "Banされたユーザーはいません。"
- try:
- await i.response.send_message(
- embed=discord.Embed(
- title="Banされたユーザー", description=send_content, color=0x3498DB
- ),
- ephemeral=True,
- )
- except:
- await i.response.send_message(
- embed=discord.Embed(
- title="Banされたユーザー", description="取得できませんでした。", color=0x3498DB
- ),
- ephemeral=True,
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(ban_member(bot))
diff --git a/cogs/bot_info.py b/cogs/bot_info.py
deleted file mode 100644
index e2169fa..0000000
--- a/cogs/bot_info.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-from replit import db
-
-
-def bot_command_count_get(data):
- return db[f"bot_command_{data}_count_db"]
-
-
-def bot_command_all_count_db_get():
- return db[f"bot_command_all_count_db"]
-
-
-class bot_info(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="bot_info", description="Botの情報を表示します。")
- async def botinfo(self, i: discord.Interaction):
- await i.response.send_message(
- embed=discord.Embed(title="Botの情報", color=0x3498DB).add_field(
- name="全コマンドの合計実行数", value=str(bot_command_all_count_db_get())
- ),
- ephemeral=True,
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(bot_info(bot))
diff --git a/cogs/bot_invite.py b/cogs/bot_invite.py
deleted file mode 100644
index ee5d405..0000000
--- a/cogs/bot_invite.py
+++ /dev/null
@@ -1,88 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-from replit import db
-
-
-def db_set(key, data):
- db[f"bot_invite_db_id_{key}"] = data
-
-
-def db_get(key):
- return db[f"bot_invite_db_id_{key}"]
-
-
-class MyView(discord.ui.View):
- def __init__(self):
- super().__init__(timeout=None)
- self.add_item(MySelect())
-
-
-class MySelect(discord.ui.Select):
- def __init__(self):
- super().__init__(
- placeholder="招待するBotの権限を選択して下さい",
- min_values=1,
- custom_id="bot_invite_myview_select_menu",
- max_values=1,
- options=[
- discord.SelectOption(
- label="管理者",
- description="全ての権限を有効にしたURLを生成します。",
- value="admin",
- ),
- discord.SelectOption(
- label="権限選択式", description="全ての権限を選択式にしたURLを生成します。", value="all"
- ),
- discord.SelectOption(
- label="権限なし", description="全ての権限をなしにしたURLを生成します。", value="none"
- ),
- ],
- )
-
- async def callback(self, i: discord.Interaction):
- bot_id = db_get(i.message.id)
- d = self.values[0]
- if d == "admin":
- await i.response.send_message(
- ephemeral=True,
- content=f"[Botを招待]({discord.utils.oauth_url(int(bot_id), permissions=discord.Permissions(permissions=discord.Permissions.administrator.flag))})",
- )
- elif d == "all":
- await i.response.send_message(
- ephemeral=True,
- content=f"[Botを招待]({discord.utils.oauth_url(int(bot_id), permissions=discord.Permissions(permissions=discord.Permissions.all().value))})",
- )
- elif d == "none":
- await i.response.send_message(
- ephemeral=True,
- content=f"[Botを招待]({discord.utils.oauth_url(int(bot_id))})",
- )
- else:
- await i.response.send_message("不明なパラメーターが選択されました。", ephemeral=True)
-
-
-class bot_invite(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(bot="招待するBot")
- @app_commands.command(name="bot_invite", description="Botの招待リンクを生成します。")
- async def botinvite(self, i: discord.Interaction, bot: discord.User = None):
- if bot:
- if bot.bot:
- await i.response.send_message("セレクトメニューをクリックして選択してください")
- msg = await self.bot.get_channel(i.channel.id).send(view=MyView())
- db_set(int(msg.id), int(bot.id))
- self.bot.add_view(MyView(), message_id=msg.id)
- else:
- await i.response.send_message("指定したものはBotではありません。")
- else:
- await i.response.send_message("セレクトメニューをクリックして選択してください")
- msg = await self.bot.get_channel(i.channel.id).send(view=MyView())
- db_set(int(msg.id), int(self.bot.user.id))
- self.bot.add_view(MyView(), message_id=msg.id)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(bot_invite(bot))
diff --git a/cogs/bot_process.py b/cogs/bot_process.py
deleted file mode 100644
index 4f3b560..0000000
--- a/cogs/bot_process.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import discord
-from discord.ext import commands
-from replit import db
-
-
-def bot_command_count_get(data):
- return db[f"bot_command_{data}_count_db"]
-
-
-def bot_command_count(data):
- try:
- db[f"bot_command_{data}_count_db"] = int(bot_command_count_get(data)) + 1
- except KeyError:
- db[f"bot_command_{data}_count_db"] = 0 + 1
-
-
-def bot_command_all_count_db_get():
- return db["bot_command_all_count_db"]
-
-
-def bot_command_count_p1():
- try:
- db["bot_command_all_count_db"] = int(bot_command_all_count_db_get()) + 1
- return
- except KeyError:
- db["bot_command_all_count_db"] = 0 + 1
-
-
-class bot_process(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_interaction")
- async def interaction(self, i: discord.Interaction):
- if i.type == discord.InteractionType.application_command:
- bot_command_count_p1()
- if i.command:
- bot_command_count(data=i.command.name)
- else:
- return
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(bot_process(bot))
diff --git a/cogs/embed.py b/cogs/embed.py
deleted file mode 100644
index 3111957..0000000
--- a/cogs/embed.py
+++ /dev/null
@@ -1,118 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-from discord import ui, TextStyle
-
-
-class Modal(ui.Modal, title="Embed作成パネル"):
- titles = ui.TextInput(
- label="タイトル",
- style=TextStyle.long,
- placeholder="埋め込みのタイトル。256文字まで",
- max_length=256,
- required=False,
- )
- description = ui.TextInput(
- label="説明",
- style=TextStyle.long,
- placeholder="埋め込みの説明。4000文字まで",
- max_length=4000,
- required=True,
- )
- set_footer_text = ui.TextInput(
- label="フッターテキスト",
- style=TextStyle.long,
- placeholder="フッターテキスト。2048文字まで",
- max_length=2048,
- required=False,
- )
- f_icon_url = ui.TextInput(
- label="フッターアイコン",
- style=TextStyle.short,
- placeholder="フッターアイコンのURL。Http(s)のみ",
- required=False,
- )
- samuneiru = ui.TextInput(
- label="サムネイル",
- style=TextStyle.short,
- placeholder="埋め込みコンテンツのサムネイル。Http(s)のみ",
- required=False,
- )
-
- async def on_submit(self, interaction: discord.Interaction):
- if (
- str(self.f_icon_url).startswith("http://")
- or str(self.samuneiru).startswith("http://")
- or str(self.f_icon_url).startswith("https://")
- or str(self.samuneiru).startswith("https://")
- ):
- await interaction.response.send_message(
- "URLはhttp(s)から始まります。", ephemeral=True
- )
- return
- embed = discord.Embed(title=self.titles, description=self.description)
- embed.set_footer(text=self.set_footer_text, icon_url=self.f_icon_url)
- embed.set_thumbnail(url=self.samuneiru)
- buttonView = discord.ui.View(timeout=None)
- buttonView.add_item(
- discord.ui.Button(
- label="Discord Color",
- style=discord.ButtonStyle.primary,
- custom_id="color_01",
- )
- )
- buttonView.add_item(
- discord.ui.Button(
- label="灰色", style=discord.ButtonStyle.secondary, custom_id="color_02"
- )
- )
- buttonView.add_item(
- discord.ui.Button(
- label="緑", style=discord.ButtonStyle.success, custom_id="color_03"
- )
- )
- buttonView.add_item(
- discord.ui.Button(
- label="赤", style=discord.ButtonStyle.danger, custom_id="color_04"
- )
- )
- await interaction.response.send_message(embed=embed, view=buttonView)
-
-
-class embed_make(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_interaction")
- async def color_interaction(self, i: discord.Interaction):
- if i.data.get("custom_id") == "color_01":
- em = i.message.embeds[0]
- em.color = 0x5865F2
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
- if i.data.get("custom_id") == "color_02":
- em = i.message.embeds[0]
- em.color = 0x4F545C
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
- if i.data.get("custom_id") == "color_03":
- em = i.message.embeds[0]
- em.color = 0x43B581
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
- if i.data.get("custom_id") == "color_04":
- em = i.message.embeds[0]
- em.color = 0xF04747
- await i.message.edit(embed=em)
- return await i.response.send_message("完了!", ephemeral=True)
-
- else:
- return
-
- @app_commands.command(name="embed_make", description="Embedを作成し、送信します。")
- async def embed_make(self, i: discord.Interaction):
- await i.response.send_modal(Modal())
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(embed_make(bot))
diff --git a/cogs/global-chat.py b/cogs/global-chat.py
deleted file mode 100644
index a37c866..0000000
--- a/cogs/global-chat.py
+++ /dev/null
@@ -1,92 +0,0 @@
-import discord
-from discord.ext import commands
-
-
-class global_chat_cog(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_message")
- async def global_chat_msg_sys(self, message: discord.Message):
- if message.channel.type != discord.ChannelType.text:
- return
- if message.channel.topic:
- if not message.channel.topic.startswith("eight-global"):
- return
- if message.author.bot:
- return
- for channel in self.bot.get_all_channels():
- if channel.type != discord.ChannelType.text:
- continue
- if not channel.topic:
- continue
- if channel.topic.startswith("eight-global"):
- if channel == message.channel:
- continue
- embed = discord.Embed(description=message.content, color=0x3498DB)
- if hasattr(message.author.avatar, "key"):
- embed.set_author(
- name="{}#{}".format(
- message.author.name, message.author.discriminator
- ),
- icon_url="https://media.discordapp.net/avatars/{}/{}.png?size=1024".format(
- message.author.id, message.author.avatar.key
- ),
- )
- else:
- embed.set_author(
- name="{}#{}".format(
- message.author.name, message.author.discriminator
- ),
- url=f"https://discord.com/users/{message.author.id}",
- )
- if hasattr(message.guild.icon, "key"):
- embed.set_footer(
- text="{} / mID:{}".format(message.guild.name, message.id),
- icon_url="https://media.discordapp.net/icons/{}/{}.png?size=1024".format(
- message.guild.id, message.guild.icon.key
- ),
- )
- else:
- embed.set_footer(
- text="{} / mID:{}".format(message.guild.name, message.id)
- )
- if message.attachments != []:
- embed.set_image(url=message.attachments[0].url)
- if message.stickers != []:
- embed.set_thumbnail(url=message.stickers[0].url)
- if message.reference:
- reference_msg = await message.channel.fetch_message(
- message.reference.message_id
- )
- if (
- reference_msg.embeds
- and reference_msg.author == self.bot.user
- ):
- reference_message_content = reference_msg.embeds[
- 0
- ].description
- reference_message_author = reference_msg.embeds[
- 0
- ].author.name
- elif reference_msg.author != self.bot.user:
- reference_message_content = reference_msg.content
- reference_message_author = (
- reference_msg.author.name
- + "#"
- + reference_msg.author.discriminator
- )
- reference_content = ""
- for string in reference_message_content.splitlines():
- reference_content += "> " + string + "\n"
- reference_value = "**@{}**\n{}".format(
- reference_message_author, reference_content
- )
- embed.add_field(name="返信", value=reference_value, inline=True)
-
- await channel.send(embed=embed)
- await message.add_reaction("✅")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(global_chat_cog(bot))
diff --git a/cogs/help.py b/cogs/help.py
deleted file mode 100644
index 6b36084..0000000
--- a/cogs/help.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import discord
-from discord.ext import commands
-import Paginator
-from discord import app_commands
-
-a = "Tips: /help コマンド名でコマンドを検索できます。"
-cmd = []
-
-
-class Help(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
- for command in self.bot.tree.walk_commands():
- cmd.append(app_commands.Choice(name=command.name, value=command.name))
-
- @discord.app_commands.choices(cmd=cmd)
- @app_commands.command(name="help", description="helpを表示します。")
- async def help(self, i: discord.Interaction, cmd: str = None) -> None:
- if not cmd:
- he = discord.Embed(title="ページ2", color=0x3498DB)
- he.set_footer(text=a)
- ee = discord.Embed(
- title="ページ1",
- color=0x3498DB,
- ).set_footer(text=a)
- num = 0
- for command in self.bot.tree.walk_commands():
- num = num + 1
- if num > 24:
- he.add_field(name=command.name, value=command.description)
- else:
- ee.add_field(name=command.name, value=command.description)
- embeds = [
- ee,
- he,
- ]
- return await Paginator.Simple().start(i, pages=embeds)
- elif cmd:
- if self.bot.tree.get_command(cmd):
- return await i.response.send_message(
- embed=discord.Embed(
- title=self.bot.tree.get_command(cmd).name,
- description=self.bot.tree.get_command(cmd).description,
- color=0x3498DB,
- )
- )
- else:
- return await i.response.send_message(
- embed=discord.Embed(
- title="エラー",
- description="検索した名前のコマンドは存在しません。",
- color=0x3498DB,
- )
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(Help(bot))
diff --git a/cogs/imgcheck.py b/cogs/imgcheck.py
deleted file mode 100644
index f47c277..0000000
--- a/cogs/imgcheck.py
+++ /dev/null
@@ -1,111 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-import aiohttp
-import urllib.parse
-import asyncio
-
-
-class imgcheck(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="img_url_check", description="URLの画像から拾い画かチェックするコマンド。")
- async def img_url_check(self, i: discord.Interaction, url: str):
- load_text = "拾い画チェッカーAPIに接続しています"
- await i.response.send_message(load_text)
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}.")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}..")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}...")
- async with aiohttp.ClientSession() as session:
- async with session.get(
- f"https://api.irucabot.com/imgcheck/check_url?url={urllib.parse.quote(url)}"
- ) as resp:
- resp_data = await resp.json()
- if resp_data["status"] == "success":
- if resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画です。",
- description=f"この画像と一致している画像が{resp_data['count']}個ありました。\n[Google画像検索結果]({resp_data['resulturl']})\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- elif not resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画ではない可能性が高いです。",
- description=f"この画像と一致している画像が0個ありました。\n\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- else:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="起るはずの無いことが起こりました。",
- description=f"起るはずの無いことが起こったので、結果を表示できません。",
- ),
- )
- elif resp_data["status"] == "error":
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="エラーが発生しました。", description=resp_data["message_ja"]
- ),
- )
-
- @app_commands.command(name="img_check", description="拾い画チェッカー。")
- async def imgcheck(self, i: discord.Interaction, img: discord.Attachment):
- load_text = "拾い画チェッカーAPIに接続しています"
- await i.response.send_message(load_text)
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}.")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}..")
- await asyncio.sleep(1)
- await i.edit_original_response(content=f"{load_text}...")
- async with aiohttp.ClientSession() as session:
- async with session.get(
- f"https://api.irucabot.com/imgcheck/check_url?url={urllib.parse.quote(img.url)}"
- ) as resp:
- resp_data = await resp.json()
- if resp_data["status"] == "success":
- if resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画です。",
- description=f"この画像と一致している画像が{resp_data['count']}個ありました。\n[Google画像検索結果]({resp_data['resulturl']})\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- elif not resp_data["found"]:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="これは拾い画ではない可能性が高いです。",
- description=f"この画像と一致している画像が0個ありました。\n\n[拾い画チェッカーAPIを使用しています。](https://imgcheck.irucabot.com/api-reference/check_url)",
- ),
- )
- else:
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="起るはずの無いことが起こりました。",
- description=f"起るはずの無いことが起こったので、結果を表示できません。",
- ),
- )
- elif resp_data["status"] == "error":
- await i.edit_original_response(
- content=None,
- embed=discord.Embed(
- title="エラーが発生しました。", description=resp_data["message_ja"]
- ),
- )
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(imgcheck(bot))
diff --git a/cogs/ping.py b/cogs/ping.py
deleted file mode 100644
index d1d7ef3..0000000
--- a/cogs/ping.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class ping(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="ping", description="ping値を測定します。")
- async def pingpong(self, i: discord.Interaction):
- await i.response.send_message(f"{round(self.bot.latency * 1000)}ms")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(ping(bot))
diff --git a/cogs/role_all.py b/cogs/role_all.py
deleted file mode 100644
index ac6411e..0000000
--- a/cogs/role_all.py
+++ /dev/null
@@ -1,54 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-import enum
-
-
-class bot(enum.Enum):
- はい = True
- いいえ = False
-
-
-class roleall(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(bot="Botにもロールを付与する?")
- @app_commands.choices(
- bot=[
- app_commands.Choice(name="はい", value="y"),
- app_commands.Choice(name="いいえ", value="f"),
- ]
- )
- @app_commands.command(name="role_all_add", description="全メンバーにロールを付与します。")
- async def roleall_add(self, i: discord.Interaction, role: discord.Role, bot: str):
- if bot == "y":
- for member in i.guild.members:
- await member.add_roles(role)
- elif bot == "f":
- for member in i.guild.members:
- if not member.bot:
- await member.add_roles(role)
-
- @app_commands.describe(bot="Botのロールも除去する?")
- @app_commands.choices(
- bot=[
- app_commands.Choice(name="はい", value="y"),
- app_commands.Choice(name="いいえ", value="f"),
- ]
- )
- @app_commands.command(name="role_all_remove", description="全員からロールを除去します。")
- async def roleall_remove(
- self, i: discord.Interaction, role: discord.Role, bot: str
- ):
- if bot == "y":
- for member in i.guild.members:
- await member.remove_roles(role)
- elif bot == "f":
- for member in i.guild.members:
- if not member.bot:
- await member.remove_roles(role)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(roleall(bot))
diff --git a/cogs/role_list.py b/cogs/role_list.py
deleted file mode 100644
index 01e4eea..0000000
--- a/cogs/role_list.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class role_list(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="role_list", description="ロールのリストを送信します。")
- async def rolelists(self, i: discord.Interaction):
- guild = i.guild
- if len(guild.roles) > 1:
- role = "\n".join([r.mention for r in guild.roles][1:])
- embed = discord.Embed(title="ロール一覧", description=f"{role}")
- await i.response.send_message(embed=embed)
- else:
- await i.response.send_message("ロールが見つかりませんでした。")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(role_list(bot))
diff --git a/cogs/splatoon2.py b/cogs/splatoon2.py
deleted file mode 100644
index 4b9b6d3..0000000
--- a/cogs/splatoon2.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from discord.ext import commands
-
-
-class splatoon_cog_one(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- # 近日追加。
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(splatoon_cog_one(bot))
diff --git a/cogs/trans.py b/cogs/trans.py
deleted file mode 100644
index bff49d3..0000000
--- a/cogs/trans.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-import async_google_trans_new
-
-
-class trans_kinou(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(text="翻訳するテキスト", lang="翻訳をする言語")
- @app_commands.choices(
- lang=[
- app_commands.Choice(name="アルメニア語", value="hy"),
- app_commands.Choice(name="中国語(簡体)", value="zh"),
- app_commands.Choice(name="オランダ語", value="nl"),
- app_commands.Choice(name="英語", value="en"),
- app_commands.Choice(name="エスペラント語", value="eo"),
- app_commands.Choice(name="フランス語", value="fr"),
- app_commands.Choice(name="グルジア語", value="ka"),
- app_commands.Choice(name="ドイツ語", value="de"),
- app_commands.Choice(name="ギリシャ語", value="el"),
- app_commands.Choice(name="イタリア語", value="it"),
- app_commands.Choice(name="日本語", value="ja"),
- app_commands.Choice(name="韓国語", value="ko"),
- app_commands.Choice(name="クルド語", value="ku"),
- app_commands.Choice(name="ペルシャ語", value="fa"),
- app_commands.Choice(name="ポーランド語", value="pl"),
- app_commands.Choice(name="ポルトガル語(ポルトガル、ブラジル)", value="pt"),
- app_commands.Choice(name="ルーマニア語", value="ro"),
- app_commands.Choice(name="スペイン語", value="es"),
- app_commands.Choice(name="スウェーデン語", value="sv"),
- app_commands.Choice(name="トルコ語", value="tr"),
- app_commands.Choice(name="ウルドゥー語", value="ur"),
- ]
- )
- @app_commands.command(name="google_trans", description="Google翻訳をします。")
- async def trans_cmd(self, i: discord.Interaction, lang: str, text: str):
- g = async_google_trans_new.AsyncTranslator()
- await i.response.send_message(content=await g.translate(text, lang))
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(trans_kinou(bot))
diff --git a/cogs/uptime.py b/cogs/uptime.py
deleted file mode 100644
index 881e852..0000000
--- a/cogs/uptime.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from discord.ext import commands
-from discord import app_commands
-import discord
-
-
-class uptime(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.command(name="up_time", description="Botの起動時間を送信します。")
- async def uptime(self, i: discord.Interaction):
- await i.response.send_message(f"")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(uptime(bot))
diff --git a/cogs/userinfo.py b/cogs/userinfo.py
deleted file mode 100644
index 73a5054..0000000
--- a/cogs/userinfo.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-
-
-class user(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.describe(user="ユーザー")
- @app_commands.command(name="user", description="指定したユーザーの情報を返します。")
- async def user(self, i: discord.Interaction, user: discord.User):
- embed = discord.Embed(title=f"{user.name}のユーザー情報")
- base = "https://media.discordapp.net/avatars"
- if hasattr(user.avatar, "key"):
- embed.set_author(
- name=f"{user.name}#{user.discriminator}の情報",
- icon_url=f"{base}/{user.id}/{user.avatar.key}.png",
- )
- embed.set_thumbnail(url=f"{base}/{user.id}/{user.avatar.key}.png")
- else:
- embed.set_author(
- name=f"{user.name}#{user.discriminator}",
- icon_url=user.default_avatar.url,
- )
- embed.set_thumbnail(url=user.default_avatar.url)
- if user.bot is True:
- b = "はい"
- else:
- b = "いいえ"
- if user.system is True:
- c = "はい"
- else:
- c = "いいえ"
- embed.add_field(
- name="アカウント作成日時", value=discord.utils.format_dt(user.created_at, "f")
- )
- embed.add_field(name="ユーザー名", value=user.name)
- embed.add_field(name="id", value=f"`{user.id}`")
- embed.add_field(name="ディスクリミネーター", value=f"`{user.discriminator}`")
- embed.add_field(name="Botアカウントですか?", value=b)
- embed.add_field(name="システムユーザーですか?", value=c)
- await i.response.send_message(embed=embed, ephemeral=True)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(user(bot))
diff --git a/cogs/verify.py b/cogs/verify.py
deleted file mode 100644
index 4358cb0..0000000
--- a/cogs/verify.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-from replit import db
-
-
-def verify_db(key, data):
- db[f"verify_1_db_{key}"] = data
-
-
-def verify_db_get(key):
- return db[f"verify_1_db_{key}"]
-
-
-class Button1(discord.ui.Button):
- def __init__(self):
- super().__init__(
- label="認証", style=discord.ButtonStyle.primary, custom_id="verify_type_1"
- )
-
-
-class verify(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @commands.Cog.listener(name="on_interaction")
- async def verify_interaction_callback(self, i: discord.Interaction):
- if i.data.get("custom_id") == "verify_type_1":
- data = verify_db_get(int(i.message.id))
- await i.guild.get_member(i.user.id).add_roles(
- i.guild.get_role(int(data["role_id"]))
- )
- await i.response.send_message("ロールを付与しました。", ephemeral=True)
- else:
- return
-
- @app_commands.describe(name="パネルの名前", description="パネルの説明", role="付与するロール")
- @app_commands.command(name="verify", description="ボタン式の認証パネルを生成します。")
- async def nomal_verify(
- self, i: discord.Interaction, name: str, description: str, role: discord.Role
- ):
- buttonView = discord.ui.View(timeout=None)
- buttonView.add_item(Button1())
-
- msg = await self.bot.get_channel(i.channel.id).send(
- embed=discord.Embed(title=name, description=description).add_field(
- name="付与するロール", value=f"{role.mention}"
- ),
- view=buttonView,
- )
- verify_db(int(msg.id), {"msg_id": int(msg.id), "role_id": role.id})
- await i.response.send_message("パネルの生成が完了しました。", ephemeral=True)
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(verify(bot))
diff --git a/cogs/voicetext.py b/cogs/voicetext.py
deleted file mode 100644
index e744219..0000000
--- a/cogs/voicetext.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from discord.ext import commands
-
-
-class voiceText(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(voiceText(bot))
diff --git a/cogs/weather.py b/cogs/weather.py
deleted file mode 100644
index 5621024..0000000
--- a/cogs/weather.py
+++ /dev/null
@@ -1,65 +0,0 @@
-import discord
-from discord.ext import commands
-from discord import app_commands
-import aiohttp
-
-
-class weather(commands.Cog):
- def __init__(self, bot: commands.Bot) -> None:
- self.bot: commands.Bot = bot
-
- @app_commands.choices(
- city=[
- app_commands.Choice(name="札幌", value="016010"),
- app_commands.Choice(name="青森", value="020010"),
- app_commands.Choice(name="秋田", value="050010"),
- app_commands.Choice(name="山形", value="060010"),
- app_commands.Choice(name="福島", value="070010"),
- app_commands.Choice(name="埼玉", value="110010"),
- app_commands.Choice(name="千葉", value="120010"),
- app_commands.Choice(name="東京", value="130010"),
- app_commands.Choice(name="新潟", value="150010"),
- app_commands.Choice(name="金沢", value="170010"),
- app_commands.Choice(name="福井", value="180010"),
- app_commands.Choice(name="長野", value="200010"),
- app_commands.Choice(name="岐阜", value="210010"),
- app_commands.Choice(name="静岡", value="220010"),
- app_commands.Choice(name="京都", value="260010"),
- app_commands.Choice(name="大阪", value="270000"),
- app_commands.Choice(name="神戸", value="280010"),
- app_commands.Choice(name="奈良", value="290010"),
- app_commands.Choice(name="和歌山", value="300010"),
- app_commands.Choice(name="鳥取", value="310010"),
- app_commands.Choice(name="岡山", value="330010"),
- app_commands.Choice(name="広島", value="340010"),
- app_commands.Choice(name="山口", value="350020"),
- app_commands.Choice(name="徳島", value="360010"),
- app_commands.Choice(name="福岡", value="400010"),
- ]
- )
- @app_commands.command(name="weather")
- async def weather(self, i: discord.Interaction, city: str):
-
- """天気を表示します。"""
- base = "https://weather.tsukumijima.net/api/forecast/city"
- async with aiohttp.ClientSession() as session:
- headers = {"User-Agent": "EightBot/2.2(DiscordBot)"}
- async with session.get(f"{base}/{city}", headers=headers) as r:
- if r.status == 200:
- js = await r.json()
- f = js["forecasts"][0]
- embed = discord.Embed(
- title=js["title"],
- description=js["description"]["bodyText"],
- color=0x3498DB,
- )
- embed.add_field(
- name=f["date"] + "の天気。", value="天気は" + f["telop"] + "です。"
- )
- await i.response.send_message(embed=embed)
- else:
- await i.response.send_message("取得できません。")
-
-
-async def setup(bot: commands.Bot) -> None:
- await bot.add_cog(weather(bot))
diff --git a/main.py b/main.py
deleted file mode 100644
index c033195..0000000
--- a/main.py
+++ /dev/null
@@ -1,69 +0,0 @@
-from discord import (
- Intents,
- Status,
- Activity,
- ActivityType,
- Game,
- errors,
- AllowedMentions,
-)
-from itertools import cycle
-from discord.ext import commands, tasks
-from os import listdir, getenv
-from webserver import keep_alive
-from datetime import datetime
-
-
-class EightBot(commands.Bot):
- async def setup_hook(self):
- self.kidou = 0
- await keep_alive()
- for name in listdir("cogs"):
- if not name.startswith(("_", ".")):
- await bot.load_extension(
- f"cogs.{name[:-3] if name.endswith('.py') else name}"
- )
- await bot.load_extension("jishaku")
- await self.tree.sync()
-
-
-bot = EightBot(
- command_prefix="eg!",
- intents=Intents.all(),
- activity=Activity(
- type=ActivityType.watching,
- name="起動準備をしています...",
- ),
- allowed_mentions=AllowedMentions(
- everyone=False, users=True, roles=False, replied_user=True
- ),
- status=Status.dnd,
- help_command=None,
-)
-
-
-@tasks.loop(seconds=5)
-async def status_swap(cycle_d):
- activity = Game(next(cycle_d))
- await bot.change_presence(activity=activity, status=Status.online)
-
-
-@bot.listen(name="on_ready")
-async def bot_ready():
- bot.kidou = int(datetime.now().timestamp())
- print("login.")
- await status_swap.start(
- cycle(
- [
- f"/help | {len(bot.guilds)} server",
- f"/help | {len(bot.users)} user",
- ]
- )
- )
-
-
-try:
- bot.run(getenv("token"))
-
-except errors.HTTPException:
- print("レートリミットに引っかかってます。")
diff --git a/poetry.lock b/poetry.lock
deleted file mode 100644
index fcbac30..0000000
--- a/poetry.lock
+++ /dev/null
@@ -1,844 +0,0 @@
-[[package]]
-name = "aiohttp"
-version = "3.8.3"
-description = "Async http client/server framework (asyncio)"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-aiosignal = ">=1.1.2"
-async-timeout = ">=4.0.0a3,<5.0"
-attrs = ">=17.3.0"
-charset-normalizer = ">=2.0,<3.0"
-frozenlist = ">=1.1.1"
-multidict = ">=4.5,<7.0"
-yarl = ">=1.0,<2.0"
-
-[package.extras]
-speedups = ["Brotli", "aiodns", "cchardet"]
-
-[[package]]
-name = "aiosignal"
-version = "1.2.0"
-description = "aiosignal: a list of registered asynchronous callbacks"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-frozenlist = ">=1.1.0"
-
-[[package]]
-name = "async-timeout"
-version = "4.0.2"
-description = "Timeout context manager for asyncio programs"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[[package]]
-name = "attrs"
-version = "22.1.0"
-description = "Classes Without Boilerplate"
-category = "main"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"]
-docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"]
-tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"]
-tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"]
-
-[[package]]
-name = "autoflake"
-version = "1.7.7"
-description = "Removes unused imports and unused variables"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-pyflakes = ">=1.1.0"
-tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""}
-
-[[package]]
-name = "black"
-version = "22.10.0"
-description = "The uncompromising code formatter."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-click = ">=8.0.0"
-mypy-extensions = ">=0.4.3"
-pathspec = ">=0.9.0"
-platformdirs = ">=2"
-tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""}
-typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}
-
-[package.extras]
-colorama = ["colorama (>=0.4.3)"]
-d = ["aiohttp (>=3.7.4)"]
-jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
-uvloop = ["uvloop (>=0.15.2)"]
-
-[[package]]
-name = "certifi"
-version = "2022.12.7"
-description = "Python package for providing Mozilla's CA Bundle."
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[[package]]
-name = "charset-normalizer"
-version = "2.1.1"
-description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-category = "main"
-optional = false
-python-versions = ">=3.6.0"
-
-[package.extras]
-unicode-backport = ["unicodedata2"]
-
-[[package]]
-name = "click"
-version = "8.1.3"
-description = "Composable command line interface toolkit"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-colorama = {version = "*", markers = "platform_system == \"Windows\""}
-
-[[package]]
-name = "colorama"
-version = "0.4.6"
-description = "Cross-platform colored terminal text."
-category = "main"
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
-
-[[package]]
-name = "discord"
-version = "2.0.0"
-description = "A mirror package for discord.py. Please install that instead."
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.dependencies]
-"discord.py" = ">=2.0.0"
-
-[[package]]
-name = "discord-py"
-version = "2.0.1"
-description = "A Python wrapper for the Discord API"
-category = "main"
-optional = false
-python-versions = ">=3.8.0"
-
-[package.dependencies]
-aiohttp = ">=3.7.4,<4"
-
-[package.extras]
-docs = ["sphinx (==4.4.0)", "sphinxcontrib-trio (==1.1.2)", "sphinxcontrib-websupport", "typing-extensions (>=4.3,<5)"]
-speed = ["Brotli", "aiodns (>=1.1)", "cchardet (==2.1.7)", "orjson (>=3.5.4)"]
-test = ["coverage[toml]", "pytest", "pytest-asyncio", "pytest-cov", "pytest-mock", "typing-extensions (>=4.3,<5)"]
-voice = ["PyNaCl (>=1.3.0,<1.6)"]
-
-[[package]]
-name = "flask"
-version = "2.2.2"
-description = "A simple framework for building complex web applications."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-click = ">=8.0"
-importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""}
-itsdangerous = ">=2.0"
-Jinja2 = ">=3.0"
-Werkzeug = ">=2.2.2"
-
-[package.extras]
-async = ["asgiref (>=3.2)"]
-dotenv = ["python-dotenv"]
-
-[[package]]
-name = "frozenlist"
-version = "1.3.1"
-description = "A list-like structure which implements collections.abc.MutableSequence"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "idna"
-version = "3.4"
-description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
-optional = false
-python-versions = ">=3.5"
-
-[[package]]
-name = "importlib-metadata"
-version = "5.0.0"
-description = "Read metadata from Python packages"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-zipp = ">=0.5"
-
-[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"]
-perf = ["ipython"]
-testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"]
-
-[[package]]
-name = "itsdangerous"
-version = "2.1.2"
-description = "Safely pass data to untrusted environments and back."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "jinja2"
-version = "3.1.2"
-description = "A very fast and expressive template engine."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-MarkupSafe = ">=2.0"
-
-[package.extras]
-i18n = ["Babel (>=2.7)"]
-
-[[package]]
-name = "markupsafe"
-version = "2.1.1"
-description = "Safely add untrusted strings to HTML/XML markup."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "multidict"
-version = "6.0.2"
-description = "multidict implementation"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "mypy-extensions"
-version = "0.4.3"
-description = "Experimental type system extensions for programs checked with the mypy typechecker."
-category = "main"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "numpy"
-version = "1.23.4"
-description = "NumPy is the fundamental package for array computing with Python."
-category = "main"
-optional = false
-python-versions = ">=3.8"
-
-[[package]]
-name = "pathspec"
-version = "0.10.1"
-description = "Utility library for gitignore style pattern matching of file paths."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "platformdirs"
-version = "2.5.2"
-description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.extras]
-docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx (>=4)", "sphinx-autodoc-typehints (>=1.12)"]
-test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"]
-
-[[package]]
-name = "pyflakes"
-version = "2.5.0"
-description = "passive checker of Python programs"
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[[package]]
-name = "requests"
-version = "2.28.1"
-description = "Python HTTP for Humans."
-category = "main"
-optional = false
-python-versions = ">=3.7, <4"
-
-[package.dependencies]
-certifi = ">=2017.4.17"
-charset-normalizer = ">=2,<3"
-idna = ">=2.5,<4"
-urllib3 = ">=1.21.1,<1.27"
-
-[package.extras]
-socks = ["PySocks (>=1.5.6,!=1.5.7)"]
-use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
-
-[[package]]
-name = "tomli"
-version = "2.0.1"
-description = "A lil' TOML parser"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "typing-extensions"
-version = "4.4.0"
-description = "Backported and Experimental Type Hints for Python 3.7+"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "urllib3"
-version = "1.26.12"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4"
-
-[package.extras]
-brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
-
-[[package]]
-name = "werkzeug"
-version = "2.2.2"
-description = "The comprehensive WSGI web application library."
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-MarkupSafe = ">=2.1.1"
-
-[package.extras]
-watchdog = ["watchdog"]
-
-[[package]]
-name = "yarl"
-version = "1.8.1"
-description = "Yet another URL library"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-idna = ">=2.0"
-multidict = ">=4.0"
-
-[[package]]
-name = "zipp"
-version = "3.10.0"
-description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"]
-testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
-
-[metadata]
-lock-version = "1.1"
-python-versions = ">=3.8.0,<3.9"
-content-hash = "6b93baa97031f984ee2e674fc0a2984e050647b41795831dc33368561b0db784"
-
-[metadata.files]
-aiohttp = [
- {file = "aiohttp-3.8.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ba71c9b4dcbb16212f334126cc3d8beb6af377f6703d9dc2d9fb3874fd667ee9"},
- {file = "aiohttp-3.8.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d24b8bb40d5c61ef2d9b6a8f4528c2f17f1c5d2d31fed62ec860f6006142e83e"},
- {file = "aiohttp-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f88df3a83cf9df566f171adba39d5bd52814ac0b94778d2448652fc77f9eb491"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97decbb3372d4b69e4d4c8117f44632551c692bb1361b356a02b97b69e18a62"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309aa21c1d54b8ef0723181d430347d7452daaff93e8e2363db8e75c72c2fb2d"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad5383a67514e8e76906a06741febd9126fc7c7ff0f599d6fcce3e82b80d026f"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20acae4f268317bb975671e375493dbdbc67cddb5f6c71eebdb85b34444ac46b"},
- {file = "aiohttp-3.8.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:05a3c31c6d7cd08c149e50dc7aa2568317f5844acd745621983380597f027a18"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d6f76310355e9fae637c3162936e9504b4767d5c52ca268331e2756e54fd4ca5"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:256deb4b29fe5e47893fa32e1de2d73c3afe7407738bd3c63829874661d4822d"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:5c59fcd80b9049b49acd29bd3598cada4afc8d8d69bd4160cd613246912535d7"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:059a91e88f2c00fe40aed9031b3606c3f311414f86a90d696dd982e7aec48142"},
- {file = "aiohttp-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2feebbb6074cdbd1ac276dbd737b40e890a1361b3cc30b74ac2f5e24aab41f7b"},
- {file = "aiohttp-3.8.3-cp310-cp310-win32.whl", hash = "sha256:5bf651afd22d5f0c4be16cf39d0482ea494f5c88f03e75e5fef3a85177fecdeb"},
- {file = "aiohttp-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:653acc3880459f82a65e27bd6526e47ddf19e643457d36a2250b85b41a564715"},
- {file = "aiohttp-3.8.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:86fc24e58ecb32aee09f864cb11bb91bc4c1086615001647dbfc4dc8c32f4008"},
- {file = "aiohttp-3.8.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75e14eac916f024305db517e00a9252714fce0abcb10ad327fb6dcdc0d060f1d"},
- {file = "aiohttp-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d1fde0f44029e02d02d3993ad55ce93ead9bb9b15c6b7ccd580f90bd7e3de476"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ab94426ddb1ecc6a0b601d832d5d9d421820989b8caa929114811369673235c"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89d2e02167fa95172c017732ed7725bc8523c598757f08d13c5acca308e1a061"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:02f9a2c72fc95d59b881cf38a4b2be9381b9527f9d328771e90f72ac76f31ad8"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c7149272fb5834fc186328e2c1fa01dda3e1fa940ce18fded6d412e8f2cf76d"},
- {file = "aiohttp-3.8.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:512bd5ab136b8dc0ffe3fdf2dfb0c4b4f49c8577f6cae55dca862cd37a4564e2"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7018ecc5fe97027214556afbc7c502fbd718d0740e87eb1217b17efd05b3d276"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:88c70ed9da9963d5496d38320160e8eb7e5f1886f9290475a881db12f351ab5d"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:da22885266bbfb3f78218dc40205fed2671909fbd0720aedba39b4515c038091"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:e65bc19919c910127c06759a63747ebe14f386cda573d95bcc62b427ca1afc73"},
- {file = "aiohttp-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:08c78317e950e0762c2983f4dd58dc5e6c9ff75c8a0efeae299d363d439c8e34"},
- {file = "aiohttp-3.8.3-cp311-cp311-win32.whl", hash = "sha256:45d88b016c849d74ebc6f2b6e8bc17cabf26e7e40c0661ddd8fae4c00f015697"},
- {file = "aiohttp-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:96372fc29471646b9b106ee918c8eeb4cca423fcbf9a34daa1b93767a88a2290"},
- {file = "aiohttp-3.8.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c971bf3786b5fad82ce5ad570dc6ee420f5b12527157929e830f51c55dc8af77"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff25f48fc8e623d95eca0670b8cc1469a83783c924a602e0fbd47363bb54aaca"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e381581b37db1db7597b62a2e6b8b57c3deec95d93b6d6407c5b61ddc98aca6d"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db19d60d846283ee275d0416e2a23493f4e6b6028825b51290ac05afc87a6f97"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25892c92bee6d9449ffac82c2fe257f3a6f297792cdb18ad784737d61e7a9a85"},
- {file = "aiohttp-3.8.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:398701865e7a9565d49189f6c90868efaca21be65c725fc87fc305906be915da"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4a4fbc769ea9b6bd97f4ad0b430a6807f92f0e5eb020f1e42ece59f3ecfc4585"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:b29bfd650ed8e148f9c515474a6ef0ba1090b7a8faeee26b74a8ff3b33617502"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:1e56b9cafcd6531bab5d9b2e890bb4937f4165109fe98e2b98ef0dcfcb06ee9d"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:ec40170327d4a404b0d91855d41bfe1fe4b699222b2b93e3d833a27330a87a6d"},
- {file = "aiohttp-3.8.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2df5f139233060578d8c2c975128fb231a89ca0a462b35d4b5fcf7c501ebdbe1"},
- {file = "aiohttp-3.8.3-cp36-cp36m-win32.whl", hash = "sha256:f973157ffeab5459eefe7b97a804987876dd0a55570b8fa56b4e1954bf11329b"},
- {file = "aiohttp-3.8.3-cp36-cp36m-win_amd64.whl", hash = "sha256:437399385f2abcd634865705bdc180c8314124b98299d54fe1d4c8990f2f9494"},
- {file = "aiohttp-3.8.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:09e28f572b21642128ef31f4e8372adb6888846f32fecb288c8b0457597ba61a"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f3553510abdbec67c043ca85727396ceed1272eef029b050677046d3387be8d"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e168a7560b7c61342ae0412997b069753f27ac4862ec7867eff74f0fe4ea2ad9"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:db4c979b0b3e0fa7e9e69ecd11b2b3174c6963cebadeecfb7ad24532ffcdd11a"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e164e0a98e92d06da343d17d4e9c4da4654f4a4588a20d6c73548a29f176abe2"},
- {file = "aiohttp-3.8.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8a78079d9a39ca9ca99a8b0ac2fdc0c4d25fc80c8a8a82e5c8211509c523363"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:21b30885a63c3f4ff5b77a5d6caf008b037cb521a5f33eab445dc566f6d092cc"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4b0f30372cef3fdc262f33d06e7b411cd59058ce9174ef159ad938c4a34a89da"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:8135fa153a20d82ffb64f70a1b5c2738684afa197839b34cc3e3c72fa88d302c"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:ad61a9639792fd790523ba072c0555cd6be5a0baf03a49a5dd8cfcf20d56df48"},
- {file = "aiohttp-3.8.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:978b046ca728073070e9abc074b6299ebf3501e8dee5e26efacb13cec2b2dea0"},
- {file = "aiohttp-3.8.3-cp37-cp37m-win32.whl", hash = "sha256:0d2c6d8c6872df4a6ec37d2ede71eff62395b9e337b4e18efd2177de883a5033"},
- {file = "aiohttp-3.8.3-cp37-cp37m-win_amd64.whl", hash = "sha256:21d69797eb951f155026651f7e9362877334508d39c2fc37bd04ff55b2007091"},
- {file = "aiohttp-3.8.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ca9af5f8f5812d475c5259393f52d712f6d5f0d7fdad9acdb1107dd9e3cb7eb"},
- {file = "aiohttp-3.8.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d90043c1882067f1bd26196d5d2db9aa6d268def3293ed5fb317e13c9413ea4"},
- {file = "aiohttp-3.8.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d737fc67b9a970f3234754974531dc9afeea11c70791dcb7db53b0cf81b79784"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebf909ea0a3fc9596e40d55d8000702a85e27fd578ff41a5500f68f20fd32e6c"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5835f258ca9f7c455493a57ee707b76d2d9634d84d5d7f62e77be984ea80b849"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da37dcfbf4b7f45d80ee386a5f81122501ec75672f475da34784196690762f4b"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87f44875f2804bc0511a69ce44a9595d5944837a62caecc8490bbdb0e18b1342"},
- {file = "aiohttp-3.8.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:527b3b87b24844ea7865284aabfab08eb0faf599b385b03c2aa91fc6edd6e4b6"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d5ba88df9aa5e2f806650fcbeedbe4f6e8736e92fc0e73b0400538fd25a4dd96"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e7b8813be97cab8cb52b1375f41f8e6804f6507fe4660152e8ca5c48f0436017"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:2dea10edfa1a54098703cb7acaa665c07b4e7568472a47f4e64e6319d3821ccf"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:713d22cd9643ba9025d33c4af43943c7a1eb8547729228de18d3e02e278472b6"},
- {file = "aiohttp-3.8.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2d252771fc85e0cf8da0b823157962d70639e63cb9b578b1dec9868dd1f4f937"},
- {file = "aiohttp-3.8.3-cp38-cp38-win32.whl", hash = "sha256:66bd5f950344fb2b3dbdd421aaa4e84f4411a1a13fca3aeb2bcbe667f80c9f76"},
- {file = "aiohttp-3.8.3-cp38-cp38-win_amd64.whl", hash = "sha256:84b14f36e85295fe69c6b9789b51a0903b774046d5f7df538176516c3e422446"},
- {file = "aiohttp-3.8.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16c121ba0b1ec2b44b73e3a8a171c4f999b33929cd2397124a8c7fcfc8cd9e06"},
- {file = "aiohttp-3.8.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8d6aaa4e7155afaf994d7924eb290abbe81a6905b303d8cb61310a2aba1c68ba"},
- {file = "aiohttp-3.8.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43046a319664a04b146f81b40e1545d4c8ac7b7dd04c47e40bf09f65f2437346"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599418aaaf88a6d02a8c515e656f6faf3d10618d3dd95866eb4436520096c84b"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92a2964319d359f494f16011e23434f6f8ef0434acd3cf154a6b7bec511e2fb7"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73a4131962e6d91109bca6536416aa067cf6c4efb871975df734f8d2fd821b37"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:598adde339d2cf7d67beaccda3f2ce7c57b3b412702f29c946708f69cf8222aa"},
- {file = "aiohttp-3.8.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:75880ed07be39beff1881d81e4a907cafb802f306efd6d2d15f2b3c69935f6fb"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a0239da9fbafd9ff82fd67c16704a7d1bccf0d107a300e790587ad05547681c8"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4e3a23ec214e95c9fe85a58470b660efe6534b83e6cbe38b3ed52b053d7cb6ad"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:47841407cc89a4b80b0c52276f3cc8138bbbfba4b179ee3acbd7d77ae33f7ac4"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:54d107c89a3ebcd13228278d68f1436d3f33f2dd2af5415e3feaeb1156e1a62c"},
- {file = "aiohttp-3.8.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c37c5cce780349d4d51739ae682dec63573847a2a8dcb44381b174c3d9c8d403"},
- {file = "aiohttp-3.8.3-cp39-cp39-win32.whl", hash = "sha256:f178d2aadf0166be4df834c4953da2d7eef24719e8aec9a65289483eeea9d618"},
- {file = "aiohttp-3.8.3-cp39-cp39-win_amd64.whl", hash = "sha256:88e5be56c231981428f4f506c68b6a46fa25c4123a2e86d156c58a8369d31ab7"},
- {file = "aiohttp-3.8.3.tar.gz", hash = "sha256:3828fb41b7203176b82fe5d699e0d845435f2374750a44b480ea6b930f6be269"},
-]
-aiosignal = [
- {file = "aiosignal-1.2.0-py3-none-any.whl", hash = "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a"},
- {file = "aiosignal-1.2.0.tar.gz", hash = "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"},
-]
-async-timeout = [
- {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"},
- {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"},
-]
-attrs = [
- {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"},
- {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"},
-]
-autoflake = [
- {file = "autoflake-1.7.7-py3-none-any.whl", hash = "sha256:a9b43d08f8e455824e4f7b3f078399f59ba538ba53872f466c09e55c827773ef"},
- {file = "autoflake-1.7.7.tar.gz", hash = "sha256:c8e4fc41aa3eae0f5c94b939e3a3d50923d7a9306786a6cbf4866a077b8f6832"},
-]
-black = [
- {file = "black-22.10.0-1fixedarch-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa"},
- {file = "black-22.10.0-1fixedarch-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef"},
- {file = "black-22.10.0-1fixedarch-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6"},
- {file = "black-22.10.0-1fixedarch-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d"},
- {file = "black-22.10.0-1fixedarch-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4"},
- {file = "black-22.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb"},
- {file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"},
- {file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"},
- {file = "black-22.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae"},
- {file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"},
- {file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"},
- {file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"},
- {file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"},
- {file = "black-22.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff"},
- {file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"},
- {file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"},
- {file = "black-22.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0"},
- {file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"},
- {file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"},
- {file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"},
- {file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"},
-]
-certifi = [
- {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"},
- {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"},
-]
-charset-normalizer = [
- {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"},
- {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"},
-]
-click = [
- {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
- {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
-]
-colorama = [
- {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
- {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
-]
-discord = [
- {file = "discord-2.0.0-py3-none-any.whl", hash = "sha256:ffc714978d338d2b506e4924d66d7d02a649378a46743e2bdf42ef1bd43d1a67"},
- {file = "discord-2.0.0.tar.gz", hash = "sha256:b6df1dd56c19750b3cb9b69de85bf463e712a0db232546ae8109c04bf0a61083"},
-]
-discord-py = [
- {file = "discord.py-2.0.1-py3-none-any.whl", hash = "sha256:aeb186348bf011708b085b2715cf92bbb72c692eb4f59c4c0b488130cc4c4b7e"},
- {file = "discord.py-2.0.1.tar.gz", hash = "sha256:309146476e986cb8faf038cd5d604d4b3834ef15c2d34df697ce5064bf5cd779"},
-]
-flask = [
- {file = "Flask-2.2.2-py3-none-any.whl", hash = "sha256:b9c46cc36662a7949f34b52d8ec7bb59c0d74ba08ba6cb9ce9adc1d8676d9526"},
- {file = "Flask-2.2.2.tar.gz", hash = "sha256:642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b"},
-]
-frozenlist = [
- {file = "frozenlist-1.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5f271c93f001748fc26ddea409241312a75e13466b06c94798d1a341cf0e6989"},
- {file = "frozenlist-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9c6ef8014b842f01f5d2b55315f1af5cbfde284eb184075c189fd657c2fd8204"},
- {file = "frozenlist-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:219a9676e2eae91cb5cc695a78b4cb43d8123e4160441d2b6ce8d2c70c60e2f3"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b47d64cdd973aede3dd71a9364742c542587db214e63b7529fbb487ed67cddd9"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2af6f7a4e93f5d08ee3f9152bce41a6015b5cf87546cb63872cc19b45476e98a"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a718b427ff781c4f4e975525edb092ee2cdef6a9e7bc49e15063b088961806f8"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c56c299602c70bc1bb5d1e75f7d8c007ca40c9d7aebaf6e4ba52925d88ef826d"},
- {file = "frozenlist-1.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:717470bfafbb9d9be624da7780c4296aa7935294bd43a075139c3d55659038ca"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:31b44f1feb3630146cffe56344704b730c33e042ffc78d21f2125a6a91168131"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c3b31180b82c519b8926e629bf9f19952c743e089c41380ddca5db556817b221"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:d82bed73544e91fb081ab93e3725e45dd8515c675c0e9926b4e1f420a93a6ab9"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49459f193324fbd6413e8e03bd65789e5198a9fa3095e03f3620dee2f2dabff2"},
- {file = "frozenlist-1.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:94e680aeedc7fd3b892b6fa8395b7b7cc4b344046c065ed4e7a1e390084e8cb5"},
- {file = "frozenlist-1.3.1-cp310-cp310-win32.whl", hash = "sha256:fabb953ab913dadc1ff9dcc3a7a7d3dc6a92efab3a0373989b8063347f8705be"},
- {file = "frozenlist-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:eee0c5ecb58296580fc495ac99b003f64f82a74f9576a244d04978a7e97166db"},
- {file = "frozenlist-1.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0bc75692fb3770cf2b5856a6c2c9de967ca744863c5e89595df64e252e4b3944"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086ca1ac0a40e722d6833d4ce74f5bf1aba2c77cbfdc0cd83722ffea6da52a04"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b51eb355e7f813bcda00276b0114c4172872dc5fb30e3fea059b9367c18fbcb"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:74140933d45271c1a1283f708c35187f94e1256079b3c43f0c2267f9db5845ff"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee4c5120ddf7d4dd1eaf079af3af7102b56d919fa13ad55600a4e0ebe532779b"},
- {file = "frozenlist-1.3.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97d9e00f3ac7c18e685320601f91468ec06c58acc185d18bb8e511f196c8d4b2"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6e19add867cebfb249b4e7beac382d33215d6d54476bb6be46b01f8cafb4878b"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a027f8f723d07c3f21963caa7d585dcc9b089335565dabe9c814b5f70c52705a"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:61d7857950a3139bce035ad0b0945f839532987dfb4c06cfe160254f4d19df03"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:53b2b45052e7149ee8b96067793db8ecc1ae1111f2f96fe1f88ea5ad5fd92d10"},
- {file = "frozenlist-1.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bbb1a71b1784e68870800b1bc9f3313918edc63dbb8f29fbd2e767ce5821696c"},
- {file = "frozenlist-1.3.1-cp37-cp37m-win32.whl", hash = "sha256:ab6fa8c7871877810e1b4e9392c187a60611fbf0226a9e0b11b7b92f5ac72792"},
- {file = "frozenlist-1.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f89139662cc4e65a4813f4babb9ca9544e42bddb823d2ec434e18dad582543bc"},
- {file = "frozenlist-1.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4c0c99e31491a1d92cde8648f2e7ccad0e9abb181f6ac3ddb9fc48b63301808e"},
- {file = "frozenlist-1.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:61e8cb51fba9f1f33887e22488bad1e28dd8325b72425f04517a4d285a04c519"},
- {file = "frozenlist-1.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc2f3e368ee5242a2cbe28323a866656006382872c40869b49b265add546703f"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58fb94a01414cddcdc6839807db77ae8057d02ddafc94a42faee6004e46c9ba8"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:022178b277cb9277d7d3b3f2762d294f15e85cd2534047e68a118c2bb0058f3e"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:572ce381e9fe027ad5e055f143763637dcbac2542cfe27f1d688846baeef5170"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19127f8dcbc157ccb14c30e6f00392f372ddb64a6ffa7106b26ff2196477ee9f"},
- {file = "frozenlist-1.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42719a8bd3792744c9b523674b752091a7962d0d2d117f0b417a3eba97d1164b"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2743bb63095ef306041c8f8ea22bd6e4d91adabf41887b1ad7886c4c1eb43d5f"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:fa47319a10e0a076709644a0efbcaab9e91902c8bd8ef74c6adb19d320f69b83"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52137f0aea43e1993264a5180c467a08a3e372ca9d378244c2d86133f948b26b"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:f5abc8b4d0c5b556ed8cd41490b606fe99293175a82b98e652c3f2711b452988"},
- {file = "frozenlist-1.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1e1cf7bc8cbbe6ce3881863671bac258b7d6bfc3706c600008925fb799a256e2"},
- {file = "frozenlist-1.3.1-cp38-cp38-win32.whl", hash = "sha256:0dde791b9b97f189874d654c55c24bf7b6782343e14909c84beebd28b7217845"},
- {file = "frozenlist-1.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:9494122bf39da6422b0972c4579e248867b6b1b50c9b05df7e04a3f30b9a413d"},
- {file = "frozenlist-1.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:31bf9539284f39ff9398deabf5561c2b0da5bb475590b4e13dd8b268d7a3c5c1"},
- {file = "frozenlist-1.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0c8c803f2f8db7217898d11657cb6042b9b0553a997c4a0601f48a691480fab"},
- {file = "frozenlist-1.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da5ba7b59d954f1f214d352308d1d86994d713b13edd4b24a556bcc43d2ddbc3"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74e6b2b456f21fc93ce1aff2b9728049f1464428ee2c9752a4b4f61e98c4db96"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526d5f20e954d103b1d47232e3839f3453c02077b74203e43407b962ab131e7b"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b499c6abe62a7a8d023e2c4b2834fce78a6115856ae95522f2f974139814538c"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab386503f53bbbc64d1ad4b6865bf001414930841a870fc97f1546d4d133f141"},
- {file = "frozenlist-1.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f63c308f82a7954bf8263a6e6de0adc67c48a8b484fab18ff87f349af356efd"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:12607804084d2244a7bd4685c9d0dca5df17a6a926d4f1967aa7978b1028f89f"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:da1cdfa96425cbe51f8afa43e392366ed0b36ce398f08b60de6b97e3ed4affef"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f810e764617b0748b49a731ffaa525d9bb36ff38332411704c2400125af859a6"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:35c3d79b81908579beb1fb4e7fcd802b7b4921f1b66055af2578ff7734711cfa"},
- {file = "frozenlist-1.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c92deb5d9acce226a501b77307b3b60b264ca21862bd7d3e0c1f3594022f01bc"},
- {file = "frozenlist-1.3.1-cp39-cp39-win32.whl", hash = "sha256:5e77a8bd41e54b05e4fb2708dc6ce28ee70325f8c6f50f3df86a44ecb1d7a19b"},
- {file = "frozenlist-1.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:625d8472c67f2d96f9a4302a947f92a7adbc1e20bedb6aff8dbc8ff039ca6189"},
- {file = "frozenlist-1.3.1.tar.gz", hash = "sha256:3a735e4211a04ccfa3f4833547acdf5d2f863bfeb01cfd3edaffbc251f15cec8"},
-]
-idna = [
- {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
- {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
-]
-importlib-metadata = [
- {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"},
- {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"},
-]
-itsdangerous = [
- {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"},
- {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"},
-]
-jinja2 = [
- {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"},
- {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"},
-]
-markupsafe = [
- {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"},
- {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"},
- {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"},
- {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"},
- {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"},
- {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"},
-]
-multidict = [
- {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2"},
- {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3"},
- {file = "multidict-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88"},
- {file = "multidict-6.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87"},
- {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389"},
- {file = "multidict-6.0.2-cp310-cp310-win32.whl", hash = "sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293"},
- {file = "multidict-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658"},
- {file = "multidict-6.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b"},
- {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b"},
- {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15"},
- {file = "multidict-6.0.2-cp37-cp37m-win32.whl", hash = "sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc"},
- {file = "multidict-6.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a"},
- {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60"},
- {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86"},
- {file = "multidict-6.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693"},
- {file = "multidict-6.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9"},
- {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d"},
- {file = "multidict-6.0.2-cp38-cp38-win32.whl", hash = "sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57"},
- {file = "multidict-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96"},
- {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c"},
- {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e"},
- {file = "multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9"},
- {file = "multidict-6.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360"},
- {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937"},
- {file = "multidict-6.0.2-cp39-cp39-win32.whl", hash = "sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a"},
- {file = "multidict-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae"},
- {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"},
-]
-mypy-extensions = [
- {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
- {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
-]
-numpy = [
- {file = "numpy-1.23.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:95d79ada05005f6f4f337d3bb9de8a7774f259341c70bc88047a1f7b96a4bcb2"},
- {file = "numpy-1.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:926db372bc4ac1edf81cfb6c59e2a881606b409ddc0d0920b988174b2e2a767f"},
- {file = "numpy-1.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c237129f0e732885c9a6076a537e974160482eab8f10db6292e92154d4c67d71"},
- {file = "numpy-1.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8365b942f9c1a7d0f0dc974747d99dd0a0cdfc5949a33119caf05cb314682d3"},
- {file = "numpy-1.23.4-cp310-cp310-win32.whl", hash = "sha256:2341f4ab6dba0834b685cce16dad5f9b6606ea8a00e6da154f5dbded70fdc4dd"},
- {file = "numpy-1.23.4-cp310-cp310-win_amd64.whl", hash = "sha256:d331afac87c92373826af83d2b2b435f57b17a5c74e6268b79355b970626e329"},
- {file = "numpy-1.23.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:488a66cb667359534bc70028d653ba1cf307bae88eab5929cd707c761ff037db"},
- {file = "numpy-1.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ce03305dd694c4873b9429274fd41fc7eb4e0e4dea07e0af97a933b079a5814f"},
- {file = "numpy-1.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8981d9b5619569899666170c7c9748920f4a5005bf79c72c07d08c8a035757b0"},
- {file = "numpy-1.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a70a7d3ce4c0e9284e92285cba91a4a3f5214d87ee0e95928f3614a256a1488"},
- {file = "numpy-1.23.4-cp311-cp311-win32.whl", hash = "sha256:5e13030f8793e9ee42f9c7d5777465a560eb78fa7e11b1c053427f2ccab90c79"},
- {file = "numpy-1.23.4-cp311-cp311-win_amd64.whl", hash = "sha256:7607b598217745cc40f751da38ffd03512d33ec06f3523fb0b5f82e09f6f676d"},
- {file = "numpy-1.23.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ab46e4e7ec63c8a5e6dbf5c1b9e1c92ba23a7ebecc86c336cb7bf3bd2fb10e5"},
- {file = "numpy-1.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8aae2fb3180940011b4862b2dd3756616841c53db9734b27bb93813cd79fce6"},
- {file = "numpy-1.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c053d7557a8f022ec823196d242464b6955a7e7e5015b719e76003f63f82d0f"},
- {file = "numpy-1.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0882323e0ca4245eb0a3d0a74f88ce581cc33aedcfa396e415e5bba7bf05f68"},
- {file = "numpy-1.23.4-cp38-cp38-win32.whl", hash = "sha256:dada341ebb79619fe00a291185bba370c9803b1e1d7051610e01ed809ef3a4ba"},
- {file = "numpy-1.23.4-cp38-cp38-win_amd64.whl", hash = "sha256:0fe563fc8ed9dc4474cbf70742673fc4391d70f4363f917599a7fa99f042d5a8"},
- {file = "numpy-1.23.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c67b833dbccefe97cdd3f52798d430b9d3430396af7cdb2a0c32954c3ef73894"},
- {file = "numpy-1.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f76025acc8e2114bb664294a07ede0727aa75d63a06d2fae96bf29a81747e4a7"},
- {file = "numpy-1.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12ac457b63ec8ded85d85c1e17d85efd3c2b0967ca39560b307a35a6703a4735"},
- {file = "numpy-1.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95de7dc7dc47a312f6feddd3da2500826defdccbc41608d0031276a24181a2c0"},
- {file = "numpy-1.23.4-cp39-cp39-win32.whl", hash = "sha256:f2f390aa4da44454db40a1f0201401f9036e8d578a25f01a6e237cea238337ef"},
- {file = "numpy-1.23.4-cp39-cp39-win_amd64.whl", hash = "sha256:f260da502d7441a45695199b4e7fd8ca87db659ba1c78f2bbf31f934fe76ae0e"},
- {file = "numpy-1.23.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:61be02e3bf810b60ab74e81d6d0d36246dbfb644a462458bb53b595791251911"},
- {file = "numpy-1.23.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:296d17aed51161dbad3c67ed6d164e51fcd18dbcd5dd4f9d0a9c6055dce30810"},
- {file = "numpy-1.23.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4d52914c88b4930dafb6c48ba5115a96cbab40f45740239d9f4159c4ba779962"},
- {file = "numpy-1.23.4.tar.gz", hash = "sha256:ed2cc92af0efad20198638c69bb0fc2870a58dabfba6eb722c933b48556c686c"},
-]
-pathspec = [
- {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"},
- {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"},
-]
-platformdirs = [
- {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
- {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
-]
-pyflakes = [
- {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"},
- {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"},
-]
-requests = [
- {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
- {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"},
-]
-tomli = [
- {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
- {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
-]
-typing-extensions = [
- {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"},
- {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"},
-]
-urllib3 = [
- {file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"},
- {file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"},
-]
-werkzeug = [
- {file = "Werkzeug-2.2.2-py3-none-any.whl", hash = "sha256:f979ab81f58d7318e064e99c4506445d60135ac5cd2e177a2de0089bfd4c9bd5"},
- {file = "Werkzeug-2.2.2.tar.gz", hash = "sha256:7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f"},
-]
-yarl = [
- {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:abc06b97407868ef38f3d172762f4069323de52f2b70d133d096a48d72215d28"},
- {file = "yarl-1.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3"},
- {file = "yarl-1.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9de955d98e02fab288c7718662afb33aab64212ecb368c5dc866d9a57bf48880"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ec362167e2c9fd178f82f252b6d97669d7245695dc057ee182118042026da40"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20df6ff4089bc86e4a66e3b1380460f864df3dd9dccaf88d6b3385d24405893b"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5999c4662631cb798496535afbd837a102859568adc67d75d2045e31ec3ac497"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed19b74e81b10b592084a5ad1e70f845f0aacb57577018d31de064e71ffa267a"},
- {file = "yarl-1.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e4808f996ca39a6463f45182e2af2fae55e2560be586d447ce8016f389f626f"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2d800b9c2eaf0684c08be5f50e52bfa2aa920e7163c2ea43f4f431e829b4f0fd"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6628d750041550c5d9da50bb40b5cf28a2e63b9388bac10fedd4f19236ef4957"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f5af52738e225fcc526ae64071b7e5342abe03f42e0e8918227b38c9aa711e28"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:76577f13333b4fe345c3704811ac7509b31499132ff0181f25ee26619de2c843"},
- {file = "yarl-1.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0c03f456522d1ec815893d85fccb5def01ffaa74c1b16ff30f8aaa03eb21e453"},
- {file = "yarl-1.8.1-cp310-cp310-win32.whl", hash = "sha256:ea30a42dc94d42f2ba4d0f7c0ffb4f4f9baa1b23045910c0c32df9c9902cb272"},
- {file = "yarl-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:9130ddf1ae9978abe63808b6b60a897e41fccb834408cde79522feb37fb72fb0"},
- {file = "yarl-1.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0ab5a138211c1c366404d912824bdcf5545ccba5b3ff52c42c4af4cbdc2c5035"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0fb2cb4204ddb456a8e32381f9a90000429489a25f64e817e6ff94879d432fc"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:85cba594433915d5c9a0d14b24cfba0339f57a2fff203a5d4fd070e593307d0b"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ca7e596c55bd675432b11320b4eacc62310c2145d6801a1f8e9ad160685a231"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0f77539733e0ec2475ddcd4e26777d08996f8cd55d2aef82ec4d3896687abda"},
- {file = "yarl-1.8.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29e256649f42771829974e742061c3501cc50cf16e63f91ed8d1bf98242e5507"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7fce6cbc6c170ede0221cc8c91b285f7f3c8b9fe28283b51885ff621bbe0f8ee"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:59ddd85a1214862ce7c7c66457f05543b6a275b70a65de366030d56159a979f0"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:12768232751689c1a89b0376a96a32bc7633c08da45ad985d0c49ede691f5c0d"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:b19255dde4b4f4c32e012038f2c169bb72e7f081552bea4641cab4d88bc409dd"},
- {file = "yarl-1.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6c8148e0b52bf9535c40c48faebb00cb294ee577ca069d21bd5c48d302a83780"},
- {file = "yarl-1.8.1-cp37-cp37m-win32.whl", hash = "sha256:de839c3a1826a909fdbfe05f6fe2167c4ab033f1133757b5936efe2f84904c07"},
- {file = "yarl-1.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:dd032e8422a52e5a4860e062eb84ac94ea08861d334a4bcaf142a63ce8ad4802"},
- {file = "yarl-1.8.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:19cd801d6f983918a3f3a39f3a45b553c015c5aac92ccd1fac619bd74beece4a"},
- {file = "yarl-1.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6347f1a58e658b97b0a0d1ff7658a03cb79bdbda0331603bed24dd7054a6dea1"},
- {file = "yarl-1.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c0da7e44d0c9108d8b98469338705e07f4bb7dab96dbd8fa4e91b337db42548"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5587bba41399854703212b87071c6d8638fa6e61656385875f8c6dff92b2e461"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31a9a04ecccd6b03e2b0e12e82131f1488dea5555a13a4d32f064e22a6003cfe"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:205904cffd69ae972a1707a1bd3ea7cded594b1d773a0ce66714edf17833cdae"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea513a25976d21733bff523e0ca836ef1679630ef4ad22d46987d04b372d57fc"},
- {file = "yarl-1.8.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0b51530877d3ad7a8d47b2fff0c8df3b8f3b8deddf057379ba50b13df2a5eae"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d2b8f245dad9e331540c350285910b20dd913dc86d4ee410c11d48523c4fd546"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ab2a60d57ca88e1d4ca34a10e9fb4ab2ac5ad315543351de3a612bbb0560bead"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:449c957ffc6bc2309e1fbe67ab7d2c1efca89d3f4912baeb8ead207bb3cc1cd4"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a165442348c211b5dea67c0206fc61366212d7082ba8118c8c5c1c853ea4d82e"},
- {file = "yarl-1.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b3ded839a5c5608eec8b6f9ae9a62cb22cd037ea97c627f38ae0841a48f09eae"},
- {file = "yarl-1.8.1-cp38-cp38-win32.whl", hash = "sha256:c1445a0c562ed561d06d8cbc5c8916c6008a31c60bc3655cdd2de1d3bf5174a0"},
- {file = "yarl-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:56c11efb0a89700987d05597b08a1efcd78d74c52febe530126785e1b1a285f4"},
- {file = "yarl-1.8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e80ed5a9939ceb6fda42811542f31c8602be336b1fb977bccb012e83da7e4936"},
- {file = "yarl-1.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6afb336e23a793cd3b6476c30f030a0d4c7539cd81649683b5e0c1b0ab0bf350"},
- {file = "yarl-1.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4c322cbaa4ed78a8aac89b2174a6df398faf50e5fc12c4c191c40c59d5e28357"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fae37373155f5ef9b403ab48af5136ae9851151f7aacd9926251ab26b953118b"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5395da939ffa959974577eff2cbfc24b004a2fb6c346918f39966a5786874e54"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:076eede537ab978b605f41db79a56cad2e7efeea2aa6e0fa8f05a26c24a034fb"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d1a50e461615747dd93c099f297c1994d472b0f4d2db8a64e55b1edf704ec1c"},
- {file = "yarl-1.8.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7de89c8456525650ffa2bb56a3eee6af891e98f498babd43ae307bd42dca98f6"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4a88510731cd8d4befaba5fbd734a7dd914de5ab8132a5b3dde0bbd6c9476c64"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2d93a049d29df172f48bcb09acf9226318e712ce67374f893b460b42cc1380ae"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:21ac44b763e0eec15746a3d440f5e09ad2ecc8b5f6dcd3ea8cb4773d6d4703e3"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d0272228fabe78ce00a3365ffffd6f643f57a91043e119c289aaba202f4095b0"},
- {file = "yarl-1.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:99449cd5366fe4608e7226c6cae80873296dfa0cde45d9b498fefa1de315a09e"},
- {file = "yarl-1.8.1-cp39-cp39-win32.whl", hash = "sha256:8b0af1cf36b93cee99a31a545fe91d08223e64390c5ecc5e94c39511832a4bb6"},
- {file = "yarl-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:de49d77e968de6626ba7ef4472323f9d2e5a56c1d85b7c0e2a190b2173d3b9be"},
- {file = "yarl-1.8.1.tar.gz", hash = "sha256:af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf"},
-]
-zipp = [
- {file = "zipp-3.10.0-py3-none-any.whl", hash = "sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1"},
- {file = "zipp-3.10.0.tar.gz", hash = "sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8"},
-]
diff --git a/pyproject.toml b/pyproject.toml
deleted file mode 100644
index 422aa47..0000000
--- a/pyproject.toml
+++ /dev/null
@@ -1,15 +0,0 @@
-[tool.poetry]
-name = "EightBot"
-version = "2.0.0"
-description = ""
-authors = ["EightBotDev "]
-
-[tool.poetry.dependencies]
-python = ">=3.8.0,<3.9"
-numpy = "^1.22.2"
-Flask = "^2.2.0"
-urllib3 = "^1.26.12"
-discord = "^2.1.0"
-requests = "^2.28.1"
-black = "^22.10.0"
-autoflake = "^1.7.7"
diff --git a/voice/voice.mp3 b/voice/voice.mp3
deleted file mode 100644
index e69de29..0000000
diff --git a/webserver.py b/webserver.py
deleted file mode 100644
index c506005..0000000
--- a/webserver.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from flask import Flask
-from threading import Thread
-
-app = Flask("")
-
-
-@app.route("/")
-def home():
- return "online!"
-
-
-def run():
- app.run(host="0.0.0.0", port=8080)
-
-
-async def keep_alive():
- t = Thread(target=run)
- t.start()
From 7633d4dfb869595d357bde1290f9066612098d27 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:22:21 +0900
Subject: [PATCH 11/37] Create .gitignore
---
.gitignore | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..27b82cc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+# node_modules folder
+node_modules/
+# env
+.env
+# sqlite file
+db.sqlite
From f8366467efa2bcfde92f98d5bef7b8c1544a8709 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:23:02 +0900
Subject: [PATCH 12/37] Create CODE_OF_CONDUCT.md
---
CODE_OF_CONDUCT.md | 128 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 128 insertions(+)
create mode 100644 CODE_OF_CONDUCT.md
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..21dd59e
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,128 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+- Demonstrating empathy and kindness toward other people
+- Being respectful of differing opinions, viewpoints, and experiences
+- Giving and gracefully accepting constructive feedback
+- Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+- Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+- The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+- Trolling, insulting or derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+- Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+support server.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
From d3e74eba8def27be81f8b04150a95cce8eaa4ecf Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:23:21 +0900
Subject: [PATCH 13/37] Create README.md
---
README.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 README.md
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a53fb35
--- /dev/null
+++ b/README.md
@@ -0,0 +1,6 @@
+# EightBot
+
+
+
+
+
From 55aea069fa910f42c2935f26a71403dd810e7510 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:23:39 +0900
Subject: [PATCH 14/37] Update .gitignore
From 60bb61e0c2e28f09e5e8c639079db5b70ef4e63e Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:54:20 +0900
Subject: [PATCH 15/37] =?UTF-8?q?=E2=9C=A8new:=205000=20&=20CONTRIBUTING?=
=?UTF-8?q?=20&=20=F0=9F=90=9Bfix:=20=E3=81=84=E3=82=89=E3=81=AA=E3=81=84i?=
=?UTF-8?q?mport=E3=82=92=E6=B6=88=E3=81=97=E3=81=9F=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CONTRIBUTING.md | 23 +++++++
commands/individual/5000.ts | 104 ++++++++++++++++++++++++++++++++
commands/individual/akinator.ts | 2 -
3 files changed, 127 insertions(+), 2 deletions(-)
create mode 100644 CONTRIBUTING.md
create mode 100644 commands/individual/5000.ts
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..08a836d
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+# この Bot へ貢献
+
+## Issue を作成するとき
+
+1. その内容の Issue が既に存在していないかを確認して下さい。(クローズ済みのものも)
+2. 内容を書き込みます。(テンプレートの場合は文字などを変更します)
+3. Issue を作成します。
+
+## Pull request を作成する時
+
+1. その内容の Pull request が既に存在していないかを確認して下さい。(マージ済み、クローズ済みのものも)
+2. もう実装されていないか確認して下さい。
+3. Fork し、コードを書いて、内容を書き込みます。
+4. Pull request を作成します。
+ WIP の場合は、`🚧WIP: oo`にしてください。
+
+## コミットメッセージ
+
+何かを作った: `✨new: ○○`
+何かを修正した: `🐛fix: ○○`
+何かを変更した: `🔄change: ○○`
+何かを更新した: `🆙update: ○○`
+何かを削除した: `🗑️delete: oo`
diff --git a/commands/individual/5000.ts b/commands/individual/5000.ts
new file mode 100644
index 0000000..0cff0b5
--- /dev/null
+++ b/commands/individual/5000.ts
@@ -0,0 +1,104 @@
+import { isMessageInstance } from "@sapphire/discord.js-utilities";
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageEmbed } from "discord.js";
+export class PingCommand extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("5000")
+ .setDescription("5000兆円ほしいを生成します。")
+ .addStringOption((option) =>
+ option.setName("top").setDescription("上部文字列").setRequired(true)
+ )
+ .addStringOption((option) =>
+ option
+ .setName("bottom")
+ .setDescription("下部文字列")
+ .setRequired(true)
+ )
+ .addStringOption((option) =>
+ option
+ .setName("type")
+ .setDescription("画像の拡張子")
+ .setChoices(
+ { name: "png(お勧め)", value: "png" },
+ { name: "jpg", value: "jpg" },
+ { name: "webp", value: "webp" }
+ )
+ .setRequired(true)
+ )
+ .addStringOption((option) =>
+ option
+ .setName("quality")
+ .setDescription("画像の画質")
+ .setChoices(
+ { name: "低", value: "30" },
+ { name: "中", value: "70" },
+ { name: "高", value: "100" }
+ )
+ .setRequired(true)
+ )
+ .addStringOption((option) =>
+ option
+ .setName("hoshii")
+ .setDescription("下部文字列を「欲しい!」に固定する")
+ .setChoices(
+ { name: "固定する", value: "true" },
+ { name: "固定しない", value: "false" }
+ )
+ .setRequired(true)
+ )
+ .addStringOption((option) =>
+ option
+ .setName("noalpha")
+ .setDescription("背景色を白にする")
+ .setChoices(
+ { name: "白にする", value: "true" },
+ { name: "白にしない", value: "false" }
+ )
+ .setRequired(true)
+ )
+ .addStringOption((option) =>
+ option
+ .setName("rainbow")
+ .setDescription("虹色にする")
+ .setChoices(
+ { name: "虹色にする", value: "true" },
+ { name: "虹色にしない", value: "false" }
+ )
+ .setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ const op = interaction.options;
+ await interaction.reply({
+ embeds: [
+ new MessageEmbed()
+ .setImage(
+ encodeURI(
+ `https://gsapi.cbrx.io/image?top=${op.getString(
+ "top"
+ )}&bottom=${op.getString("bottom")}&type=${op.getString(
+ "type"
+ )}&quality=${op.getString("quality")}&hoshii=${op.getString(
+ "hoshii"
+ )}&noalpha=${op.getString("noalpha")}&rainbow=${op.getString(
+ "rainbow"
+ )}`
+ )
+ )
+ .setTitle("5000兆円ほしい!!")
+ .setFooter({ text: "5000choyen-apiで生成しています。" })
+ .setColor(0x3498db),
+ ],
+ });
+ }
+}
diff --git a/commands/individual/akinator.ts b/commands/individual/akinator.ts
index f2b4bb8..49d1842 100644
--- a/commands/individual/akinator.ts
+++ b/commands/individual/akinator.ts
@@ -1,6 +1,4 @@
-import { isMessageInstance } from "@sapphire/discord.js-utilities";
import { Command, ChatInputCommand } from "@sapphire/framework";
-import { MessageEmbed } from "discord.js";
import akinator from "discord.js-akinator";
export class PingCommand extends Command {
public constructor(context: Command.Context, options: Command.Options) {
From 88623fedd4924b533c0d305a04cf7cc9a6d16551 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:57:41 +0900
Subject: [PATCH 16/37] =?UTF-8?q?=F0=9F=94=84change:=20class=E5=90=8D?=
=?UTF-8?q?=E5=A4=89=E6=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/bot/ping.ts | 2 +-
commands/individual/5000.ts | 3 +--
commands/individual/akinator.ts | 2 +-
commands/server/poll.ts | 2 +-
commands/server/poll_stop.ts | 2 +-
commands/server/verify.ts | 2 +-
listeners/poll.ts | 2 +-
7 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/commands/bot/ping.ts b/commands/bot/ping.ts
index cb7caa1..e836b47 100644
--- a/commands/bot/ping.ts
+++ b/commands/bot/ping.ts
@@ -1,7 +1,7 @@
import { isMessageInstance } from "@sapphire/discord.js-utilities";
import { Command, ChatInputCommand } from "@sapphire/framework";
import { MessageEmbed } from "discord.js";
-export class PingCommand extends Command {
+export class Ping extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
}
diff --git a/commands/individual/5000.ts b/commands/individual/5000.ts
index 0cff0b5..6ac838e 100644
--- a/commands/individual/5000.ts
+++ b/commands/individual/5000.ts
@@ -1,7 +1,6 @@
-import { isMessageInstance } from "@sapphire/discord.js-utilities";
import { Command, ChatInputCommand } from "@sapphire/framework";
import { MessageEmbed } from "discord.js";
-export class PingCommand extends Command {
+export class GosenChyoen extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
}
diff --git a/commands/individual/akinator.ts b/commands/individual/akinator.ts
index 49d1842..c947afd 100644
--- a/commands/individual/akinator.ts
+++ b/commands/individual/akinator.ts
@@ -1,6 +1,6 @@
import { Command, ChatInputCommand } from "@sapphire/framework";
import akinator from "discord.js-akinator";
-export class PingCommand extends Command {
+export class Akinator extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
}
diff --git a/commands/server/poll.ts b/commands/server/poll.ts
index 00d2d29..079fe4d 100644
--- a/commands/server/poll.ts
+++ b/commands/server/poll.ts
@@ -5,7 +5,7 @@ import {
TextInputComponent,
ModalActionRowComponent,
} from "discord.js";
-export class PingCommand extends Command {
+export class Poll extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
}
diff --git a/commands/server/poll_stop.ts b/commands/server/poll_stop.ts
index 8bf6687..c55cb65 100644
--- a/commands/server/poll_stop.ts
+++ b/commands/server/poll_stop.ts
@@ -2,7 +2,7 @@ import { Command } from "@sapphire/framework";
import { ApplicationCommandType } from "discord-api-types/v9";
import { MessageEmbed } from "discord.js";
import Keyv from "keyv";
-export class PingCommand extends Command {
+export class PollStop extends Command {
poll: Keyv;
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
diff --git a/commands/server/verify.ts b/commands/server/verify.ts
index 6e91335..6ef2912 100644
--- a/commands/server/verify.ts
+++ b/commands/server/verify.ts
@@ -1,6 +1,6 @@
import { Command, ChatInputCommand } from "@sapphire/framework";
-export class PingCommand extends Command {
+export class Verify extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
}
diff --git a/listeners/poll.ts b/listeners/poll.ts
index 769e2d5..b1bfbc3 100644
--- a/listeners/poll.ts
+++ b/listeners/poll.ts
@@ -9,7 +9,7 @@ import {
} from "discord.js";
import Keyv from "keyv";
-export class Poll_modal extends Listener {
+export class PollModal extends Listener {
poll: Keyv;
public constructor(context: Listener.Context, options: Listener.Options) {
super(context, {
From fd134083f6ea4b735f5aa564a7c79f629dad8ac1 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Thu, 29 Dec 2022 20:58:28 +0900
Subject: [PATCH 17/37] coming soon: verify
---
commands/server/verify.ts | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/commands/server/verify.ts b/commands/server/verify.ts
index 6ef2912..20f1eca 100644
--- a/commands/server/verify.ts
+++ b/commands/server/verify.ts
@@ -1,3 +1,4 @@
+/*
import { Command, ChatInputCommand } from "@sapphire/framework";
export class Verify extends Command {
@@ -12,12 +13,10 @@ export class Verify extends Command {
builder
.setName("verify")
.setDescription("Returns the current Ping value of the bot.")
- .setDescriptionLocalizations({
- ja: "Botの現在のPing値を返します。",
- "en-US": "Returns the current Ping value of the bot.",
- })
);
}
public async chatInputRun(interaction: Command.ChatInputInteraction) {}
}
+
+*/
From cee74d991a75e88a8c6994371a71892d56e2db1b Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 09:15:34 +0900
Subject: [PATCH 18/37] =?UTF-8?q?=E2=9C=A8new:=20BanMember?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/server/ban_member.ts | 56 +++++++++++++++++++++++++++++++++++
commands/server/verify.ts | 22 --------------
2 files changed, 56 insertions(+), 22 deletions(-)
create mode 100644 commands/server/ban_member.ts
delete mode 100644 commands/server/verify.ts
diff --git a/commands/server/ban_member.ts b/commands/server/ban_member.ts
new file mode 100644
index 0000000..0eb833f
--- /dev/null
+++ b/commands/server/ban_member.ts
@@ -0,0 +1,56 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageEmbed } from "discord.js";
+
+export class BanMember extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("ban_member")
+ .setDescription("Banされたメンバー一覧を表示します。")
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ if (interaction.guild) {
+ const bans = await interaction.guild.bans.fetch();
+ const str =
+ bans.map((ban) => ban.user.tag).join(", ") ||
+ "Banされたユーザーがいません。";
+ if (str.length > 4096) {
+ const str2 = str.substring(4096, str.length);
+ await interaction.reply({
+ embeds: [
+ new MessageEmbed()
+ .setTitle("Banされたユーザー一覧")
+ .setDescription(str)
+ .setColor(0x3498db),
+ new MessageEmbed()
+ .setTitle("Banされたユーザー一覧")
+ .setDescription(str2)
+ .setColor(0x3498db),
+ ],
+ });
+ } else {
+ await interaction.reply({
+ embeds: [
+ new MessageEmbed()
+ .setTitle("Banされたユーザー一覧")
+ .setDescription(str)
+ .setColor(0x3498db),
+ ],
+ });
+ }
+ } else {
+ await interaction.reply({
+ content: "ここはサーバーではありません。",
+ ephemeral: true,
+ });
+ }
+ }
+}
diff --git a/commands/server/verify.ts b/commands/server/verify.ts
deleted file mode 100644
index 20f1eca..0000000
--- a/commands/server/verify.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-import { Command, ChatInputCommand } from "@sapphire/framework";
-
-export class Verify extends Command {
- public constructor(context: Command.Context, options: Command.Options) {
- super(context, { ...options });
- }
-
- public override registerApplicationCommands(
- registry: ChatInputCommand.Registry
- ) {
- registry.registerChatInputCommand((builder) =>
- builder
- .setName("verify")
- .setDescription("Returns the current Ping value of the bot.")
- );
- }
-
- public async chatInputRun(interaction: Command.ChatInputInteraction) {}
-}
-
-*/
From 3faf7fb3b14eca2397e09b56f77763410e42eea5 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 11:11:15 +0900
Subject: [PATCH 19/37] =?UTF-8?q?=E2=9C=A8new:=20help&bot=5Finvite&?=
=?UTF-8?q?=F0=9F=94=84change:=20ping=E5=8F=96=E5=BE=97=E5=A4=B1=E6=95=97m?=
=?UTF-8?q?sg=E3=82=92embed=E3=81=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/bot/bot_invite.ts | 65 ++++++++++++++++++++++++++++++++++++++
commands/bot/help.ts | 31 ++++++++++++++++++
commands/bot/ping.ts | 8 ++++-
3 files changed, 103 insertions(+), 1 deletion(-)
create mode 100644 commands/bot/bot_invite.ts
create mode 100644 commands/bot/help.ts
diff --git a/commands/bot/bot_invite.ts b/commands/bot/bot_invite.ts
new file mode 100644
index 0000000..02c5431
--- /dev/null
+++ b/commands/bot/bot_invite.ts
@@ -0,0 +1,65 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageEmbed, MessageActionRow, MessageButton } from "discord.js";
+export class BotInvite extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("bot_invite")
+ .setDescription("指定したBotの招待リンクを生成します。")
+ .addUserOption((input) =>
+ input.setName("bot").setDescription("Bot").setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ const user = interaction.options.getUser("bot");
+ if (!user?.bot)
+ return await interaction.reply({
+ content: "指定したBotはユーザーです。",
+ ephemeral: true,
+ });
+ const row = new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setLabel("管理者権限で招待")
+ .setStyle("LINK")
+ .setURL(
+ `https://discord.com/api/oauth2/authorize?client_id=${user?.id}&permissions=8&scope=bot%20applications.commands`
+ )
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("権限を選択して招待")
+ .setStyle("LINK")
+ .setURL(
+ `https://discord.com/api/oauth2/authorize?client_id=${user?.id}&permissions=4398046511095&scope=bot%20applications.commands`
+ )
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("権限なしで招待")
+ .setStyle("LINK")
+ .setURL(
+ `https://discord.com/api/oauth2/authorize?client_id=${user?.id}&permissions=0&scope=bot%20applications.commands`
+ )
+ );
+ await interaction.reply({
+ embeds: [
+ new MessageEmbed()
+ .setTitle(`${user?.tag}を招待。`)
+ .setDescription(
+ `以下のボタンをクリックすることで、${user?.tag}を招待出来ます。`
+ )
+ .setColor(0x3498db),
+ ],
+ components: [row],
+ });
+ }
+}
diff --git a/commands/bot/help.ts b/commands/bot/help.ts
new file mode 100644
index 0000000..6a202aa
--- /dev/null
+++ b/commands/bot/help.ts
@@ -0,0 +1,31 @@
+import { isMessageInstance } from "@sapphire/discord.js-utilities";
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageEmbed } from "discord.js";
+export class help extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder.setName("help").setDescription("Botのヘルプを表示します。")
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ const app =
+ this.container.client.application?.commands?.cache?.map(
+ (appcmd) => appcmd
+ ) || [];
+ const embed = new MessageEmbed();
+ embed.setTitle("EightBotヘルプ").setColor(0x3498db);
+ let num: number = 0;
+ for (const cmd of app) {
+ num = num + 1;
+ embed.addFields({ name: cmd.name, value: cmd.description || "説明はありません。"});
+ }
+ await interaction.reply({ embeds: [embed] });
+ }
+}
diff --git a/commands/bot/ping.ts b/commands/bot/ping.ts
index e836b47..d6cdae1 100644
--- a/commands/bot/ping.ts
+++ b/commands/bot/ping.ts
@@ -42,6 +42,12 @@ export class Ping extends Command {
});
}
- return interaction.editReply("Failed to retrieve ping :(");
+ return interaction.editReply({
+ embeds: [
+ new MessageEmbed()
+ .setDescription("**Pingの取得に失敗しました。**")
+ .setColor(0x3498db),
+ ],
+ });
}
}
From 9ff6e68e1f3585ee7abb07db1363fbd8cb1d5b9f Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 12:53:40 +0900
Subject: [PATCH 20/37] =?UTF-8?q?=E2=9C=A8new:=20downcheck&embed?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/downcheck.ts | 91 ++++++++++++++++++++++++++++++++
commands/server/embed.ts | 46 ++++++++++++++++
listeners/embed_color.ts | 71 +++++++++++++++++++++++++
listeners/embed_res.ts | 90 +++++++++++++++++++++++++++++++
4 files changed, 298 insertions(+)
create mode 100644 commands/individual/downcheck.ts
create mode 100644 commands/server/embed.ts
create mode 100644 listeners/embed_color.ts
create mode 100644 listeners/embed_res.ts
diff --git a/commands/individual/downcheck.ts b/commands/individual/downcheck.ts
new file mode 100644
index 0000000..aed6cbc
--- /dev/null
+++ b/commands/individual/downcheck.ts
@@ -0,0 +1,91 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+export class DownCheck extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("downcheck")
+ .setDescription("入力したサービスがダウンしているか調べます。")
+ .addStringOption((input) =>
+ input
+ .setName("サービス名")
+ .setDescription("ダウンしているか調べるサービスの名前。")
+ .setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ await interaction.reply("現在解析中です。");
+ await fetch(
+ `https://downdetector.jp/shougai/${interaction.options.getString(
+ "サービス名"
+ )}`
+ )
+ .then((res) => res.text())
+ .then(async (dd) => {
+ if (dd.indexOf("現在問題がない") != -1) {
+ await interaction.editReply({
+ content: "解析が完了しました。",
+ embeds: [
+ {
+ title: "ダウンチェック",
+ description: `${interaction.options.getString(
+ "サービス名"
+ )}には現在障害が発生していません。`,
+ color: 0x00ff00,
+ },
+ ],
+ });
+ return;
+ } else if (dd.indexOf("で起こり得る問題") != -1) {
+ await interaction.editReply({
+ content: "解析が完了しました。",
+ embeds: [
+ {
+ title: "ダウンチェック",
+ description: `${interaction.options.getString(
+ "サービス名"
+ )}には現在障害が発生している可能性があります`,
+ color: 0xf5dd42,
+ },
+ ],
+ });
+ return;
+ } else if (dd.indexOf("での問題を示し") != -1) {
+ await interaction.editReply({
+ content: "解析が完了しました。",
+ embeds: [
+ {
+ title: "ダウンチェック",
+ description: `${interaction.options.getString(
+ "サービス名"
+ )}には現在障害が発生しています。`,
+ color: 0xff0000,
+ },
+ ],
+ });
+ return;
+ } else if (dd.indexOf("ページが見つかりません") != -1) {
+ await interaction.editReply({
+ content: "解析が完了しました。",
+ embeds: [
+ {
+ title: "ダウンチェック",
+ description: `${interaction.options.getString(
+ "サービス名"
+ )}というサービスが見つかりませんでした`,
+ color: 0x546e7a,
+ },
+ ],
+ });
+ return;
+ }
+ });
+ }
+}
diff --git a/commands/server/embed.ts b/commands/server/embed.ts
new file mode 100644
index 0000000..721c81f
--- /dev/null
+++ b/commands/server/embed.ts
@@ -0,0 +1,46 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import {
+ TextInputComponent,
+ MessageActionRow,
+ ModalActionRowComponent,
+ Modal,
+} from "discord.js";
+
+export class Embed extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder.setName("embed").setDescription("Embedを生成できます。")
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ const title = new TextInputComponent()
+ .setCustomId("em_ti")
+ .setLabel("タイトル")
+ .setRequired(true)
+ .setStyle("PARAGRAPH")
+ .setMaxLength(256);
+ const description = new TextInputComponent()
+ .setCustomId("em_de")
+ .setLabel("説明")
+ .setRequired(true)
+ .setStyle("PARAGRAPH")
+ .setMaxLength(4000);
+ const modal = new Modal()
+ .setCustomId("embed_modal")
+ .setTitle("Embed作成")
+ .addComponents(
+ new MessageActionRow().addComponents(title),
+ new MessageActionRow().addComponents(
+ description
+ )
+ );
+ await interaction.showModal(modal);
+ }
+}
diff --git a/listeners/embed_color.ts b/listeners/embed_color.ts
new file mode 100644
index 0000000..83fc864
--- /dev/null
+++ b/listeners/embed_color.ts
@@ -0,0 +1,71 @@
+import { Listener, Events } from "@sapphire/framework";
+import {
+ Interaction,
+ CacheType,
+ MessageEmbed,
+ MessageActionRow,
+ MessageButton,
+} from "discord.js";
+import { APIEmbed } from "discord-api-types/v9";
+export class EmbedColor extends Listener {
+ public constructor(context: Listener.Context, options: Listener.Options) {
+ super(context, {
+ ...options,
+ once: false,
+ event: Events.InteractionCreate,
+ });
+ }
+ public async run(interaction: Interaction) {
+ if (!interaction.isButton()) return;
+ if (interaction.customId === "color_1") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0xdd2e44)],
+ });
+ } else if (interaction.customId === "color_2") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0xff6723)],
+ });
+ } else if (interaction.customId === "color_3") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0xfcd53f)],
+ });
+ } else if (interaction.customId === "color_4") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0x00d26a)],
+ });
+ } else if (interaction.customId === "color_5") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0x0074ba)],
+ });
+ } else if (interaction.customId === "color_6") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0x8d65c5)],
+ });
+ } else if (interaction.customId === "color_7") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0x6d4534)],
+ });
+ } else if (interaction.customId === "color_8") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0x000000)],
+ });
+ } else if (interaction.customId === "color_9") {
+ const embed = interaction.message?.embeds[0];
+ return await interaction.update({
+ embeds: [new MessageEmbed(embed).setColor(0xffffff)],
+ });
+ } else if (interaction.customId === "color_d") {
+ return await interaction.update({
+ components: [],
+ });
+ }
+ }
+}
diff --git a/listeners/embed_res.ts b/listeners/embed_res.ts
new file mode 100644
index 0000000..7f3eda2
--- /dev/null
+++ b/listeners/embed_res.ts
@@ -0,0 +1,90 @@
+import { Listener, Events } from "@sapphire/framework";
+import {
+ Interaction,
+ CacheType,
+ MessageEmbed,
+ MessageActionRow,
+ MessageButton,
+} from "discord.js";
+
+export class EmbedResponse1 extends Listener {
+ public constructor(context: Listener.Context, options: Listener.Options) {
+ super(context, {
+ ...options,
+ once: false,
+ event: Events.InteractionCreate,
+ });
+ }
+ public async run(interaction: Interaction) {
+ if (!interaction.isModalSubmit()) return;
+ if (interaction.customId === "embed_modal") {
+ const embed = new MessageEmbed();
+ embed.setTitle(interaction.fields.getTextInputValue("em_ti"));
+ embed.setDescription(interaction.fields.getTextInputValue("em_de"));
+ const row = new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setEmoji("🔴")
+ .setStyle("SECONDARY")
+ .setCustomId("color_1")
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("🟠")
+ .setStyle("SECONDARY")
+ .setCustomId("color_2")
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("🟡")
+ .setStyle("SECONDARY")
+ .setCustomId("color_3")
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("🟢")
+ .setStyle("SECONDARY")
+ .setCustomId("color_4")
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("🔵")
+ .setStyle("SECONDARY")
+ .setCustomId("color_5")
+ );
+ const row2 = new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setLabel("🟣")
+ .setStyle("SECONDARY")
+ .setCustomId("color_6")
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("🟤")
+ .setStyle("SECONDARY")
+ .setCustomId("color_7")
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("⚫")
+ .setStyle("SECONDARY")
+ .setCustomId("color_8")
+ )
+ .addComponents(
+ new MessageButton()
+ .setLabel("⚪")
+ .setStyle("SECONDARY")
+ .setCustomId("color_9")
+ )
+ .addComponents(
+ new MessageButton()
+ .setEmoji("🗑️")
+ .setLabel("色選択ボタンを消す(戻せません)")
+ .setStyle("DANGER")
+ .setCustomId("color_d")
+ );
+ await interaction.reply({ embeds: [embed], components: [row, row2] });
+ }
+ }
+}
From 3d9f6892ba5f2356ec99e20cd1f5dd37d92398ea Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 13:51:52 +0900
Subject: [PATCH 21/37] =?UTF-8?q?=E2=9C=A8new:=20google=E6=A4=9C=E7=B4=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/google.ts | 106 +++++++++++++++++++++++++++++++
package.json | 1 +
yarn.lock | 113 ++++++++++++++++++++++++++++++++++
3 files changed, 220 insertions(+)
create mode 100644 commands/individual/google.ts
diff --git a/commands/individual/google.ts b/commands/individual/google.ts
new file mode 100644
index 0000000..e821061
--- /dev/null
+++ b/commands/individual/google.ts
@@ -0,0 +1,106 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageButton, MessageActionRow } from "discord.js";
+export class Google extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("google")
+ .setDescription("google検索をします。")
+ .addStringOption((option) =>
+ option
+ .setName("検索ワード")
+ .setDescription("検索する言葉。")
+ .setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ try {
+ await interaction.reply("検索をしています。");
+ const cheerio = require("cheerio");
+
+ const urlRegExp =
+ /https?:\/\/([\w\-\.\/\?\,\=\#\:\u3000-\u30FE\u4E00-\u9FA0\uFF01-\uFFE3])+\/([\w\-\.\/\=\?\,\#\:\u3000-\u30FE\u4E00-\u9FA0\uFF01-\uFFE3%0-9])+/;
+
+ const baseUrl = "https://www.google.com/search?q=";
+
+ const userAgents = [
+ "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/108.0",
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/100.0",
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
+ "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54",
+ ];
+
+ const blackList = [
+ "https://support.google.com/websearch?p=ws_settings_location",
+ "https://www.google.com/preferences",
+ "https://policies.google.com/privacy",
+ "https://policies.google.com/terms",
+ "https://support.google.com",
+ "https://www.google.com/",
+ "https://accounts.google.com",
+ "https://www.google.com/imghp",
+ "https://www.google.com/webhp",
+ ];
+
+ const reducer = async (a, element) => {
+ a = await a;
+ const matchGroup = element.attribs.href.match(urlRegExp);
+ if (!matchGroup) return a;
+ const url = decodeURIComponent(matchGroup[0]);
+ if (
+ blackList.some((pre) => url.startsWith(pre)) ||
+ /https:\/\/[a-w]+\.google\.com\/maps\?q=/.test(url)
+ )
+ return a;
+ const cheerioAPI = cheerio.load(element);
+ await new Promise((r) => setImmediate(r));
+ const title = cheerioAPI("h3").text();
+ if (title) return a.main.push({ title, url }), a;
+ a.sub.push({ title: cheerioAPI.text() || "No title", url });
+ return a;
+ };
+ const keyword = interaction.options.getString("検索ワード") || "";
+ const url = baseUrl + encodeURIComponent(keyword);
+ const userAgent =
+ userAgents[Math.floor(Math.random() * (userAgents.length - 1))];
+ const headers = { "user-agent": userAgent };
+ const response = await fetch(url, { headers });
+ await new Promise((r) => setImmediate(r));
+ const responseText = await response.text();
+ await new Promise((r) => setImmediate(r));
+ const cheerioAPI = cheerio.load(responseText);
+ await new Promise((r) => setImmediate(r));
+ const result = await [...cheerioAPI('#main a[href*="http"]')].reduce(
+ reducer,
+ {
+ main: [],
+ sub: [],
+ }
+ );
+ await interaction.editReply({
+ content: "検索が完了しました。",
+ embeds: [
+ {
+ title: `${keyword}の検索結果`,
+ description: `[**${result.main[0].title}**](${result.main[0].url})\n[**${result.main[1].title}**](${result.main[1].url})\n[**${result.main[2].title}**](${result.main[2].url})\n[**${result.main[3].title}**](${result.main[3].url})`,
+ color: 0x3498db,
+ },
+ ],
+ });
+ } catch {
+ await interaction.editReply({
+ content: `${interaction.options.getString(
+ "検索ワード"
+ )}に一致する情報は見つかりませんでした。`,
+ });
+ }
+ }
+}
diff --git a/package.json b/package.json
index d044424..8a9b721 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"@keyv/sqlite": "^3.6.4",
"@sapphire/framework": "^3.1.4",
"@types/node": "^18.11.17",
+ "cheerio": "^1.0.0-rc.12",
"discord-api-types": "0.33.5",
"discord.js": "13.x",
"discord.js-akinator": "3.4.5",
diff --git a/yarn.lock b/yarn.lock
index f26777f..304db90 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -347,6 +347,11 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+boolbase@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -392,6 +397,31 @@ cacheable-request@^6.0.0:
normalize-url "^4.1.0"
responselike "^1.0.2"
+cheerio-select@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
+ integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
+ dependencies:
+ boolbase "^1.0.0"
+ css-select "^5.1.0"
+ css-what "^6.1.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.3"
+ domutils "^3.0.1"
+
+cheerio@^1.0.0-rc.12:
+ version "1.0.0-rc.12"
+ resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683"
+ integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==
+ dependencies:
+ cheerio-select "^2.1.0"
+ dom-serializer "^2.0.0"
+ domhandler "^5.0.3"
+ domutils "^3.0.1"
+ htmlparser2 "^8.0.1"
+ parse5 "^7.0.0"
+ parse5-htmlparser2-tree-adapter "^7.0.0"
+
chownr@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
@@ -453,6 +483,22 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
+ nth-check "^2.0.1"
+
+css-what@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+
debug@4, debug@^4.1.0, debug@^4.3.3:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -531,6 +577,36 @@ discord.js@13.x, discord.js@^13.6.0:
node-fetch "^2.6.7"
ws "^8.9.0"
+dom-serializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
+ dependencies:
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ entities "^4.2.0"
+
+domelementtype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
+domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
+ dependencies:
+ domelementtype "^2.3.0"
+
+domutils@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c"
+ integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==
+ dependencies:
+ dom-serializer "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.1"
+
dot-prop@^5.2.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
@@ -567,6 +643,11 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
+entities@^4.2.0, entities@^4.3.0, entities@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
+ integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
+
env-paths@^2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
@@ -699,6 +780,16 @@ has-unicode@^2.0.1:
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
+htmlparser2@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010"
+ integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==
+ dependencies:
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
+ entities "^4.3.0"
+
http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
@@ -1038,6 +1129,13 @@ npmlog@^6.0.0:
gauge "^4.0.3"
set-blocking "^2.0.0"
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+ dependencies:
+ boolbase "^1.0.0"
+
object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -1062,6 +1160,21 @@ p-map@^4.0.0:
dependencies:
aggregate-error "^3.0.0"
+parse5-htmlparser2-tree-adapter@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1"
+ integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==
+ dependencies:
+ domhandler "^5.0.2"
+ parse5 "^7.0.0"
+
+parse5@^7.0.0:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
+ integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
+ dependencies:
+ entities "^4.4.0"
+
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
From 10bb446d6a124f38c648e8e4a8b6eaa202f1504b Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 14:04:32 +0900
Subject: [PATCH 22/37] =?UTF-8?q?=E2=9C=A8new?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...20\343\202\260\345\240\261\345\221\212.md" | 24 ++++++++++++++++++
...57\343\202\250\343\202\271\343\203\210.md" | 12 +++++++++
.github/dependabot.yml | 9 +++++++
.github/workflows/Prettier.yml | 25 +++++++++++++++++++
commands/bot/help.ts | 5 +++-
db/readme.md | 2 +-
package.json | 3 +++
tsconfig.json | 23 ++++++++---------
yarn.lock | 5 ++++
9 files changed, 93 insertions(+), 15 deletions(-)
create mode 100644 ".github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
create mode 100644 ".github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
create mode 100644 .github/dependabot.yml
create mode 100644 .github/workflows/Prettier.yml
diff --git "a/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md" "b/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
new file mode 100644
index 0000000..06eeacc
--- /dev/null
+++ "b/.github/ISSUE_TEMPLATE/\343\203\220\343\202\260\345\240\261\345\221\212.md"
@@ -0,0 +1,24 @@
+---
+name: バグ報告
+about: バグを報告するためのIssue
+title: "bug: ○○が動作しない"
+labels: bug
+assignees: ""
+---
+
+**バグについて説明する**
+バグの内容を明確かつ簡潔に説明すること
+
+**再現方法**
+動作を再現するための手順を書いて下さい。
+
+**期待される動作**
+期待したことが明確に、かつ簡潔に書かれていること。
+
+**スクリーンショット**
+問題を説明するためのスクリーンショットを貼り付けて下さい。
+
+**Discord の何版で発生しますか?**
+(例) Android 版
+
+**追加情報**
diff --git "a/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md" "b/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
new file mode 100644
index 0000000..5c70c34
--- /dev/null
+++ "b/.github/ISSUE_TEMPLATE/\346\251\237\350\203\275\343\203\252\343\202\257\343\202\250\343\202\271\343\203\210.md"
@@ -0,0 +1,12 @@
+---
+name: 機能リクエスト
+about: EightBotに機能を提案する
+title: "Feature Request: ○○を追加してほしい"
+labels: enhancement
+assignees: ""
+---
+
+**ご希望の内容**
+作ってほしいものを明確かつ簡潔に説明すること。
+
+**追加情報**
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..2499fb3
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,9 @@
+# Set a time for checks
+version: 2
+updates:
+ - package-ecosystem: "yarn"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ time: "09:00"
+ timezone: "Asia/Tokyo"
diff --git a/.github/workflows/Prettier.yml b/.github/workflows/Prettier.yml
new file mode 100644
index 0000000..dd0e085
--- /dev/null
+++ b/.github/workflows/Prettier.yml
@@ -0,0 +1,25 @@
+name: Prettier
+
+on:
+ push:
+ branches: ["main"]
+ pull_request:
+ branches: ["main"]
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+ - name: Install dependencies
+ run: |
+ yarn
+ - name: Run Prettier
+ run: |
+ npx prettier --write .
+ - uses: stefanzweifel/git-auto-commit-action@v4.16.0
+ with:
+ commit_message: Apply Prettier Change
diff --git a/commands/bot/help.ts b/commands/bot/help.ts
index 6a202aa..81997d5 100644
--- a/commands/bot/help.ts
+++ b/commands/bot/help.ts
@@ -24,7 +24,10 @@ export class help extends Command {
let num: number = 0;
for (const cmd of app) {
num = num + 1;
- embed.addFields({ name: cmd.name, value: cmd.description || "説明はありません。"});
+ embed.addFields({
+ name: cmd.name,
+ value: cmd.description || "説明はありません。",
+ });
}
await interaction.reply({ embeds: [embed] });
}
diff --git a/db/readme.md b/db/readme.md
index a811a6a..44d6fc7 100644
--- a/db/readme.md
+++ b/db/readme.md
@@ -1 +1 @@
-このフォルダはsqliteファイルを保存するフォルダです。
\ No newline at end of file
+このフォルダは sqlite ファイルを保存するフォルダです。
diff --git a/package.json b/package.json
index 8a9b721..1f4d3cb 100644
--- a/package.json
+++ b/package.json
@@ -22,5 +22,8 @@
"pify": "^6.1.0",
"ts-node": "^10.9.1",
"typescript": "^4.9.4"
+ },
+ "devDependencies": {
+ "prettier": "^2.8.1"
}
}
diff --git a/tsconfig.json b/tsconfig.json
index 9c79f84..55395d1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,14 +1,11 @@
{
- "compilerOptions": {
- "module": "NodeNext",
- "moduleResolution": "Node",
- "target": "ES2022",
- "jsx": "react",
- "strictNullChecks": true,
- "strictFunctionTypes": true
- },
- "exclude": [
- "node_modules",
- "**/node_modules/*"
- ]
-}
\ No newline at end of file
+ "compilerOptions": {
+ "module": "NodeNext",
+ "moduleResolution": "Node",
+ "target": "ES2022",
+ "jsx": "react",
+ "strictNullChecks": true,
+ "strictFunctionTypes": true
+ },
+ "exclude": ["node_modules", "**/node_modules/*"]
+}
diff --git a/yarn.lock b/yarn.lock
index 304db90..5c82e0b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1195,6 +1195,11 @@ prepend-http@^2.0.0:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
+prettier@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc"
+ integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==
+
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
From ec586c2665d88a557c5b301e8af501e419c3394d Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 14:07:46 +0900
Subject: [PATCH 23/37] =?UTF-8?q?=F0=9F=90=9Bfix?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/dependabot.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 2499fb3..ada2f09 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,7 +1,7 @@
# Set a time for checks
version: 2
updates:
- - package-ecosystem: "yarn"
+ - package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
From 236b9374f7e868b6f255d842a58900d9942a5064 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 14:13:39 +0900
Subject: [PATCH 24/37] =?UTF-8?q?=E2=9C=A8new:=20TextSpace?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/google.ts | 1 -
commands/individual/textspace.ts | 33 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
create mode 100644 commands/individual/textspace.ts
diff --git a/commands/individual/google.ts b/commands/individual/google.ts
index e821061..3407d07 100644
--- a/commands/individual/google.ts
+++ b/commands/individual/google.ts
@@ -1,5 +1,4 @@
import { Command, ChatInputCommand } from "@sapphire/framework";
-import { MessageButton, MessageActionRow } from "discord.js";
export class Google extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
diff --git a/commands/individual/textspace.ts b/commands/individual/textspace.ts
new file mode 100644
index 0000000..c9dd06e
--- /dev/null
+++ b/commands/individual/textspace.ts
@@ -0,0 +1,33 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+export class TextSpace extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("textspace")
+ .setDescription("テキストの間に空白を入れます。")
+ .addStringOption((input) =>
+ input
+ .setName("テキスト")
+ .setDescription("空白を入れるテキスト")
+ .setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ const op = interaction.options.getString("テキスト") || "";
+ let result = op.split("");
+ let newText = "";
+
+ for (let i = 0; i < result.length; i++) {
+ newText += result[i] + " ";
+ }
+ await interaction.reply(newText);
+ }
+}
From a1c2156461222b04a587e7042e58ab920a455ff0 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 14:28:51 +0900
Subject: [PATCH 25/37] =?UTF-8?q?=E2=9C=A8new:=20role=5Fall?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/server/role_all.ts | 101 ++++++++++++++++++++++++++++++++++++
1 file changed, 101 insertions(+)
create mode 100644 commands/server/role_all.ts
diff --git a/commands/server/role_all.ts b/commands/server/role_all.ts
new file mode 100644
index 0000000..a577e4b
--- /dev/null
+++ b/commands/server/role_all.ts
@@ -0,0 +1,101 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+export class TextSpace extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("role_all")
+ .setDescription("すべてのユーザーにロールをOOするサブコマンド。")
+ .addSubcommand((input) =>
+ input
+ .setName("add")
+ .setDescription("すべてのユーザーにロールを付与します。")
+ .addRoleOption((input) =>
+ input
+ .setName("ロール")
+ .setDescription("付与するロール")
+ .setRequired(true)
+ )
+ .addStringOption((input) =>
+ input
+ .setName("botにも付与するか")
+ .setDescription("botにも付与するか")
+ .addChoices(
+ { name: "はい", value: "true" },
+ { name: "いいえ", value: "false" }
+ )
+ .setRequired(true)
+ )
+ )
+ .addSubcommand((input) =>
+ input
+ .setName("remove")
+ .setDescription("すべてのユーザーにロールをはく奪します。")
+ .addRoleOption((input) =>
+ input
+ .setName("ロール")
+ .setDescription("はく奪するロール")
+ .setRequired(true)
+ )
+ .addStringOption((input) =>
+ input
+ .setName("botにもはく奪するか")
+ .setDescription("botにもはく奪するか")
+ .addChoices(
+ { name: "はい", value: "true" },
+ { name: "いいえ", value: "false" }
+ )
+ .setRequired(true)
+ )
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ if (!interaction.guild)
+ return await interaction.reply({
+ content: "ここはサーバーではありません。",
+ ephemeral: true,
+ });
+ if (interaction.options.getSubcommand() === "add") {
+ const role = interaction.options.getRole("ロール");
+ interaction.guild.members.fetch().then((members) =>
+ Promise.all(members.map((member) => member.roles.add(`${role?.id}`)))
+ .then(async () => {
+ return await interaction.reply({
+ content: "ロールの付与に成功しました。",
+ ephemeral: true,
+ });
+ })
+ .catch(async () => {
+ return await interaction.reply({
+ content: "ロールの付与に失敗しました。",
+ ephemeral: true,
+ });
+ })
+ );
+ } else if (interaction.options.getSubcommand() === "remove") {
+ const role = interaction.options.getRole("ロール");
+ interaction.guild.members.fetch().then((members) =>
+ Promise.all(members.map((member) => member.roles.remove(`${role?.id}`)))
+ .then(async () => {
+ return await interaction.reply({
+ content: "ロールの剥奪に成功しました。",
+ ephemeral: true,
+ });
+ })
+ .catch(async () => {
+ return await interaction.reply({
+ content: "ロールの剥奪に失敗しました。",
+ ephemeral: true,
+ });
+ })
+ );
+ }
+ }
+}
From 1004b3cf1b564dbe8fe0a17b643d48d1d6bdcae2 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:09:24 +0900
Subject: [PATCH 26/37] =?UTF-8?q?=E2=9C=A8new:=20role=5Fall?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/server/role_all.ts | 27 ++++++++++++++-------------
index.ts | 4 +++-
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/commands/server/role_all.ts b/commands/server/role_all.ts
index a577e4b..d3b67d3 100644
--- a/commands/server/role_all.ts
+++ b/commands/server/role_all.ts
@@ -1,4 +1,5 @@
import { Command, ChatInputCommand } from "@sapphire/framework";
+import { Role } from "discord.js";
export class TextSpace extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
@@ -62,37 +63,37 @@ export class TextSpace extends Command {
content: "ここはサーバーではありません。",
ephemeral: true,
});
+ await interaction.deferReply();
+
if (interaction.options.getSubcommand() === "add") {
const role = interaction.options.getRole("ロール");
- interaction.guild.members.fetch().then((members) =>
+ await interaction.guild.members.fetch().then((members) =>
Promise.all(members.map((member) => member.roles.add(`${role?.id}`)))
.then(async () => {
- return await interaction.reply({
+ await interaction.editReply({
content: "ロールの付与に成功しました。",
- ephemeral: true,
});
})
- .catch(async () => {
- return await interaction.reply({
+ .catch(async (e) => {
+ console.log(e);
+ return await interaction.editReply({
content: "ロールの付与に失敗しました。",
- ephemeral: true,
});
})
);
} else if (interaction.options.getSubcommand() === "remove") {
const role = interaction.options.getRole("ロール");
- interaction.guild.members.fetch().then((members) =>
+ await interaction.guild.members.fetch().then((members) =>
Promise.all(members.map((member) => member.roles.remove(`${role?.id}`)))
.then(async () => {
- return await interaction.reply({
+ return await interaction.editReply({
content: "ロールの剥奪に成功しました。",
- ephemeral: true,
});
})
- .catch(async () => {
- return await interaction.reply({
- content: "ロールの剥奪に失敗しました。",
- ephemeral: true,
+ .catch(async (e) => {
+ console.log(e);
+ return await interaction.editReply({
+ content: "ロールの付与に失敗しました。",
});
})
);
diff --git a/index.ts b/index.ts
index a161530..622715c 100644
--- a/index.ts
+++ b/index.ts
@@ -1,7 +1,9 @@
import { SapphireClient } from "@sapphire/framework";
import { Intents } from "discord.js";
import { config } from "dotenv";
-const client = new SapphireClient({ intents: Intents.FLAGS.GUILDS });
+const client = new SapphireClient({
+ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MEMBERS],
+});
// replitで動かす場合は6行目を消してください。
config();
if (process.env.test_mode === "y") {
From 5347e3a0f75e1118bc8e9c6928aae1809b981a68 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:14:43 +0900
Subject: [PATCH 27/37] =?UTF-8?q?=E2=9C=A8new:=20slot?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/slot.ts | 60 +++++++++++++++++++++++++++++++++++++
commands/server/role_all.ts | 2 +-
2 files changed, 61 insertions(+), 1 deletion(-)
create mode 100644 commands/individual/slot.ts
diff --git a/commands/individual/slot.ts b/commands/individual/slot.ts
new file mode 100644
index 0000000..dabba9e
--- /dev/null
+++ b/commands/individual/slot.ts
@@ -0,0 +1,60 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { setTimeout } from "node:timers/promises";
+export class Slot extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder.setName("slot").setDescription("slotをします。")
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ let arr = [
+ "🍏",
+ "🍎",
+ "🍐",
+ "🍊",
+ "🍋",
+ "🍉",
+ "🍇",
+ "🫐",
+ "🍅",
+ "🥝",
+ "🍍",
+ "🍒",
+ "🍈",
+ "🍓",
+ ];
+ var random = Math.floor(Math.random() * arr.length);
+ var result = arr[random];
+ var random2 = Math.floor(Math.random() * arr.length);
+ var result2 = arr[random2];
+ var random3 = Math.floor(Math.random() * arr.length);
+ var result3 = arr[random3];
+ await interaction.reply(result + result2 + result3);
+ let x = 0;
+ while (x < 10) {
+ x++;
+ await setTimeout(1000);
+ var random = Math.floor(Math.random() * arr.length);
+ var result = arr[random];
+ var random2 = Math.floor(Math.random() * arr.length);
+ var result2 = arr[random2];
+ var random3 = Math.floor(Math.random() * arr.length);
+ var result3 = arr[random3];
+ await interaction.editReply(result + result2 + result3);
+ if (x == 10) {
+ if (result === result2 && result2 === result3) {
+ await interaction.followUp("あなたは勝利しました。");
+ } else {
+ await interaction.followUp("あなたは負けました。");
+ }
+ }
+ }
+ }
+}
diff --git a/commands/server/role_all.ts b/commands/server/role_all.ts
index d3b67d3..c064536 100644
--- a/commands/server/role_all.ts
+++ b/commands/server/role_all.ts
@@ -1,6 +1,6 @@
import { Command, ChatInputCommand } from "@sapphire/framework";
import { Role } from "discord.js";
-export class TextSpace extends Command {
+export class RoleAll extends Command {
public constructor(context: Command.Context, options: Command.Options) {
super(context, { ...options });
}
From c52d85b76ddd6d2830bc5efda872b82e42aedc3a Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:18:58 +0900
Subject: [PATCH 28/37] =?UTF-8?q?=E2=9C=A8new:=20tanzaku?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/tanzaku.ts | 142 +++++++++++++++++++++++++++++++++
1 file changed, 142 insertions(+)
create mode 100644 commands/individual/tanzaku.ts
diff --git a/commands/individual/tanzaku.ts b/commands/individual/tanzaku.ts
new file mode 100644
index 0000000..c9b56a2
--- /dev/null
+++ b/commands/individual/tanzaku.ts
@@ -0,0 +1,142 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+export class Tanzaku extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("tanzaku")
+ .setDescription("テキストの間に空白を入れます。")
+ .addStringOption((input) =>
+ input.setName("テキスト").setDescription("テキスト").setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ function zenkaku2Hankaku(str: string) {
+ return str.replace(/[A-Za-z0-9]/g, function (s) {
+ return String.fromCharCode(s.charCodeAt(0) + 0xfee0);
+ });
+ }
+ function hankana2Zenkana(str: string) {
+ var kanaMap = {
+ ガ: "ガ",
+ ギ: "ギ",
+ グ: "グ",
+ ゲ: "ゲ",
+ ゴ: "ゴ",
+ ザ: "ザ",
+ ジ: "ジ",
+ ズ: "ズ",
+ ゼ: "ゼ",
+ ゾ: "ゾ",
+ ダ: "ダ",
+ ヂ: "ヂ",
+ ヅ: "ヅ",
+ デ: "デ",
+ ド: "ド",
+ バ: "バ",
+ ビ: "ビ",
+ ブ: "ブ",
+ ベ: "ベ",
+ ボ: "ボ",
+ パ: "パ",
+ ピ: "ピ",
+ プ: "プ",
+ ペ: "ペ",
+ ポ: "ポ",
+ ヴ: "ヴ",
+ ヷ: "ヷ",
+ ヺ: "ヺ",
+ ア: "ア",
+ イ: "イ",
+ ウ: "ウ",
+ エ: "エ",
+ オ: "オ",
+ カ: "カ",
+ キ: "キ",
+ ク: "ク",
+ ケ: "ケ",
+ コ: "コ",
+ サ: "サ",
+ シ: "シ",
+ ス: "ス",
+ セ: "セ",
+ ソ: "ソ",
+ タ: "タ",
+ チ: "チ",
+ ツ: "ツ",
+ テ: "テ",
+ ト: "ト",
+ ナ: "ナ",
+ ニ: "ニ",
+ ヌ: "ヌ",
+ ネ: "ネ",
+ ノ: "ノ",
+ ハ: "ハ",
+ ヒ: "ヒ",
+ フ: "フ",
+ ヘ: "ヘ",
+ ホ: "ホ",
+ マ: "マ",
+ ミ: "ミ",
+ ム: "ム",
+ メ: "メ",
+ モ: "モ",
+ ヤ: "ヤ",
+ ユ: "ユ",
+ ヨ: "ヨ",
+ ラ: "ラ",
+ リ: "リ",
+ ル: "ル",
+ レ: "レ",
+ ロ: "ロ",
+ ワ: "ワ",
+ ヲ: "ヲ",
+ ン: "ン",
+ ァ: "ァ",
+ ィ: "ィ",
+ ゥ: "ゥ",
+ ェ: "ェ",
+ ォ: "ォ",
+ ッ: "ッ",
+ ャ: "ャ",
+ ュ: "ュ",
+ ョ: "ョ",
+ "。": "。",
+ "、": "、",
+ ー: "ー",
+ "「": "「",
+ "」": "」",
+ "・": "・",
+ };
+ var reg = new RegExp("(" + Object.keys(kanaMap).join("|") + ")", "g");
+ return str
+ .replace(reg, function (match: string | number) {
+ return kanaMap[match];
+ })
+ .replace(/゙/g, "゛")
+ .replace(/゚/g, "゜");
+ }
+ const mae = "┏┷┓\n";
+ const usiro = "┗━☆彡";
+ const hidari = " ┃";
+ const migi = "┃\n";
+ const moji = hankana2Zenkana(
+ zenkaku2Hankaku(interaction.options.getString("テキスト") || "")
+ ).split("");
+ const ahaha = moji.map((arg: any) => `${hidari}${arg}${migi}`);
+ let text = `${mae}${ahaha}${usiro}`;
+ const count = (text.match(/,\s/g) || []).length;
+ text = text.replace(/\s┃/, "┃");
+ for (let i = 0; i <= count; i++) {
+ text = text.replace(/,\s/, "");
+ }
+ await interaction.reply(text);
+ }
+}
From 5806a7ac22d4c466d001f3c2341cc8b52a25b4cf Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:19:47 +0900
Subject: [PATCH 29/37] =?UTF-8?q?=F0=9F=90=9Bfix:=20description=E3=82=92?=
=?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=97=E3=81=A6=E3=81=84=E3=81=AA=E3=81=8B?=
=?UTF-8?q?=E3=81=A3=E3=81=9F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/tanzaku.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/commands/individual/tanzaku.ts b/commands/individual/tanzaku.ts
index c9b56a2..61c56e0 100644
--- a/commands/individual/tanzaku.ts
+++ b/commands/individual/tanzaku.ts
@@ -10,7 +10,7 @@ export class Tanzaku extends Command {
registry.registerChatInputCommand((builder) =>
builder
.setName("tanzaku")
- .setDescription("テキストの間に空白を入れます。")
+ .setDescription("短冊を生成します。")
.addStringOption((input) =>
input.setName("テキスト").setDescription("テキスト").setRequired(true)
)
From 9628738904eeda16d05a727b0ec76326d100b5dd Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:27:13 +0900
Subject: [PATCH 30/37] =?UTF-8?q?=E2=9C=A8new:=20=E7=AA=81=E7=84=B6?=
=?UTF-8?q?=E3=81=AE=E6=AD=BB=20=EF=BC=BF=E4=BA=BA=E4=BA=BA=E4=BA=BA?=
=?UTF-8?q?=E4=BA=BA=E4=BA=BA=E4=BA=BA=E4=BA=BA=E4=BA=BA=E4=BA=BA=EF=BC=BF?=
=?UTF-8?q?=20=EF=BC=9E=20=E7=AA=81=E7=84=B6=E3=81=AE=E6=AD=BB=E3=82=92?=
=?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=80=82=20=EF=BC=9C=20=EF=BF=A3=EF=BC=B9?=
=?UTF-8?q?=EF=BC=B9=EF=BC=B9=EF=BC=B9=EF=BC=B9=EF=BC=B9=EF=BC=B9=EF=BC=B9?=
=?UTF-8?q?=EF=BC=B9=EF=BF=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/totuzen.ts | 26 ++++++++++++++++++++++++++
package.json | 1 +
yarn.lock | 5 +++++
3 files changed, 32 insertions(+)
create mode 100644 commands/individual/totuzen.ts
diff --git a/commands/individual/totuzen.ts b/commands/individual/totuzen.ts
new file mode 100644
index 0000000..27b2d15
--- /dev/null
+++ b/commands/individual/totuzen.ts
@@ -0,0 +1,26 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import totsuzen from "totsuzen-text";
+export class Totsuzen extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("totuzen")
+ .setDescription("突然の死を生成します。")
+ .addStringOption((input) =>
+ input.setName("テキスト").setDescription("テキスト").setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ await interaction.reply(
+ totsuzen(interaction.options.getString("テキスト") || "")
+ );
+ }
+}
diff --git a/package.json b/package.json
index 1f4d3cb..ee8fb12 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
"dotenv": "^16.0.3",
"keyv": "^4.5.2",
"pify": "^6.1.0",
+ "totsuzen-text": "^1.0.0",
"ts-node": "^10.9.1",
"typescript": "^4.9.4"
},
diff --git a/yarn.lock b/yarn.lock
index 5c82e0b..06a4805 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1361,6 +1361,11 @@ to-readable-stream@^1.0.0:
resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
+totsuzen-text@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/totsuzen-text/-/totsuzen-text-1.0.0.tgz#921cd88e6d59efd9d5d832b0a3bd5d0f31d8d356"
+ integrity sha512-EtKpKJ+PdZLKyGa9Un2tdY2LzPkfgEp7CQ9JM/qOyaFM4/AGLz6gT2lbNWK80XvXkfttY5g9PpsXRH5u6UmxoA==
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
From 768618a252a573166d9b3ff5622b3c89949dd392 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:38:09 +0900
Subject: [PATCH 31/37] =?UTF-8?q?=E2=9C=A8new:=20url=5Fcheck?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/url_check.ts | 70 ++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
create mode 100644 commands/individual/url_check.ts
diff --git a/commands/individual/url_check.ts b/commands/individual/url_check.ts
new file mode 100644
index 0000000..a50d534
--- /dev/null
+++ b/commands/individual/url_check.ts
@@ -0,0 +1,70 @@
+import { Command, ChatInputCommand } from "@sapphire/framework";
+
+export class UrlCheck extends Command {
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("url_check")
+ .setDescription("URLが安全かチェックします。")
+ .addStringOption((input) =>
+ input
+ .setName("url")
+ .setDescription("チェックしたいurl")
+ .setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ try{
+ const url = interaction.options.getString("url") || "";
+ await fetch(`https://safeweb.norton.com/report/show?url=${encodeURI(url)}&ulang=jpn`).then(res => res.text()).then(async norton => { //NortonSafeWebにアクセス
+ if (norton.indexOf("安全性") != -1) {
+await interaction.reply({embeds: [{
+ title: "結果は安全です。",
+ description: `ノートン セーフウェブが ${url} を分析して安全性とセキュリティの問題を調べました。`,
+ footer: {
+ text: "Powered by Norton Safeweb"
+ },
+ color: 0xffd700
+ }]})
+ } else if (norton.indexOf("[注意]") != -1) {
+ await interaction.reply({embeds: [{
+ title: "結果は注意です。",
+ description: `[注意]の評価を受けた Web サイトは少数の脅威または迷惑を伴いますが、赤色の[警告]に相当するほど危険とは見なされません。サイトにアクセスする場合には注意が必要です。`,
+ footer: {
+ text: "Powered by Norton Safeweb"
+ },
+ color: 0xffd700
+ }]})
+ } else if (norton.indexOf("警告") != -1) {
+ await interaction.reply({embeds: [{
+ title: "結果は警告です。",
+ description: `これは既知の危険な Web ページです。このページを表示**しない**ことを推奨します。`,
+ footer: {
+ text: "Powered by Norton Safeweb"
+ },
+ color: 0xffd700
+ }]})
+ } else {
+ await interaction.reply({embeds: [{
+ title: "結果は未評価です。",
+ description: `このサイトはまだ評価されていません。`,
+ footer: {
+ text: "Powered by Norton Safeweb"
+ },
+ color: 0xffd700
+ }]})
+ }
+ });
+ } catch {
+ interaction.reply("解析中にエラーが発生しました。")
+ }
+ }
+}
From a7ef2f387c72d703669cd3c2f82e7cefd6aaad5c Mon Sep 17 00:00:00 2001
From: gx1285
Date: Fri, 30 Dec 2022 06:39:04 +0000
Subject: [PATCH 32/37] Apply Prettier Change
---
commands/individual/url_check.ts | 109 ++++++++++++++++++-------------
1 file changed, 65 insertions(+), 44 deletions(-)
diff --git a/commands/individual/url_check.ts b/commands/individual/url_check.ts
index a50d534..47be379 100644
--- a/commands/individual/url_check.ts
+++ b/commands/individual/url_check.ts
@@ -22,49 +22,70 @@ export class UrlCheck extends Command {
}
public async chatInputRun(interaction: Command.ChatInputInteraction) {
- try{
- const url = interaction.options.getString("url") || "";
- await fetch(`https://safeweb.norton.com/report/show?url=${encodeURI(url)}&ulang=jpn`).then(res => res.text()).then(async norton => { //NortonSafeWebにアクセス
- if (norton.indexOf("安全性") != -1) {
-await interaction.reply({embeds: [{
- title: "結果は安全です。",
- description: `ノートン セーフウェブが ${url} を分析して安全性とセキュリティの問題を調べました。`,
- footer: {
- text: "Powered by Norton Safeweb"
- },
- color: 0xffd700
- }]})
- } else if (norton.indexOf("[注意]") != -1) {
- await interaction.reply({embeds: [{
- title: "結果は注意です。",
- description: `[注意]の評価を受けた Web サイトは少数の脅威または迷惑を伴いますが、赤色の[警告]に相当するほど危険とは見なされません。サイトにアクセスする場合には注意が必要です。`,
- footer: {
- text: "Powered by Norton Safeweb"
- },
- color: 0xffd700
- }]})
- } else if (norton.indexOf("警告") != -1) {
- await interaction.reply({embeds: [{
- title: "結果は警告です。",
- description: `これは既知の危険な Web ページです。このページを表示**しない**ことを推奨します。`,
- footer: {
- text: "Powered by Norton Safeweb"
- },
- color: 0xffd700
- }]})
- } else {
- await interaction.reply({embeds: [{
- title: "結果は未評価です。",
- description: `このサイトはまだ評価されていません。`,
- footer: {
- text: "Powered by Norton Safeweb"
- },
- color: 0xffd700
- }]})
- }
- });
- } catch {
- interaction.reply("解析中にエラーが発生しました。")
- }
+ try {
+ const url = interaction.options.getString("url") || "";
+ await fetch(
+ `https://safeweb.norton.com/report/show?url=${encodeURI(url)}&ulang=jpn`
+ )
+ .then((res) => res.text())
+ .then(async (norton) => {
+ //NortonSafeWebにアクセス
+ if (norton.indexOf("安全性") != -1) {
+ await interaction.reply({
+ embeds: [
+ {
+ title: "結果は安全です。",
+ description: `ノートン セーフウェブが ${url} を分析して安全性とセキュリティの問題を調べました。`,
+ footer: {
+ text: "Powered by Norton Safeweb",
+ },
+ color: 0xffd700,
+ },
+ ],
+ });
+ } else if (norton.indexOf("[注意]") != -1) {
+ await interaction.reply({
+ embeds: [
+ {
+ title: "結果は注意です。",
+ description: `[注意]の評価を受けた Web サイトは少数の脅威または迷惑を伴いますが、赤色の[警告]に相当するほど危険とは見なされません。サイトにアクセスする場合には注意が必要です。`,
+ footer: {
+ text: "Powered by Norton Safeweb",
+ },
+ color: 0xffd700,
+ },
+ ],
+ });
+ } else if (norton.indexOf("警告") != -1) {
+ await interaction.reply({
+ embeds: [
+ {
+ title: "結果は警告です。",
+ description: `これは既知の危険な Web ページです。このページを表示**しない**ことを推奨します。`,
+ footer: {
+ text: "Powered by Norton Safeweb",
+ },
+ color: 0xffd700,
+ },
+ ],
+ });
+ } else {
+ await interaction.reply({
+ embeds: [
+ {
+ title: "結果は未評価です。",
+ description: `このサイトはまだ評価されていません。`,
+ footer: {
+ text: "Powered by Norton Safeweb",
+ },
+ color: 0xffd700,
+ },
+ ],
+ });
+ }
+ });
+ } catch {
+ interaction.reply("解析中にエラーが発生しました。");
+ }
}
}
From 724ea686d247b0ecf92056875609b87838a8a121 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:39:20 +0900
Subject: [PATCH 33/37] =?UTF-8?q?=F0=9F=94=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/Prettier.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/Prettier.yml b/.github/workflows/Prettier.yml
index dd0e085..60fcc35 100644
--- a/.github/workflows/Prettier.yml
+++ b/.github/workflows/Prettier.yml
@@ -7,7 +7,7 @@ on:
branches: ["main"]
jobs:
- lint:
+ prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
From 3e8daf3c85a4d6ed9e4712570ffd6ac9a86d90e2 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:43:18 +0900
Subject: [PATCH 34/37] =?UTF-8?q?=F0=9F=90=9Bfix:=20Unknown=20interaction?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/url_check.ts | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/commands/individual/url_check.ts b/commands/individual/url_check.ts
index 47be379..8436ef7 100644
--- a/commands/individual/url_check.ts
+++ b/commands/individual/url_check.ts
@@ -23,6 +23,7 @@ export class UrlCheck extends Command {
public async chatInputRun(interaction: Command.ChatInputInteraction) {
try {
+ await interaction.deferReply();
const url = interaction.options.getString("url") || "";
await fetch(
`https://safeweb.norton.com/report/show?url=${encodeURI(url)}&ulang=jpn`
@@ -31,7 +32,7 @@ export class UrlCheck extends Command {
.then(async (norton) => {
//NortonSafeWebにアクセス
if (norton.indexOf("安全性") != -1) {
- await interaction.reply({
+ await interaction.editReply({
embeds: [
{
title: "結果は安全です。",
@@ -44,7 +45,7 @@ export class UrlCheck extends Command {
],
});
} else if (norton.indexOf("[注意]") != -1) {
- await interaction.reply({
+ await interaction.editReply({
embeds: [
{
title: "結果は注意です。",
@@ -57,7 +58,7 @@ export class UrlCheck extends Command {
],
});
} else if (norton.indexOf("警告") != -1) {
- await interaction.reply({
+ await interaction.editReply({
embeds: [
{
title: "結果は警告です。",
@@ -70,7 +71,7 @@ export class UrlCheck extends Command {
],
});
} else {
- await interaction.reply({
+ await interaction.editReply({
embeds: [
{
title: "結果は未評価です。",
@@ -85,7 +86,7 @@ export class UrlCheck extends Command {
}
});
} catch {
- interaction.reply("解析中にエラーが発生しました。");
+ await interaction.editReply("解析中にエラーが発生しました。");
}
}
}
From 9f0a7f8f006c5d07159a795b9a0646d26b34c4ac Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 15:44:15 +0900
Subject: [PATCH 35/37] =?UTF-8?q?=F0=9F=94=84change:=20embed=E3=81=AEcolor?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/url_check.ts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/commands/individual/url_check.ts b/commands/individual/url_check.ts
index 8436ef7..de41535 100644
--- a/commands/individual/url_check.ts
+++ b/commands/individual/url_check.ts
@@ -40,7 +40,7 @@ export class UrlCheck extends Command {
footer: {
text: "Powered by Norton Safeweb",
},
- color: 0xffd700,
+ color: 0x00ff00,
},
],
});
@@ -53,7 +53,7 @@ export class UrlCheck extends Command {
footer: {
text: "Powered by Norton Safeweb",
},
- color: 0xffd700,
+ color: 0xf5dd42,
},
],
});
@@ -66,7 +66,7 @@ export class UrlCheck extends Command {
footer: {
text: "Powered by Norton Safeweb",
},
- color: 0xffd700,
+ color: 0xff0000,
},
],
});
@@ -79,7 +79,7 @@ export class UrlCheck extends Command {
footer: {
text: "Powered by Norton Safeweb",
},
- color: 0xffd700,
+ color: 0x546e7a,
},
],
});
From 93de2d3d0caa0362d758aff997211af20fbe195f Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 16:05:03 +0900
Subject: [PATCH 36/37] =?UTF-8?q?=E2=9C=A8new:=20url=5Fshort?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
commands/individual/url_short.ts | 69 ++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100644 commands/individual/url_short.ts
diff --git a/commands/individual/url_short.ts b/commands/individual/url_short.ts
new file mode 100644
index 0000000..2471ac5
--- /dev/null
+++ b/commands/individual/url_short.ts
@@ -0,0 +1,69 @@
+import https from "node:https";
+import { Command, ChatInputCommand } from "@sapphire/framework";
+import { MessageActionRow, MessageButton } from "discord.js";
+export class URLShort extends Command {
+ shorten: Function;
+ public constructor(context: Command.Context, options: Command.Options) {
+ super(context, { ...options });
+ this.shorten = function (
+ url: string | number | boolean,
+ cb: (arg0: string) => void
+ ) {
+ https.get(
+ "https://is.gd/create.php?format=simple&url=" + encodeURIComponent(url),
+ function (res) {
+ var body = "";
+ res.on("data", function (chunk) {
+ body += chunk;
+ });
+ res.on("end", function () {
+ cb(body);
+ });
+ }
+ );
+ };
+ }
+
+ public override registerApplicationCommands(
+ registry: ChatInputCommand.Registry
+ ) {
+ registry.registerChatInputCommand((builder) =>
+ builder
+ .setName("url_short")
+ .setDescription("URLを短縮します。")
+ .addStringOption((input) =>
+ input.setName("url").setDescription("短縮するurl").setRequired(true)
+ )
+ );
+ }
+
+ public async chatInputRun(interaction: Command.ChatInputInteraction) {
+ this.shorten(
+ interaction.options.getString("url") || "",
+ async function (res: string) {
+ if (
+ res ===
+ "Error: Sorry, the URL you entered is on our internal blacklist. It may have been used abusively in the past, or it may link to another URL redirection service."
+ ) {
+ await interaction.reply(
+ "is.gdのブラックリストに入っているURLを短縮しようとしています。"
+ );
+ } else if (res === "Error: Please enter a valid URL to shorten") {
+ await interaction.reply("無効なURLを短縮しようとしています。");
+ } else if (res.startsWith("https://is.gd/")) {
+ await interaction.reply({
+ content: `[短縮しました。](${res})`,
+ components: [
+ new MessageActionRow().addComponents(
+ new MessageButton()
+ .setStyle("LINK")
+ .setURL(res)
+ .setLabel("短縮したURLを開く。")
+ ),
+ ],
+ });
+ }
+ }
+ );
+ }
+}
From 95e5b6dfe1090559b2288beab7d4785bffe45a31 Mon Sep 17 00:00:00 2001
From: gx1285 <78240988+gx1285@users.noreply.github.com>
Date: Fri, 30 Dec 2022 16:06:15 +0900
Subject: [PATCH 37/37] =?UTF-8?q?=F0=9F=90=9Bfix:=20setLabel=E3=82=92setEm?=
=?UTF-8?q?oji=E3=81=AB=E3=81=97=E3=81=9F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
listeners/embed_res.ts | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/listeners/embed_res.ts b/listeners/embed_res.ts
index 7f3eda2..8e80893 100644
--- a/listeners/embed_res.ts
+++ b/listeners/embed_res.ts
@@ -30,50 +30,50 @@ export class EmbedResponse1 extends Listener {
)
.addComponents(
new MessageButton()
- .setLabel("🟠")
+ .setEmoji("🟠")
.setStyle("SECONDARY")
.setCustomId("color_2")
)
.addComponents(
new MessageButton()
- .setLabel("🟡")
+ .setEmoji("🟡")
.setStyle("SECONDARY")
.setCustomId("color_3")
)
.addComponents(
new MessageButton()
- .setLabel("🟢")
+ .setEmoji("🟢")
.setStyle("SECONDARY")
.setCustomId("color_4")
)
.addComponents(
new MessageButton()
- .setLabel("🔵")
+ .setEmoji("🔵")
.setStyle("SECONDARY")
.setCustomId("color_5")
);
const row2 = new MessageActionRow()
.addComponents(
new MessageButton()
- .setLabel("🟣")
+ .setEmoji("🟣")
.setStyle("SECONDARY")
.setCustomId("color_6")
)
.addComponents(
new MessageButton()
- .setLabel("🟤")
+ .setEmoji("🟤")
.setStyle("SECONDARY")
.setCustomId("color_7")
)
.addComponents(
new MessageButton()
- .setLabel("⚫")
+ .setEmoji("⚫")
.setStyle("SECONDARY")
.setCustomId("color_8")
)
.addComponents(
new MessageButton()
- .setLabel("⚪")
+ .setEmoji("⚪")
.setStyle("SECONDARY")
.setCustomId("color_9")
)