Migrate to interaction v5

This commit is contained in:
Zeva Rose 2023-02-01 08:23:41 -07:00
parent 7981d38882
commit d4724fd196
49 changed files with 431 additions and 359 deletions

View file

@ -13,4 +13,5 @@ extend-ignore =
# Plugins we don't currently include: flake8-return
R502, # do not implicitly return None in function able to return non-None value.
R503, # missing explicit return at the end of function ableto return non-None value.
R505, B023, # Temporary
max-line-length=100

View file

@ -4,9 +4,9 @@ from functools import partial
from typing import Any
import jurigged
from interactions import Intents
from jarvis_core.db import connect
from jarvis_core.log import get_logger
from naff import Intents
from redis import asyncio as aioredis
from jarvis import const

View file

@ -2,24 +2,25 @@
import logging
from typing import TYPE_CHECKING
from interactions import Client
from interactions.ext.prefixed_commands.context import PrefixedContext
from interactions.models.internal.context import BaseContext, InteractionContext
from jarvis_core.util.ansi import Fore, Format, fmt
from naff.models.naff.context import Context, InteractionContext, PrefixedContext
from nafftrack.client import StatsClient
from jarvis.client.errors import ErrorMixin
from jarvis.client.events import EventMixin
from jarvis.client.tasks import TaskMixin
if TYPE_CHECKING:
from aioredis import Redis
from redis import asyncio as aioredis
KEY_FMT = fmt(Fore.GRAY)
VAL_FMT = fmt(Fore.WHITE)
CMD_FMT = fmt(Fore.GREEN, Format.BOLD)
class Jarvis(StatsClient, ErrorMixin, EventMixin, TaskMixin):
def __init__(self, redis: "Redis", *args, **kwargs): # noqa: ANN002 ANN003
class Jarvis(Client, ErrorMixin, EventMixin, TaskMixin):
def __init__(self, redis: "aioredis.Redis", *args, **kwargs): # noqa: ANN002 ANN003
super().__init__(*args, **kwargs)
self.redis = redis
self.logger = logging.getLogger(__name__)
@ -27,10 +28,10 @@ class Jarvis(StatsClient, ErrorMixin, EventMixin, TaskMixin):
self.pre_run_callback = self._prerun
self.synced = False
async def _prerun(self, ctx: Context, *args, **kwargs) -> None:
async def _prerun(self, ctx: BaseContext, *args, **kwargs) -> None:
name = ctx.invoke_target
cargs = ""
if isinstance(ctx, InteractionContext) and ctx.target_id:
if isinstance(ctx, InteractionContext) and hasattr(ctx, "target_id"):
kwargs["context target"] = ctx.target
cargs = " ".join(f"{k}:{v}" for k, v in kwargs.items())
elif isinstance(ctx, PrefixedContext):

View file

@ -2,8 +2,13 @@
import traceback
from datetime import datetime, timezone
from naff.client.errors import CommandCheckFailure, CommandOnCooldown, HTTPException
from naff.models.naff.context import Context, InteractionContext, PrefixedContext
from interactions.client.errors import (
CommandCheckFailure,
CommandOnCooldown,
HTTPException,
)
from interactions.ext.prefixed_commands.context import PrefixedContext
from interactions.models.internal.context import BaseContext, InteractionContext
from pastypy import AsyncPaste as Paste
DEFAULT_GUILD = 862402786116763668
@ -35,9 +40,7 @@ class ErrorMixin:
else:
self.logger.error(f"Ignoring exception in {source}", exc_info=error)
async def on_command_error(
self, ctx: Context, error: Exception, *args: list, **kwargs: dict
) -> None:
async def on_command_error(self, ctx: BaseContext, error: Exception, *args: list, **kwargs: dict) -> None:
"""NAFF on_command_error override."""
name = ctx.invoke_target
self.logger.debug(f"Handling error in {name}: {error}")
@ -67,9 +70,7 @@ class ErrorMixin:
v = v[97] + "..."
arg_str += f" - {v}"
callback_args = "\n".join(f" - {i}" for i in args) if args else " None"
callback_kwargs = (
"\n".join(f" {k}: {v}" for k, v in kwargs.items()) if kwargs else " None"
)
callback_kwargs = "\n".join(f" {k}: {v}" for k, v in kwargs.items()) if kwargs else " None"
full_message = ERROR_MSG.format(
guild_name=ctx.guild.name,
error_time=error_time,

View file

@ -2,14 +2,15 @@
import asyncio
from aiohttp import ClientSession
from interactions import listen
from interactions.ext.prefixed_commands.context import PrefixedContext
from interactions.models.discord.channel import DMChannel
from interactions.models.discord.embed import EmbedField
from interactions.models.internal.application_commands import ContextMenu
from interactions.models.internal.context import BaseContext, InteractionContext
from jarvis_core.db import q
from jarvis_core.db.models import Reminder, Setting
from jarvis_core.util.ansi import RESET, Fore, Format, fmt
from naff import listen
from naff.models.discord.channel import DMChannel
from naff.models.discord.embed import EmbedField
from naff.models.naff.application_commands import ContextMenu
from naff.models.naff.context import Context, InteractionContext, PrefixedContext
from jarvis import const
from jarvis.client.events.components import ComponentEventMixin
@ -71,9 +72,7 @@ class EventMixin(MemberEventMixin, MessageEventMixin, ComponentEventMixin):
if not isinstance(self.interaction_tree[cid][_], ContextMenu)
)
global_context_menus = sum(
1
for _ in self.interaction_tree[cid]
if isinstance(self.interaction_tree[cid][_], ContextMenu)
1 for _ in self.interaction_tree[cid] if isinstance(self.interaction_tree[cid][_], ContextMenu)
)
else:
guild_base_commands += sum(
@ -82,9 +81,7 @@ class EventMixin(MemberEventMixin, MessageEventMixin, ComponentEventMixin):
if not isinstance(self.interaction_tree[cid][_], ContextMenu)
)
guild_context_menus += sum(
1
for _ in self.interaction_tree[cid]
if isinstance(self.interaction_tree[cid][_], ContextMenu)
1 for _ in self.interaction_tree[cid] if isinstance(self.interaction_tree[cid][_], ContextMenu)
)
self.logger.info("Loaded {:>3} global base slash commands".format(global_base_commands))
self.logger.info("Loaded {:>3} global context menus".format(global_context_menus))
@ -97,7 +94,7 @@ class EventMixin(MemberEventMixin, MessageEventMixin, ComponentEventMixin):
_ = await Reminder.find().to_list(None)
# Modlog
async def on_command(self, ctx: Context) -> None:
async def on_command(self, ctx: BaseContext) -> None:
"""NAFF on_command override."""
name = ctx.invoke_target
if not isinstance(ctx.channel, DMChannel) and name not in ["pw"]:
@ -135,13 +132,9 @@ class EventMixin(MemberEventMixin, MessageEventMixin, ComponentEventMixin):
color="#fc9e3f",
)
embed.set_author(name=ctx.author.username, icon_url=ctx.author.display_avatar.url)
embed.set_footer(
text=f"{ctx.author.user.username}#{ctx.author.discriminator} | {ctx.author.id}"
)
embed.set_footer(text=f"{ctx.author.user.username}#{ctx.author.discriminator} | {ctx.author.id}")
if channel:
await channel.send(embeds=embed)
else:
self.logger.warning(
f"Activitylog channel no longer exists in {ctx.guild.name}, removing"
)
self.logger.warning(f"Activitylog channel no longer exists in {ctx.guild.name}, removing")
await modlog.delete()

