Close #25, no more regex for standard emojis. Instead, compare against list of all Emoji 13.1 emojis

This commit is contained in:
Zeva Rose 2021-07-04 09:18:02 -06:00
parent 6638350bdf
commit 37335dfc86
20 changed files with 98 additions and 79 deletions

View file

@ -1,16 +1,18 @@
from pathlib import Path import asyncio
import pymongo
from datetime import datetime, timedelta from datetime import datetime, timedelta
from discord import Intents, Member, Message, DMChannel from pathlib import Path
import pymongo
from discord import DMChannel, Intents, Member, Message
from discord.ext import commands from discord.ext import commands
from discord.ext.tasks import loop from discord.ext.tasks import loop
from discord.utils import find, get from discord.utils import find, get
from discord_slash import SlashCommand from discord_slash import SlashCommand
from psutil import Process from psutil import Process
import asyncio
from jarvis import logo, utils
from jarvis.config import get_config from jarvis.config import get_config
from jarvis.utils.db import DBManager from jarvis.utils.db import DBManager
from jarvis import utils, logo
if asyncio.get_event_loop().is_closed(): if asyncio.get_event_loop().is_closed():
asyncio.set_event_loop(asyncio.new_event_loop()) asyncio.set_event_loop(asyncio.new_event_loop())

View file

@ -1,12 +1,14 @@
import jarvis
import pymongo
import re import re
from datetime import datetime, timedelta from datetime import datetime, timedelta
from discord import User, Member
import pymongo
from discord import Member, User
from discord.ext import commands from discord.ext import commands
from discord.utils import get, find from discord.utils import find, get
from discord_slash import cog_ext, SlashContext from discord_slash import SlashContext, cog_ext
from discord_slash.utils.manage_commands import create_option, create_choice from discord_slash.utils.manage_commands import create_choice, create_option
import jarvis
from jarvis.utils.db import DBManager from jarvis.utils.db import DBManager
from jarvis.utils.permissions import admin_or_permissions from jarvis.utils.permissions import admin_or_permissions

View file

