Merge branch 'main' into 'dev'

Merge bugfixes into dev

See merge request stark-industries/jarvis/jarvis-bot!57
This commit is contained in:
Zeva Rose 2022-05-25 15:55:49 +00:00
commit a250f5278f
24 changed files with 53 additions and 53 deletions

View file

@ -775,10 +775,12 @@ class Jarvis(Client):
async def on_button(self, event: Button) -> None:
"""Process button events."""
context = event.context
if not context.custom_id.startswith("modcase|"):
return # await super().on_button(event)
if not context.deferred and not context.responded:
await context.defer(ephemeral=True)
if not context.custom_id.startswith("modcase|"):
return await super().on_button(event)
if not context.author.has_permission(Permissions.MODERATE_MEMBERS):
return

View file

@ -4,7 +4,7 @@ from typing import Union
from jarvis_core.db import q
from jarvis_core.db.models import Lock, Permission
from naff import Client, Cog, InteractionContext
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
@ -18,7 +18,7 @@ from naff.models.naff.command import check
from jarvis.utils.permissions import admin_or_permissions
class LockCog(Cog):
class LockCog(Extension):
"""JARVIS LockCog."""
def __init__(self, bot: Client):

View file

@ -3,7 +3,7 @@ import logging
from jarvis_core.db import q
from jarvis_core.db.models import Lock, Lockdown, Permission
from naff import Client, Cog, InteractionContext
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
@ -94,7 +94,7 @@ async def unlock_all(bot: Client, guild: Guild, admin: Member) -> None:
await lockdown.commit()
class LockdownCog(Cog):
class LockdownCog(Extension):
"""JARVIS LockdownCog."""
def __init__(self, bot: Client):

View file

@ -3,7 +3,7 @@ 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 Cog, InteractionContext, Permissions
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
@ -31,7 +31,7 @@ ACTIONS_LOOKUP = {
}
class CaseCog(Cog):
class CaseCog(Extension):
"""JARVIS CaseCog."""
async def get_summary_embed(self, mod_case: Modlog, guild: "Guild") -> Embed:

View file

