Кодування 3 || Емодзі





...

seed: |NO SEED|

Made by GGsmou
import asyncio import js from pyodide import ffi import random ALLDIC = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', 'ґ', 'є', 'і', 'ї', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'Ґ', 'Є', 'І', 'Ї', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '^', '_', '`', '{', '|', '}', '~', '№', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' '] ALLEMOJI = ['😀', '😃', '😄', '😁', '😆', '😅', '😂', '🤣', '😊', '😇', '🙂', '🙃', '😉', '😌', '😍', '🥰', '😘', '😗', '😙', '😚', '😋', '😛', '😝', '😜', '🤪', '🤨', '🧐', '🤓', '😎', '🤩', '🥳', '😏', '😒', '😞', '😔', '😟', '😕', '🙁', '😣', '😖', '😫', '😩', '🥺', '😢', '😭', '😤', '😠', '😡', '🤬', '🤯', '😳', '🥵', '🥶', '😱', '😨', '😰', '😥', '😓', '🤗', '🤔', '🤭', '🤫', '🤥', '😶', '😐', '😑', '😬', '🙄', '😯', '😦', '😧', '😮', '😲', '🥱', '😴', '🤤', '😪', '😵', '🤐', '🥴', '🤢', '🤮', '🤧', '😷', '🤒', '🤕', '🤑', '🤠', '😈', '👿', '👹', '👺', '🤡', '💩', '👻', '💀', '👽', '👾', '🤖', '🎃', '😺', '😸', '😹', '😻', '😼', '😽', '🙀', '😿', '🤚', '🖐', '✋', '🖖', '👌', '🤏', '🤞', '🤟', '🤘', '🤙', '👈', '👉', '👆', '🖕', '👇', '🐔', '👍', '👎', '✊', '👊', '🤛', '🤜', '👏', '🙌', '👐', '🤲', '🤝', '🙏', '💅', '🤳', '💪', '🦾', '🦵', '🦿', '🦶', '👣', '👂', '🦻', '👃', '🧠', '🦷', '🦴', '👀', '👁', '👅', '👄', '💋', '🌂', '🧵', '🧶', '👓', '🕶', '🥽', '🥼', '🦺', '👔', '👕', '👖', '🧣', '🧤', '🧥', '🧦', '👗', '👘', '🥻', '🩱', '🩲', '🩳', '👙', '👚', '👛', '👜', '👝', '🎒', '👞', '👟', '🥾', '🥿', '👠', '👡', '🩰', '👢', '👑', '👒', '🎩', '🎓', '🧢', '⛑', '💄', '💍', '🍎', '🍐', '🍊', '🍋', '🍌', '🍉', '🍇', '🍓', '🍈', '🍒', '🍑', '🥭', '🍍', '🥥', '🥝', '🍅', '🍆', '🥑', '🥦', '🥬', '🥒', '🌶', '🌽', '🥕', '🧄', '🧅', '🥔', '🍠', '🥐', '🥯', '🍞', '🥖', '🥨', '🧀', '🥚', '🍳', '🧈', '🥞', '🏀', '🏈', '🥎', '🎾', '🏐', '🏉', '🥏', '🎱', '🪀', '🏓', '🏸', '🚕', '🚙', '🚌', '🚎', '🏎', '🚓', '🚑', '🚒', '🚐', '🚚', '🚛', '📱', '📲', '💻', '🖥', '🖨', '🖱', '🖲', '🕹', '🗜', '💽', '💾', '💿', '📀', '📼', '📷', '📸', '📹', '🎥', '📽', '🎞', '📞', '📟', '📠', '📺', '📻', '🎙', '🎚', '🎛', '🧭', '⏱', '⏲', '⏰', '🕰', '⏳', '📡', '🔋', '🔌', '💡', '🔦', '🕯', '🪔', '🧯', '🛢', '💸', '💵', '💴', '💶', '💷', '💰', '💳', '💎', '🧰', '🔧', '🔨', '⚒', '🛠', '⛏', '🔩', '🧱', '⛓', '🧲', '🔫', '💣', '🧨', '🪓', '🔪', '🗡', '🛡', '🚬', '🏺', '🔮', '📿', '🧿', '💈', '🔭', '🔬', '🕳', '🩹', '🩺', '💊', '💉', '🩸', '🧬', '🦠', '🧫', '🧪', '🌡', '🧹', '🧺', '🧻', '🚽', '🚰', '🚿', '🛁', '🛀', '🧼', '🪒', '🧽', '🧴', '🛎', '🔑', '🗝', '🚪', '🪑', '🛋', '🛏', '🛌', '🧸', '🖼', '🛍', '🛒', '🎁', '🎈', '🎏', '🎀', '🎊', '🎉', '🎎', '🏮', '🎐', '🧧', '📩', '📨', '📧', '💌', '📥', '📤', '📦', '🏷', '📪', '📫', '📬', '📭', '📮', '📯', '📜', '📃', '📄', '📑', '🧾', '📊', '📈', '📉', '🗒', '🗓', '📆', '📅', '🗑', '📇', '🗃', '🗳', '🗄', '📋', '📁', '📂', '🗂', '🗞', '📰', '📓', '📔', '📒', '📕', '📗', '📘', '📙', '📚', '📖', '🔖', '🧷', '🔗', '📎', '🖇', '📐', '📏', '🧮', '📌', '📍', '🖊', '🖋', '🖌', '🖍', '📝', '🔍', '🔎', '🔏', '🔐', '🔒', '🧡', '💛', '💚', '💙', '💜', '🖤', '🤍', '🤎', '💔', '💕', '💞', '💓', '💗', '💖', '💘', '💝', '🟠', '🟡', '🟢', '🔵', '🟣', '🟤', '🔺', '🔻', '🔸', '🔹', '🔶', '🟧', '🟨', '🟩', '🟦', '🟪', '🏴', '🏁', '🚩', '🚧', '🚦', '🚥', '🗺', '🗿', '🗽', '🗼', '🗻', '🏕', '🏀', '🍁', '🍄', '🐚', '🪐', '🌝', '🌚', '☄', '💥', '🔥', '🐷', '🐸'] emojiShuffle = ['😀', '😃', '😄', '😁', '😆', '😅', '😂', '🤣', '😊', '😇', '🙂', '🙃', '😉', '😌', '😍', '🥰', '😘', '😗', '😙', '😚', '😋', '😛', '😝', '😜', '🤪', '🤨', '🧐', '🤓', '😎', '🤩', '🥳', '😏', '😒', '😞', '😔', '😟', '😕', '🙁', '😣', '😖', '😫', '😩', '🥺', '😢', '😭', '😤', '😠', '😡', '🤬', '🤯', '😳', '🥵', '🥶', '😱', '😨', '😰', '😥', '😓', '🤗', '🤔', '🤭', '🤫', '🤥', '😶', '😐', '😑', '😬', '🙄', '😯', '😦', '😧', '😮', '😲', '🥱', '😴', '🤤', '😪', '😵', '🤐', '🥴', '🤢', '🤮', '🤧', '😷', '🤒', '🤕', '🤑', '🤠', '😈', '👿', '👹', '👺', '🤡', '💩', '👻', '💀', '👽', '👾', '🤖', '🎃', '😺', '😸', '😹', '😻', '😼', '😽', '🙀', '😿', '🤚', '🖐', '✋', '🖖', '👌', '🤏', '🤞', '🤟', '🤘', '🤙', '👈', '👉', '👆', '🖕', '👇', '🐔', '👍', '👎', '✊', '👊', '🤛', '🤜', '👏', '🙌', '👐', '🤲', '🤝', '🙏', '💅', '🤳', '💪', '🦾', '🦵', '🦿', '🦶', '👣', '👂', '🦻', '👃', '🧠', '🦷', '🦴', '👀', '👁', '👅', '👄', '💋', '🌂', '🧵', '🧶', '👓', '🕶', '🥽', '🥼', '🦺', '👔', '👕', '👖', '🧣', '🧤', '🧥', '🧦', '👗', '👘', '🥻', '🩱', '🩲', '🩳', '👙', '👚', '👛', '👜', '👝', '🎒', '👞', '👟', '🥾', '🥿', '👠', '👡', '🩰', '👢', '👑', '👒', '🎩', '🎓', '🧢', '⛑', '💄', '💍', '🍎', '🍐', '🍊', '🍋', '🍌', '🍉', '🍇', '🍓', '🍈', '🍒', '🍑', '🥭', '🍍', '🥥', '🥝', '🍅', '🍆', '🥑', '🥦', '🥬', '🥒', '🌶', '🌽', '🥕', '🧄', '🧅', '🥔', '🍠', '🥐', '🥯', '🍞', '🥖', '🥨', '🧀', '🥚', '🍳', '🧈', '🥞', '🏀', '🏈', '🥎', '🎾', '🏐', '🏉', '🥏', '🎱', '🪀', '🏓', '🏸', '🚕', '🚙', '🚌', '🚎', '🏎', '🚓', '🚑', '🚒', '🚐', '🚚', '🚛', '📱', '📲', '💻', '🖥', '🖨', '🖱', '🖲', '🕹', '🗜', '💽', '💾', '💿', '📀', '📼', '📷', '📸', '📹', '🎥', '📽', '🎞', '📞', '📟', '📠', '📺', '📻', '🎙', '🎚', '🎛', '🧭', '⏱', '⏲', '⏰', '🕰', '⏳', '📡', '🔋', '🔌', '💡', '🔦', '🕯', '🪔', '🧯', '🛢', '💸', '💵', '💴', '💶', '💷', '💰', '💳', '💎', '🧰', '🔧', '🔨', '⚒', '🛠', '⛏', '🔩', '🧱', '⛓', '🧲', '🔫', '💣', '🧨', '🪓', '🔪', '🗡', '🛡', '🚬', '🏺', '🔮', '📿', '🧿', '💈', '🔭', '🔬', '🕳', '🩹', '🩺', '💊', '💉', '🩸', '🧬', '🦠', '🧫', '🧪', '🌡', '🧹', '🧺', '🧻', '🚽', '🚰', '🚿', '🛁', '🛀', '🧼', '🪒', '🧽', '🧴', '🛎', '🔑', '🗝', '🚪', '🪑', '🛋', '🛏', '🛌', '🧸', '🖼', '🛍', '🛒', '🎁', '🎈', '🎏', '🎀', '🎊', '🎉', '🎎', '🏮', '🎐', '🧧', '📩', '📨', '📧', '💌', '📥', '📤', '📦', '🏷', '📪', '📫', '📬', '📭', '📮', '📯', '📜', '📃', '📄', '📑', '🧾', '📊', '📈', '📉', '🗒', '🗓', '📆', '📅', '🗑', '📇', '🗃', '🗳', '🗄', '📋', '📁', '📂', '🗂', '🗞', '📰', '📓', '📔', '📒', '📕', '📗', '📘', '📙', '📚', '📖', '🔖', '🧷', '🔗', '📎', '🖇', '📐', '📏', '🧮', '📌', '📍', '🖊', '🖋', '🖌', '🖍', '📝', '🔍', '🔎', '🔏', '🔐', '🔒', '🧡', '💛', '💚', '💙', '💜', '🖤', '🤍', '🤎', '💔', '💕', '💞', '💓', '💗', '💖', '💘', '💝', '🟠', '🟡', '🟢', '🔵', '🟣', '🟤', '🔺', '🔻', '🔸', '🔹', '🔶', '🟧', '🟨', '🟩', '🟦', '🟪', '🏴', '🏁', '🚩', '🚧', '🚦', '🚥', '🗺', '🗿', '🗽', '🗼', '🗻', '🏕', '🏀', '🍁', '🍄', '🐚', '🪐', '🌝', '🌚', '☄', '💥', '🔥', '🐷', '🐸'] num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] def split(s): return [char for char in s] def split2(s): result = [] i = 0 while i < len(s): if ord(s[i]) >= 0xD800 and ord(s[i]) <= 0xDBFF: result.append(s[i:i+2]) i += 2 else: result.append(s[i]) i += 1 return result def listToString(s): str1 = "" for ele in s: str1 += ele return str1 def genSeed(seed1,seed2,seed3): if seed1<10: seed = '00'+str(seed1) elif 10<=seed1<100: seed = '0'+str(seed1) else: seed = str(seed1) if seed2<10: seed += '00'+str(seed2) elif 10<=seed2<100: seed += '0'+str(seed2) else: seed += str(seed2) if seed3<10: seed += '00'+str(seed3) elif 10<=seed3<100: seed += '0'+str(seed3) else: seed += str(seed3) return (seed) def genSeedSingle(seed1): if seed1<10: seed = '00'+str(seed1) elif 10<=seed1<100: seed = '0'+str(seed1) else: seed = str(seed1) return (seed) def randGenSeed(): c1 = str(random.randint(0, 9)) c2 = str(random.randint(0, 9)) c3 = str(random.randint(0, 9)) if int(c1+c2+c3)>500: seed = genSeedSingle(int(c1+c2+c3) - 500) else: seed = c1+c2+c3 c4 = str(random.randint(0, 9)) c5 = str(random.randint(0, 9)) c6 = str(random.randint(0, 9)) if int(c4+c5+c6)>500: seed += genSeedSingle(int(c4+c5+c6) - 500) else: seed += c4+c5+c6 c7 = str(random.randint(0, 9)) c8 = str(random.randint(0, 9)) c9 = str(random.randint(0, 9)) if int(c7 + c8 + c9) > 500: seed += genSeedSingle(int(c7 + c8 + c9) - 500) else: seed += c7 + c8 + c9 return (seed) def shuflle(seedInpShuflle): seedsplit = split2(seedInpShuflle) emojiShuffleNew = emojiShuffle[:] if len(seedsplit) == 9 and seedsplit[0] in num and seedsplit[1] in num and seedsplit[2] in num and seedsplit[3] in num and \ seedsplit[4] in num and seedsplit[5] in num and seedsplit[6] in num and seedsplit[7] in num and \ seedsplit[8] in num: if int(seedsplit[0]+seedsplit[1]+seedsplit[2])>500: seed = genSeedSingle(int(seedsplit[0]+seedsplit[1]+seedsplit[2]) - 500) else: seed = seedsplit[0]+seedsplit[1]+seedsplit[2] if int(seedsplit[3]+seedsplit[4]+seedsplit[5])>500: seed += genSeedSingle(int(seedsplit[3]+seedsplit[4]+seedsplit[5]) - 500) else: seed += seedsplit[3]+seedsplit[4]+seedsplit[5] if int(seedsplit[6]+seedsplit[7]+seedsplit[8])>500: seed += genSeedSingle(int(seedsplit[6]+seedsplit[7]+seedsplit[8]) - 500) else: seed += seedsplit[6]+seedsplit[7]+seedsplit[8] random.Random(seed).shuffle(emojiShuffleNew) return (seed, emojiShuffleNew) elif len(seedsplit) == 3 and seedsplit[0] in ALLEMOJI and seedsplit[1] in ALLEMOJI and \ seedsplit[2] in ALLEMOJI: random.Random(fromEmojitoSeed(seedInpShuflle)).shuffle(emojiShuffleNew) return (fromEmojitoSeed(seedInpShuflle), emojiShuffleNew) else: seed = randGenSeed() random.Random(seed).shuffle(emojiShuffleNew) return (seed, emojiShuffleNew) def fromSeedtoEmoji(seed): seedsplit = split2(seed) return (ALLEMOJI[int(seedsplit[0] + seedsplit[1] + seedsplit[2])] + ALLEMOJI[int(seedsplit[3] + seedsplit[4] + seedsplit[5])] + ALLEMOJI[int(seedsplit[6] + seedsplit[7] + seedsplit[8])]) def fromEmojitoSeed(emoji): emojisplit = split2(emoji) return (genSeed(ALLEMOJI.index(emojisplit[0]), ALLEMOJI.index(emojisplit[1]), ALLEMOJI.index(emojisplit[2]))) codeButton = js.document.getElementById('code') decodeButton = js.document.getElementById('decode') infoButton = js.document.getElementById('info') ElistButton = js.document.getElementById('Elist') SlistButton = js.document.getElementById('Slist') def codeFunc(*args, **kwargs): seed = Element('codezSeed').element.value text = Element('codez').element.value textsplit = split2(text) code = [] seed, emojiShuffleNew = shuflle(seed) code.append(fromSeedtoEmoji(seed)) for i in range(len(textsplit)): if textsplit[i] in ALLDIC: code.append(emojiShuffleNew[ALLDIC.index(textsplit[i])]) else: code.append(textsplit[i]) Element('output').write(f'{listToString(code)}') Element('output-seed').write(f'seed: {seed}') Element def decodeFunc(*args, **kwargs): code = Element('decodez').element.value codesplit = split2(code) text = [] if len(codesplit) >= 3: if codesplit[0] in ALLEMOJI and codesplit[1] in ALLEMOJI and codesplit[2] in ALLEMOJI: seed = codesplit[0] + codesplit[1] + codesplit[2] a, emojiShuffleNew = shuflle(seed) seed = fromEmojitoSeed(seed) for i in range(len(codesplit)): if i != 0 and i != 1 and i != 2: if codesplit[i] in ALLEMOJI: emojiIndex = emojiShuffleNew.index(codesplit[i]) if 167 <= emojiIndex <= 333: emojiIndex -= 167 elif 333 <= emojiIndex <= 500: emojiIndex -= 334 text.append(ALLDIC[emojiIndex]) else: text.append(codesplit[i]) else: seed = '|NO SEED|' text.append('|NO SEED| ') for i in range(len(codesplit)): text.append(codesplit[i]) Element('output').write(f'{listToString(text)}') Element('output-seed').write(f'seed: {seed}') else: Element('output').write('😔Занадто короткий код') Element('output-seed').write('seed: |NO SEED|') def infoFunc(*args, **kwargs): Element('output').clear() Element('output').write(HTML("Кодування

Перед тим як кодувати текст ви можете ввести сід:
-сід може складатися з трьох смайлів, які є в списку;
-сід може складатися з 9 цифр.
Сід вводити НЕОБОВ'ЯЗКОВО. В такому випадку він згенерується випадково. Також він буде випадковим у випадку помилки при вводі.
Далі ви вводите текст, котрий перетвориться на набір смайлів, перші три з яких будуть відповідати за сід, а останні - закодована інформація.
Закодувати можна будь-який символ зі списку, інші будуть передаватися некодуючись.

Розкодування

Ввівши код і натиснувши кнопку вам видасть розкодовану інформацію.
Що саме закодовно програма визначає по першим трьом смайлам, які є сідом.

Цифровий сід можна знайти в окремій строці нижче.")) def ElistFunc(*args, **kwargs): Element('output').write(f"{listToString(ALLEMOJI)}") def SlistFunc(*args, **kwargs): Element('output').write(f"{listToString(ALLDIC)}") cc = ffi.create_proxy(codeFunc) ccD = ffi.create_proxy(decodeFunc) ccI = ffi.create_proxy(infoFunc) ccE = ffi.create_proxy(ElistFunc) ccS = ffi.create_proxy(SlistFunc) codeButton.addEventListener('click',cc) decodeButton.addEventListener('click',ccD) infoButton.addEventListener('click',ccI) ElistButton.addEventListener('click',ccE) SlistButton.addEventListener('click',ccS)