import unicodedata
def is_zalgo(char):
# Проверяем, является ли символ диакритическим знаком
return unicodedata.category(char).startswith('L')
def zalgo_percentage(text):
total_chars = len(text)
zalgo_chars = sum(1 for char in text if is_zalgo(char))
if total_chars == 0:
return 0
return (zalgo_chars / total_chars) * 100
text = "тут текст"
import re
def zalgo_percentage(text):
zalgo_pattern = re.compile(r'[\u0300-\u036F\u0483-\u0489\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06ED\u0901-\u0903\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A40-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE\u0BC0\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C00\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C82\u0C83\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D02\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032\u1036\u1037\u1039\u1058\u1059\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u1A17\u1A18\u1A55\u1A57\u1A60-\u1A7C\u1A7F\u1AB0-\u1AC0\u1B00-\u1B04\u1B34\u1B36-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CED\u1D00-\u1DBF\u1E00-\u1EFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u20D0-\u20EF\u302A-\u302F\u3099\u309A\uA806\uA80B\uA825\uA826\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB]')
count_zalgo = len(zalgo_pattern.findall(text))
count_chars = len(text)
if count_chars > 0:
return (count_zalgo / count_chars) * 100
return 0
# Пример использования
text = "В̶̻͗а̴̺ͧш̭͒͞ ̡̩͋т̷̙ͨе̸͔ͥк̸͕̍с̤̊͠т̯̋̕ ͖ͣ͟з̳̐̀д͚ͧ͞е̛̱̌с͖̌̕ь̛̘͊"
percentage = zalgo_percentage(text)
print(f"Процент залго в тексте: {percentage:.2f}%")
from pynput.mouse import Listener as MouseListener
from pynput import keyboard
import logging
import time
import pydirectinput
mode = input("1 - Record TAS\n2 - Replay TAS\nChoice: ")
if mode == "1":
filename = f"{input('Name for record: ')}.tas"
file = open(filename, 'w')
file.close()
file = open(filename, 'r+')
print("Record will start in 3 seconds...")
time.sleep(3)
presstime = 0
releasetime = 0
movetime = time.time()
keytime = {}
pressed_keys = set()
def on_move(x, y):
global movetime
file.write(f"sleep {time.time() - movetime}\n")
file.write(f"move {x} {y}\n")
movetime = time.time()
file.flush()
def on_click(x, y, button, pressed):
global presstime
global releasetime
if pressed:
file.write(f'press {x} {y} {button}\n')
presstime = time.time()
file.flush()
else:
releasetime = time.time()
file.write(f"sleep {releasetime - presstime}\n")
file.write("release\n")
file.flush()
def on_scroll(x, y, dx, dy):
file.write(f'scroll ({x}, {y})({dx}, {dy})\n')
file.flush()
def on_press(key):
global pressed_keys
pressed_keys.add(key)
file.write(f"pkey {key}\n")
file.flush()
def on_release(key):
global pressed_keys
pressed_keys.remove(key)
file.write(f"prelease {key}\n")
file.flush()
with keyboard.Listener(on_press=on_press, on_release=on_release) as klistener:
with MouseListener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
klistener.join()
listener.join()
elif mode == "2":
filename = input("Enter TAS name: ")+".tas"
file = open(filename, 'r')
script = file.readlines()
print("Replay will start in 3 seconds...")
time.sleep(3)
for task in script:
if "sleep" in task:
task = task.replace("sleep ", "").replace("\n", "")
time.sleep(float(task))
elif "move" in task:
task = task.replace("move ", "").replace("\n", "")
task = task.split(" ")
x = int(task[0])
y = int(task[1])
pydirectinput.moveTo(x, y, duration=0.0, _pause=False)
elif "press" in task and "left" in task:
task = task.replace("press ", "").replace("\n", "")
task = task.split(" ")
x = int(task[0])
y = int(task[1])
pydirectinput.moveTo(x, y, duration=0.0, _pause=False)
pydirectinput.mouseDown(_pause=False)
elif "press" in task and "right" in task:
task = task.replace("press ", "").replace("\n", "")
task = task.split(" ")
x = int(task[0])
y = int(task[1])
pydirectinput.moveTo(x, y, duration=0.0, _pause=False)
pydirectinput.mouseDown(button='right', _pause=False)
elif "release" in task and "prelease" not in task:
pydirectinput.mouseUp(_pause=False)
pydirectinput.mouseUp(button='right', _pause=False)
elif "pkey" in task:
task = task.replace("pkey ", "").replace("\n", "").replace("Key.", "").replace("_l", "").replace("_r", "").replace("'", "")
pydirectinput.keyDown(task, _pause=False)
elif "prelease" in task:
task = task.replace("prelease ", "").replace("\n", "").replace("Key.", "").replace("_l", "").replace("_r", "").replace("'", "")
pydirectinput.keyUp(task, _pause=False)
print("Replay ended...")
async def main():
# получите канал
channel = await client.get_entity(channel_username)
# получите привязанную группу
linked_chat = await client.get_entity(channel.linked_chat_id)
# перебирите сообщения
async for message in client.iter_messages(linked_chat):
print(f"Message ID: {message.id}, Text: {message.text}")
import asyncio
from contextlib import suppress
from aiogram import types
from aiogram.utils.exceptions import (MessageToEditNotFound, MessageCantBeEdited, MessageCantBeDeleted,
MessageToDeleteNotFound)
async def delete_message(message: types.Message, sleep_time: int = 0):
await asyncio.sleep(sleep_time)
with suppress(MessageCantBeDeleted, MessageToDeleteNotFound):
await message.delete()
msg = await message.reply("Я удалюсь через 30 секунд")
asyncio.create_task(delete_message(msg, 30)
media = types.MediaGroup()
media.attach_photo(types.InputFile('media/Starbucks_Logo.jpg'), 'Превосходная фотография')
media.attach_photo(types.InputFile('media/Starbucks_Logo_2.jpg'), 'Превосходная фотография 2')
await bot.send_media_group(call.message.chat.id, media=media)
Я что то нечаянно нажал
кроме базовых "копировать, вырезать, вставить, переименовать, винрар"
HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
/word.*/
если после слова может присутствовать любое количество любых символов, включая нулевое (иначе использовать .+
). Тут точка - это любой символ, а следующий за ним * или + - любое их количествоNetworkSounds netsound= new NetworkSounds();
//Дальше обращайтесь к экземпляру класса
netsound.tellSound(/*передаёте аргументы*/);