[refactor]: Move command to separate cog
This commit is contained in:
parent
d905aca2fe
commit
d8d8597ade
86
bot.py
86
bot.py
@ -8,9 +8,6 @@ from json import load, dump
|
|||||||
from os import listdir, getenv
|
from os import listdir, getenv
|
||||||
from os.path import isfile, join, getsize
|
from os.path import isfile, join, getsize
|
||||||
|
|
||||||
import utils.XOR
|
|
||||||
import utils.FFC
|
|
||||||
|
|
||||||
import discord
|
import discord
|
||||||
from discord.utils import get
|
from discord.utils import get
|
||||||
from discord.ext import commands, tasks
|
from discord.ext import commands, tasks
|
||||||
@ -35,7 +32,6 @@ import Levenshtein
|
|||||||
import DiscordUtils
|
import DiscordUtils
|
||||||
from utils.emojis import *
|
from utils.emojis import *
|
||||||
from utils.checks import *
|
from utils.checks import *
|
||||||
from utils.translate import *
|
|
||||||
from cogs.music import *
|
from cogs.music import *
|
||||||
TOKEN = getenv('NATSUKO_TOKEN')
|
TOKEN = getenv('NATSUKO_TOKEN')
|
||||||
my_id = 710089471835504672
|
my_id = 710089471835504672
|
||||||
@ -207,88 +203,6 @@ async def clear(ctx, count: int):
|
|||||||
await ctx.channel.purge(limit=count)
|
await ctx.channel.purge(limit=count)
|
||||||
|
|
||||||
|
|
||||||
@bot.group(brief="$commands_HTiP_brief")
|
|
||||||
async def HTiP(ctx):
|
|
||||||
region = ctx.message.author.id
|
|
||||||
region = db.members.find_one({"id": region})["language"]
|
|
||||||
|
|
||||||
if ctx.invoked_subcommand is None:
|
|
||||||
await ctx.send(translate('$commands_HTiP_subcommand', region))
|
|
||||||
|
|
||||||
abc = str(ctx.message.attachments[0].filename)[-3:]
|
|
||||||
if not ctx.message.attachments and abc != 'jpg' and abc != 'png':
|
|
||||||
await ctx.send(translate('$commands_HTiP_picNotExists', region))
|
|
||||||
|
|
||||||
else:
|
|
||||||
url = ctx.message.attachments[0].url
|
|
||||||
filename = ctx.message.attachments[0].filename
|
|
||||||
img = requests.get(url)
|
|
||||||
img_file = open(filename, 'wb')
|
|
||||||
img_file.write(img.content)
|
|
||||||
img_file.close()
|
|
||||||
|
|
||||||
|
|
||||||
@HTiP.command(brief="$commands_HTiP_w_brief")
|
|
||||||
async def w(ctx, *, text: str):
|
|
||||||
region = ctx.message.author.id
|
|
||||||
region = db.members.find_one({"id": region})["language"]
|
|
||||||
|
|
||||||
if text is None:
|
|
||||||
await ctx.send(translate('$commands_HTiP_w_textNotExists', region))
|
|
||||||
return None
|
|
||||||
|
|
||||||
if text.split(' ')[-1].startswith('key='):
|
|
||||||
key = text.split(' ')[-1][4:]
|
|
||||||
text = ' '.join(text.split(' ')[:-1])
|
|
||||||
else:
|
|
||||||
key = None
|
|
||||||
|
|
||||||
if key is not None:
|
|
||||||
text = XOR.char_encode(text, key)
|
|
||||||
|
|
||||||
abc = str(ctx.message.attachments[0].filename)[-3:]
|
|
||||||
if not ctx.message.attachments and abc != 'jpg' and abc != 'png':
|
|
||||||
await ctx.send(translate('$commands_HTiP_picNotExists', region))
|
|
||||||
|
|
||||||
else:
|
|
||||||
url = ctx.message.attachments[0].url
|
|
||||||
filename = ctx.message.attachments[0].filename
|
|
||||||
img = requests.get(url)
|
|
||||||
img_file = open(filename, 'wb')
|
|
||||||
img_file.write(img.content)
|
|
||||||
img_file.close()
|
|
||||||
|
|
||||||
FFC.write(filename, 'secret.' + abc, text)
|
|
||||||
with open('secret.' + abc, 'rb') as f:
|
|
||||||
file = discord.File(f)
|
|
||||||
await ctx.send(file=file)
|
|
||||||
|
|
||||||
|
|
||||||
@HTiP.command(brief="$commands_HTiP_r_brief")
|
|
||||||
async def r(ctx, key: str = None):
|
|
||||||
region = ctx.message.author.id
|
|
||||||
region = db.members.find_one({"id": region})["language"]
|
|
||||||
|
|
||||||
try:
|
|
||||||
abc = str(ctx.message.attachments[0].filename)[-3:]
|
|
||||||
if not ctx.message.attachments and abc != 'jpg' and abc != 'png':
|
|
||||||
await ctx.send(translate('$commands_HTiP_picNotExists', region))
|
|
||||||
except IndexError:
|
|
||||||
await ctx.send(translate('$commands_HTiP_picNotExists', region))
|
|
||||||
|
|
||||||
else:
|
|
||||||
url = ctx.message.attachments[0].url
|
|
||||||
filename = ctx.message.attachments[0].filename
|
|
||||||
img = requests.get(url)
|
|
||||||
img_file = open('C:\\Users\\gleb\\PycharmProjects\\systemnik\\' + filename, 'wb')
|
|
||||||
img_file.write(img.content)
|
|
||||||
img_file.close()
|
|
||||||
|
|
||||||
secret_text = FFC.read(filename)
|
|
||||||
if key is not None:
|
|
||||||
secret_text = XOR.char_encode(secret_text, key)
|
|
||||||
await ctx.send(secret_text)
|
|
||||||
|
|
||||||
|
|
||||||
@bot.command(name='eval')
|
@bot.command(name='eval')
|
||||||
@commands.check(is_secret)
|
@commands.check(is_secret)
|
||||||
|
62
cogs/fun.py
Normal file
62
cogs/fun.py
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
import discord
|
||||||
|
import requests
|
||||||
|
|
||||||
|
import utils.XOR as XOR
|
||||||
|
import utils.FFC as FFC
|
||||||
|
|
||||||
|
from discord import app_commands
|
||||||
|
from discord.ext import commands
|
||||||
|
from os import remove
|
||||||
|
from os.path import splitext, join
|
||||||
|
|
||||||
|
tmp_dir = "tmp"
|
||||||
|
|
||||||
|
class Fun(commands.Cog):
|
||||||
|
htip_gr = app_commands.Group(name="htip", description="Hide text in picture")
|
||||||
|
|
||||||
|
@htip_gr.command()
|
||||||
|
async def write(self, itr: discord.Interaction, text: str, pic: discord.Attachment, key: str = None):
|
||||||
|
if key is not None:
|
||||||
|
text = XOR.char_encode(text, key)
|
||||||
|
|
||||||
|
filename = f"{itr.id}.pic.filename"
|
||||||
|
fln, ext = splitext(filename)
|
||||||
|
if ext not in ('.jpg', '.png'):
|
||||||
|
await itr.response.send_message("Supported only JPEG and PNG")
|
||||||
|
return
|
||||||
|
|
||||||
|
url = pic.url
|
||||||
|
img = requests.get(url)
|
||||||
|
with open(join(tmp_dir, filename), 'wb') as img_file:
|
||||||
|
img_file.write(img.content)
|
||||||
|
|
||||||
|
FFC.write(join(tmp_dir, filename), join(tmp_dir, f'{fln}.secret{ext}'), text)
|
||||||
|
with open(join(tmp_dir, f'{fln}.secret{ext}'), 'rb') as f:
|
||||||
|
await itr.response.send_message(file=discord.File(f))
|
||||||
|
remove(join(tmp_dir, filename))
|
||||||
|
remove(join(tmp_dir, f'{fln}.secret{ext}'))
|
||||||
|
|
||||||
|
|
||||||
|
@htip_gr.command()
|
||||||
|
async def read(self, itr: discord.Interaction, pic: discord.Attachment, key: str = None):
|
||||||
|
filename = f"{itr.id}.pic.filename"
|
||||||
|
|
||||||
|
fln, ext = splitext(filename)
|
||||||
|
if ext not in ('.jpg', '.png'):
|
||||||
|
await itr.response.send_message('Supported only JPEG or PNG')
|
||||||
|
return
|
||||||
|
|
||||||
|
url = pic.url
|
||||||
|
img = requests.get(url)
|
||||||
|
with open(join(tmp_dir, filename), 'wb') as img_file:
|
||||||
|
img_file.write(img.content)
|
||||||
|
|
||||||
|
secret_text = FFC.read(join(tmp_dir, filename))
|
||||||
|
if key is not None:
|
||||||
|
secret_text = XOR.char_encode(secret_text, key)
|
||||||
|
await itr.response.send_message(secret_text)
|
||||||
|
|
||||||
|
remove(join(tmp_dir, filename))
|
||||||
|
|
||||||
|
async def setup(bot):
|
||||||
|
await bot.add_cog(Fun())
|
Reference in New Issue
Block a user