# 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 from tajkna import tajkna load_dotenv() token = os.getenv('DISCORD_TOKEN') 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='!', 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"): fras = fras.lower() 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 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) 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", "tastatropos", "deza"] = "tsujte"): if tsujte == "tsujte": await interaction.response.send_message("## Tsuȷte\n-# /tktsujte xyz\n\nTsujte: Tumam tsuȷ tsuȷte na /tktsujte (afto)\nFal: Tumam tsuȷ fal\nSkala: Skala tsuȷ trekakuzam\nTrekaku: Leřa kaku trekaku\nTastatropos: Tropos per tasta trekaku\nDeza: Tropos per bloge deza tsuȷ boto", ephemeral=True) elif tsujte == "fal": await interaction.response.send_message("## Fal\n__Rasmı__ [rs]:\n- ffj&ka: <:a_rsmi:1538685827918331904>\n- luna: <:luna_rsmi:1539053107370004541>\n- sten: <:sten_rsmi:1539053106304909362>\n- tsunagalen: <:tsunaga_rsmi:1539500632866816060>\n__Heřus__ [hr]:\n- ffj&ka: <:a_hrus:1539050541189959780>\n- luna: <:luna_hrus:1539053105159606382>\n- sten: <:sten_hrus:1539053104266354688>\n- tsunagalen: <:tsunaga_hrus:1539500631906197504>\n__Vaha__ [vh]:\n- ffj&ka: <:a_vaha:1539755946224390145>\n- luna: <:luna_vaha:1539869603545489528>\n- sten: <:sten_vaha:1539869602639519754>\n- tsunagalen: <:tsunaga_vaha:1539869601356185600>\n__Kıkı__ [ki]:\n- ffj&ka: <:a_kiki:1540075636528521376>\n- luna: <:luna_kiki:1540075394361729055>\n- sten: <:sten_kiki:1540075393435041852>\n- tsunagalen: <:tsunaga_kiki:1540075637660983386>\n__Ffıosa__ [vi]:\n- ffj&ka: <:a_vios:1540439687553097838>\n- luna: <:luna_vios:1540439405502664794>\n- sten: <:sten_vios:1540439406417289388>\n- tsunagalen: <:tsunaga_vios:1540439621354131568>\n__Kuřo__ [kr]:\n- ffj&ka: <:a_kuro:1542587743656218737>\n- luna: <:luna_kuro:1542587478605561907>\n- sten: <:sten_kuro:1542587479624908840>\n- tsunagalen: <:tsunaga_kuro:1542587474197348513>", ephemeral=True) elif tsujte == "skala": await interaction.response.send_message(file=discord.File("skala.png"), ephemeral=True) elif tsujte == "trekaku": await interaction.response.send_message("## Trekaku\nHaȷzja trekaku __tre__kaku grÿn jam tre fal mono: ffj&ka (<:a_rsmi:1538685827918331904>), luna (<:luna_rsmi:1539053107370004541>), a sten (<:sten_rsmi:1539053106304909362>). Nasıkı hê napaŷat per maxa 185 taȷkna.\n### Kotolı\n- Jıtzam: taȷkna ke jam medzam na xazjı (ttb \"ta\")\n- Sjouzam: taȷkna ke jam medzam na ovařı (ttb \"ak\")\n- Jıtsjou: sılba ke jam jıtzam a sjouzam (ttb \"tak\")\n- Tolkaffj&ka: sılba ke jamnaȷ medzam (ttb \"a\")\n- Atamasten: sten oba ffj&ka (<:atamasten_ttb:1539388726830956704>)\n- Jalakasten: sten una ffj&ka (<:jalakasten_ttb:1539388729402335413>)\n- Obasten: sten oba luna (<:obasten_ttb:1539388723244965969>)\n- Unasten: sten una luna (<:unasten_ttb:1539388722246852669>)\n- Iñesten: sten ıñe luna (<:injesten_ttb:1539388724352389120>)\n- Bsten: sten una ffj&katama (<:bsten_ttb:1539388721248346133>)\n- Psten: sten oba ffj&kalaka (<:psten_ttb:1539388719952429128>)\n- Nılzam: ffj&ka ke jam sten uten luna (<:0a_rsmi:1538685641737379931>)\n### Ffj&ka\nJam taȷkna al ffj&ka per bloge sebjazam na sılba. Fansuka sebjazam aker na ffj&ka (leřakı mıt skala). Lı jam taȷkna uten luna os sten, sıt zam sořı sebjazam mono. Kakukı plus tolkaffj&ka za jıtzam os tolkaffj&ka per pıtkaoc sebjazam.\n### Luna\nJam eksı medzamklaanı ke blogena lunadoko (leřakı mıt skala). Jam kjeře kjeřeklaanı (ke jam kjeře medzam natont) a nı treklaanı (ke jam tre medzam natont).\n### sten\nJam klaanı tont joku tre kjeře medzam ke blogena stendoko. Na skala, kakuyena medzamtumam na paŷat sama ke taȷknatumam tsuȷ stendoko. Gjakenakı joku medzam (utensten a obasten na kjeřeklaanı a al na treklaanı) per maxa sjouzam (leřakı gjaketropos mıt skala). Maxakı jıtsjou mıt jıtzam, za sjouzam. (ttb jam <:ta_rsmi:1538685776445964298> (ta) a <:ak_rsmi:1542582828590567485> (ak) na <:ta_rsmi:1538685776445964298><:ak_rsmi:1542582828590567485> (tak)). Nasıkı tolkaffj&ka melan jıtsjou per pıtkaoc sebjazam. Æn, nasıkı nılzam per lasa sebjazam kundr pıtkaoc os jıtsjou.", ephemeral=True) elif tsujte == "tastatropos": await interaction.response.send_message("## Tastatropos\nTastakı trekaku mıt /tk [latınkaku] [fal] (musnaȷ sentaku fal, kakuyena na rasmıfal sentakunaȷlı). Leřakı ŵam na zam a latınkıřaȷn mıt skala, a sekı fal mıt /tktsujte fal. Jamæn joku taȷkna andr per apu kaku:\n- [ ] (Speȷsutaȷkna): Plÿvıktı jıtzam kena sjouzam na tkboto, sıt blı joku jıtzam dekılı na tsataȷn (ttb blı \"aku\" <:a_rsmi:1538685827918331904><:ku_rsmi:1538685662532997130>, <:ak_rsmi:1542582828590567485><:u_rsmi:1538685825750016051> naȷ). Lı vıl andr, sıt brÿkı speȷsutaȷkna per lasa (ttb, blı \"ak u\" <:ak_rsmi:1542582828590567485><:u_rsmi:1538685825750016051>). Brÿkı speȷsutaȷkna per nılzam melan sebjazam æn.\n- [-]: Nasıkı per pıtkaoc sebjazam lı vıl nadlabdel plus sebjazamtasta (tatœ sama \"xuuu\" \"xu--\").\n- [|]: Nasıkı per suřuk kotosen.\n- [.] os [,]: Nasıkı per ventpık (<:vent_rsmi:1539673387561918575>).\n- [!]: Nasıkı per asobpık (<:asob_rsmi:1539673386093907978>).\n- [\" \"]: Nasıkı per škekso trekaku.\n- [0-]: Brÿkı 0 nalık medzam per maxa nilzam.\n- [:] a [;]: Nasıkı : za falxobıtnamæ (lesekı za namæ na /tktsujte fal) per kavařı kıřaȷnfal za. Nasıkı ; per suřuk na snano fal made.\n- [_] Nasıkı per maxa oxaře kıřaȷn (per sımproc skalamaxa os kıřaȷnrısomaxa osos).", ephemeral=True) elif tsujte == "deza": await interaction.response.send_message("Blogekı deza na gnařısu na https://git.viossa.net/gnarisu/tkboto/issues dezalı. Dezapu no dankı! ^-^", ephemeral=True) client.run(token)