View file

@ -1,10 +1,10 @@
"""JARVIS component event mixin."""
from interactions import listen
from interactions.api.events.internal import ButtonPressed
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import Permissions
from jarvis_core.db import q
from jarvis_core.db.models import Action, Modlog, Note, Phishlist, Reminder, Star
from naff import listen
from naff.api.events.internal import ButtonPressed
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import Permissions
from jarvis.utils import build_embed

View file

@ -1,14 +1,14 @@
"""JARVIS member event mixin."""
import asyncio
from interactions import listen
from interactions.api.events.discord import MemberAdd, MemberRemove, MemberUpdate
from interactions.client.utils.misc_utils import get
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.discord.enums import AuditLogEventType
from interactions.models.discord.user import Member
from jarvis_core.db import q
from jarvis_core.db.models import Setting
from naff import listen
from naff.api.events.discord import MemberAdd, MemberRemove, MemberUpdate
from naff.client.utils.misc_utils import get
from naff.models.discord.embed import Embed, EmbedField
from naff.models.discord.enums import AuditLogEventType
from naff.models.discord.user import Member
from jarvis.utils import build_embed
@ -116,9 +116,7 @@ class MemberEventMixin:
name="Before",
value=f"{before.display_name} ({before.username}#{before.discriminator})",
),
EmbedField(
name="After", value=f"{after.display_name} ({after.username}#{after.discriminator})"
),
EmbedField(name="After", value=f"{after.display_name} ({after.username}#{after.discriminator})"),
)
embed = build_embed(
title="User Renamed",
@ -136,9 +134,7 @@ class MemberEventMixin:
before = event.before
after = event.after
if (before.display_name == after.display_name and before.roles == after.roles) or (
not after or not before
):
if (before.display_name == after.display_name and before.roles == after.roles) or (not after or not before):
return
log = await Setting.find_one(q(guild=before.guild.id, setting="activitylog"))

View file

@ -3,6 +3,15 @@ import re
from datetime import datetime, timedelta, timezone
from aiohttp import ClientSession
from interactions import listen
from interactions.api.events.discord import MessageCreate, MessageDelete, MessageUpdate
from interactions.client.utils.misc_utils import find_all
from interactions.models.discord.channel import DMChannel, GuildText
from interactions.models.discord.components import ActionRow, Button
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles, Permissions
from interactions.models.discord.message import Message
from interactions.models.discord.user import Member
from jarvis_core.db import q
from jarvis_core.db.models import (
Autopurge,
@ -15,15 +24,6 @@ from jarvis_core.db.models import (
Warning,
)
from jarvis_core.filters import invites, url
from naff import listen
from naff.api.events.discord import MessageCreate, MessageDelete, MessageUpdate
from naff.client.utils.misc_utils import find_all
from naff.models.discord.channel import DMChannel, GuildText
from naff.models.discord.components import ActionRow, Button
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles, Permissions
from naff.models.discord.message import Message
from naff.models.discord.user import Member
from jarvis.branding import get_command_color
from jarvis.embeds.admin import warning_embed

View file

@ -1,7 +1,7 @@
"""JARVIS task mixin."""
from aiohttp import ClientSession
from naff.models.naff.tasks.task import Task
from naff.models.naff.tasks.triggers import IntervalTrigger
from interactions.models.internal.tasks.task import Task
from interactions.models.internal.tasks.triggers import IntervalTrigger
class TaskMixin:

View file

@ -1,5 +1,5 @@
"""JARVIS Core Cogs."""
from naff import Client
from interactions import Client
from jarvis.cogs.core import admin, botutil, remindme, socials, util

View file

@ -1,7 +1,7 @@
"""JARVIS Admin Cogs."""
import logging
from naff import Client
from interactions import Client
from jarvis.cogs.core.admin import (
autoreact,

View file

@ -3,17 +3,17 @@ import logging
import re
from typing import Optional, Tuple
from jarvis_core.db import q
from jarvis_core.db.models import Autoreact
from naff import Client, Extension, InteractionContext, Permissions
from naff.client.utils.misc_utils import find
from naff.models.discord.channel import GuildText
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext, Permissions
from interactions.client.utils.misc_utils import find
from interactions.models.discord.channel import GuildText
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Autoreact
from jarvis.data.unicode import emoji_list
from jarvis.utils.permissions import admin_or_permissions

View file

@ -2,21 +2,21 @@
import re
from datetime import timedelta
from jarvis_core.db import q
from jarvis_core.db.models import Ban, Unban
from naff import InteractionContext, Permissions
from naff.client.utils.misc_utils import find, find_all
from naff.ext.paginators import Paginator
from naff.models.discord.embed import EmbedField
from naff.models.discord.user import User
from naff.models.naff.application_commands import (
from interactions import InteractionContext, Permissions
from interactions.client.utils.misc_utils import find, find_all
from interactions.ext.paginators import Paginator
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.user import User
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
SlashCommandChoice,
slash_command,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Ban, Unban
from jarvis.branding import get_command_color
from jarvis.embeds.admin import ban_embed, unban_embed

View file

@ -4,16 +4,22 @@ import difflib
import re
from typing import Dict, List
from jarvis_core.db import q
from jarvis_core.db.models import Filter
from naff import AutocompleteContext, Client, Extension, InteractionContext, Permissions
from naff.models.discord.modal import InputText, Modal, TextStyles
from naff.models.naff.application_commands import (
from interactions import (
AutocompleteContext,
Client,
Extension,
InteractionContext,
Permissions,
)
from interactions.models.discord.modal import InputText, Modal, TextStyles
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Filter
from thefuzz import process
from jarvis.utils.permissions import admin_or_permissions

View file

@ -1,13 +1,13 @@
"""JARVIS KickCog."""
from jarvis_core.db.models import Kick
from naff import InteractionContext, Permissions
from naff.models.discord.user import User
from naff.models.naff.application_commands import (
from interactions import InteractionContext, Permissions
from interactions.models.discord.user import User
from interactions.models.internal.application_commands import (
OptionTypes,
slash_command,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db.models import Kick
from jarvis.embeds.admin import kick_embed
from jarvis.utils.cogs import ModcaseCog

View file

@ -2,18 +2,18 @@
import logging
from typing import Union
from jarvis_core.db import q
from jarvis_core.db.models import Lock, Permission
from naff import Client, Extension, InteractionContext
from naff.client.utils.misc_utils import get
from naff.models.discord.channel import GuildText, GuildVoice
from naff.models.discord.enums import Permissions
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions.client.utils.misc_utils import get
from interactions.models.discord.channel import GuildText, GuildVoice
from interactions.models.discord.enums import Permissions
from interactions.models.internal.application_commands import (
OptionTypes,
slash_command,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Lock, Permission
from jarvis.utils.permissions import admin_or_permissions

View file

@ -1,20 +1,20 @@
"""JARVIS LockdownCog."""
import logging
from jarvis_core.db import q
from jarvis_core.db.models import Lock, Lockdown, Permission
from naff import Client, Extension, InteractionContext
from naff.client.utils.misc_utils import find_all, get
from naff.models.discord.channel import GuildCategory, GuildChannel
from naff.models.discord.enums import Permissions
from naff.models.discord.guild import Guild
from naff.models.discord.user import Member
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions.client.utils.misc_utils import find_all, get
from interactions.models.discord.channel import GuildCategory, GuildChannel
from interactions.models.discord.enums import Permissions
from interactions.models.discord.guild import Guild
from interactions.models.discord.user import Member
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Lock, Lockdown, Permission
from jarvis.utils.permissions import admin_or_permissions

View file

@ -1,18 +1,18 @@
"""JARVIS Moderation Case management."""
from typing import TYPE_CHECKING, List, Optional
from jarvis_core.db import q
from jarvis_core.db.models import Modlog, Note, actions
from naff import Extension, InteractionContext, Permissions
from naff.ext.paginators import Paginator
from naff.models.discord.embed import Embed, EmbedField
from naff.models.discord.user import Member
from naff.models.naff.application_commands import (
from interactions import Extension, InteractionContext, Permissions
from interactions.ext.paginators import Paginator
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.discord.user import Member
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Modlog, Note, actions
from rich.console import Console
from rich.table import Table
@ -20,7 +20,7 @@ from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions
if TYPE_CHECKING:
from naff.models.discord.guild import Guild
from interactions.models.discord.guild import Guild
ACTIONS_LOOKUP = {
"ban": actions.Ban,

View file

@ -4,12 +4,11 @@ from datetime import datetime, timedelta, timezone
from dateparser import parse
from dateparser_data.settings import default_parsers
from jarvis_core.db.models import Mute
from naff import InteractionContext, Permissions
from naff.client.errors import Forbidden
from naff.models.discord.modal import InputText, Modal, TextStyles
from naff.models.discord.user import Member
from naff.models.naff.application_commands import (
from interactions import InteractionContext, Permissions
from interactions.client.errors import Forbidden
from interactions.models.discord.modal import InputText, Modal, TextStyles
from interactions.models.discord.user import Member
from interactions.models.internal.application_commands import (
CommandTypes,
OptionTypes,
SlashCommandChoice,
@ -17,7 +16,8 @@ from naff.models.naff.application_commands import (
slash_command,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db.models import Mute
from jarvis.embeds.admin import mute_embed, unmute_embed
from jarvis.utils.cogs import ModcaseCog

View file

@ -1,16 +1,16 @@
"""JARVIS PurgeCog."""
import logging
from jarvis_core.db import q
from jarvis_core.db.models import Autopurge, Purge
from naff import Client, Extension, InteractionContext, Permissions
from naff.models.discord.channel import GuildText
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext, Permissions
from interactions.models.discord.channel import GuildText
from interactions.models.internal.application_commands import (
OptionTypes,
slash_command,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Autopurge, Purge
from jarvis.utils.permissions import admin_or_permissions

View file

@ -1,20 +1,20 @@
"""JARVIS RolepingCog."""
import logging
from jarvis_core.db import q
from jarvis_core.db.models import Roleping
from naff import Client, Extension, InteractionContext, Permissions
from naff.client.utils.misc_utils import find_all
from naff.ext.paginators import Paginator
from naff.models.discord.embed import EmbedField
from naff.models.discord.role import Role
from naff.models.discord.user import Member
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext, Permissions
from interactions.client.utils.misc_utils import find_all
from interactions.ext.paginators import Paginator
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.role import Role
from interactions.models.discord.user import Member
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Roleping
from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions

View file

@ -3,20 +3,20 @@ import asyncio
import logging
from typing import Any
from jarvis_core.db import q
from jarvis_core.db.models import Setting
from naff import AutocompleteContext, Client, Extension, InteractionContext
from naff.models.discord.channel import GuildText
from naff.models.discord.components import ActionRow, Button, ButtonStyles
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import Permissions
from naff.models.discord.role import Role
from naff.models.naff.application_commands import (
from interactions import AutocompleteContext, Client, Extension, InteractionContext
from interactions.models.discord.channel import GuildText
from interactions.models.discord.components import ActionRow, Button, ButtonStyles
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import Permissions
from interactions.models.discord.role import Role
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Setting
from thefuzz import process
from jarvis.utils import build_embed

View file

@ -4,19 +4,19 @@ from datetime import datetime, timezone
from dateparser import parse
from dateparser_data.settings import default_parsers
from jarvis_core.db.models import Temprole
from naff import Client, Extension, InteractionContext, Permissions
from naff.models.discord.components import Button
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.role import Role
from naff.models.discord.user import Member
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext, Permissions
from interactions.models.discord.components import Button
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.role import Role
from interactions.models.discord.user import Member
from interactions.models.internal.application_commands import (
OptionTypes,
slash_command,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db.models import Temprole
from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions

View file

@ -3,13 +3,13 @@ import asyncio
import logging
from random import randint
from interactions import Client, Extension, InteractionContext
from interactions.models.discord.components import Button, ButtonStyles, spread_to_rows
from interactions.models.internal.application_commands import slash_command
from interactions.models.internal.command import cooldown
from interactions.models.internal.cooldowns import Buckets
from jarvis_core.db import q
from jarvis_core.db.models import Setting
from naff import Client, Extension, InteractionContext
from naff.models.discord.components import Button, ButtonStyles, spread_to_rows
from naff.models.naff.application_commands import slash_command
from naff.models.naff.command import cooldown
from naff.models.naff.cooldowns import Buckets
def create_layout() -> list:

View file

@ -1,19 +1,19 @@
"""JARVIS WarningCog."""
from datetime import datetime, timedelta, timezone
from jarvis_core.db import q
from jarvis_core.db.models import Warning
from naff import InteractionContext, Permissions
from naff.client.utils.misc_utils import get_all
from naff.ext.paginators import Paginator
from naff.models.discord.embed import EmbedField
from naff.models.discord.user import Member
from naff.models.naff.application_commands import (
from interactions import InteractionContext, Permissions
from interactions.client.utils.misc_utils import get_all
from interactions.ext.paginators import Paginator
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.user import Member
from interactions.models.internal.application_commands import (
OptionTypes,
slash_command,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Warning
from jarvis.embeds.admin import warning_embed
from jarvis.utils import build_embed

View file

@ -6,11 +6,13 @@ from io import BytesIO
import psutil
from aiofile import AIOFile, LineReader
from naff import Client, Extension, PrefixedContext, prefixed_command
from naff.models.discord.components import Button
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.file import File
from interactions import Client, Extension
from interactions.ext.prefixed_commands.command import prefixed_command
from interactions.ext.prefixed_commands.context import PrefixedContext
from interactions.models.discord.components import Button
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.file import File
from rich.console import Console
from jarvis.utils import build_embed

View file

@ -7,19 +7,19 @@ from typing import List
from dateparser import parse
from dateparser_data.settings import default_parsers
from jarvis_core.db import q
from jarvis_core.db.models import Reminder
from naff import AutocompleteContext, Client, Extension, InteractionContext
from naff.models.discord.channel import GuildChannel
from naff.models.discord.components import ActionRow, Button
from naff.models.discord.embed import Embed, EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.modal import InputText, Modal, TextStyles
from naff.models.naff.application_commands import (
from interactions import AutocompleteContext, Client, Extension, InteractionContext
from interactions.models.discord.channel import GuildChannel
from interactions.models.discord.components import ActionRow, Button
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.modal import InputText, Modal, TextStyles
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from jarvis_core.db import q
from jarvis_core.db.models import Reminder
from thefuzz import process
from jarvis.utils import build_embed

View file

@ -1,6 +1,6 @@
"""JARVIS Social Cogs."""
from naff import Client
from interactions import Client
from jarvis.cogs.core.socials import reddit, twitter

View file

@ -8,6 +8,22 @@ from asyncpraw import Reddit
from asyncpraw.models.reddit.submission import Submission
from asyncpraw.models.reddit.submission import Subreddit as Sub
from asyncprawcore.exceptions import Forbidden, NotFound, Redirect
from interactions import Client, Extension, InteractionContext, Permissions
from interactions.client.utils.misc_utils import get
from interactions.models.discord.channel import ChannelTypes, GuildText
from interactions.models.discord.components import (
ActionRow,
StringSelectMenu,
StringSelectOption,
)
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
SlashCommandChoice,
slash_option,
)
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import (
Redditor,
@ -16,18 +32,6 @@ from jarvis_core.db.models import (
SubredditFollow,
UserSetting,
)
from naff import Client, Extension, InteractionContext, Permissions
from naff.client.utils.misc_utils import get
from naff.models.discord.channel import ChannelTypes, GuildText
from naff.models.discord.components import ActionRow, SelectOption, StringSelectMenu
from naff.models.discord.embed import Embed, EmbedField
from naff.models.naff.application_commands import (
OptionTypes,
SlashCommand,
SlashCommandChoice,
slash_option,
)
from naff.models.naff.command import check
from jarvis import const
from jarvis.config import JarvisConfig
@ -208,7 +212,7 @@ class RedditCog(Extension):
for idx, redditor in enumerate(redditors):
sub = await Redditor.find_one(q(name=redditor.name))
names.append(sub.name)
option = SelectOption(label=sub.name, value=str(idx))
option = StringSelectOption(label=sub.name, value=str(idx))
options.append(option)
select = StringSelectMenu(options=options, custom_id="to_delete", min_values=1, max_values=len(redditors))
@ -327,7 +331,7 @@ class RedditCog(Extension):
for idx, subreddit in enumerate(subreddits):
sub = await Subreddit.find_one(q(display_name=subreddit.display_name))
names.append(sub.display_name)
option = SelectOption(label=sub.display_name, value=str(idx))
option = StringSelectOption(label=sub.display_name, value=str(idx))
options.append(option)
select = StringSelectMenu(options=options, custom_id="to_delete", min_values=1, max_values=len(subreddits))

View file

@ -3,18 +3,22 @@ import asyncio
import logging
import tweepy
from jarvis_core.db import q
from jarvis_core.db.models import TwitterAccount, TwitterFollow
from naff import Client, Extension, InteractionContext, Permissions
from naff.client.utils.misc_utils import get
from naff.models.discord.channel import GuildText
from naff.models.discord.components import ActionRow, SelectOption, StringSelectMenu
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext, Permissions
from interactions.client.utils.misc_utils import get
from interactions.models.discord.channel import GuildText
from interactions.models.discord.components import (
ActionRow,
StringSelectMenu,
StringSelectOption,
)
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import TwitterAccount, TwitterFollow
from jarvis.config import JarvisConfig
from jarvis.utils.permissions import admin_or_permissions
@ -121,7 +125,7 @@ class TwitterCog(Extension):
for twitter in twitters:
account = await TwitterAccount.find_one(q(twitter_id=twitter.twitter_id))
handlemap[str(twitter.twitter_id)] = account.handle
option = SelectOption(label=account.handle, value=str(twitter.twitter_id))
option = StringSelectOption(label=account.handle, value=str(twitter.twitter_id))
options.append(option)
select = StringSelectMenu(options=options, custom_id="to_delete", min_values=1, max_values=len(twitters))
@ -185,7 +189,7 @@ class TwitterCog(Extension):
for twitter in twitters:
account = await TwitterAccount.find_one(q(twitter_id=twitter.id))
handlemap[str(twitter.twitter_id)] = account.handle
option = SelectOption(label=account.handle, value=str(twitter.twitter_id))
option = StringSelectOption(label=account.handle, value=str(twitter.twitter_id))
options.append(option)
select = StringSelectMenu(options=options, custom_id="to_update", min_values=1, max_values=len(twitters))

View file

@ -9,16 +9,17 @@ from io import BytesIO
import numpy as np
from dateparser import parse
from naff import Client, Extension, InteractionContext, const
from naff.models.discord.channel import GuildCategory, GuildText, GuildVoice
from naff.models.discord.components import Button
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.file import File
from naff.models.discord.guild import Guild
from naff.models.discord.role import Role
from naff.models.discord.user import User
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions import __version__ as ipyv
from interactions.models.discord.channel import GuildCategory, GuildText, GuildVoice
from interactions.models.discord.components import Button
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.file import File
from interactions.models.discord.guild import Guild
from interactions.models.discord.role import Role
from interactions.models.discord.user import User
from interactions.models.internal.application_commands import (
CommandTypes,
OptionTypes,
SlashCommand,
@ -27,8 +28,8 @@ from naff.models.naff.application_commands import (
slash_command,
slash_option,
)
from naff.models.naff.command import cooldown
from naff.models.naff.cooldowns import Buckets
from interactions.models.internal.command import cooldown
from interactions.models.internal.cooldowns import Buckets
from PIL import Image
from tzlocal import get_localzone
@ -88,7 +89,9 @@ class UtilCog(Extension):
inline=True,
)
)
fields.append(EmbedField(name="NAFF", value=f"[{const.__version__}](https://naff.info)", inline=True))
fields.append(
EmbedField(name="interactions", value=f"[{ipyv}](https://interactionspy.readthedocs.io)", inline=True)
)
repo_url = f"https://git.zevaryx.com/stark-industries/jarvis/jarvis-bot/-/tree/{get_repo_hash()}"
fields.append(EmbedField(name="Git Hash", value=f"[{get_repo_hash()[:7]}]({repo_url})", inline=True))
fields.append(EmbedField(name="Online Since", value=f"<t:{uptime}:F>", inline=False))

View file

@ -1,5 +1,5 @@
"""JARVIS extra, optional cogs"""
from naff import Client
from interactions import Client
from jarvis.cogs.extra import calc, dev, image, pinboard, rolegiver, tags

View file

@ -3,11 +3,11 @@ import json
from aiohttp import ClientSession
from calculator import calculate
from naff import AutocompleteContext, Client, Extension, InteractionContext
from naff.models.discord.components import Button
from naff.models.discord.embed import Embed, EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.naff.application_commands import (
from interactions import AutocompleteContext, Client, Extension, InteractionContext
from interactions.models.discord.components import Button
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
SlashCommandChoice,

View file

@ -12,23 +12,23 @@ import ulid as ulidpy
from aiofile import AIOFile
from ansitoimg.render import ansiToRender
from bson import ObjectId
from jarvis_core.filters import invites, url
from jarvis_core.util import convert_bytesize, hash
from jarvis_core.util.http import get_size
from naff import Client, Extension, InteractionContext
from naff.models.discord.components import Button
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.file import File
from naff.models.discord.message import Attachment
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions.models.discord.components import Button
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.file import File
from interactions.models.discord.message import Attachment
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
SlashCommandChoice,
slash_option,
)
from naff.models.naff.command import cooldown
from naff.models.naff.cooldowns import Buckets
from interactions.models.internal.command import cooldown
from interactions.models.internal.cooldowns import Buckets
from jarvis_core.filters import invites, url
from jarvis_core.util import convert_bytesize, hash
from jarvis_core.util.http import get_size
from rich.console import Console
from jarvis.utils import build_embed

View file

@ -6,18 +6,18 @@ from io import BytesIO
import aiohttp
import cv2
import numpy as np
from jarvis_core.util import convert_bytesize, unconvert_bytesize
from naff import Client, Extension, InteractionContext
from naff.models.discord.components import Button
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.file import File
from naff.models.discord.message import Attachment
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions.models.discord.components import Button
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.file import File
from interactions.models.discord.message import Attachment
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from jarvis_core.util import convert_bytesize, unconvert_bytesize
from jarvis.utils import build_embed

View file

@ -2,27 +2,27 @@
import asyncio
import logging
from jarvis_core.db import q
from jarvis_core.db.models import Star, Starboard
from naff import Client, Extension, InteractionContext, Permissions
from naff.client import errors
from naff.models.discord.channel import GuildText
from naff.models.discord.components import (
from interactions import Client, Extension, InteractionContext, Permissions
from interactions.client import errors
from interactions.models.discord.channel import GuildText
from interactions.models.discord.components import (
ActionRow,
Button,
SelectOption,
StringSelectMenu,
StringSelectOption,
)
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.message import Message
from naff.models.naff.application_commands import (
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.message import Message
from interactions.models.internal.application_commands import (
CommandTypes,
OptionTypes,
SlashCommand,
context_menu,
slash_option,
)
from naff.models.naff.command import check
from interactions.models.internal.command import check
from jarvis_core.db import q
from jarvis_core.db.models import Star, Starboard
from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions
@ -167,9 +167,9 @@ class PinboardCog(Extension):
select_channels = []
for idx, x in enumerate(channel_list):
if x:
select_channels.append(SelectOption(label=x.name, value=str(idx)))
select_channels.append(StringSelectOption(label=x.name, value=str(idx)))
select_channels = [SelectOption(label=x.name, value=str(idx)) for idx, x in enumerate(channel_list)]
select_channels = [StringSelectOption(label=x.name, value=str(idx)) for idx, x in enumerate(channel_list)]
select = StringSelectMenu(
options=select_channels,

View file

@ -3,9 +3,7 @@ import asyncio
import logging
from typing import Dict
from jarvis_core.db import q
from jarvis_core.db.models import Rolegiver
from naff import (
from interactions import (
AutocompleteContext,
Client,
Extension,
@ -13,23 +11,25 @@ from naff import (
Permissions,
listen,
)
from naff.client.utils.misc_utils import get
from naff.models.discord.components import (
from interactions.client.utils.misc_utils import get
from interactions.models.discord.components import (
ActionRow,
Button,
SelectOption,
StringSelectMenu,
StringSelectOption,
)
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles
from naff.models.discord.role import Role
from naff.models.naff.application_commands import (
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles
from interactions.models.discord.role import Role
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import check, cooldown
from naff.models.naff.cooldowns import Buckets
from interactions.models.internal.command import check, cooldown
from interactions.models.internal.cooldowns import Buckets
from jarvis_core.db import q
from jarvis_core.db.models import Rolegiver
from thefuzz import process
from jarvis.utils import build_embed
@ -226,7 +226,7 @@ class RolegiverCog(Extension):
options = []
for role in setting.roles:
role: Role = await ctx.guild.fetch_role(role)
option = SelectOption(label=role.name, value=str(role.id))
option = StringSelectOption(label=role.name, value=str(role.id))
options.append(option)
select = StringSelectMenu(
@ -305,7 +305,7 @@ class RolegiverCog(Extension):
valid = list(filter(lambda x: x.id in setting.roles, user_roles))
options = []
for role in valid:
option = SelectOption(label=role.name, value=str(role.id))
option = StringSelectOption(label=role.name, value=str(role.id))
options.append(option)
select = StringSelectMenu(

View file

@ -4,18 +4,18 @@ import re
from datetime import datetime, timezone
from typing import Dict, List
from jarvis_core.db import q
from jarvis_core.db.models import Setting, Tag
from naff import AutocompleteContext, Client, Extension, InteractionContext
from naff.models.discord.components import Button
from naff.models.discord.embed import EmbedField
from naff.models.discord.enums import ButtonStyles, Permissions
from naff.models.discord.modal import InputText, Modal, TextStyles
from naff.models.naff.application_commands import (
from interactions import AutocompleteContext, Client, Extension, InteractionContext
from interactions.models.discord.components import Button
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.enums import ButtonStyles, Permissions
from interactions.models.discord.modal import InputText, Modal, TextStyles
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from jarvis_core.db import q
from jarvis_core.db.models import Setting, Tag
from thefuzz import process
from jarvis.utils import build_embed

View file

@ -1,5 +1,5 @@
"""JARVIS guild-specific cogs"""
from naff import Client
from interactions import Client
from jarvis.cogs.unique import ctc2, dbrand, gl

View file

@ -3,20 +3,20 @@ import logging
import re
import aiohttp
from jarvis_core.db import q
from jarvis_core.db.models import Guess
from naff import Client, Extension, InteractionContext
from naff.ext.paginators import Paginator
from naff.models.discord.components import ActionRow, Button, ButtonStyles
from naff.models.discord.embed import EmbedField
from naff.models.discord.user import Member, User
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions.ext.paginators import Paginator
from interactions.models.discord.components import ActionRow, Button, ButtonStyles
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.user import Member, User
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import cooldown
from naff.models.naff.cooldowns import Buckets
from interactions.models.internal.command import cooldown
from interactions.models.internal.cooldowns import Buckets
from jarvis_core.db import q
from jarvis_core.db.models import Guess
from jarvis.utils import build_embed

View file

@ -5,16 +5,16 @@ from datetime import datetime, timedelta, timezone
import aiohttp
from bs4 import BeautifulSoup
from naff import Client, Extension, InteractionContext
from naff.client.utils import find
from naff.models.discord.embed import EmbedField
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions.client.utils import find
from interactions.models.discord.embed import EmbedField
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
slash_option,
)
from naff.models.naff.command import cooldown
from naff.models.naff.cooldowns import Buckets
from interactions.models.internal.command import cooldown
from interactions.models.internal.cooldowns import Buckets
from thefuzz import process
from jarvis.branding import CUSTOM_EMOJIS

View file

@ -4,12 +4,12 @@ import logging
from datetime import datetime
import gitlab
from naff import Client, Extension, InteractionContext
from naff.ext.paginators import Paginator
from naff.models.discord.embed import Embed, EmbedField
from naff.models.discord.modal import InputText, Modal, TextStyles
from naff.models.discord.user import Member
from naff.models.naff.application_commands import (
from interactions import Client, Extension, InteractionContext
from interactions.ext.paginators import Paginator
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.discord.modal import InputText, Modal, TextStyles
from interactions.models.discord.user import Member
from interactions.models.internal.application_commands import (
OptionTypes,
SlashCommand,
SlashCommandChoice,

View file

@ -1,9 +1,9 @@
"""JARVIS bot-specific embeds."""
from typing import Optional
from naff.models.discord.embed import Embed, EmbedField
from naff.models.discord.guild import Guild
from naff.models.discord.user import Member, User
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.discord.guild import Guild
from interactions.models.discord.user import Member, User
from jarvis.branding import get_command_color
from jarvis.utils import build_embed
@ -33,9 +33,7 @@ def ban_embed(
fields = [EmbedField(name="Reason", value=reason), EmbedField(name="Type", value=type)]
if duration:
fields.append(EmbedField(name="Duration", value=f"{duration} hours"))
fields.append(
EmbedField(name="Admin", value=f"{admin.username}#{admin.discriminator} ({admin.mention})")
)
fields.append(EmbedField(name="Admin", value=f"{admin.username}#{admin.discriminator} ({admin.mention})"))
if dm:
embed = build_embed(
title=f"You have been banned from {guild.name}",

View file

@ -3,9 +3,9 @@ from datetime import datetime, timezone
from pkgutil import iter_modules
import git
from naff.models.discord.embed import Embed, EmbedField
from naff.models.discord.guild import AuditLogEntry
from naff.models.discord.user import Member
from interactions.models.discord.embed import Embed, EmbedField
from interactions.models.discord.guild import AuditLogEntry
from interactions.models.discord.user import Member
from jarvis.branding import PRIMARY_COLOR
from jarvis.config import JarvisConfig

View file

@ -2,12 +2,12 @@
import logging
from datetime import timedelta
from interactions import Client, Extension, InteractionContext
from interactions.models.discord.components import ActionRow, Button, ButtonStyles
from interactions.models.discord.embed import EmbedField
from interactions.models.discord.user import Member
from jarvis_core.db import q
from jarvis_core.db.models import Action, Ban, Kick, Modlog, Mute, Setting, Warning
from naff import Client, Extension, InteractionContext
from naff.models.discord.components import ActionRow, Button, ButtonStyles
from naff.models.discord.embed import EmbedField
from naff.models.discord.user import Member
from jarvis.tracking import warnings_tracker
from jarvis.utils import build_embed
@ -60,9 +60,7 @@ class ModcaseCog(Extension):
self.logger.warning("Unsupported action %s, exiting", name)
return
action = await coll.find_one(
q(user=user.id, guild=ctx.guild_id, active=True), sort=[("_id", -1)]
)
action = await coll.find_one(q(user=user.id, guild=ctx.guild_id, active=True), sort=[("_id", -1)])
if not action:
self.logger.warning("Missing action %s, exiting", name)
return
@ -71,9 +69,7 @@ class ModcaseCog(Extension):
if notify and name not in ("Kick", "Ban"): # Ignore Kick and Ban, as these are unique
fields = (
EmbedField(name="Action Type", value=name, inline=False),
EmbedField(
name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False
),
EmbedField(name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False),
)
embed = build_embed(
title="Admin action taken",
@ -106,9 +102,7 @@ class ModcaseCog(Extension):
if channel:
fields = (
EmbedField(name="Action Type", value=name, inline=False),
EmbedField(
name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False
),
EmbedField(name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False),
EmbedField(name="Admin", value=ctx.author.mention, inline=False),
)
embed = build_embed(
@ -116,9 +110,7 @@ class ModcaseCog(Extension):
description=f"Admin action has been taken against {user.mention}",
fields=fields,
)
embed.set_author(
name=f"{user.username}#{user.discriminator}", icon_url=user.display_avatar.url
)
embed.set_author(name=f"{user.username}#{user.discriminator}", icon_url=user.display_avatar.url)
embed.set_footer(text=f"User ID: {user.id}")
if name == "Mute":
mts = int(user.communication_disabled_until.timestamp())
@ -134,9 +126,7 @@ class ModcaseCog(Extension):
channel = await ctx.guild.fetch_channel(modlog.value)
if not channel:
self.logger.warn(
f"Guild {ctx.guild.id} modlog channel no longer exists, deleting"
)
self.logger.warn(f"Guild {ctx.guild.id} modlog channel no longer exists, deleting")
await modlog.delete()
return
@ -157,7 +147,5 @@ class ModcaseCog(Extension):
]
message = await channel.send(embeds=embed, components=components)
await self.bot.redis.set(
lookup_key, f"{name.lower()}|{action.id}", ex=timedelta(days=7)
)
await self.bot.redis.set(lookup_key, f"{name.lower()}|{action.id}", ex=timedelta(days=7))
await self.bot.redis.set(f"msg|{message.id}", user.id, ex=timedelta(days=7))

View file

@ -1,5 +1,5 @@
"""Permissions wrappers."""
from naff import InteractionContext, Permissions
from interactions import InteractionContext, Permissions
from jarvis.config import JarvisConfig

View file

@ -9,16 +9,16 @@ from types import FunctionType, ModuleType
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional
import git
from naff.client.errors import ExtensionNotFound
from naff.client.utils.misc_utils import find, find_all
from naff.models.naff.application_commands import SlashCommand
from naff.models.naff.extension import Extension
from interactions.client.errors import ExtensionNotFound
from interactions.client.utils.misc_utils import find, find_all
from interactions.models.internal.application_commands import SlashCommand
from interactions.models.internal.extension import Extension
from rich.table import Table
import jarvis.cogs
if TYPE_CHECKING:
from naff.client.client import Client
from interactions.client.client import Client
_logger = logging.getLogger(__name__)
@ -75,9 +75,7 @@ def get_git_changes(repo: git.Repo) -> dict:
if commit.hexsha == current_hash:
break
files = commit.stats.files
file_changes.update(
{key: {"insertions": 0, "deletions": 0, "lines": 0} for key in files.keys()}
)
file_changes.update({key: {"insertions": 0, "deletions": 0, "lines": 0} for key in files.keys()})
for file, stats in files.items():
if file not in file_changes:
file_changes[file] = {"insertions": 0, "deletions": 0, "lines": 0}
@ -168,9 +166,7 @@ async def update(bot: "Client") -> Optional[UpdateResult]:
reloaded.append(module)
else:
for command in commands:
old_command = find(
lambda x: x.resolved_name == command.resolved_name, current_commands[module]
)
old_command = find(lambda x: x.resolved_name == command.resolved_name, current_commands[module])
# Extract useful info
old_args = old_command.options

91
poetry.lock generated
View file

@ -803,6 +803,34 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker
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 = "interactions"
version = "5.0.0"
description = "Easy, simple, scalable and modular: a Python API wrapper for interactions."
category = "main"
optional = false
python-versions = ">=3.10,<4.0"
files = []
develop = false
[package.dependencies]
aiohttp = "^3.8.3"
attrs = ">=22.1.0"
discord-typings = "^0.5.1"
emoji = "^2.1.0"
mypy = ">0.930"
tomli = "^2.0.1"
[package.extras]
jurigged = ["jurigged (>=0.5.3,<0.6.0)"]
orjson = ["orjson (>=3.6.8,<4.0.0)"]
[package.source]
type = "git"
url = "https://github.com/interactions-py/interactions.py"
reference = "5.x"
resolved_reference = "2a20657a939dfde33163042a1fe8cb3e960a4fa5"
[[package]]
name = "jarvis-core"
version = "0.16.1"
@ -1110,11 +1138,62 @@ files = [
{file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"},
]
[[package]]
name = "mypy"
version = "0.991"
description = "Optional static typing for Python"
category = "main"
optional = false
python-versions = ">=3.7"
files = [
{file = "mypy-0.991-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7d17e0a9707d0772f4a7b878f04b4fd11f6f5bcb9b3813975a9b13c9332153ab"},
{file = "mypy-0.991-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0714258640194d75677e86c786e80ccf294972cc76885d3ebbb560f11db0003d"},
{file = "mypy-0.991-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8f3be99e8a8bd403caa8c03be619544bc2c77a7093685dcf308c6b109426c6"},
{file = "mypy-0.991-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9ec663ed6c8f15f4ae9d3c04c989b744436c16d26580eaa760ae9dd5d662eb"},
{file = "mypy-0.991-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4307270436fd7694b41f913eb09210faff27ea4979ecbcd849e57d2da2f65305"},
{file = "mypy-0.991-cp310-cp310-win_amd64.whl", hash = "sha256:901c2c269c616e6cb0998b33d4adbb4a6af0ac4ce5cd078afd7bc95830e62c1c"},
{file = "mypy-0.991-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d13674f3fb73805ba0c45eb6c0c3053d218aa1f7abead6e446d474529aafc372"},
{file = "mypy-0.991-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c8cd4fb70e8584ca1ed5805cbc7c017a3d1a29fb450621089ffed3e99d1857f"},
{file = "mypy-0.991-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:209ee89fbb0deed518605edddd234af80506aec932ad28d73c08f1400ef80a33"},
{file = "mypy-0.991-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37bd02ebf9d10e05b00d71302d2c2e6ca333e6c2a8584a98c00e038db8121f05"},
{file = "mypy-0.991-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:26efb2fcc6b67e4d5a55561f39176821d2adf88f2745ddc72751b7890f3194ad"},
{file = "mypy-0.991-cp311-cp311-win_amd64.whl", hash = "sha256:3a700330b567114b673cf8ee7388e949f843b356a73b5ab22dd7cff4742a5297"},
{file = "mypy-0.991-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:1f7d1a520373e2272b10796c3ff721ea1a0712288cafaa95931e66aa15798813"},
{file = "mypy-0.991-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:641411733b127c3e0dab94c45af15fea99e4468f99ac88b39efb1ad677da5711"},
{file = "mypy-0.991-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3d80e36b7d7a9259b740be6d8d906221789b0d836201af4234093cae89ced0cd"},
{file = "mypy-0.991-cp37-cp37m-win_amd64.whl", hash = "sha256:e62ebaad93be3ad1a828a11e90f0e76f15449371ffeecca4a0a0b9adc99abcef"},
{file = "mypy-0.991-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b86ce2c1866a748c0f6faca5232059f881cda6dda2a893b9a8373353cfe3715a"},
{file = "mypy-0.991-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac6e503823143464538efda0e8e356d871557ef60ccd38f8824a4257acc18d93"},
{file = "mypy-0.991-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cca5adf694af539aeaa6ac633a7afe9bbd760df9d31be55ab780b77ab5ae8bf"},
{file = "mypy-0.991-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12c56bf73cdab116df96e4ff39610b92a348cc99a1307e1da3c3768bbb5b135"},
{file = "mypy-0.991-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:652b651d42f155033a1967739788c436491b577b6a44e4c39fb340d0ee7f0d70"},
{file = "mypy-0.991-cp38-cp38-win_amd64.whl", hash = "sha256:4175593dc25d9da12f7de8de873a33f9b2b8bdb4e827a7cae952e5b1a342e243"},
{file = "mypy-0.991-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98e781cd35c0acf33eb0295e8b9c55cdbef64fcb35f6d3aa2186f289bed6e80d"},
{file = "mypy-0.991-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6d7464bac72a85cb3491c7e92b5b62f3dcccb8af26826257760a552a5e244aa5"},
{file = "mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c9166b3f81a10cdf9b49f2d594b21b31adadb3d5e9db9b834866c3258b695be3"},
{file = "mypy-0.991-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8472f736a5bfb159a5e36740847808f6f5b659960115ff29c7cecec1741c648"},
{file = "mypy-0.991-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e80e758243b97b618cdf22004beb09e8a2de1af481382e4d84bc52152d1c476"},
{file = "mypy-0.991-cp39-cp39-win_amd64.whl", hash = "sha256:74e259b5c19f70d35fcc1ad3d56499065c601dfe94ff67ae48b85596b9ec1461"},
{file = "mypy-0.991-py3-none-any.whl", hash = "sha256:de32edc9b0a7e67c2775e574cb061a537660e51210fbf6006b0b36ea695ae9bb"},
{file = "mypy-0.991.tar.gz", hash = "sha256:3c0165ba8f354a6d9881809ef29f1a9318a236a6d81c690094c5df32107bde06"},
]
[package.dependencies]
mypy-extensions = ">=0.4.3"
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
typing-extensions = ">=3.10"
[package.extras]
dmypy = ["psutil (>=4.0)"]
install-types = ["pip"]
python2 = ["typed-ast (>=1.4.0,<2)"]
reports = ["lxml"]
[[package]]
name = "mypy-extensions"
version = "0.4.3"
description = "Experimental type system extensions for programs checked with the mypy typechecker."
category = "dev"
category = "main"
optional = false
python-versions = "*"
files = [
@ -1124,19 +1203,19 @@ files = [
[[package]]
name = "naff"
version = "2.0.0"
version = "2.1.0"
description = "Not another freaking fork"
category = "main"
optional = false
python-versions = ">=3.10"
files = [
{file = "naff-2.0.0-py3-none-any.whl", hash = "sha256:afd3906acbdaf6f87ea6e618f07e97f059f9adf8011afd1e3b73fb55d03d153a"},
{file = "naff-2.0.0.tar.gz", hash = "sha256:eb51697ddf91ba0047a3d35951ad5a4daceb97301698b0078781dee969eb3f99"},
{file = "naff-2.1.0-py3-none-any.whl", hash = "sha256:e433683b62f1a151867a44c752cb8725e8505f99086b07765f66696fa553adf2"},
{file = "naff-2.1.0.tar.gz", hash = "sha256:a58db2f56f6f5fc4fbefb354ce4d17a78080817ac8524ce6e74dedc54e1c850c"},
]
[package.dependencies]
aiohttp = "*"
attrs = "*"
attrs = ">=22.1.0"
discord-typings = ">=0.5.1"
emoji = "*"
tomli = "*"
@ -2690,4 +2769,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools"
[metadata]
lock-version = "2.0"
python-versions = ">=3.10,<4"
content-hash = "89f766c3bacf47f7b955a812a695020dbae9c4f301816e94c943151af2696a19"
content-hash = "4a6ff8ef1a1d34dece616ee55184914e45562fb90713c6d8ba78552799d1712e"

View file

@ -22,7 +22,6 @@ aiofile = "^3.8.1"
asyncpraw = "^7.5.0"
rich = "^12.3.0"
jurigged = "^0.5.3" # Contributed
naff = { version = "^2.0.0", extras = ["orjson"] } # Contributed
ansitoimg = "^2022.1"
nest-asyncio = "^1.5.5"
thefuzz = {extras = ["speedup"], git = "https://github.com/zevaryx/thefuzz.git", rev = "master"} # Forked
@ -30,6 +29,7 @@ beautifulsoup4 = "^4.11.1"
calculator = {git = "https://git.zevaryx.com/zevaryx/calculator.git"} # Mine
nafftrack = {git = "https://github.com/zevaryx/nafftrack.git"} # Contributed
redis = "^4.4.0"
interactions = {git = "https://github.com/interactions-py/interactions.py", rev = "5.x"}
[tool.poetry.dev-dependencies]
black = {version = "^22.3.0", allow-prereleases = true}