[refactor]: Removed unuseful cog
This commit is contained in:
parent
21d41ee107
commit
e9d1fa7a1f
179
cogs/japanese.py
179
cogs/japanese.py
@ -1,179 +0,0 @@
|
|||||||
import discord
|
|
||||||
import sqlite3
|
|
||||||
import romkan
|
|
||||||
|
|
||||||
from discord import app_commands
|
|
||||||
from discord.ext import commands
|
|
||||||
|
|
||||||
class Group(app_commands.Group):
|
|
||||||
def __init__(self, db, name):
|
|
||||||
self.db = db
|
|
||||||
super().__init__(name=name)
|
|
||||||
|
|
||||||
def flot_parser(self, string: str) -> str:
|
|
||||||
output = ""
|
|
||||||
counter = 1
|
|
||||||
|
|
||||||
# for marpheme in string:
|
|
||||||
# if len(marpheme) == 0:
|
|
||||||
# continue
|
|
||||||
# elif marpheme[0] == '$':
|
|
||||||
# continue
|
|
||||||
# elif marpheme[0] == '&':
|
|
||||||
# output += f" {counter}. "
|
|
||||||
# counter += 1
|
|
||||||
# if len(marpheme) == 1: continue
|
|
||||||
# if marpheme[1] == '*':
|
|
||||||
# if marpheme[1:] == "3":
|
|
||||||
# output += "〜の"
|
|
||||||
# elif marpheme[0] == '@':
|
|
||||||
# if marpheme[1:] == "3":
|
|
||||||
# output += " *и и.п.*"
|
|
||||||
# elif marpheme[0] == ';':
|
|
||||||
# output += '; '
|
|
||||||
# elif marpheme[0] == ',':
|
|
||||||
# output += ', '
|
|
||||||
# else:
|
|
||||||
# output += marpheme
|
|
||||||
|
|
||||||
print(string)
|
|
||||||
i = 0
|
|
||||||
|
|
||||||
while i < len(string):
|
|
||||||
char = string[i]
|
|
||||||
if char == '&':
|
|
||||||
output += f" {counter}. "
|
|
||||||
counter += 1
|
|
||||||
elif char == ';':
|
|
||||||
output += "; "
|
|
||||||
elif char == ',':
|
|
||||||
output += ', '
|
|
||||||
elif char == '(':
|
|
||||||
output += ' ('
|
|
||||||
elif char in ('\\', '$'):
|
|
||||||
i += 1
|
|
||||||
continue
|
|
||||||
elif char == '*':
|
|
||||||
number = ''
|
|
||||||
|
|
||||||
if string[i+1] == '*':
|
|
||||||
i += 2
|
|
||||||
while string[i].isdigit():
|
|
||||||
number += string[i]
|
|
||||||
i += 1
|
|
||||||
i -= 1
|
|
||||||
if number == '2':
|
|
||||||
output += "〜のある"
|
|
||||||
else:
|
|
||||||
i += 1
|
|
||||||
while string[i].isdigit():
|
|
||||||
number += string[i]
|
|
||||||
i += 1
|
|
||||||
i -= 1
|
|
||||||
if number == '2':
|
|
||||||
output += "〜な"
|
|
||||||
elif number == "3":
|
|
||||||
output += "〜の"
|
|
||||||
elif number == '7':
|
|
||||||
output += "〜たる"
|
|
||||||
|
|
||||||
elif char == '@':
|
|
||||||
number = ''
|
|
||||||
i += 1
|
|
||||||
while string[i].isdigit():
|
|
||||||
number += string[i]
|
|
||||||
i += 1
|
|
||||||
i -= 1
|
|
||||||
print(number)
|
|
||||||
if number == "3":
|
|
||||||
output += " *и т.п.*"
|
|
||||||
|
|
||||||
else:
|
|
||||||
output += char
|
|
||||||
|
|
||||||
i += 1
|
|
||||||
|
|
||||||
|
|
||||||
return output
|
|
||||||
|
|
||||||
@app_commands.command(name="копирайты")
|
|
||||||
async def copyrights(self, inter):
|
|
||||||
await inter.response.send_message("Эта функция основана на базе "\
|
|
||||||
"данных проекта Яркси (http://yarxi.ru/)", ephemeral=True)
|
|
||||||
|
|
||||||
@app_commands.command(name="поиск_кандзи")
|
|
||||||
@app_commands.describe(kanji="Кандзи, который надо найти")
|
|
||||||
async def kanji_search(self, inter, kanji: str):
|
|
||||||
kanji = ord(kanji[0])
|
|
||||||
data = self.db.execute(f"SELECT Nomer, RusNick, Onyomi, Kunyomi, Russian FROM Kanji WHERE Uncd = {kanji}").fetchall()[0]
|
|
||||||
await inter.response.send_message(data)
|
|
||||||
|
|
||||||
@app_commands.command(name="поиск_слов")
|
|
||||||
@app_commands.rename(meaning="значение", pronounsing="произношение")
|
|
||||||
@app_commands.describe(pronounsing="ТОЛЬКО НА РОМАНДЗИ")
|
|
||||||
async def word_search(self, inter, meaning: str=None, pronounsing: str=None):
|
|
||||||
if meaning is None and pronounsing is None:
|
|
||||||
await inter.response.send_message("Нельзя просто так без всего найти слово")
|
|
||||||
return
|
|
||||||
if meaning is None:
|
|
||||||
searcher = f"{pronounsing}%"
|
|
||||||
elif pronounsing is None:
|
|
||||||
searcher = f"%{meaning}%"
|
|
||||||
predata = self.db.execute(f"SELECT K1, K2, K3, K4, Kana, Reading, Russian From Tango WHERE Russian Like '{searcher}'").fetchall()[:10]
|
|
||||||
data = []
|
|
||||||
for word in predata:
|
|
||||||
kanjis = []
|
|
||||||
kana = ""
|
|
||||||
number = ""
|
|
||||||
for K in word[:4]:
|
|
||||||
if K == 0: break
|
|
||||||
kanjis.append( chr(self.db.execute(f"SELECT Uncd FROM Kanji WHERE Nomer = {K}").fetchone()[0]) )
|
|
||||||
for char in word[4]:
|
|
||||||
if char.isdigit():
|
|
||||||
if kana != "":
|
|
||||||
number = int(number)
|
|
||||||
if kana.startswith('^'):
|
|
||||||
kana = romkan.to_katakana(kana[1:])
|
|
||||||
else:
|
|
||||||
kana = romkan.to_hiragana(kana)
|
|
||||||
kanjis.insert(number, kana)
|
|
||||||
number = kana = ""
|
|
||||||
|
|
||||||
number += char
|
|
||||||
else:
|
|
||||||
kana += char
|
|
||||||
|
|
||||||
if number != "":
|
|
||||||
number = int(number)
|
|
||||||
if kana.startswith('^'):
|
|
||||||
kana = romkan.to_katakana(kana[1:])
|
|
||||||
else:
|
|
||||||
kana = romkan.to_hiragana(kana)
|
|
||||||
kanjis.insert(number, kana)
|
|
||||||
|
|
||||||
print('!!', word[5])
|
|
||||||
data.append(f"**{''.join(kanjis)}** [{romkan.to_hiragana(word[5])}] {self.flot_parser(word[6])}")
|
|
||||||
if data:
|
|
||||||
await inter.response.send_message("\n".join(data))
|
|
||||||
else:
|
|
||||||
await inter.response.send_message("Ничего не нашла")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Japanese(commands.Cog):
|
|
||||||
def __init__(self, bot):
|
|
||||||
self.bot = bot
|
|
||||||
|
|
||||||
async def cog_load(self):
|
|
||||||
self.sqlite_connection = sqlite3.connect('yarxi.db')
|
|
||||||
cursor = self.sqlite_connection.cursor()
|
|
||||||
self.bot.tree.add_command(Group(db=cursor, name="яп-словарь"))
|
|
||||||
|
|
||||||
async def cog_unload(self):
|
|
||||||
self.sqlite_connection.close()
|
|
||||||
self.bot.tree.remove_command("яп-ловарь")
|
|
||||||
|
|
||||||
|
|
||||||
async def setup(bot):
|
|
||||||
await bot.add_cog(Japanese(bot))
|
|
||||||
|
|
Reference in New Issue
Block a user