Загрузка...

Скрипт TG BOT | Получение из текста emoji_id

Тема в разделе Python создана пользователем Эксфадор 31 мар 2025. 91 просмотр

Загрузка...
  1. Эксфадор
    Эксфадор Автор темы 31 мар 2025 ПЛАГИНЫ ДЛЯ FPC - t.me/coxerhub 1524 30 авг 2023
    Python
    from aiogram import Bot, Dispatcher, types, F from aiogram.filters import Command import logging import asyncio import re from typing import List, Optional import os from dotenv import load_dotenv load_dotenv() logging.basicConfig(level=logging.INFO) BOT_TOKEN = os.getenv("BOT_TOKEN") if not BOT_TOKEN: raise ValueError("BOT_TOKEN не указан в .env файле!") bot = Bot(token=BOT_TOKEN) dp = Dispatcher() @dp.message(Command("start")) async def cmd_start(message: types.Message): await message.answer("Привет! Отправь мне сообщение с премиум эмодзи, и я покажу его в текстовом формате.") def extract_emoji_entities(message: types.Message) -> List[types.MessageEntity]: """Извлекает все эмодзи-сущности из сообщения.""" if not message.entities: return [] return [entity for entity in message.entities if entity.type == "custom_emoji"] @dp.message(F.entities) async def handle_message_with_entities(message: types.Message): emoji_entities = extract_emoji_entities(message) if not emoji_entities: return original_text = message.text text_parts = [] last_position = 0 for entity in emoji_entities: text_parts.append(original_text[last_position:entity.offset]) emoji_text = original_text[entity.offset:entity.offset + entity.length] emoji_id = entity.custom_emoji_id text_parts.append(f"<emoji id={emoji_id}>{emoji_text}</emoji>") last_position = entity.offset + entity.length if last_position < len(original_text): text_parts.append(original_text[last_position:]) text_with_emoji_tags = "".join(text_parts) MAX_MESSAGE_LENGTH = 4000 if len(text_with_emoji_tags) <= MAX_MESSAGE_LENGTH: await message.answer(text_with_emoji_tags) else: chunks = [] current_chunk = "" for line in text_with_emoji_tags.split('\n'): if len(line) > MAX_MESSAGE_LENGTH: for i in range(0, len(line), MAX_MESSAGE_LENGTH - 100): part = line[i:i + MAX_MESSAGE_LENGTH - 100] if current_chunk and len(current_chunk) + len(part) + 1 > MAX_MESSAGE_LENGTH: chunks.append(current_chunk) current_chunk = part else: if current_chunk: current_chunk += "\n" current_chunk += part else: if current_chunk and len(current_chunk) + len(line) + 1 > MAX_MESSAGE_LENGTH: chunks.append(current_chunk) current_chunk = line else: if current_chunk: current_chunk += "\n" current_chunk += line if current_chunk: chunks.append(current_chunk) for i, chunk in enumerate(chunks): await message.answer(f"Часть {i+1}/{len(chunks)}:\n{chunk}") @dp.message() async def handle_regular_message(message: types.Message): await message.answer("В вашем сообщении нет премиум эмодзи. Отправьте сообщение с премиум эмодзи или используйте /example для просмотра примера.") async def main(): logging.info("Бот запущен") await dp.start_polling(bot) if __name__ == "__main__": asyncio.run(main())


    скрин работы

    https://imgur.com/a/jMMDzar


    в .env файл добавьте

    BOT_TOKEN=токен
     
    31 мар 2025 Изменено
  2. Эксфадор
    Эксфадор Автор темы 31 мар 2025 ПЛАГИНЫ ДЛЯ FPC - t.me/coxerhub 1524 30 авг 2023
    Применение для проекта вы найдете (те же рассылки по чатам с прем эмодзи)
     
  3. Verified
    Verified 31 мар 2025 return to innocence 11 26 янв 2021
    круто, на гпт пишет такое за пару секунд
     
    1. Эксфадор Автор темы
      Verified, вау, согласен, но придумай промпт верный для него)
Top
JavaScript error: