All Projects → vgadfly → Teleperl

vgadfly / Teleperl

Licence: bsd-3-clause
Pure perl mtproto/telergam client

Programming Languages

perl
6916 projects

Projects that are alternatives of or similar to Teleperl

Mtproto Core
Telegram API JS (MTProto) client library for browser and nodejs
Stars: ✭ 242 (+611.76%)
Mutual labels:  telegram, mtproto
Telega
C# Telegram MTProto Client
Stars: ✭ 38 (+11.76%)
Mutual labels:  telegram, mtproto
Jsmtproxy
High Performance NodeJS MTProto Proxy
Stars: ✭ 254 (+647.06%)
Mutual labels:  telegram, mtproto
Telegramgo
CLI telegram client written in golang
Stars: ✭ 145 (+326.47%)
Mutual labels:  telegram, mtproto
Telegram Mtproto
Telegram client api (MTProto) library
Stars: ✭ 542 (+1494.12%)
Mutual labels:  telegram, mtproto
Telegramapiserver
Fast, simple, async php telegram api server: MadelineProto + Amp HTTP Server
Stars: ✭ 152 (+347.06%)
Mutual labels:  telegram, mtproto
WilliamButcherBot
Telegram Group Manager Bot Written In Python Using Pyrogram.
Stars: ✭ 187 (+450%)
Mutual labels:  telegram, mtproto
Madelineproto
Async PHP client/server API for the telegram MTProto protocol
Stars: ✭ 1,776 (+5123.53%)
Mutual labels:  telegram, mtproto
Telethon
Pure Python 3 MTProto API Telegram client library, for bots too!
Stars: ✭ 5,805 (+16973.53%)
Mutual labels:  telegram, mtproto
Mtproxy
MTProxyTLS一键安装绿色脚本
Stars: ✭ 256 (+652.94%)
Mutual labels:  telegram, mtproto
Pyrogram
Telegram MTProto API Client Library and Framework in Pure Python for Users and Bots
Stars: ✭ 2,252 (+6523.53%)
Mutual labels:  telegram, mtproto
Mtproto
Full-native go implementation of Telegram API
Stars: ✭ 566 (+1564.71%)
Mutual labels:  telegram, mtproto
Mtproto
Telegram MTProto and its proxy (over gRPC) in Go (golang). API Layer: 71
Stars: ✭ 133 (+291.18%)
Mutual labels:  telegram, mtproto
Mtproto
MTProto implementation in Golang
Stars: ✭ 190 (+458.82%)
Mutual labels:  telegram, mtproto
Td
Pure Go Telegram MTProto API Client
Stars: ✭ 118 (+247.06%)
Mutual labels:  telegram, mtproto
node-tg-native
Telegram Native lib
Stars: ✭ 22 (-35.29%)
Mutual labels:  telegram, mtproto
Grammers
(tele)gramme.rs - use Telegram's API from Rust
Stars: ✭ 109 (+220.59%)
Mutual labels:  telegram, mtproto
Novagram
An Object-Oriented PHP library for Telegram Bots
Stars: ✭ 112 (+229.41%)
Mutual labels:  telegram, mtproto
mtproxy autoinstaller
MTProxy autoinstaller for Ubuntu
Stars: ✭ 25 (-26.47%)
Mutual labels:  telegram, mtproto
Chatengine
Open source mtproto server written in golang with compatible telegram client
Stars: ✭ 544 (+1500%)
Mutual labels:  telegram, mtproto

teleperl

Pure perl mtproto/telergam client library

DEPENDS

  • Modern::Perl
  • Config::Tiny
  • AnyEvent
  • IO::Socket::Socks
  • Data::Validate::IP
  • NetAddr::IP
  • Crypt::OpenSSL::Bignum
  • Crypt::OpenSSL::RSA
  • Crypt::OpenSSL::Random
  • Crypt::OpenSSL::AES
  • Parse::Yapp
  • Math::Prime::Util

For both interactive application's examples:

  • Getopt::Long::Descriptive
  • Class::Inspector

For CLI application:

  • Term::ReadLine::Gnu
  • Exception::Class

For GUI application (currently minimal almost unusable quick & dirty proof-of-work):

  • Tcl
  • Tkx
  • a Tcl/Tk distribution for these two (out of the box in ActivePerl, else see https://tkdocs.com/tutorial/install.html), with following Tcl/Tk packages:
    • Tclx
    • BWidget
    • Tktable
    • treectrl
    • tklib (ctext tooltip widget)

Not required in minimal run (optional for extra features), but may be moved to core in future:

  • CBOR::XS
  • Data::DPath

Not yet used but discussed:

  • Template::Toolkit
  • DBD::SQLite

PREPARE

  • generate parser using yapp: yapp -m TL -s tl.yp
  • generate MTProto and Telegram TL packages: perl tl-gen.pl MTProto res/mtproto.tl and perl tl-gen.pl Telegram res/<schemelayerNN>.tl (see notes)
  • edit config file to put your own API id/hash, phone number and possibly proxy
  • login: create new session (session.dat for apps) with auth command of cli.pl: enter to it code sent by SMS or in other session

NOTES / WARNS

Telegram.pm API is very unstable and subject to change greatly :) Other parts, too: note that official Telegram docs are mostly outdated and incomplete even for that parts - so often code is done by trial-and-error, which leads to many bugs. Beware. Here be dragons.

As scheme is not known to lower-level modules (there are both text strings and byte strings), do UTF-8 decode yourself (this may change after adding introspection).

Recently (August 2019) server bug was discovered in testing, when server sends constructors (CRC32 hash) from older scheme despite of requested level; you'll see unknown object type error (after which stream is in fact unusable so many more errors are just consequences). So you may need to experiment/generate from different layer files in res subdirectory. But beware that regularly updating server layer also requires changing client code logic (e.g. GUI client currently supports somehere at 78-82).

LEGAL ISSUES

Publishing API ID/hash in source code prohibited by Telegram License / API Terms of Use. This contradicts to FLOSS principles (may be they plan to ban unofficial clients?), but that is, you won't be able to run Teleperl as-is. See https://github.com/telegramdesktop/tdesktop/blob/dev/docs/api_credentials.md for next steps.

This project is a library, not a feature-complete end-user client, and it's client application examples will never be. If you want to publish Teleperl-based end-user application, then you MUST implement features required by recent Telegram API Terms of Use.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].