Migrate to interaction v5
This commit is contained in:
parent
7981d38882
commit
d4724fd196
49 changed files with 431 additions and 359 deletions
1
.flake8
1
.flake8
|
@ -13,4 +13,5 @@ extend-ignore =
|
||||||
# Plugins we don't currently include: flake8-return
|
# Plugins we don't currently include: flake8-return
|
||||||
R502, # do not implicitly return None in function able to return non-None value.
|
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.
|
R503, # missing explicit return at the end of function ableto return non-None value.
|
||||||
|
R505, B023, # Temporary
|
||||||
max-line-length=100
|
max-line-length=100
|
||||||
|
|
|
@ -4,9 +4,9 @@ from functools import partial
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
import jurigged
|
import jurigged
|
||||||
|
from interactions import Intents
|
||||||
from jarvis_core.db import connect
|
from jarvis_core.db import connect
|
||||||
from jarvis_core.log import get_logger
|
from jarvis_core.log import get_logger
|
||||||
from naff import Intents
|
|
||||||
from redis import asyncio as aioredis
|
from redis import asyncio as aioredis
|
||||||
|
|
||||||
from jarvis import const
|
from jarvis import const
|
||||||
|
|
|
@ -2,24 +2,25 @@
|
||||||
import logging
|
import logging
|
||||||
from typing import TYPE_CHECKING
|
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 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.errors import ErrorMixin
|
||||||
from jarvis.client.events import EventMixin
|
from jarvis.client.events import EventMixin
|
||||||
from jarvis.client.tasks import TaskMixin
|
from jarvis.client.tasks import TaskMixin
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from aioredis import Redis
|
from redis import asyncio as aioredis
|
||||||
|
|
||||||
KEY_FMT = fmt(Fore.GRAY)
|
KEY_FMT = fmt(Fore.GRAY)
|
||||||
VAL_FMT = fmt(Fore.WHITE)
|
VAL_FMT = fmt(Fore.WHITE)
|
||||||
CMD_FMT = fmt(Fore.GREEN, Format.BOLD)
|
CMD_FMT = fmt(Fore.GREEN, Format.BOLD)
|
||||||
|
|
||||||
|
|
||||||
class Jarvis(StatsClient, ErrorMixin, EventMixin, TaskMixin):
|
class Jarvis(Client, ErrorMixin, EventMixin, TaskMixin):
|
||||||
def __init__(self, redis: "Redis", *args, **kwargs): # noqa: ANN002 ANN003
|
def __init__(self, redis: "aioredis.Redis", *args, **kwargs): # noqa: ANN002 ANN003
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.redis = redis
|
self.redis = redis
|
||||||
self.logger = logging.getLogger(__name__)
|
self.logger = logging.getLogger(__name__)
|
||||||
|
@ -27,10 +28,10 @@ class Jarvis(StatsClient, ErrorMixin, EventMixin, TaskMixin):
|
||||||
self.pre_run_callback = self._prerun
|
self.pre_run_callback = self._prerun
|
||||||
self.synced = False
|
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
|
name = ctx.invoke_target
|
||||||
cargs = ""
|
cargs = ""
|
||||||
if isinstance(ctx, InteractionContext) and ctx.target_id:
|
if isinstance(ctx, InteractionContext) and hasattr(ctx, "target_id"):
|
||||||
kwargs["context target"] = ctx.target
|
kwargs["context target"] = ctx.target
|
||||||
cargs = " ".join(f"{k}:{v}" for k, v in kwargs.items())
|
cargs = " ".join(f"{k}:{v}" for k, v in kwargs.items())
|
||||||
elif isinstance(ctx, PrefixedContext):
|
elif isinstance(ctx, PrefixedContext):
|
||||||
|
|
|
@ -2,8 +2,13 @@
|
||||||
import traceback
|
import traceback
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from naff.client.errors import CommandCheckFailure, CommandOnCooldown, HTTPException
|
from interactions.client.errors import (
|
||||||
from naff.models.naff.context import Context, InteractionContext, PrefixedContext
|
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
|
from pastypy import AsyncPaste as Paste
|
||||||
|
|
||||||
DEFAULT_GUILD = 862402786116763668
|
DEFAULT_GUILD = 862402786116763668
|
||||||
|
@ -35,9 +40,7 @@ class ErrorMixin:
|
||||||
else:
|
else:
|
||||||
self.logger.error(f"Ignoring exception in {source}", exc_info=error)
|
self.logger.error(f"Ignoring exception in {source}", exc_info=error)
|
||||||
|
|
||||||
async def on_command_error(
|
async def on_command_error(self, ctx: BaseContext, error: Exception, *args: list, **kwargs: dict) -> None:
|
||||||
self, ctx: Context, error: Exception, *args: list, **kwargs: dict
|
|
||||||
) -> None:
|
|
||||||
"""NAFF on_command_error override."""
|
"""NAFF on_command_error override."""
|
||||||
name = ctx.invoke_target
|
name = ctx.invoke_target
|
||||||
self.logger.debug(f"Handling error in {name}: {error}")
|
self.logger.debug(f"Handling error in {name}: {error}")
|
||||||
|
@ -67,9 +70,7 @@ class ErrorMixin:
|
||||||
v = v[97] + "..."
|
v = v[97] + "..."
|
||||||
arg_str += f" - {v}"
|
arg_str += f" - {v}"
|
||||||
callback_args = "\n".join(f" - {i}" for i in args) if args else " None"
|
callback_args = "\n".join(f" - {i}" for i in args) if args else " None"
|
||||||
callback_kwargs = (
|
callback_kwargs = "\n".join(f" {k}: {v}" for k, v in kwargs.items()) if kwargs else " None"
|
||||||
"\n".join(f" {k}: {v}" for k, v in kwargs.items()) if kwargs else " None"
|
|
||||||
)
|
|
||||||
full_message = ERROR_MSG.format(
|
full_message = ERROR_MSG.format(
|
||||||
guild_name=ctx.guild.name,
|
guild_name=ctx.guild.name,
|
||||||
error_time=error_time,
|
error_time=error_time,
|
||||||
|
|
|
@ -2,14 +2,15 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
from aiohttp import ClientSession
|
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 import q
|
||||||
from jarvis_core.db.models import Reminder, Setting
|
from jarvis_core.db.models import Reminder, Setting
|
||||||
from jarvis_core.util.ansi import RESET, Fore, Format, fmt
|
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 import const
|
||||||
from jarvis.client.events.components import ComponentEventMixin
|
from jarvis.client.events.components import ComponentEventMixin
|
||||||
|
@ -71,9 +72,7 @@ class EventMixin(MemberEventMixin, MessageEventMixin, ComponentEventMixin):
|
||||||
if not isinstance(self.interaction_tree[cid][_], ContextMenu)
|
if not isinstance(self.interaction_tree[cid][_], ContextMenu)
|
||||||
)
|
)
|
||||||
global_context_menus = sum(
|
global_context_menus = sum(
|
||||||
1
|
1 for _ in self.interaction_tree[cid] if isinstance(self.interaction_tree[cid][_], ContextMenu)
|
||||||
for _ in self.interaction_tree[cid]
|
|
||||||
if isinstance(self.interaction_tree[cid][_], ContextMenu)
|
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
guild_base_commands += sum(
|
guild_base_commands += sum(
|
||||||
|
@ -82,9 +81,7 @@ class EventMixin(MemberEventMixin, MessageEventMixin, ComponentEventMixin):
|
||||||
if not isinstance(self.interaction_tree[cid][_], ContextMenu)
|
if not isinstance(self.interaction_tree[cid][_], ContextMenu)
|
||||||
)
|
)
|
||||||
guild_context_menus += sum(
|
guild_context_menus += sum(
|
||||||
1
|
1 for _ in self.interaction_tree[cid] if isinstance(self.interaction_tree[cid][_], ContextMenu)
|
||||||
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 base slash commands".format(global_base_commands))
|
||||||
self.logger.info("Loaded {:>3} global context menus".format(global_context_menus))
|
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)
|
_ = await Reminder.find().to_list(None)
|
||||||
|
|
||||||
# Modlog
|
# Modlog
|
||||||
async def on_command(self, ctx: Context) -> None:
|
async def on_command(self, ctx: BaseContext) -> None:
|
||||||
"""NAFF on_command override."""
|
"""NAFF on_command override."""
|
||||||
name = ctx.invoke_target
|
name = ctx.invoke_target
|
||||||
if not isinstance(ctx.channel, DMChannel) and name not in ["pw"]:
|
if not isinstance(ctx.channel, DMChannel) and name not in ["pw"]:
|
||||||
|
@ -135,13 +132,9 @@ class EventMixin(MemberEventMixin, MessageEventMixin, ComponentEventMixin):
|
||||||
color="#fc9e3f",
|
color="#fc9e3f",
|
||||||
)
|
)
|
||||||
embed.set_author(name=ctx.author.username, icon_url=ctx.author.display_avatar.url)
|
embed.set_author(name=ctx.author.username, icon_url=ctx.author.display_avatar.url)
|
||||||
embed.set_footer(
|
embed.set_footer(text=f"{ctx.author.user.username}#{ctx.author.discriminator} | {ctx.author.id}")
|
||||||
text=f"{ctx.author.user.username}#{ctx.author.discriminator} | {ctx.author.id}"
|
|
||||||
)
|
|
||||||
if channel:
|
if channel:
|
||||||
await channel.send(embeds=embed)
|
await channel.send(embeds=embed)
|
||||||
else:
|
else:
|
||||||
self.logger.warning(
|
self.logger.warning(f"Activitylog channel no longer exists in {ctx.guild.name}, removing")
|
||||||
f"Activitylog channel no longer exists in {ctx.guild.name}, removing"
|
|
||||||
)
|
|
||||||
await modlog.delete()
|
await modlog.delete()
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
"""JARVIS component event mixin."""
|
"""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 import q
|
||||||
from jarvis_core.db.models import Action, Modlog, Note, Phishlist, Reminder, Star
|
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
|
from jarvis.utils import build_embed
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
"""JARVIS member event mixin."""
|
"""JARVIS member event mixin."""
|
||||||
import asyncio
|
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 import q
|
||||||
from jarvis_core.db.models import Setting
|
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
|
from jarvis.utils import build_embed
|
||||||
|
|
||||||
|
@ -116,9 +116,7 @@ class MemberEventMixin:
|
||||||
name="Before",
|
name="Before",
|
||||||
value=f"{before.display_name} ({before.username}#{before.discriminator})",
|
value=f"{before.display_name} ({before.username}#{before.discriminator})",
|
||||||
),
|
),
|
||||||
EmbedField(
|
EmbedField(name="After", value=f"{after.display_name} ({after.username}#{after.discriminator})"),
|
||||||
name="After", value=f"{after.display_name} ({after.username}#{after.discriminator})"
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
embed = build_embed(
|
embed = build_embed(
|
||||||
title="User Renamed",
|
title="User Renamed",
|
||||||
|
@ -136,9 +134,7 @@ class MemberEventMixin:
|
||||||
before = event.before
|
before = event.before
|
||||||
after = event.after
|
after = event.after
|
||||||
|
|
||||||
if (before.display_name == after.display_name and before.roles == after.roles) or (
|
if (before.display_name == after.display_name and before.roles == after.roles) or (not after or not before):
|
||||||
not after or not before
|
|
||||||
):
|
|
||||||
return
|
return
|
||||||
|
|
||||||
log = await Setting.find_one(q(guild=before.guild.id, setting="activitylog"))
|
log = await Setting.find_one(q(guild=before.guild.id, setting="activitylog"))
|
||||||
|
|
|
@ -3,6 +3,15 @@ import re
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
from aiohttp import ClientSession
|
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 import q
|
||||||
from jarvis_core.db.models import (
|
from jarvis_core.db.models import (
|
||||||
Autopurge,
|
Autopurge,
|
||||||
|
@ -15,15 +24,6 @@ from jarvis_core.db.models import (
|
||||||
Warning,
|
Warning,
|
||||||
)
|
)
|
||||||
from jarvis_core.filters import invites, url
|
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.branding import get_command_color
|
||||||
from jarvis.embeds.admin import warning_embed
|
from jarvis.embeds.admin import warning_embed
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""JARVIS task mixin."""
|
"""JARVIS task mixin."""
|
||||||
from aiohttp import ClientSession
|
from aiohttp import ClientSession
|
||||||
from naff.models.naff.tasks.task import Task
|
from interactions.models.internal.tasks.task import Task
|
||||||
from naff.models.naff.tasks.triggers import IntervalTrigger
|
from interactions.models.internal.tasks.triggers import IntervalTrigger
|
||||||
|
|
||||||
|
|
||||||
class TaskMixin:
|
class TaskMixin:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""JARVIS Core Cogs."""
|
"""JARVIS Core Cogs."""
|
||||||
from naff import Client
|
from interactions import Client
|
||||||
|
|
||||||
from jarvis.cogs.core import admin, botutil, remindme, socials, util
|
from jarvis.cogs.core import admin, botutil, remindme, socials, util
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
"""JARVIS Admin Cogs."""
|
"""JARVIS Admin Cogs."""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from naff import Client
|
from interactions import Client
|
||||||
|
|
||||||
from jarvis.cogs.core.admin import (
|
from jarvis.cogs.core.admin import (
|
||||||
autoreact,
|
autoreact,
|
||||||
|
|
|
@ -3,17 +3,17 @@ import logging
|
||||||
import re
|
import re
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import Autoreact
|
from interactions.client.utils.misc_utils import find
|
||||||
from naff import Client, Extension, InteractionContext, Permissions
|
from interactions.models.discord.channel import GuildText
|
||||||
from naff.client.utils.misc_utils import find
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.channel import GuildText
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
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.data.unicode import emoji_list
|
||||||
from jarvis.utils.permissions import admin_or_permissions
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
|
@ -2,21 +2,21 @@
|
||||||
import re
|
import re
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import Ban, Unban
|
from interactions.client.utils.misc_utils import find, find_all
|
||||||
from naff import InteractionContext, Permissions
|
from interactions.ext.paginators import Paginator
|
||||||
from naff.client.utils.misc_utils import find, find_all
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.ext.paginators import Paginator
|
from interactions.models.discord.user import User
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.user import User
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
SlashCommandChoice,
|
SlashCommandChoice,
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
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.branding import get_command_color
|
||||||
from jarvis.embeds.admin import ban_embed, unban_embed
|
from jarvis.embeds.admin import ban_embed, unban_embed
|
||||||
|
|
|
@ -4,16 +4,22 @@ import difflib
|
||||||
import re
|
import re
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import (
|
||||||
from jarvis_core.db.models import Filter
|
AutocompleteContext,
|
||||||
from naff import AutocompleteContext, Client, Extension, InteractionContext, Permissions
|
Client,
|
||||||
from naff.models.discord.modal import InputText, Modal, TextStyles
|
Extension,
|
||||||
from naff.models.naff.application_commands import (
|
InteractionContext,
|
||||||
|
Permissions,
|
||||||
|
)
|
||||||
|
from interactions.models.discord.modal import InputText, Modal, TextStyles
|
||||||
|
from interactions.models.internal.application_commands import (
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
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 thefuzz import process
|
||||||
|
|
||||||
from jarvis.utils.permissions import admin_or_permissions
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
"""JARVIS KickCog."""
|
"""JARVIS KickCog."""
|
||||||
from jarvis_core.db.models import Kick
|
from interactions import InteractionContext, Permissions
|
||||||
from naff import InteractionContext, Permissions
|
from interactions.models.discord.user import User
|
||||||
from naff.models.discord.user import User
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
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.embeds.admin import kick_embed
|
||||||
from jarvis.utils.cogs import ModcaseCog
|
from jarvis.utils.cogs import ModcaseCog
|
||||||
|
|
|
@ -2,18 +2,18 @@
|
||||||
import logging
|
import logging
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext
|
||||||
from jarvis_core.db.models import Lock, Permission
|
from interactions.client.utils.misc_utils import get
|
||||||
from naff import Client, Extension, InteractionContext
|
from interactions.models.discord.channel import GuildText, GuildVoice
|
||||||
from naff.client.utils.misc_utils import get
|
from interactions.models.discord.enums import Permissions
|
||||||
from naff.models.discord.channel import GuildText, GuildVoice
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.enums import Permissions
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
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
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
"""JARVIS LockdownCog."""
|
"""JARVIS LockdownCog."""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext
|
||||||
from jarvis_core.db.models import Lock, Lockdown, Permission
|
from interactions.client.utils.misc_utils import find_all, get
|
||||||
from naff import Client, Extension, InteractionContext
|
from interactions.models.discord.channel import GuildCategory, GuildChannel
|
||||||
from naff.client.utils.misc_utils import find_all, get
|
from interactions.models.discord.enums import Permissions
|
||||||
from naff.models.discord.channel import GuildCategory, GuildChannel
|
from interactions.models.discord.guild import Guild
|
||||||
from naff.models.discord.enums import Permissions
|
from interactions.models.discord.user import Member
|
||||||
from naff.models.discord.guild import Guild
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.user import Member
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
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
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
"""JARVIS Moderation Case management."""
|
"""JARVIS Moderation Case management."""
|
||||||
from typing import TYPE_CHECKING, List, Optional
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import Extension, InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import Modlog, Note, actions
|
from interactions.ext.paginators import Paginator
|
||||||
from naff import Extension, InteractionContext, Permissions
|
from interactions.models.discord.embed import Embed, EmbedField
|
||||||
from naff.ext.paginators import Paginator
|
from interactions.models.discord.user import Member
|
||||||
from naff.models.discord.embed import Embed, EmbedField
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.user import Member
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
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.console import Console
|
||||||
from rich.table import Table
|
from rich.table import Table
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ from jarvis.utils import build_embed
|
||||||
from jarvis.utils.permissions import admin_or_permissions
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from naff.models.discord.guild import Guild
|
from interactions.models.discord.guild import Guild
|
||||||
|
|
||||||
ACTIONS_LOOKUP = {
|
ACTIONS_LOOKUP = {
|
||||||
"ban": actions.Ban,
|
"ban": actions.Ban,
|
||||||
|
|
|
@ -4,12 +4,11 @@ from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
from dateparser import parse
|
from dateparser import parse
|
||||||
from dateparser_data.settings import default_parsers
|
from dateparser_data.settings import default_parsers
|
||||||
from jarvis_core.db.models import Mute
|
from interactions import InteractionContext, Permissions
|
||||||
from naff import InteractionContext, Permissions
|
from interactions.client.errors import Forbidden
|
||||||
from naff.client.errors import Forbidden
|
from interactions.models.discord.modal import InputText, Modal, TextStyles
|
||||||
from naff.models.discord.modal import InputText, Modal, TextStyles
|
from interactions.models.discord.user import Member
|
||||||
from naff.models.discord.user import Member
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
CommandTypes,
|
CommandTypes,
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommandChoice,
|
SlashCommandChoice,
|
||||||
|
@ -17,7 +16,8 @@ from naff.models.naff.application_commands import (
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
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.embeds.admin import mute_embed, unmute_embed
|
||||||
from jarvis.utils.cogs import ModcaseCog
|
from jarvis.utils.cogs import ModcaseCog
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
"""JARVIS PurgeCog."""
|
"""JARVIS PurgeCog."""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import Autopurge, Purge
|
from interactions.models.discord.channel import GuildText
|
||||||
from naff import Client, Extension, InteractionContext, Permissions
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.channel import GuildText
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
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
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
"""JARVIS RolepingCog."""
|
"""JARVIS RolepingCog."""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import Roleping
|
from interactions.client.utils.misc_utils import find_all
|
||||||
from naff import Client, Extension, InteractionContext, Permissions
|
from interactions.ext.paginators import Paginator
|
||||||
from naff.client.utils.misc_utils import find_all
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.ext.paginators import Paginator
|
from interactions.models.discord.role import Role
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.user import Member
|
||||||
from naff.models.discord.role import Role
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.user import Member
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
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 import build_embed
|
||||||
from jarvis.utils.permissions import admin_or_permissions
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
|
@ -3,20 +3,20 @@ import asyncio
|
||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import AutocompleteContext, Client, Extension, InteractionContext
|
||||||
from jarvis_core.db.models import Setting
|
from interactions.models.discord.channel import GuildText
|
||||||
from naff import AutocompleteContext, Client, Extension, InteractionContext
|
from interactions.models.discord.components import ActionRow, Button, ButtonStyles
|
||||||
from naff.models.discord.channel import GuildText
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.discord.components import ActionRow, Button, ButtonStyles
|
from interactions.models.discord.enums import Permissions
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.role import Role
|
||||||
from naff.models.discord.enums import Permissions
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.role import Role
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
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 thefuzz import process
|
||||||
|
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
|
|
@ -4,19 +4,19 @@ from datetime import datetime, timezone
|
||||||
|
|
||||||
from dateparser import parse
|
from dateparser import parse
|
||||||
from dateparser_data.settings import default_parsers
|
from dateparser_data.settings import default_parsers
|
||||||
from jarvis_core.db.models import Temprole
|
from interactions import Client, Extension, InteractionContext, Permissions
|
||||||
from naff import Client, Extension, InteractionContext, Permissions
|
from interactions.models.discord.components import Button
|
||||||
from naff.models.discord.components import Button
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.discord.role import Role
|
||||||
from naff.models.discord.role import Role
|
from interactions.models.discord.user import Member
|
||||||
from naff.models.discord.user import Member
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
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 import build_embed
|
||||||
from jarvis.utils.permissions import admin_or_permissions
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
|
|
@ -3,13 +3,13 @@ import asyncio
|
||||||
import logging
|
import logging
|
||||||
from random import randint
|
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 import q
|
||||||
from jarvis_core.db.models import Setting
|
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:
|
def create_layout() -> list:
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
"""JARVIS WarningCog."""
|
"""JARVIS WarningCog."""
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import Warning
|
from interactions.client.utils.misc_utils import get_all
|
||||||
from naff import InteractionContext, Permissions
|
from interactions.ext.paginators import Paginator
|
||||||
from naff.client.utils.misc_utils import get_all
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.ext.paginators import Paginator
|
from interactions.models.discord.user import Member
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.user import Member
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
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.embeds.admin import warning_embed
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
|
|
@ -6,11 +6,13 @@ from io import BytesIO
|
||||||
|
|
||||||
import psutil
|
import psutil
|
||||||
from aiofile import AIOFile, LineReader
|
from aiofile import AIOFile, LineReader
|
||||||
from naff import Client, Extension, PrefixedContext, prefixed_command
|
from interactions import Client, Extension
|
||||||
from naff.models.discord.components import Button
|
from interactions.ext.prefixed_commands.command import prefixed_command
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.ext.prefixed_commands.context import PrefixedContext
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.discord.components import Button
|
||||||
from naff.models.discord.file import File
|
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 rich.console import Console
|
||||||
|
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
|
|
@ -7,19 +7,19 @@ from typing import List
|
||||||
|
|
||||||
from dateparser import parse
|
from dateparser import parse
|
||||||
from dateparser_data.settings import default_parsers
|
from dateparser_data.settings import default_parsers
|
||||||
from jarvis_core.db import q
|
from interactions import AutocompleteContext, Client, Extension, InteractionContext
|
||||||
from jarvis_core.db.models import Reminder
|
from interactions.models.discord.channel import GuildChannel
|
||||||
from naff import AutocompleteContext, Client, Extension, InteractionContext
|
from interactions.models.discord.components import ActionRow, Button
|
||||||
from naff.models.discord.channel import GuildChannel
|
from interactions.models.discord.embed import Embed, EmbedField
|
||||||
from naff.models.discord.components import ActionRow, Button
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.discord.embed import Embed, EmbedField
|
from interactions.models.discord.modal import InputText, Modal, TextStyles
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.modal import InputText, Modal, TextStyles
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
|
from jarvis_core.db import q
|
||||||
|
from jarvis_core.db.models import Reminder
|
||||||
from thefuzz import process
|
from thefuzz import process
|
||||||
|
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"""JARVIS Social Cogs."""
|
"""JARVIS Social Cogs."""
|
||||||
|
|
||||||
from naff import Client
|
from interactions import Client
|
||||||
|
|
||||||
from jarvis.cogs.core.socials import reddit, twitter
|
from jarvis.cogs.core.socials import reddit, twitter
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,22 @@ from asyncpraw import Reddit
|
||||||
from asyncpraw.models.reddit.submission import Submission
|
from asyncpraw.models.reddit.submission import Submission
|
||||||
from asyncpraw.models.reddit.submission import Subreddit as Sub
|
from asyncpraw.models.reddit.submission import Subreddit as Sub
|
||||||
from asyncprawcore.exceptions import Forbidden, NotFound, Redirect
|
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 import q
|
||||||
from jarvis_core.db.models import (
|
from jarvis_core.db.models import (
|
||||||
Redditor,
|
Redditor,
|
||||||
|
@ -16,18 +32,6 @@ from jarvis_core.db.models import (
|
||||||
SubredditFollow,
|
SubredditFollow,
|
||||||
UserSetting,
|
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 import const
|
||||||
from jarvis.config import JarvisConfig
|
from jarvis.config import JarvisConfig
|
||||||
|
@ -208,7 +212,7 @@ class RedditCog(Extension):
|
||||||
for idx, redditor in enumerate(redditors):
|
for idx, redditor in enumerate(redditors):
|
||||||
sub = await Redditor.find_one(q(name=redditor.name))
|
sub = await Redditor.find_one(q(name=redditor.name))
|
||||||
names.append(sub.name)
|
names.append(sub.name)
|
||||||
option = SelectOption(label=sub.name, value=str(idx))
|
option = StringSelectOption(label=sub.name, value=str(idx))
|
||||||
options.append(option)
|
options.append(option)
|
||||||
|
|
||||||
select = StringSelectMenu(options=options, custom_id="to_delete", min_values=1, max_values=len(redditors))
|
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):
|
for idx, subreddit in enumerate(subreddits):
|
||||||
sub = await Subreddit.find_one(q(display_name=subreddit.display_name))
|
sub = await Subreddit.find_one(q(display_name=subreddit.display_name))
|
||||||
names.append(sub.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)
|
options.append(option)
|
||||||
|
|
||||||
select = StringSelectMenu(options=options, custom_id="to_delete", min_values=1, max_values=len(subreddits))
|
select = StringSelectMenu(options=options, custom_id="to_delete", min_values=1, max_values=len(subreddits))
|
||||||
|
|
|
@ -3,18 +3,22 @@ import asyncio
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import tweepy
|
import tweepy
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import TwitterAccount, TwitterFollow
|
from interactions.client.utils.misc_utils import get
|
||||||
from naff import Client, Extension, InteractionContext, Permissions
|
from interactions.models.discord.channel import GuildText
|
||||||
from naff.client.utils.misc_utils import get
|
from interactions.models.discord.components import (
|
||||||
from naff.models.discord.channel import GuildText
|
ActionRow,
|
||||||
from naff.models.discord.components import ActionRow, SelectOption, StringSelectMenu
|
StringSelectMenu,
|
||||||
from naff.models.naff.application_commands import (
|
StringSelectOption,
|
||||||
|
)
|
||||||
|
from interactions.models.internal.application_commands import (
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
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.config import JarvisConfig
|
||||||
from jarvis.utils.permissions import admin_or_permissions
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
@ -121,7 +125,7 @@ class TwitterCog(Extension):
|
||||||
for twitter in twitters:
|
for twitter in twitters:
|
||||||
account = await TwitterAccount.find_one(q(twitter_id=twitter.twitter_id))
|
account = await TwitterAccount.find_one(q(twitter_id=twitter.twitter_id))
|
||||||
handlemap[str(twitter.twitter_id)] = account.handle
|
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)
|
options.append(option)
|
||||||
|
|
||||||
select = StringSelectMenu(options=options, custom_id="to_delete", min_values=1, max_values=len(twitters))
|
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:
|
for twitter in twitters:
|
||||||
account = await TwitterAccount.find_one(q(twitter_id=twitter.id))
|
account = await TwitterAccount.find_one(q(twitter_id=twitter.id))
|
||||||
handlemap[str(twitter.twitter_id)] = account.handle
|
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)
|
options.append(option)
|
||||||
|
|
||||||
select = StringSelectMenu(options=options, custom_id="to_update", min_values=1, max_values=len(twitters))
|
select = StringSelectMenu(options=options, custom_id="to_update", min_values=1, max_values=len(twitters))
|
||||||
|
|
|
@ -9,16 +9,17 @@ from io import BytesIO
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from dateparser import parse
|
from dateparser import parse
|
||||||
from naff import Client, Extension, InteractionContext, const
|
from interactions import Client, Extension, InteractionContext
|
||||||
from naff.models.discord.channel import GuildCategory, GuildText, GuildVoice
|
from interactions import __version__ as ipyv
|
||||||
from naff.models.discord.components import Button
|
from interactions.models.discord.channel import GuildCategory, GuildText, GuildVoice
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.components import Button
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.discord.file import File
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.discord.guild import Guild
|
from interactions.models.discord.file import File
|
||||||
from naff.models.discord.role import Role
|
from interactions.models.discord.guild import Guild
|
||||||
from naff.models.discord.user import User
|
from interactions.models.discord.role import Role
|
||||||
from naff.models.naff.application_commands import (
|
from interactions.models.discord.user import User
|
||||||
|
from interactions.models.internal.application_commands import (
|
||||||
CommandTypes,
|
CommandTypes,
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
|
@ -27,8 +28,8 @@ from naff.models.naff.application_commands import (
|
||||||
slash_command,
|
slash_command,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
from naff.models.naff.command import cooldown
|
from interactions.models.internal.command import cooldown
|
||||||
from naff.models.naff.cooldowns import Buckets
|
from interactions.models.internal.cooldowns import Buckets
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from tzlocal import get_localzone
|
from tzlocal import get_localzone
|
||||||
|
|
||||||
|
@ -88,7 +89,9 @@ class UtilCog(Extension):
|
||||||
inline=True,
|
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()}"
|
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="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))
|
fields.append(EmbedField(name="Online Since", value=f"<t:{uptime}:F>", inline=False))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""JARVIS extra, optional cogs"""
|
"""JARVIS extra, optional cogs"""
|
||||||
from naff import Client
|
from interactions import Client
|
||||||
|
|
||||||
from jarvis.cogs.extra import calc, dev, image, pinboard, rolegiver, tags
|
from jarvis.cogs.extra import calc, dev, image, pinboard, rolegiver, tags
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,11 @@ import json
|
||||||
|
|
||||||
from aiohttp import ClientSession
|
from aiohttp import ClientSession
|
||||||
from calculator import calculate
|
from calculator import calculate
|
||||||
from naff import AutocompleteContext, Client, Extension, InteractionContext
|
from interactions import AutocompleteContext, Client, Extension, InteractionContext
|
||||||
from naff.models.discord.components import Button
|
from interactions.models.discord.components import Button
|
||||||
from naff.models.discord.embed import Embed, EmbedField
|
from interactions.models.discord.embed import Embed, EmbedField
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.naff.application_commands import (
|
from interactions.models.internal.application_commands import (
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
SlashCommandChoice,
|
SlashCommandChoice,
|
||||||
|
|
|
@ -12,23 +12,23 @@ import ulid as ulidpy
|
||||||
from aiofile import AIOFile
|
from aiofile import AIOFile
|
||||||
from ansitoimg.render import ansiToRender
|
from ansitoimg.render import ansiToRender
|
||||||
from bson import ObjectId
|
from bson import ObjectId
|
||||||
from jarvis_core.filters import invites, url
|
from interactions import Client, Extension, InteractionContext
|
||||||
from jarvis_core.util import convert_bytesize, hash
|
from interactions.models.discord.components import Button
|
||||||
from jarvis_core.util.http import get_size
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff import Client, Extension, InteractionContext
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.discord.components import Button
|
from interactions.models.discord.file import File
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.message import Attachment
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.file import File
|
|
||||||
from naff.models.discord.message import Attachment
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
SlashCommandChoice,
|
SlashCommandChoice,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
from naff.models.naff.command import cooldown
|
from interactions.models.internal.command import cooldown
|
||||||
from naff.models.naff.cooldowns import Buckets
|
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 rich.console import Console
|
||||||
|
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
|
|
@ -6,18 +6,18 @@ from io import BytesIO
|
||||||
import aiohttp
|
import aiohttp
|
||||||
import cv2
|
import cv2
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from jarvis_core.util import convert_bytesize, unconvert_bytesize
|
from interactions import Client, Extension, InteractionContext
|
||||||
from naff import Client, Extension, InteractionContext
|
from interactions.models.discord.components import Button
|
||||||
from naff.models.discord.components import Button
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.discord.file import File
|
||||||
from naff.models.discord.file import File
|
from interactions.models.discord.message import Attachment
|
||||||
from naff.models.discord.message import Attachment
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
|
from jarvis_core.util import convert_bytesize, unconvert_bytesize
|
||||||
|
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
|
||||||
|
|
|
@ -2,27 +2,27 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext, Permissions
|
||||||
from jarvis_core.db.models import Star, Starboard
|
from interactions.client import errors
|
||||||
from naff import Client, Extension, InteractionContext, Permissions
|
from interactions.models.discord.channel import GuildText
|
||||||
from naff.client import errors
|
from interactions.models.discord.components import (
|
||||||
from naff.models.discord.channel import GuildText
|
|
||||||
from naff.models.discord.components import (
|
|
||||||
ActionRow,
|
ActionRow,
|
||||||
Button,
|
Button,
|
||||||
SelectOption,
|
|
||||||
StringSelectMenu,
|
StringSelectMenu,
|
||||||
|
StringSelectOption,
|
||||||
)
|
)
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.discord.message import Message
|
from interactions.models.discord.message import Message
|
||||||
from naff.models.naff.application_commands import (
|
from interactions.models.internal.application_commands import (
|
||||||
CommandTypes,
|
CommandTypes,
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
context_menu,
|
context_menu,
|
||||||
slash_option,
|
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 import build_embed
|
||||||
from jarvis.utils.permissions import admin_or_permissions
|
from jarvis.utils.permissions import admin_or_permissions
|
||||||
|
@ -167,9 +167,9 @@ class PinboardCog(Extension):
|
||||||
select_channels = []
|
select_channels = []
|
||||||
for idx, x in enumerate(channel_list):
|
for idx, x in enumerate(channel_list):
|
||||||
if x:
|
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(
|
select = StringSelectMenu(
|
||||||
options=select_channels,
|
options=select_channels,
|
||||||
|
|
|
@ -3,9 +3,7 @@ import asyncio
|
||||||
import logging
|
import logging
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import (
|
||||||
from jarvis_core.db.models import Rolegiver
|
|
||||||
from naff import (
|
|
||||||
AutocompleteContext,
|
AutocompleteContext,
|
||||||
Client,
|
Client,
|
||||||
Extension,
|
Extension,
|
||||||
|
@ -13,23 +11,25 @@ from naff import (
|
||||||
Permissions,
|
Permissions,
|
||||||
listen,
|
listen,
|
||||||
)
|
)
|
||||||
from naff.client.utils.misc_utils import get
|
from interactions.client.utils.misc_utils import get
|
||||||
from naff.models.discord.components import (
|
from interactions.models.discord.components import (
|
||||||
ActionRow,
|
ActionRow,
|
||||||
Button,
|
Button,
|
||||||
SelectOption,
|
|
||||||
StringSelectMenu,
|
StringSelectMenu,
|
||||||
|
StringSelectOption,
|
||||||
)
|
)
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.discord.enums import ButtonStyles
|
from interactions.models.discord.enums import ButtonStyles
|
||||||
from naff.models.discord.role import Role
|
from interactions.models.discord.role import Role
|
||||||
from naff.models.naff.application_commands import (
|
from interactions.models.internal.application_commands import (
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
from naff.models.naff.command import check, cooldown
|
from interactions.models.internal.command import check, cooldown
|
||||||
from naff.models.naff.cooldowns import Buckets
|
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 thefuzz import process
|
||||||
|
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
@ -226,7 +226,7 @@ class RolegiverCog(Extension):
|
||||||
options = []
|
options = []
|
||||||
for role in setting.roles:
|
for role in setting.roles:
|
||||||
role: Role = await ctx.guild.fetch_role(role)
|
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)
|
options.append(option)
|
||||||
|
|
||||||
select = StringSelectMenu(
|
select = StringSelectMenu(
|
||||||
|
@ -305,7 +305,7 @@ class RolegiverCog(Extension):
|
||||||
valid = list(filter(lambda x: x.id in setting.roles, user_roles))
|
valid = list(filter(lambda x: x.id in setting.roles, user_roles))
|
||||||
options = []
|
options = []
|
||||||
for role in valid:
|
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)
|
options.append(option)
|
||||||
|
|
||||||
select = StringSelectMenu(
|
select = StringSelectMenu(
|
||||||
|
|
|
@ -4,18 +4,18 @@ import re
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
from jarvis_core.db import q
|
from interactions import AutocompleteContext, Client, Extension, InteractionContext
|
||||||
from jarvis_core.db.models import Setting, Tag
|
from interactions.models.discord.components import Button
|
||||||
from naff import AutocompleteContext, Client, Extension, InteractionContext
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.discord.components import Button
|
from interactions.models.discord.enums import ButtonStyles, Permissions
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.modal import InputText, Modal, TextStyles
|
||||||
from naff.models.discord.enums import ButtonStyles, Permissions
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.modal import InputText, Modal, TextStyles
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
|
from jarvis_core.db import q
|
||||||
|
from jarvis_core.db.models import Setting, Tag
|
||||||
from thefuzz import process
|
from thefuzz import process
|
||||||
|
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""JARVIS guild-specific cogs"""
|
"""JARVIS guild-specific cogs"""
|
||||||
from naff import Client
|
from interactions import Client
|
||||||
|
|
||||||
from jarvis.cogs.unique import ctc2, dbrand, gl
|
from jarvis.cogs.unique import ctc2, dbrand, gl
|
||||||
|
|
||||||
|
|
|
@ -3,20 +3,20 @@ import logging
|
||||||
import re
|
import re
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
from jarvis_core.db import q
|
from interactions import Client, Extension, InteractionContext
|
||||||
from jarvis_core.db.models import Guess
|
from interactions.ext.paginators import Paginator
|
||||||
from naff import Client, Extension, InteractionContext
|
from interactions.models.discord.components import ActionRow, Button, ButtonStyles
|
||||||
from naff.ext.paginators import Paginator
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.discord.components import ActionRow, Button, ButtonStyles
|
from interactions.models.discord.user import Member, User
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.internal.application_commands import (
|
||||||
from naff.models.discord.user import Member, User
|
|
||||||
from naff.models.naff.application_commands import (
|
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
from naff.models.naff.command import cooldown
|
from interactions.models.internal.command import cooldown
|
||||||
from naff.models.naff.cooldowns import Buckets
|
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
|
from jarvis.utils import build_embed
|
||||||
|
|
||||||
|
|
|
@ -5,16 +5,16 @@ from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from naff import Client, Extension, InteractionContext
|
from interactions import Client, Extension, InteractionContext
|
||||||
from naff.client.utils import find
|
from interactions.client.utils import find
|
||||||
from naff.models.discord.embed import EmbedField
|
from interactions.models.discord.embed import EmbedField
|
||||||
from naff.models.naff.application_commands import (
|
from interactions.models.internal.application_commands import (
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
slash_option,
|
slash_option,
|
||||||
)
|
)
|
||||||
from naff.models.naff.command import cooldown
|
from interactions.models.internal.command import cooldown
|
||||||
from naff.models.naff.cooldowns import Buckets
|
from interactions.models.internal.cooldowns import Buckets
|
||||||
from thefuzz import process
|
from thefuzz import process
|
||||||
|
|
||||||
from jarvis.branding import CUSTOM_EMOJIS
|
from jarvis.branding import CUSTOM_EMOJIS
|
||||||
|
|
|
@ -4,12 +4,12 @@ import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
import gitlab
|
import gitlab
|
||||||
from naff import Client, Extension, InteractionContext
|
from interactions import Client, Extension, InteractionContext
|
||||||
from naff.ext.paginators import Paginator
|
from interactions.ext.paginators import Paginator
|
||||||
from naff.models.discord.embed import Embed, EmbedField
|
from interactions.models.discord.embed import Embed, EmbedField
|
||||||
from naff.models.discord.modal import InputText, Modal, TextStyles
|
from interactions.models.discord.modal import InputText, Modal, TextStyles
|
||||||
from naff.models.discord.user import Member
|
from interactions.models.discord.user import Member
|
||||||
from naff.models.naff.application_commands import (
|
from interactions.models.internal.application_commands import (
|
||||||
OptionTypes,
|
OptionTypes,
|
||||||
SlashCommand,
|
SlashCommand,
|
||||||
SlashCommandChoice,
|
SlashCommandChoice,
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
"""JARVIS bot-specific embeds."""
|
"""JARVIS bot-specific embeds."""
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from naff.models.discord.embed import Embed, EmbedField
|
from interactions.models.discord.embed import Embed, EmbedField
|
||||||
from naff.models.discord.guild import Guild
|
from interactions.models.discord.guild import Guild
|
||||||
from naff.models.discord.user import Member, User
|
from interactions.models.discord.user import Member, User
|
||||||
|
|
||||||
from jarvis.branding import get_command_color
|
from jarvis.branding import get_command_color
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
@ -33,9 +33,7 @@ def ban_embed(
|
||||||
fields = [EmbedField(name="Reason", value=reason), EmbedField(name="Type", value=type)]
|
fields = [EmbedField(name="Reason", value=reason), EmbedField(name="Type", value=type)]
|
||||||
if duration:
|
if duration:
|
||||||
fields.append(EmbedField(name="Duration", value=f"{duration} hours"))
|
fields.append(EmbedField(name="Duration", value=f"{duration} hours"))
|
||||||
fields.append(
|
fields.append(EmbedField(name="Admin", value=f"{admin.username}#{admin.discriminator} ({admin.mention})"))
|
||||||
EmbedField(name="Admin", value=f"{admin.username}#{admin.discriminator} ({admin.mention})")
|
|
||||||
)
|
|
||||||
if dm:
|
if dm:
|
||||||
embed = build_embed(
|
embed = build_embed(
|
||||||
title=f"You have been banned from {guild.name}",
|
title=f"You have been banned from {guild.name}",
|
||||||
|
|
|
@ -3,9 +3,9 @@ from datetime import datetime, timezone
|
||||||
from pkgutil import iter_modules
|
from pkgutil import iter_modules
|
||||||
|
|
||||||
import git
|
import git
|
||||||
from naff.models.discord.embed import Embed, EmbedField
|
from interactions.models.discord.embed import Embed, EmbedField
|
||||||
from naff.models.discord.guild import AuditLogEntry
|
from interactions.models.discord.guild import AuditLogEntry
|
||||||
from naff.models.discord.user import Member
|
from interactions.models.discord.user import Member
|
||||||
|
|
||||||
from jarvis.branding import PRIMARY_COLOR
|
from jarvis.branding import PRIMARY_COLOR
|
||||||
from jarvis.config import JarvisConfig
|
from jarvis.config import JarvisConfig
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
import logging
|
import logging
|
||||||
from datetime import timedelta
|
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 import q
|
||||||
from jarvis_core.db.models import Action, Ban, Kick, Modlog, Mute, Setting, Warning
|
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.tracking import warnings_tracker
|
||||||
from jarvis.utils import build_embed
|
from jarvis.utils import build_embed
|
||||||
|
@ -60,9 +60,7 @@ class ModcaseCog(Extension):
|
||||||
self.logger.warning("Unsupported action %s, exiting", name)
|
self.logger.warning("Unsupported action %s, exiting", name)
|
||||||
return
|
return
|
||||||
|
|
||||||
action = await coll.find_one(
|
action = await coll.find_one(q(user=user.id, guild=ctx.guild_id, active=True), sort=[("_id", -1)])
|
||||||
q(user=user.id, guild=ctx.guild_id, active=True), sort=[("_id", -1)]
|
|
||||||
)
|
|
||||||
if not action:
|
if not action:
|
||||||
self.logger.warning("Missing action %s, exiting", name)
|
self.logger.warning("Missing action %s, exiting", name)
|
||||||
return
|
return
|
||||||
|
@ -71,9 +69,7 @@ class ModcaseCog(Extension):
|
||||||
if notify and name not in ("Kick", "Ban"): # Ignore Kick and Ban, as these are unique
|
if notify and name not in ("Kick", "Ban"): # Ignore Kick and Ban, as these are unique
|
||||||
fields = (
|
fields = (
|
||||||
EmbedField(name="Action Type", value=name, inline=False),
|
EmbedField(name="Action Type", value=name, inline=False),
|
||||||
EmbedField(
|
EmbedField(name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False),
|
||||||
name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
embed = build_embed(
|
embed = build_embed(
|
||||||
title="Admin action taken",
|
title="Admin action taken",
|
||||||
|
@ -106,9 +102,7 @@ class ModcaseCog(Extension):
|
||||||
if channel:
|
if channel:
|
||||||
fields = (
|
fields = (
|
||||||
EmbedField(name="Action Type", value=name, inline=False),
|
EmbedField(name="Action Type", value=name, inline=False),
|
||||||
EmbedField(
|
EmbedField(name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False),
|
||||||
name="Reason", value=kwargs.get("reason", None) or "N/A", inline=False
|
|
||||||
),
|
|
||||||
EmbedField(name="Admin", value=ctx.author.mention, inline=False),
|
EmbedField(name="Admin", value=ctx.author.mention, inline=False),
|
||||||
)
|
)
|
||||||
embed = build_embed(
|
embed = build_embed(
|
||||||
|
@ -116,9 +110,7 @@ class ModcaseCog(Extension):
|
||||||
description=f"Admin action has been taken against {user.mention}",
|
description=f"Admin action has been taken against {user.mention}",
|
||||||
fields=fields,
|
fields=fields,
|
||||||
)
|
)
|
||||||
embed.set_author(
|
embed.set_author(name=f"{user.username}#{user.discriminator}", icon_url=user.display_avatar.url)
|
||||||
name=f"{user.username}#{user.discriminator}", icon_url=user.display_avatar.url
|
|
||||||
)
|
|
||||||
embed.set_footer(text=f"User ID: {user.id}")
|
embed.set_footer(text=f"User ID: {user.id}")
|
||||||
if name == "Mute":
|
if name == "Mute":
|
||||||
mts = int(user.communication_disabled_until.timestamp())
|
mts = int(user.communication_disabled_until.timestamp())
|
||||||
|
@ -134,9 +126,7 @@ class ModcaseCog(Extension):
|
||||||
|
|
||||||
channel = await ctx.guild.fetch_channel(modlog.value)
|
channel = await ctx.guild.fetch_channel(modlog.value)
|
||||||
if not channel:
|
if not channel:
|
||||||
self.logger.warn(
|
self.logger.warn(f"Guild {ctx.guild.id} modlog channel no longer exists, deleting")
|
||||||
f"Guild {ctx.guild.id} modlog channel no longer exists, deleting"
|
|
||||||
)
|
|
||||||
await modlog.delete()
|
await modlog.delete()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -157,7 +147,5 @@ class ModcaseCog(Extension):
|
||||||
]
|
]
|
||||||
message = await channel.send(embeds=embed, components=components)
|
message = await channel.send(embeds=embed, components=components)
|
||||||
|
|
||||||
await self.bot.redis.set(
|
await self.bot.redis.set(lookup_key, f"{name.lower()}|{action.id}", ex=timedelta(days=7))
|
||||||
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))
|
await self.bot.redis.set(f"msg|{message.id}", user.id, ex=timedelta(days=7))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""Permissions wrappers."""
|
"""Permissions wrappers."""
|
||||||
from naff import InteractionContext, Permissions
|
from interactions import InteractionContext, Permissions
|
||||||
|
|
||||||
from jarvis.config import JarvisConfig
|
from jarvis.config import JarvisConfig
|
||||||
|
|
||||||
|
|
|
@ -9,16 +9,16 @@ from types import FunctionType, ModuleType
|
||||||
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional
|
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional
|
||||||
|
|
||||||
import git
|
import git
|
||||||
from naff.client.errors import ExtensionNotFound
|
from interactions.client.errors import ExtensionNotFound
|
||||||
from naff.client.utils.misc_utils import find, find_all
|
from interactions.client.utils.misc_utils import find, find_all
|
||||||
from naff.models.naff.application_commands import SlashCommand
|
from interactions.models.internal.application_commands import SlashCommand
|
||||||
from naff.models.naff.extension import Extension
|
from interactions.models.internal.extension import Extension
|
||||||
from rich.table import Table
|
from rich.table import Table
|
||||||
|
|
||||||
import jarvis.cogs
|
import jarvis.cogs
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from naff.client.client import Client
|
from interactions.client.client import Client
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -75,9 +75,7 @@ def get_git_changes(repo: git.Repo) -> dict:
|
||||||
if commit.hexsha == current_hash:
|
if commit.hexsha == current_hash:
|
||||||
break
|
break
|
||||||
files = commit.stats.files
|
files = commit.stats.files
|
||||||
file_changes.update(
|
file_changes.update({key: {"insertions": 0, "deletions": 0, "lines": 0} for key in files.keys()})
|
||||||
{key: {"insertions": 0, "deletions": 0, "lines": 0} for key in files.keys()}
|
|
||||||
)
|
|
||||||
for file, stats in files.items():
|
for file, stats in files.items():
|
||||||
if file not in file_changes:
|
if file not in file_changes:
|
||||||
file_changes[file] = {"insertions": 0, "deletions": 0, "lines": 0}
|
file_changes[file] = {"insertions": 0, "deletions": 0, "lines": 0}
|
||||||
|
@ -168,9 +166,7 @@ async def update(bot: "Client") -> Optional[UpdateResult]:
|
||||||
reloaded.append(module)
|
reloaded.append(module)
|
||||||
else:
|
else:
|
||||||
for command in commands:
|
for command in commands:
|
||||||
old_command = find(
|
old_command = find(lambda x: x.resolved_name == command.resolved_name, current_commands[module])
|
||||||
lambda x: x.resolved_name == command.resolved_name, current_commands[module]
|
|
||||||
)
|
|
||||||
|
|
||||||
# Extract useful info
|
# Extract useful info
|
||||||
old_args = old_command.options
|
old_args = old_command.options
|
||||||
|
|
91
poetry.lock
generated
91
poetry.lock
generated
|
@ -803,6 +803,34 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker
|
||||||
perf = ["ipython"]
|
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)"]
|
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]]
|
[[package]]
|
||||||
name = "jarvis-core"
|
name = "jarvis-core"
|
||||||
version = "0.16.1"
|
version = "0.16.1"
|
||||||
|
@ -1110,11 +1138,62 @@ files = [
|
||||||
{file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"},
|
{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]]
|
[[package]]
|
||||||
name = "mypy-extensions"
|
name = "mypy-extensions"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
description = "Experimental type system extensions for programs checked with the mypy typechecker."
|
description = "Experimental type system extensions for programs checked with the mypy typechecker."
|
||||||
category = "dev"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
files = [
|
files = [
|
||||||
|
@ -1124,19 +1203,19 @@ files = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "naff"
|
name = "naff"
|
||||||
version = "2.0.0"
|
version = "2.1.0"
|
||||||
description = "Not another freaking fork"
|
description = "Not another freaking fork"
|
||||||
category = "main"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.10"
|
python-versions = ">=3.10"
|
||||||
files = [
|
files = [
|
||||||
{file = "naff-2.0.0-py3-none-any.whl", hash = "sha256:afd3906acbdaf6f87ea6e618f07e97f059f9adf8011afd1e3b73fb55d03d153a"},
|
{file = "naff-2.1.0-py3-none-any.whl", hash = "sha256:e433683b62f1a151867a44c752cb8725e8505f99086b07765f66696fa553adf2"},
|
||||||
{file = "naff-2.0.0.tar.gz", hash = "sha256:eb51697ddf91ba0047a3d35951ad5a4daceb97301698b0078781dee969eb3f99"},
|
{file = "naff-2.1.0.tar.gz", hash = "sha256:a58db2f56f6f5fc4fbefb354ce4d17a78080817ac8524ce6e74dedc54e1c850c"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
aiohttp = "*"
|
aiohttp = "*"
|
||||||
attrs = "*"
|
attrs = ">=22.1.0"
|
||||||
discord-typings = ">=0.5.1"
|
discord-typings = ">=0.5.1"
|
||||||
emoji = "*"
|
emoji = "*"
|
||||||
tomli = "*"
|
tomli = "*"
|
||||||
|
@ -2690,4 +2769,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools"
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = ">=3.10,<4"
|
python-versions = ">=3.10,<4"
|
||||||
content-hash = "89f766c3bacf47f7b955a812a695020dbae9c4f301816e94c943151af2696a19"
|
content-hash = "4a6ff8ef1a1d34dece616ee55184914e45562fb90713c6d8ba78552799d1712e"
|
||||||
|
|
|
@ -22,7 +22,6 @@ aiofile = "^3.8.1"
|
||||||
asyncpraw = "^7.5.0"
|
asyncpraw = "^7.5.0"
|
||||||
rich = "^12.3.0"
|
rich = "^12.3.0"
|
||||||
jurigged = "^0.5.3" # Contributed
|
jurigged = "^0.5.3" # Contributed
|
||||||
naff = { version = "^2.0.0", extras = ["orjson"] } # Contributed
|
|
||||||
ansitoimg = "^2022.1"
|
ansitoimg = "^2022.1"
|
||||||
nest-asyncio = "^1.5.5"
|
nest-asyncio = "^1.5.5"
|
||||||
thefuzz = {extras = ["speedup"], git = "https://github.com/zevaryx/thefuzz.git", rev = "master"} # Forked
|
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
|
calculator = {git = "https://git.zevaryx.com/zevaryx/calculator.git"} # Mine
|
||||||
nafftrack = {git = "https://github.com/zevaryx/nafftrack.git"} # Contributed
|
nafftrack = {git = "https://github.com/zevaryx/nafftrack.git"} # Contributed
|
||||||
redis = "^4.4.0"
|
redis = "^4.4.0"
|
||||||
|
interactions = {git = "https://github.com/interactions-py/interactions.py", rev = "5.x"}
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
black = {version = "^22.3.0", allow-prereleases = true}
|
black = {version = "^22.3.0", allow-prereleases = true}
|
||||||
|
|
Loading…
Add table
Reference in a new issue