danog / tg-dialog-id
A library to work with Telegram bot API dialog IDs
Fund package maintenance!
danog
Installs: 26 044
Dependents: 2
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php-64bit: >=8.1
Requires (Dev)
- amphp/file: ^3.1
- amphp/php-cs-fixer-config: ^2.0.1
- danog/phpdoc: ^0.1.22
- infection/infection: ^0.28.1
- phpunit/phpunit: ^11.0.9|^10
- vimeo/psalm: dev-master
This package is auto-updated.
Last update: 2024-11-16 12:45:36 UTC
README
A library to work with Telegram bot API dialog IDs.
Created by Daniil Gentili (https://daniil.it).
This library was initially created for MadelineProto, an async PHP client API for the telegram MTProto protocol.
Installation
composer require danog/tg-dialog-id
Usage
<?php declare(strict_types=1); use danog\DialogId\DialogId; require 'vendor/autoload.php'; function expect(bool $expect): void { if (!$expect) { throw new AssertionError("Not verified!"); } } $link = "https://t.me/c/1234567890/8892"; if (preg_match("|t.me/c/(\d+)/(\d+)|", $link, $matches)) { // Returns -1001234567890 echo DialogId::fromSupergroupOrChannelId((int) $matches[1]).PHP_EOL; } // Converts an MTProto supergroup/channel ID => bot API dialog ID expect(DialogId::fromSupergroupOrChannelId(1234567890) === -1001234567890); // Converts an MTProto chat ID => bot API dialog ID expect(DialogId::fromChatId(123456789) === -123456789); // Converts an MTProto user ID => bot API dialog ID expect(DialogId::fromUserId(123456789) === 123456789); // Converts an MTProto secret chat ID => bot API dialog ID expect(DialogId::fromSecretChatId(123456789) === -1999876543211); // Converts a bot API dialog ID => MTProto supergroup/channel ID expect(DialogId::toSupergroupOrChannelId(-1001234567890) === 1234567890); // Converts a bot API dialog ID => MTProto chat ID expect(DialogId::toChatId(-123456789) === 123456789); // Converts a bot API dialog ID => MTProto user ID expect(DialogId::toUserId(123456789) === 123456789); // Converts a bot API dialog ID => MTProto secret chat ID expect(DialogId::toSecretChatId(-1999876543211) === 123456789); expect(DialogId::getType(101374607) === DialogId::USER); expect(DialogId::getType(-123456789) === DialogId::CHAT); expect(DialogId::getType(-1001234567890) === DialogId::CHANNEL_OR_SUPERGROUP); expect(DialogId::getType(-1999898625393) === DialogId::SECRET_CHAT); expect(DialogId::isUser(1099511627775) === true); expect(DialogId::isChat(-999_999_999_999) === true); expect(DialogId::isSupergroupOrChannel(-1997852516352) === true); expect(DialogId::isSecretChat(-2002147483648) === true); expect(DialogId::isUser(101374607) === true); expect(DialogId::isChat(-101374607) === true); expect(DialogId::isSupergroupOrChannel(-1001234567890) === true); expect(DialogId::isSecretChat(-1999898625393) === true); // Converts a bot API dialog ID => MTProto ID automatically depending on type expect(DialogId::toMTProtoId(-1001234567890) === 1234567890); expect(DialogId::toMTProtoId(-123456789) === 123456789); expect(DialogId::toMTProtoId(123456789) === 123456789); expect(DialogId::toMTProtoId(-1999876543211) === 123456789); echo "OK!".PHP_EOL;
API Documentation
Click here ยป to view the API documentation.