@ -3,7 +3,7 @@ import logging
from jarvis_core.db import q
from jarvis_core.db.models import Autopurge, Purge
from naff import Client, Cog, InteractionContext, Permissions
from naff import Client, Extension, InteractionContext, Permissions
from naff.models.discord.channel import GuildText
from naff.models.naff.application_commands import (
OptionTypes,
@ -15,7 +15,7 @@ from naff.models.naff.command import check
from jarvis.utils.permissions import admin_or_permissions
class PurgeCog(Cog):
class PurgeCog(Extension):
"""JARVIS PurgeCog."""
def __init__(self, bot: Client):

View file

@ -3,7 +3,7 @@ import logging
from jarvis_core.db import q
from jarvis_core.db.models import Roleping
from naff import Client, Cog, InteractionContext, Permissions
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
@ -20,7 +20,7 @@ from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions
class RolepingCog(Cog):
class RolepingCog(Extension):
"""JARVIS RolepingCog."""
def __init__(self, bot: Client):

View file

@ -5,7 +5,7 @@ from typing import Optional, Tuple
from jarvis_core.db import q
from jarvis_core.db.models import Autoreact
from naff import Client, Cog, InteractionContext, Permissions
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 (
@ -19,7 +19,7 @@ from jarvis.data.unicode import emoji_list
from jarvis.utils.permissions import admin_or_permissions
class AutoReactCog(Cog):
class AutoReactCog(Extension):
"""JARVIS Autoreact Cog."""
def __init__(self, bot: Client):

View file

@ -5,7 +5,7 @@ from io import BytesIO
import psutil
from aiofile import AIOFile, LineReader
from naff import Client, Cog, PrefixedContext, prefixed_command
from naff import Client, Extension, PrefixedContext, prefixed_command
from naff.models.discord.embed import EmbedField
from naff.models.discord.file import File
from rich.console import Console
@ -14,13 +14,13 @@ from jarvis.utils import build_embed
from jarvis.utils.updates import update
class BotutilCog(Cog):
class BotutilCog(Extension):
"""JARVIS Bot Utility Cog."""
def __init__(self, bot: Client):
self.bot = bot
self.logger = logging.getLogger(__name__)
self.add_cog_check(self.is_owner)
self.add_ext_check(self.is_owner)
async def is_owner(self, ctx: PrefixedContext) -> bool:
"""Checks if author is bot owner."""

View file

@ -5,7 +5,7 @@ import re
import aiohttp
from jarvis_core.db import q
from jarvis_core.db.models import Guess
from naff import Client, Cog, InteractionContext
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
@ -29,7 +29,7 @@ invites = re.compile(
)
class CTCCog(Cog):
class CTCCog(Extension):
"""JARVIS Complete the Code 2 Cog."""
def __init__(self, bot: Client):

View file

@ -3,7 +3,7 @@ import logging
import re
import aiohttp
from naff import Client, Cog, InteractionContext
from naff import Client, Extension, InteractionContext
from naff.models.discord.embed import EmbedField
from naff.models.naff.application_commands import (
OptionTypes,
@ -20,7 +20,7 @@ from jarvis.utils import build_embed
guild_ids = [862402786116763668] # [578757004059738142, 520021794380447745, 862402786116763668]
class DbrandCog(Cog):
class DbrandCog(Extension):
"""
dbrand functions for JARVIS

View file

@ -11,7 +11,7 @@ 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, Cog, InteractionContext
from naff import Client, Extension, InteractionContext
from naff.models.discord.embed import EmbedField
from naff.models.discord.message import Attachment
from naff.models.naff.application_commands import (
@ -45,7 +45,7 @@ UUID_GET = {3: uuidpy.uuid3, 5: uuidpy.uuid5}
MAX_FILESIZE = 5 * (1024**3) # 5GB
class DevCog(Cog):
class DevCog(Extension):
"""JARVIS Developer Cog."""
def __init__(self, bot: Client):

View file

@ -4,7 +4,7 @@ import logging
from datetime import datetime
import gitlab
from naff import Client, Cog, InteractionContext
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
@ -25,7 +25,7 @@ from jarvis.utils import build_embed
guild_ids = [862402786116763668]
class GitlabCog(Cog):
class GitlabCog(Extension):
"""JARVIS GitLab Cog."""
def __init__(self, bot: Client):

View file

@ -7,7 +7,7 @@ import aiohttp
import cv2
import numpy as np
from jarvis_core.util import convert_bytesize, unconvert_bytesize
from naff import Client, Cog, InteractionContext
from naff import Client, Extension, InteractionContext
from naff.models.discord.embed import EmbedField
from naff.models.discord.file import File
from naff.models.discord.message import Attachment
@ -22,7 +22,7 @@ from jarvis.utils import build_embed
MIN_ACCURACY = 0.80
class ImageCog(Cog):
class ImageCog(Extension):
"""
Image processing functions for JARVIS

View file

@ -9,7 +9,7 @@ from asyncpraw.models.reddit.submission import Subreddit as Sub
from asyncprawcore.exceptions import Forbidden, NotFound, Redirect
from jarvis_core.db import q
from jarvis_core.db.models import Subreddit, SubredditFollow
from naff import Client, Cog, InteractionContext, Permissions
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, Select, SelectOption
@ -30,7 +30,7 @@ from jarvis.utils.permissions import admin_or_permissions
DEFAULT_USER_AGENT = f"python:JARVIS:{const.__version__} (by u/zevaryx)"
class RedditCog(Cog):
class RedditCog(Extension):
"""JARVIS Reddit Cog."""
def __init__(self, bot: Client):
@ -96,9 +96,7 @@ class RedditCog(Cog):
url=url,
color=color,
)
base_embed.set_author(
name="u/" + post.author.name, url=author_url, icon_url=author_icon
)
base_embed.set_author(name="u/" + post.author.name, url=author_url, icon_url=author_icon)
base_embed.set_footer(
text="Reddit", icon_url="https://www.redditinc.com/assets/images/site/reddit-logo.png"
)

View file

@ -10,7 +10,7 @@ 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 Client, Cog, InteractionContext
from naff import Client, Extension, InteractionContext
from naff.client.utils.misc_utils import get
from naff.models.discord.channel import GuildChannel
from naff.models.discord.components import ActionRow, Select, SelectOption
@ -33,7 +33,7 @@ invites = re.compile(
)
class RemindmeCog(Cog):
class RemindmeCog(Extension):
"""JARVIS Remind Me Cog."""
def __init__(self, bot: Client):

View file

@ -4,7 +4,7 @@ import logging
from jarvis_core.db import q
from jarvis_core.db.models import Rolegiver
from naff import Client, Cog, InteractionContext, Permissions
from naff import Client, Extension, InteractionContext, Permissions
from naff.client.utils.misc_utils import get
from naff.models.discord.components import ActionRow, Select, SelectOption
from naff.models.discord.embed import EmbedField
@ -21,7 +21,7 @@ from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions
class RolegiverCog(Cog):
class RolegiverCog(Extension):
"""JARVIS Role Giver Cog."""
def __init__(self, bot: Client):

View file

@ -5,7 +5,7 @@ from typing import Any
from jarvis_core.db import q
from jarvis_core.db.models import Setting
from naff import Client, Cog, InteractionContext
from naff import 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
@ -22,7 +22,7 @@ from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions
class SettingsCog(Cog):
class SettingsCog(Extension):
"""JARVIS Settings Management Cog."""
def __init__(self, bot: Client):

View file

@ -3,7 +3,7 @@ import logging
from jarvis_core.db import q
from jarvis_core.db.models import Star, Starboard
from naff import Client, Cog, InteractionContext, Permissions
from naff import Client, Extension, InteractionContext, Permissions
from naff.models.discord.channel import GuildText
from naff.models.discord.components import ActionRow, Select, SelectOption
from naff.models.discord.message import Message
@ -28,7 +28,7 @@ supported_images = [
]
class StarboardCog(Cog):
class StarboardCog(Extension):
"""JARVIS Starboard Cog."""
def __init__(self, bot: Client):

View file

@ -5,7 +5,7 @@ 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, Cog, InteractionContext, Permissions
from naff import Client, Extension, InteractionContext, Permissions
from naff.models.discord.embed import EmbedField
from naff.models.discord.role import Role
from naff.models.discord.user import Member
@ -20,7 +20,7 @@ from jarvis.utils import build_embed
from jarvis.utils.permissions import admin_or_permissions
class TemproleCog(Cog):
class TemproleCog(Extension):
"""JARVIS Temporary Role Cog."""
def __init__(self, bot: Client):

View file

@ -5,7 +5,7 @@ import logging
import tweepy
from jarvis_core.db import q
from jarvis_core.db.models import TwitterAccount, TwitterFollow
from naff import Client, Cog, InteractionContext, Permissions
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, Select, SelectOption
@ -20,7 +20,7 @@ from jarvis.config import JarvisConfig
from jarvis.utils.permissions import admin_or_permissions
class TwitterCog(Cog):
class TwitterCog(Extension):
"""JARVIS Twitter Cog."""
def __init__(self, bot: Client):

View file

@ -8,7 +8,7 @@ from io import BytesIO
import numpy as np
from dateparser import parse
from naff import Client, Cog, InteractionContext, const
from naff import Client, Extension, InteractionContext, const
from naff.models.discord.channel import GuildCategory, GuildText, GuildVoice
from naff.models.discord.embed import EmbedField
from naff.models.discord.file import File
@ -36,7 +36,7 @@ from jarvis.utils import build_embed, get_repo_hash
JARVIS_LOGO = Image.open("jarvis_small.png").convert("RGBA")
class UtilCog(Cog):
class UtilCog(Extension):
"""
Utility functions for JARVIS

View file

@ -5,7 +5,7 @@ from random import randint
from jarvis_core.db import q
from jarvis_core.db.models import Setting
from naff import Client, Cog, InteractionContext
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
@ -30,7 +30,7 @@ def create_layout() -> list:
return spread_to_rows(*buttons, max_in_row=3)
class VerifyCog(Cog):
class VerifyCog(Extension):
"""JARVIS Verify Cog."""
def __init__(self, bot: Client):

View file

@ -4,7 +4,7 @@ from datetime import timedelta
from jarvis_core.db import q
from jarvis_core.db.models import Action, Ban, Kick, Modlog, Mute, Setting, Warning
from naff import Client, Cog, InteractionContext
from naff import Client, Extension, InteractionContext
from naff.models.discord.components import ActionRow, Button, ButtonStyles
from naff.models.discord.embed import EmbedField
@ -14,13 +14,13 @@ MODLOG_LOOKUP = {"Ban": Ban, "Kick": Kick, "Mute": Mute, "Warning": Warning}
IGNORE_COMMANDS = {"Ban": ["bans"], "Kick": [], "Mute": ["unmute"], "Warning": ["warnings"]}
class ModcaseCog(Cog):
class ModcaseCog(Extension):
"""Cog wrapper for moderation case logging."""
def __init__(self, bot: Client):
self.bot = bot
self.logger = logging.getLogger(__name__)
self.add_cog_postrun(self.log)
self.add_extension_postrun(self.log)
async def log(self, ctx: InteractionContext, *_args: list, **kwargs: dict) -> None:
"""

View file

@ -12,7 +12,7 @@ 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.cog import Cog
from naff.models.naff.extension import Extension
from rich.table import Table
import jarvis.cogs
@ -41,7 +41,7 @@ def get_all_commands(module: ModuleType = jarvis.cogs) -> Dict[str, Callable]:
commands = {}
def validate_ires(entry: Any) -> bool:
return isclass(entry) and issubclass(entry, Cog) and entry is not Cog
return isclass(entry) and issubclass(entry, Extension) and entry is not Extension
def validate_cog(cog: FunctionType) -> bool:
return isinstance(cog, SlashCommand)