# General setup and stuff based on a tutorial by @TechWithTim on Youtube import discord from discord.ext import commands from dotenv import load_dotenv import os from typing import Literal import asyncio from tajkna import tajkna load_dotenv() token = os.getenv('DISCORD_TOKEN') svardare = {} falnamae = { "rasmi": "_rsmi", "rs": "_rsmi", "herus": "_hrus", "hr": "_hrus", "vaha": "_vaha", "vh": "_vaha", "kiki": "_kiki", "ki": "_kiki", "viosa": "_vios", "vi": "_vios", "kuro": "_kuro", "kr": "_kuro" } szam = ('a','e','i','o','u') mzam = ('b','c','d','f','g','h','j','k','l','m','n','p','q','r','4','s','t','v','w','x','y','z','0') ozamnaj = ('x', 'j', 'c', 'q', 'y', 'p', 'r', 'b', '0') # zam ke jamkinaj na sjouzam def ozv(kir): for k in ozamnaj: if k == kir: return 0 return 1 def szomz(kir): for k in szam: if k == kir: return 1 for k in mzam: if k == kir: return 0 return -1 while token is None: token = os.getenv('DISCORD_TOKEN') intents = discord.Intents.default() intents.message_content = True # Client, syncing, and command tree setup stuff based off of a tutorial by @James_S on Youtube class Client(commands.Bot): pass # async def on_ready(self): # print("vona un") # try: # guild = discord.Object(id=) # synced = await self.tree.sync(guild=guild) # print(f'Synced {len(synced)} commands') # except Exception as e: # print(f'Error syncing commands: {e}') # # guild = discord.Object(id=) client = Client(command_prefix='\0', intents=intents) @client.tree.command(name="tk", description="Kavařı latınkaku na trekaku made")#, guild=guild) async def tk(interaction: discord.Interaction, fras: str, fal: Literal["rasmi", "rs", "herus", "hr", "vaha", "vh", "kiki", "ki", "viosa", "vi", "kuro", "kr"] = "rasmi"): if len(fras) > 2000: await interaction.response.send_message("Obapıtka fras!", ephemeral=True) return fal = falnamae[fal] trekaku = [""] rofaj = ["fv\""] des = '' bidra = False nil = False falve = False falfal = "" ekso = -1 pitka = 0 kaj = set() doko = len(fras) kajkaku = "" oharetk = True obakaku = len(interaction.user.mention) + 6 for k in reversed(fras): doko -= 1 if ekso == -1: k = k.lower() if falve: falfal = k + falfal if len(falfal) >= 2: if falfal in falnamae.keys(): for kk in range(len(rofaj)-1,0, -1): if rofaj[kk] == "fv\"": break elif len(rofaj[kk]) > 5 and rofaj[kk][5:] != "_andr" : rofaj[kk] = rofaj[kk][:-5] + falnamae[falfal] else: for i in range(doko, doko + 3): kaj.add(i) falfal = "" rofaj.append("fv\"") falve = False elif ekso > -1 and k != '\"': rofaj.append(k) ## elif elif k == '|' or k == '!' or k == '.' or k == ',' or k == '\"' or k == ':' or k == ';' or k == '_': if szomz(des) == 1: if not bidra and not nil: rofaj.append(des + fal) des = '' elif des != '': kaj.add(doko + 1) des = '' if pitka > 0: for i in range(doko + 1, doko + pitka + 1): kaj.add(i) pitka = 0 if k == '|': rofaj.append('\n') elif k == '!': rofaj.append("asob" + fal) elif k == '.' or k == ',': rofaj.append("vent" + fal) elif k == '\"': if ekso > -1: ekso = -1 else: ekso = doko elif k == ':': falve = True elif k == ';': rofaj.append("fv\"") elif k == '_': rofaj.append("oxare_andr") bidra = False nil = False elif szomz(k) == 1: if k == des and nil: rofaj.append('0'+des+fal) des = '' if szomz(des) == 0: rofaj.append(k + des + fal) bidra = True elif szomz(des) == 1 and not nil: if not bidra or k == des: rofaj.append(des+fal) else: bidra = False if pitka > 0: for i in range(0, pitka): rofaj.append(k+fal) pitka = 0 des = k nil = False elif szomz(k) == 0: if pitka > 0: for i in range(doko + 1, doko + pitka + 1): kaj.add(i) pitka = 0 bidra = False if szomz(des) == 1 and not nil: rofaj.append(k+des+fal) des = '' else: if szomz(des) == 0: kaj.add(doko+1) if ozv(k) == 1: des = k else: kaj.add(doko) des = '' nil = False elif k == ' ': if szomz(des) == 1: if not bidra and not nil: rofaj.append(des + fal) nil = True elif des != '': kaj.add(doko+1) des = '' if pitka > 0: for i in range(doko + 1, doko + pitka + 1): kaj.add(i) pitka = 0 bidra = False elif k == '-': pitka += 1 else: if des != '': kaj.add(des) kaj.add(doko) bidra = False if pitka > 0: for i in range(doko, doko + pitka): kaj.add(i) if ekso > -1: kaj.add(ekso) if szomz(des) == 1: if not bidra: rofaj.append(des+fal) elif des != '': kaj.add(doko) while len(rofaj) > 0: kir = rofaj[len(rofaj)-1] if kir == 'fv\"': rofaj.pop() elif len(kir) > 5: trekaku[0] += tajkna[rofaj.pop()] else: trekaku[0] += rofaj.pop() for k in trekaku[0]: if k != '\n': oharetk = False if len(kaj) > 0: for k in range(0, len(fras)): if k in kaj: if not k-1 in kaj: kajkaku += "**" kajkaku += fras[k] if not k+1 in kaj: kajkaku += "**" else: kajkaku += fras[k] while len(trekaku[len(trekaku)-1]) > 2000-obakaku: lasa = 1999-obakaku kesjteve = False while trekaku[len(trekaku)-1][lasa] != '\n' and lasa > 999: lasa -= 1 if lasa <= 999: lasa = 1999-obakaku while trekaku[len(trekaku)-1][lasa] != '>': lasa -= 1 lasa += 1 else: kesjteve = True if kesjteve: trekaku.append(trekaku[len(trekaku)-1][lasa+1:]) else: trekaku.append(trekaku[len(trekaku)-1][lasa:]) trekaku[len(trekaku)-2] = trekaku[len(trekaku)-2][:lasa] if len(kaj) > 0: await interaction.response.send_message("Gomen! Fštonaȷ un gı fxu kıřaȷn afto:\n" + kajkaku, ephemeral=True) elif oharetk: await interaction.response.send_message("Jam nıl kıřaȷn!", ephemeral=True) else: await interaction.response.send_message("Mj&a..", ephemeral=True, delete_after=0) if interaction.user.id in svardare: await svardare[interaction.user.id].reply(interaction.user.mention+': '+trekaku[0], silent=True) svardare.pop(interaction.user.id) else: await interaction.channel.send(interaction.user.mention+': '+trekaku[0], silent=True) for t in range(1,len(trekaku)): await interaction.channel.send('['+str(t+1)+']'+interaction.user.mention+': '+trekaku[t], silent=True) @client.tree.command(name = "tktsujte", description = "Leřa oba trekaku")#, guild=guild) async def tktsujte(interaction: discord.Interaction, tsujte: Literal["tsujte", "fal", "skala", "trekaku", "bototropos", "tastatropos", "deza"] = "tsujte"): if tsujte == "skala": await interaction.response.send_message(file=discord.File("skala.png"), ephemeral=True) else: with open("tsujte.txt", encoding="utf_16_le") as m: mlafu = m.read() xazji = mlafu.find("&@%"+tsujte+'[')+len(tsujte)+5 ovari = mlafu[xazji:].find("]&@%")-1 teksti = mlafu[xazji:xazji+ovari] await interaction.response.send_message(teksti, ephemeral=True) @client.tree.context_menu(name="svar")#, guild=guild) async def svar(interaction: discord.Interaction, message: discord.Message): await interaction.response.send_message("svartı afto", ephemeral=True, delete_after=10) if not interaction.user.id in svardare: svardare.update({interaction.user.id : message}) else: svardare[interaction.user.id] = message await asyncio.sleep(10) await interaction.edit_original_response(content = "svartınaȷ") if interaction.user.id in svardare and svardare[interaction.user.id] == message: svardare.pop(interaction.user.id) client.run(token)