@ -1,12 +1,15 @@
import jarvis
import re import re
from datetime import datetime from datetime import datetime
from discord import TextChannel from discord import TextChannel
from discord.ext import commands from discord.ext import commands
from discord.utils import find from discord.utils import find
from discord_slash import cog_ext from discord_slash import cog_ext
from discord_slash.utils.manage_commands import create_option from discord_slash.utils.manage_commands import create_option
import jarvis
from jarvis.config import get_config from jarvis.config import get_config
from jarvis.data.unicode import emoji_list
from jarvis.utils.db import DBManager from jarvis.utils.db import DBManager
@ -15,10 +18,7 @@ class AutoReactCog(commands.Cog):
self.bot = bot self.bot = bot
config = get_config() config = get_config()
self.db = DBManager(config.mongo).mongo self.db = DBManager(config.mongo).mongo
self.custom_emote = re.compile(r"^<:.*:([0-9]+)>$") self.custom_emote = re.compile(r"^<:\w+:(\d+)>$")
self.standard_emote = re.compile(
r"^[\U0001F100-\U000E007F]{0,}[\u200d-\ufe0f]{0,}?[\U0001F100-\U000E007F]{0,}?$"
)
@cog_ext.cog_subcommand( @cog_ext.cog_subcommand(
base="autoreact", base="autoreact",
@ -98,8 +98,9 @@ class AutoReactCog(commands.Cog):
) )
@commands.has_permissions(administrator=True) @commands.has_permissions(administrator=True)
async def _autoreact_add(self, ctx, channel: TextChannel, emote: str): async def _autoreact_add(self, ctx, channel: TextChannel, emote: str):
await ctx.defer()
custom_emoji = self.custom_emote.match(emote) custom_emoji = self.custom_emote.match(emote)
standard_emoji = self.standard_emote.match(emote) standard_emoji = emote in emoji_list
if not custom_emoji and not standard_emoji: if not custom_emoji and not standard_emoji:
await ctx.send( await ctx.send(
"Please use either an emote from this server" "Please use either an emote from this server"

View file

@ -1,7 +1,8 @@
import aiohttp import aiohttp
import jarvis
from discord.ext import commands from discord.ext import commands
from discord_slash import cog_ext from discord_slash import cog_ext
import jarvis
from jarvis.config import get_config from jarvis.config import get_config
from jarvis.utils.db import DBManager from jarvis.utils.db import DBManager

View file

@ -1,9 +1,11 @@
import aiohttp
import jarvis
import re import re
import aiohttp
from discord.ext import commands from discord.ext import commands
from discord_slash import cog_ext from discord_slash import cog_ext
from discord_slash.utils.manage_commands import create_option from discord_slash.utils.manage_commands import create_option
import jarvis
from jarvis.config import get_config from jarvis.config import get_config
from jarvis.data.dbrand import shipping_lookup from jarvis.data.dbrand import shipping_lookup
from jarvis.utils import build_embed from jarvis.utils import build_embed

View file

@ -1,23 +1,24 @@
import base64 import base64
import discord
import hashlib import hashlib
import jarvis
import os import os
import re import re
import subprocess import subprocess
import sys import sys
import traceback import traceback
import ulid
import uuid import uuid
from inspect import getsource
from time import time
import discord
import ulid
from bson import ObjectId from bson import ObjectId
from discord.ext import commands from discord.ext import commands
from discord_slash import cog_ext from discord_slash import cog_ext
from inspect import getsource
import jarvis
from jarvis.utils import build_embed, convert_bytesize from jarvis.utils import build_embed, convert_bytesize
from jarvis.utils.field import Field from jarvis.utils.field import Field
from jarvis.utils.permissions import user_is_bot_admin from jarvis.utils.permissions import user_is_bot_admin
from time import time
supported_hashes = { supported_hashes = {
x for x in hashlib.algorithms_guaranteed if "shake" not in x x for x in hashlib.algorithms_guaranteed if "shake" not in x

View file

@ -1,6 +1,7 @@
import jarvis
from discord.ext import commands from discord.ext import commands
import jarvis
class ErrorHandlerCog(commands.Cog): class ErrorHandlerCog(commands.Cog):
def __init__(self, bot): def __init__(self, bot):

View file

@ -1,12 +1,14 @@
import re
from io import BytesIO
import aiohttp import aiohttp
import cv2 import cv2
import jarvis
import numpy as np import numpy as np
import re
from discord import File from discord import File
from discord.ext import commands from discord.ext import commands
from io import BytesIO
from jarvis.utils import convert_bytesize, unconvert_bytesize, build_embed import jarvis
from jarvis.utils import build_embed, convert_bytesize, unconvert_bytesize
from jarvis.utils.field import Field from jarvis.utils.field import Field

View file

@ -1,15 +1,17 @@
import discord
import html import html
import jarvis
import re import re
import traceback import traceback
from datetime import datetime from datetime import datetime
from random import randint
import discord
from discord.ext import commands from discord.ext import commands
from discord_slash import cog_ext from discord_slash import cog_ext
import jarvis
from jarvis.utils import build_embed from jarvis.utils import build_embed
from jarvis.utils.db import DBManager from jarvis.utils.db import DBManager
from jarvis.utils.field import Field from jarvis.utils.field import Field
from random import randint
class JokeCog(commands.Cog): class JokeCog(commands.Cog):

View file

@ -1,9 +1,10 @@
import discord import discord
import jarvis
from discord import User from discord import User
from discord.ext import commands from discord.ext import commands
import jarvis
from jarvis.config import get_config, reload_config from jarvis.config import get_config, reload_config
from jarvis.utils import update, db from jarvis.utils import db, update
from jarvis.utils.permissions import user_is_bot_admin from jarvis.utils.permissions import user_is_bot_admin

View file

@ -1,9 +1,10 @@
import discord import discord
import jarvis
from discord import Role, TextChannel from discord import Role, TextChannel
from discord.ext import commands from discord.ext import commands
from discord_slash import cog_ext from discord_slash import cog_ext
from discord_slash.utils.manage_commands import create_option from discord_slash.utils.manage_commands import create_option
import jarvis
from jarvis.config import get_config from jarvis.config import get_config
from jarvis.utils import db from jarvis.utils import db
from jarvis.utils.permissions import admin_or_permissions from jarvis.utils.permissions import admin_or_permissions

View file

@ -1,12 +1,14 @@
import aiohttp
import jarvis
from datetime import datetime from datetime import datetime
import aiohttp
import discord import discord
from discord import TextChannel, Message from discord import Message, TextChannel
from discord.ext import commands from discord.ext import commands
from discord.utils import find from discord.utils import find
from discord_slash import cog_ext, SlashContext from discord_slash import SlashContext, cog_ext
from discord_slash.utils.manage_commands import create_option from discord_slash.utils.manage_commands import create_option
import jarvis
from jarvis.config import get_config from jarvis.config import get_config
from jarvis.utils import build_embed from jarvis.utils import build_embed
from jarvis.utils.db import DBManager from jarvis.utils.db import DBManager

View file

@ -1,8 +1,9 @@
import jarvis
from discord.ext import commands from discord.ext import commands
from discord_slash import cog_ext from discord_slash import cog_ext
from jarvis import jarvis_self, config, logo
from jarvis.utils import convert_bytesize, build_embed, get_repo_hash import jarvis
from jarvis import config, jarvis_self, logo
from jarvis.utils import build_embed, convert_bytesize, get_repo_hash
from jarvis.utils.field import Field from jarvis.utils.field import Field
@ -17,6 +18,11 @@ class UtilCog(commands.Cog):
self.bot = bot self.bot = bot
self.config = config.get_config() self.config = config.get_config()
@cog_ext.cog_slash(
name="status",
description="Retrieve J.A.R.V.I.S. status",
guild_ids=[578757004059738142],
)
async def _status(self, ctx): async def _status(self, ctx):
title = "J.A.R.V.I.S. Status" title = "J.A.R.V.I.S. Status"
desc = "All systems online" desc = "All systems online"
@ -38,35 +44,14 @@ class UtilCog(commands.Cog):
) )
await ctx.send(embed=embed) await ctx.send(embed=embed)
@cog_ext.cog_slash(
name="status",
description="Retrieve J.A.R.V.I.S. status",
guild_ids=[578757004059738142],
)
async def _status_slash(self, ctx):
await self._status(ctx)
@commands.command(
name="status", description="Retrieve J.A.R.V.I.S. status"
)
async def _status_pre(self, ctx):
await self._status(ctx)
async def _logo(self, ctx):
lo = logo.get_logo(self.config.logo)
await ctx.send(f"```\n{lo}\n```")
@commands.command(name="logo", help="Get the current logo")
async def _logo_pre(self, ctx):
await self._logo(ctx)
@cog_ext.cog_slash( @cog_ext.cog_slash(
name="logo", name="logo",
description="Get the current logo", description="Get the current logo",
guild_ids=[578757004059738142], guild_ids=[578757004059738142],
) )
async def _logo_slash(self, ctx): async def _logo(self, ctx):
await self._logo(ctx) lo = logo.get_logo(self.config.logo)
await ctx.send(f"```\n{lo}\n```")
def setup(bot): def setup(bot):

View file

@ -1,4 +1,5 @@
from yaml import load from yaml import load
from jarvis.utils.db import DBManager from jarvis.utils.db import DBManager
try: try:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

8
jarvis/data/unicode.py Normal file
View file

@ -0,0 +1,8 @@
import json
from os import sep as s
with open(f"json{s}emoji_list.json", encoding="UTF8") as f:
emoji_list = json.load(f)
with open(f"json{s}emoji_data.json", encoding="UTF8") as f:
emoji_data = json.load(f)

View file

@ -1,11 +1,13 @@
from discord.ext import commands
from discord import Embed, Color
from pkgutil import iter_modules
from datetime import datetime from datetime import datetime
import jarvis.cogs from pkgutil import iter_modules
import jarvis.utils.db
import jarvis.config
import git import git
from discord import Color, Embed
from discord.ext import commands
import jarvis.cogs
import jarvis.config
import jarvis.utils.db
__all__ = ["field", "db"] __all__ = ["field", "db"]

View file

@ -1,6 +1,7 @@
import jarvis
from discord.ext import commands from discord.ext import commands
import jarvis
def user_is_bot_admin(): def user_is_bot_admin():
def predicate(ctx): def predicate(ctx):

10
run.py
View file

@ -1,11 +1,13 @@
#!/bin/python3 #!/bin/python3
import jarvis
import git
from pathlib import Path
from multiprocessing import Value, Process, freeze_support
from importlib import reload as ireload from importlib import reload as ireload
from multiprocessing import Process, Value, freeze_support
from pathlib import Path
from time import sleep from time import sleep
import git
import jarvis
def run(): def run():
ctx = None ctx = None