lucadevelop/telegram-entities-decoder

Telegram entities decoder in PHP

v1.3.1 2024-02-01 17:06 UTC

This package is auto-updated.

Last update: 2024-03-30 17:48:18 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

EntityDecoder

This class decode style entities from Telegram bot messages (bold, italic, etc.) in text with inline entities that duplicate (when possible) the exact style the message had originally when was sended to the bot. All this work is necessary because Telegram returns offset and length of the entities in UTF-16 code units that they've been hard to decode correctly in PHP

Compatibility

PHP >= 7.0

Features

  • Decode entities from text messages and attachments caption.
  • Supports all Telegram parse modes (Markdown, HTML and MarkdownV2). HTML has more entropy but it's easily the best and it's recommended.
  • Supports emoji in the text field
  • Easy to use

NOTE: Markdown parse mode is deprecated and no longer up-to-date so it doesn't support all entities. Use MarkdownV2 or HTML.

Example usage

$entity_decoder = new EntityDecoder('HTML');
$decoded_text = $entity_decoder->decode($message);

See demo folder for full example

Composer

composer require lucadevelop/telegram-entities-decoder

Usage:

require 'vendor/autoload.php';
use lucadevelop\TelegramEntitiesDecoder\EntityDecoder;
[...]
$entity_decoder = new EntityDecoder('HTML');
$decoded_text = $entity_decoder->decode($message);

Credits

Contacts

Telegram @LucaDevelop