diff --git a/cogs/japanese.py b/cogs/japanese.py deleted file mode 100644 index 88386f8..0000000 --- a/cogs/japanese.py +++ /dev/null @@ -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)) -