madelineproto | Unsorted

Telegram-канал madelineproto - MadelineProto | Official Channel

7257

Official MadelineProto channel. Italian Channel: @MadelineProtoIta Group: @pwrtelegramgroup

Subscribe to a channel

MadelineProto | Official Channel

MadelineProto 8.11.10
https://github.com/danog/MadelineProto/releases/tag/8.11.10
Phar: /channel/madelineprotophar/292

What's Changed
Fixes
• Catch warnings instead of suppressing them with @ by @danog in https://github.com/danog/MadelineProto/pull/1876
• Don't pass the descriptors of the starting process to IPC workers by @danog in https://github.com/danog/MadelineProto/pull/1867

Читать полностью…

MadelineProto | Official Channel

In MadelineProto 8.11.8, the MadelineProto docker image was updated to the latest 8.5.12, fixing the all RCE vulns found in upstream PHP!

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.11.6
https://github.com/danog/MadelineProto/releases/tag/8.11.6
Phar: /channel/madelineprotophar/288

What's Changed
Fixes
• Fix the IPC self-request flood: reconnect to the live server, back off, bounded workers, CLI-only signals by @danog in https://github.com/danog/MadelineProto/pull/1862

Full Changelog: https://github.com/danog/MadelineProto/compare/8.11.5...8.11.6

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.11.4
https://github.com/danog/MadelineProto/releases/tag/8.11.4
Phar: /channel/madelineprotophar/286

What's Changed
Fixes
• Docker image: PIE instead of pecl, latest only for releases, non-root user by @danog in https://github.com/danog/MadelineProto/pull/1861
• Log the flood waits of the stream channels at ULTRA_VERBOSE by @danog in https://github.com/danog/MadelineProto/pull/1859
• Stop reconnecting to an RTMP ingest that drops an idle publisher by @danog in https://github.com/danog/MadelineProto/pull/1860

Full Changelog: https://github.com/danog/MadelineProto/compare/8.11.3...8.11.4

Читать полностью…

MadelineProto | Official Channel

MadelineProto Layer 232
https://github.com/danog/MadelineProto/releases/tag/8.11.2
Phar: /channel/madelineprotophar/284

What's Changed
Layer
• Automatic build (layer 232) by @madelineproto-autobuild[bot] in https://github.com/danog/MadelineProto/pull/1851
Fixes
• Fix the order info of payments, whose fields are all optional (#1652) by @danog in https://github.com/danog/MadelineProto/pull/1789
• Copy the authorization to other DCs only once a request needs it by @danog in https://github.com/danog/MadelineProto/pull/1842
• Stories bot pagination, phar sync of IPC clients, uncacheable download script check by @danog in https://github.com/danog/MadelineProto/pull/1845
• Copy the authorization to other DCs eagerly again by @danog in https://github.com/danog/MadelineProto/pull/1848
• Poll the stream channels of a livestream at the pace the server allows by @danog in https://github.com/danog/MadelineProto/pull/1844
• Convert link previews, locations, venues and contacts to InputMedia by @danog in https://github.com/danog/MadelineProto/pull/1846
Other changes
• Tests: the phar smoke test passes the numeric user id by @danog in https://github.com/danog/MadelineProto/pull/1853

Full Changelog: https://github.com/danog/MadelineProto/compare/8.11.1...8.11.2

Читать полностью…

MadelineProto | Official Channel

This pure PHP webradio bot is capable of streaming any YouTube video/livestream to any telegram channel livestream or group call!

Use the official magnaluna instance @magicalcrazypony!

Or upload the source code to your favorite free PHP webhost to host your own magnaluna (100% PHP webhost support, no ffmpeg/python needed!): /channel/MadelineProto/779

Powered by @MadelineProto!

Читать полностью…

MadelineProto | Official Channel

Try it out now: https://GitHub.com/danog/magnaluna

In Telegram: @magicalcrazypony

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.11.0
https://github.com/danog/MadelineProto/releases/tag/8.11.0
Phar: /channel/madelineprotophar/282

What's Changed
Features
• Autostart the IPC server on Windows by @danog in https://github.com/danog/MadelineProto/pull/1820
• Support fake TLS MTProxy secrets (ee) (#1723) by @danog in https://github.com/danog/MadelineProto/pull/1804
Fixes
• Don't block RPC errors on their report, announce our video state only when it changes by @danog in https://github.com/danog/MadelineProto/pull/1818
• Don't hang the auth key binding after a late duplicate DH answer by @danog in https://github.com/danog/MadelineProto/pull/1816
• Fix replyToMsgId of the messages we send (#1663) by @danog in https://github.com/danog/MadelineProto/pull/1790
• Fix loading sessions saved before 8.4.7 (Undefined property MTProto::$authorized) by @danog in https://github.com/danog/MadelineProto/pull/1822
• Self-restarts: use the server of a session that is served, don't wait for its lock by @danog in https://github.com/danog/MadelineProto/pull/1823
• Resolve min peers through the min database, and cached usernames that can't be used again by @danog in https://github.com/danog/MadelineProto/pull/1821
• IPC: don't spin on a dying server, close the fds of worker startups by @danog in https://github.com/danog/MadelineProto/pull/1813
• Don't bypass the proxies with direct connections when they fail by @danog in https://github.com/danog/MadelineProto/pull/1825
• Fix replaced loggers truncating logs and FLOOD_WAITs copying authorizations by @danog in https://github.com/danog/MadelineProto/pull/1828
• Require AsyncOrm 1.1.6 by @danog in https://github.com/danog/MadelineProto/pull/1826

Full Changelog: https://github.com/danog/MadelineProto/compare/8.10.0...8.11.0

Читать полностью…

MadelineProto | Official Channel

• The properties removed since a session was saved are dropped when loading it, instead of being kept forever as dynamic properties (deprecated since PHP 8.2): every private call carried the state of the old libtgvoip engine. Private calls restored as running from those versions are ended.
• Copying the authorization to another DC exports it again when the import fails with AUTH_BYTES_INVALID (another process of the same account exporting at the same time).
• IPC: a callback returning after its call returned no longer logs "The channel was already closed!" as an error.
• Plugins referenced more than once no longer cause "Undefined array key" errors, by @junwei-qu in https://github.com/danog/MadelineProto/pull/1769
• No empty hint in the 2FA password prompt when the account has none.

Internal:
• CI: the session tests run in parallel lanes, each with its own authorizations; the phar is built at once with the tests and released once all of them passed; the bot logs in with an exported authorization instead of its token (the build of 8.8.9 hit a FLOOD_WAIT).

What's Changed
Features
• Add support for thumbnail to media class by @mtalaeii in https://github.com/danog/MadelineProto/pull/1594
Fixes
• Fix Bot API keyboard markup conversion for MTProto Layer 231 by @xcgu in https://github.com/danog/MadelineProto/pull/1759
• Phar: give every build its own alias, so php-fpm's opcache can't run the previous release by @danog in https://github.com/danog/MadelineProto/pull/1760
• Web: end the request that starts a bot even after output was sent by @danog in https://github.com/danog/MadelineProto/pull/1765
• Drop the state of removed properties when unserializing old sessions by @danog in https://github.com/danog/MadelineProto/pull/1762
• EventHandler: plugin's internalStart returns empty array by @junwei-qu in https://github.com/danog/MadelineProto/pull/1769
• MTProto: unserialize with the default format again, so the objects of the session see it when they wake up by @danog in https://github.com/danog/MadelineProto/pull/1768

New Contributors
• @junwei-qu made their first contribution in https://github.com/danog/MadelineProto/pull/1769

Full Changelog: https://github.com/danog/MadelineProto/compare/8.8.9...8.9.0

Читать полностью…

MadelineProto | Official Channel

MadelineProto can now stream video and audio into channel live streams as well as group calls (pure PHP, with 100% webhost compatibility!)

You can test it out using the brand new @magicalcrazypony bot!

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.8.9
https://github.com/danog/MadelineProto/releases/tag/8.8.9

MadelineProto 8.8.9 fixes the issues of 8.8.8 (most importantly, it goes back to layer 230: 8.8.8 used an abandoned schema, which could make some requests hang), and adds RTMP livestream publishing in pure PHP, message filters for in-call messages and 9 new languages.

Features:
• Publish to RTMP livestreams with play(): MP4 or Matroska files with H.264 video and AAC audio are published to the livestream over RTMP by MadelineProto itself, in pure PHP and without transcoding. Only admins can publish (the first play() fetches the ingest URL and key); joining only watches, so recording a livestream published by another encoder doesn't take it over. Telegram scales every RTMP livestream to 1280x720 without keeping the aspect ratio: other aspect ratios log a warning.
• Message filters (commands, text, regexes, sender, incoming/outgoing, peer) now apply to in-call messages of group calls and conference calls, which now have command, commandType, commandArgs, matches, matchesAll and out, and, for group calls, the peer of their call.
• MadelineProto is now translated into Spanish, Arabic, Turkish, Ukrainian, Indonesian, Hindi, Vietnamese, Japanese and Korean, and the German, Polish, French, Central Kurdish, Portuguese and Russian translations are complete (fixing wrong Russian and Kurdish strings, and broken Chinese, Italian and Uzbek ones). Translations are now edited in langs/, not on Weblate.
• Base64 MTProxy secrets, including URL-safe and dd-prefixed ones, by @bertmsk in https://github.com/danog/MadelineProto/pull/1717 and @danog. Malformed secrets, and fake TLS (ee) secrets, which aren't supported, are now refused with an explicit error instead of producing a wrong key.
• Cryptography uses OpenSSL and libsodium when available (obfuscated transport, CDN files, RSA, DTLS, and the Ed25519/X25519 keys of E2E conferences), and phpseclib only without them.
• The phar is now named madeline.phar (madeline81.phar is still uploaded for older madeline.php files).

Fixes:
• Back to layer 230: 8.8.8 used tdesktop's layer 231 schema, which was abandoned, with constructors the server doesn't send (like userFull), so some results couldn't be deserialized.
• Requests whose result can't be deserialized now fail with the deserialization error: the read loop of the connection exited instead, and the request was resent forever, never returning.
• Connections that silently stop working (half-open TCP connections, dropped by a NAT for example) are now replaced when a state request goes unanswered, instead of waiting for every request to time out.
• Fix the update loop dying on RPC timeouts in getDifference/getChannelDifference by @xcgu in https://github.com/danog/MadelineProto/pull/1756
• Sessions saved with phpseclib up to 3.0.45 (MadelineProto up to at least 8.4.12) can be loaded again: they failed with a TypeError after the upgrade to phpseclib 4.
• Session files are now synced to disk before replacing the old one: a crash or power loss (on f2fs, for example) could leave a session file made of zeroes.
• Restored calls are resumed once the session is reset, and requests in flight are sent again on session resets: on every restart, the requests of restored calls (and users.getUsers in onStart) timed out after 60 seconds.
• Files are played into calls at their real speed without a lookahead (they were played at about 80% of it), and the frames due while a call connects are no longer sent all at once.
• playOnHold() replaces the hold file being played right away, instead of after its end.
• transport-cc is no longer used in one-to-one calls, since MadelineProto doesn't send its feedback.
• Recording RTMP livestreams works: MP4 chunks with the moov after the mdat are demuxed, the stream start is taken from its video channel, and recordings wait for the first chunk with video. MP4 timestamps are now presentation timestamps (video with B-frames was 80 ms late).
• Group calls take the bare stream DC ID like tdesktop, fixing streams whose DC ID the server sends shifted.

Читать полностью…

MadelineProto | Official Channel

Introducing MadelineProto 8.8.8, with video calls, group calls, livestreams and end-to-end encrypted conference calls, all in pure PHP, absolutely NO ffmpeg or extensions: all group/conference call and video call functionality works on webhosts, too!

Example:

<?php

if (!file_exists('madeline.php')) {
copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
include 'madeline.php';

$MadelineProto = new \danog\MadelineProto\API('session.madeline');
$MadelineProto->start();

$MadelineProto->requestCall('@username', video: true)->play(new RemoteUrl('https://paste.daniil.it/oncall.webm'));
$MadelineProto->joinGroupCall('@mygroup')->play(new RemoteUrl('https://paste.daniil.it/oncall.webm'));



See examples/bot.php for a full example!

See the call documentation » for more info, and try the open-source magnaluna video webradio », which plays a video (including youtube videos WITHOUT ffmpeg/yt-dlp, 100% webhost support) in one-to-one calls, in the video chats and conference calls whose links you send it, and in the video chats of all its groups!

Test the new features live with magnaluna on Telegram: @magicalcrazypony! Call it, send it /call, or send it the link of a group call or conference call to join, or use the /join command in a group to create or join a group call.

Features:
- Video calls: play WebM/MKV files with VP8, VP9, H.264, H.265 (or AV1, in one-to-one calls) video and OPUS audio into any call: frames are demuxed in pure PHP and sent as-is, with no transcoding. Start a video call with requestCall($user, video: true).
- Screen sharing: play a video as a screen share alongside the camera stream with MediaDestination::Presentation.
- Group calls (video chats and livestreams): create (also scheduled and RTMP livestreams), join (also as a channel or via an invite link), stream audio and video, share the screen, record, and manage them: title, invites and invite links, muting, volume, raised hands, server-side recording, kicking participants, in-call messages and reactions.
- Livestreams: record stream mode livestreams (including RTMP ones), using the new pure PHP Mp4 demuxer, and publish RTMP livestreams with getGroupCallStreamRtmpUrl.
- Live stories: start a live story with startLive, stream into it, comment, and handle Telegram Stars donations.
- End-to-end encrypted conference calls: create them, join them via link or invitation, invite users, verify the key emojis, send end-to-end encrypted in-call messages and remove participants (rekeying the call), or upgrade a one-to-one call with migrateCallToConference.
- Call recording: setOutput records a participant's microphone, camera and screen share into a Matroska (or OGG OPUS) file with a fixed set of tracks, and setOutputFolder records every participant into a directory, starting a new file whenever their streams change. Recordings are written in pure PHP, without decoding anything.
- New CallStreams update, emitted whenever the streams a participant sends (or their codecs) change, and whenever a recording ends.
- All call types now implement the common Call interface (and the multi-party ones MultiCall), with the same playlist, mute, screen sharing and recording controls: PrivateCall (with VoIP kept as an alias), GroupCall, LiveStory and ConferenceCall.
- New GroupCall, GroupCallParticipants, GroupCallMessage, GroupCallMessagesDeleted, LiveStory, LiveStoryMessage and ConferenceCallMessage updates.
- Messages have new getCall, canRequestCall, requestCall and getCallDenialReason methods, to start (or get) the call of a private chat, or the video chat of a group or channel; CallNotAllowedException explains why a call can't be started. $message->requestCall()->join() works in every chat, since joining an outgoing one-to-one call does nothing.
- Calls survive restarts: playlists (continuing the current WebM/OGG file where it left off), hold files (which now loop) and recordings are saved in the session.
- Resumable uploads: interrupted uploads of files, URLs, Telegram files and resumable streams (encrypted ones included) are resumed after a restart, without uploading the already uploaded parts again.
- Resumable method calls: interrupted method calls and send* calls uploading such files are resumed after a restart, until their upload completes (can be disabled with the new resumeInterruptedCalls file setting).
- Resumable download streams: downloadToReturnedStream and Media::getStream now return a ResumableDownloadStream, which can be serialized, and resumes downloading from where it left off.
- Through IPC, calls without callbacks are sent again when the IPC server restarts.
- Added support for communities.
- Any OGG OPUS file (mono or stereo, with any frame size) can now be played into calls as-is, not only the ones created by MadelineProto: no more need to pre-convert them with @libtgvoip_bot or Ogg::convert.
- Update to layer 231.

Fixes:
- Fix downloads without a size not closing the connection
- Fix getInputClientProxy on null
- Fix inline query button conversion in keyboard buttons
- Fix sending media with a TTL
- Upgrade to phpseclib 4, keeping sessions created with phpseclib 3 loadable
- File reference improvements
- Fix updates received while the event handler is starting being handled again in an endless loop, using all the memory, if the event handler failed to start
- Fix uploads with a cancellation through IPC, and IPC cancellations no longer block the event loop
- Fix encrypted downloads starting from a non-zero offset
- Cancelled uploads no longer throw errors into the event loop

The latest official MadelineProto phars are now downloadable through @madelineprotophar as well.

Full TL changelog: https://github.com/danog/MadelineProto/releases/tag/8.8.8

Читать полностью…

MadelineProto | Official Channel

MadelineProto may also be affected if your upstreams aren't filtering invalid routes via RPKI, i.e. if connection fails and https://rpkitest.nlnetlabs.net/ isn't passing for you, ask your upstreams to enable RPKI validation :)

Читать полностью…

MadelineProto | Official Channel

⚠️ Indian telecom Reliance is sabotaging access to Telegram for millions of users OUTSIDE India (including the UAE) via a rogue method called BGP hijacking.

🧨 The sabotage seems intentional, as Reliance has ignored multiple reports.

😞 This may be part of a competitive war, as Reliance is partially owned by Meta — the company behind WhatsApp.

🌐 Network operators are advised to reject unauthorized BGP announcements from Reliance (AS18101) to prevent route hijacks and ensure stable Internet access for their users.

🤔 Such abuse of global Internet routing is suspicous. I wouldn’t be surprised if Reliance/WhatsApp were also behind the recent lobbying effort to ban Telegram in India.

Читать полностью…

MadelineProto | Official Channel

MadelineProto was updated (8.6.3)!

Features:
- Update to layer 222 (the server is currently returning unreleased Message constructors for layer 223 and above, so delaying those for now)

Fixes:
- DC fix

New Methods:
- messages.getEmojiGameInfo
- messages.summarizeText
- channels.getFutureCreatorAfterLeave
- payments.getCraftStarGifts
- payments.craftStarGift

Changed Methods:
- Added share_phone_number param to messages.acceptUrlAuth
- Added for_craft param to payments.getResaleStarGifts

New Constructors:
- inputMediaStakeDice
- messageActionNewCreatorPending
- messageActionChangeCreator
- updateEmojiGameInfo
- updateStarGiftCraftFail
- inputPasskeyCredentialFirebasePNV
- messages.emojiGameOutcome
- messages.emojiGameUnavailable
- messages.emojiGameDiceInfo
- starGiftAttributeRarity
- starGiftAttributeRarityUncommon
- starGiftAttributeRarityRare
- starGiftAttributeRarityEpic
- starGiftAttributeRarityLegendary
- keyboardButtonStyle

Changed Constructors:
- Added bot_forum_can_manage_topics param to user
- Added monoforum param to channelForbidden
- Added summary_from_language param to message
- Added game_outcome param to messageMediaDice
- Added craft param to messageActionStarGiftUnique
- Added can_craft_at param to messageActionStarGiftUnique
- Added style param to keyboardButton
- Added style param to keyboardButtonUrl
- Added style param to keyboardButtonCallback
- Added style param to keyboardButtonRequestPhone
- Added style param to keyboardButtonRequestGeoLocation
- Added style param to keyboardButtonSwitchInline
- Added style param to keyboardButtonGame
- Added style param to keyboardButtonBuy
- Added style param to keyboardButtonUrlAuth
- Added style param to inputKeyboardButtonUrlAuth
- Added style param to keyboardButtonRequestPoll
- Added style param to inputKeyboardButtonUserProfile
- Added style param to keyboardButtonUserProfile
- Added style param to keyboardButtonWebView
- Added style param to keyboardButtonSimpleWebView
- Added style param to keyboardButtonRequestPeer
- Added style param to inputKeyboardButtonRequestPeer
- Added style param to keyboardButtonCopy
- Added request_phone_number param to urlAuthResultRequest
- Added browser param to urlAuthResultRequest
- Added platform param to urlAuthResultRequest
- Added ip param to urlAuthResultRequest
- Added region param to urlAuthResultRequest
- Added burned param to starGiftUnique
- Added crafted param to starGiftUnique
- Added craft_chance_permille param to starGiftUnique
- Added crafted param to starGiftAttributeModel
- Added rarity param to starGiftAttributeModel
- Removed rarity_permille param from starGiftAttributeModel
- Added rarity param to starGiftAttributePattern
- Removed rarity_permille param from starGiftAttributePattern
- Added rarity param to starGiftAttributeBackdrop
- Removed rarity_permille param from starGiftAttributeBackdrop
- Added can_craft_at param to savedStarGift

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.11.9
https://github.com/danog/MadelineProto/releases/tag/8.11.9
Phar: /channel/madelineprotophar/291

Читать полностью…

MadelineProto | Official Channel

MadelineProto Bump PHP docker image
https://github.com/danog/MadelineProto/releases/tag/8.11.7
Phar: /channel/madelineprotophar/289

Bumps PHP docker image to fix multiple upstream vulns.

What's Changed
Fixes
• Compare settings objects by value when merging by @danog in https://github.com/danog/MadelineProto/pull/1866

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.11.5
https://github.com/danog/MadelineProto/releases/tag/8.11.5
Phar: /channel/madelineprotophar/287

What's Changed
Fixes
• Retry failed group call rejoins; log leaves, discards and forgotten calls with their chat by @danog in https://github.com/danog/MadelineProto/pull/1863

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.11.3
https://github.com/danog/MadelineProto/releases/tag/8.11.3
Phar: /channel/madelineprotophar/285

Читать полностью…

MadelineProto | Official Channel

Btw MadelineProto's PHP docker image is autoupdated and already has a fix for at least some of the recent PHP vulns :))

Читать полностью…

MadelineProto | Official Channel

This webradio bot is capable of streaming any YouTube video/livestream to any telegram channel livestream or group call, with 100% webhost support, no ffmpeg needed!

Upload this to your favorite free PHP webhost to host your own magnaluna, or use the official magnaluna instance @magicalcrazypony!

Source code: https://GitHub.com/danog/magnaluna

Powered by @MadelineProto!

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.11.1
https://github.com/danog/MadelineProto/releases/tag/8.11.1
Phar: /channel/madelineprotophar/283

What's Changed
Fixes
• Ship the web UI templates and assets in the phar by @danog in https://github.com/danog/MadelineProto/pull/1840

Читать полностью…

MadelineProto | Official Channel

MadelineProto Layer 231
https://github.com/danog/MadelineProto/releases/tag/8.10.0

What's Changed
Layer
• Automatic build (layer 231) by @madelineproto-autobuild[bot] in https://github.com/danog/MadelineProto/pull/1809
Features
• Web UI v3: liquid glass (includes #1761) by @danog in https://github.com/danog/MadelineProto/pull/1767
• Expose location, live location and venue messages (#1593) by @danog in https://github.com/danog/MadelineProto/pull/1802
• Allow cancelling getUpdates (#1654) by @danog in https://github.com/danog/MadelineProto/pull/1801
Fixes
• IPC: redundant workers exit quietly by @danog in https://github.com/danog/MadelineProto/pull/1777
• Wrap messageEntityFormattedDate, and entity types from newer layers by @danog in https://github.com/danog/MadelineProto/pull/1779
• IPC: clients wait while the session is loading by @danog in https://github.com/danog/MadelineProto/pull/1778
• Don't keep or act on calls and group calls this session never took part in by @danog in https://github.com/danog/MadelineProto/pull/1763
• Fix the conversion of Telegram Desktop sessions (#1647) by @danog in https://github.com/danog/MadelineProto/pull/1794
• Fix stale user statuses in getInfo (#1547) by @danog in https://github.com/danog/MadelineProto/pull/1793
• Fix downloadToBrowser continuing after the browser closed the connection (#1219) by @danog in https://github.com/danog/MadelineProto/pull/1798
• Fix the speed and time passed to upload and download progress callbacks (#1553) by @danog in https://github.com/danog/MadelineProto/pull/1797
• Don't reconnect from DataCenter::__wakeup by @danog in https://github.com/danog/MadelineProto/pull/1781
• Restore inherited readonly properties from their declaring class by @danog in https://github.com/danog/MadelineProto/pull/1805
• Fix IPC startup fibers doing file I/O after the client exits (UVLoop handle is already closed) by @danog in https://github.com/danog/MadelineProto/pull/1807
• Leave group calls that ended while we weren't told, like TDLib by @danog in https://github.com/danog/MadelineProto/pull/1808
• Support telegram-entities 1.1.0 (Bot API 10 entity names and whitespace) by @danog in https://github.com/danog/MadelineProto/pull/1799

Full Changelog: https://github.com/danog/MadelineProto/compare/8.9.0...8.10.0

Читать полностью…

MadelineProto | Official Channel

MadelineProto 8.9.0
https://github.com/danog/MadelineProto/releases/tag/8.9.0

MadelineProto 8.9.0 makes the thumbnails of every media downloadable, sandboxes the files served to browsers, hides the secrets typed in the CLI login, and fixes clicking keyboard buttons, the forum topic methods, the phar updates on php-fpm and several session, update loop and IPC issues.

Features:
• Thumbnails are media: Media::$thumbs and Media::$videoThumbs now hold Thumbnail and VideoThumbnail objects, which can be downloaded, streamed, linked with getDownloadLink() and reused as upload sources or as thumb:, with bot API file IDs, by @mtalaeii in https://github.com/danog/MadelineProto/pull/1594 and @danog. The stripped or cached size of a media, and the thumbnail of secret chat media, is an InlineThumbnail in $thumbs too, served from memory without contacting Telegram (it replaces $thumb, $thumbWidth and $thumbHeight). Photos get width and height, and sticker thumbnails are WEBP.
• New Files::setSandboxDownloads() setting, to turn off the sandboxing of the files served to browsers (see below), for websites serving trusted files that must be shown as their pages (HTML, SVG, PDF...).
• The CLI login hides the bot token, API hash, 2FA password and login code as they're typed (bot tokens only show their bot ID), like the web login, which now also hides the token, the code and the API hash.

Fixes:
• Files served to browsers can't run as pages of the website serving them: the download script (getDownloadLink()) and downloadToResponse() used the MIME type and the name given by whoever sent the file on Telegram, or by the query string of the download script, so a link could serve HTML with scripts from the website hosting the download script, and a quote in the name broke out of the Content-Disposition header. Every file is now served with Content-Security-Policy: sandbox, X-Content-Type-Options: nosniff and a normalized MIME type; only media (images but SVG, video, audio) and plain text are shown inline, everything else is downloaded as an attachment, and the name is escaped.
• Clicking the buttons of received keyboards works again: since layer 229 (8.8.8), buttons carry their action in their type, and Button::click() did nothing.
• Bot API keyboards are converted correctly by @xcgu in https://github.com/danog/MadelineProto/pull/1759 and @danog: games, poll requests without a type, forward_text, the rows after the first one, and inline buttons without an action (now refused with an explicit error).
• createTopic(), editTopic(), openTopic(), closeTopic() and deleteTopic() of group messages always failed: they called forum methods that left the layer. Calls of the old channels.* forum methods are now sent as the messages.* ones. DialogSetChatWallPaper gets the right $same and a new $forBoth, and the peer of help.promoData is extracted.
• Phar updates on php-fpm with opcache.validate_timestamps=0: once a new release was downloaded, opcache kept running the code of the previous one, which saw that an update was required on every request, until php-fpm was restarted. Every phar build now has its own alias, and madeline.php is invalidated in opcache once rewritten.
• The phar no longer waits up to 18 seconds at startup when phar.madelineproto.xyz can't be reached.
• The web request that starts a bot is ended even when something was output before (an echo in onStart(), a warning with display_errors=On): the client waited for as long as the bot ran, in https://github.com/danog/MadelineProto/pull/1765.
• A timeout of help.getCdnConfig in the update loops no longer ends the process.
• Sessions saved while waiting for the state of a connection failed after loading with "Typed property AsyncWaiter::$waitFor must not be accessed before initialization", and a state reached twice during a wait threw "Operation is no longer pending".

Читать полностью…

MadelineProto | Official Channel

• New sessions with Prometheus metrics enabled no longer fail to start their IPC worker with "Address already in use".
• importAuthorization() uses the imported DC by default, not DC 1 (which failed with "No info for DC 1" on the test servers).
• Round videos with an audio attribute (Telegram now adds one with the waveform) are video notes again, not audio files.
• Uploads of bot API file IDs are resumed after a restart.
• Profile photos from bot API file IDs are downloaded in the size of the file ID (not always the big one), even when the peer isn't in the database.

Internal:
• The CI moved from Woodpecker to GitHub Actions: the full test suite runs on pushes and tags (with user sessions on Telegram's test servers), pull requests run what needs no secret, a daily build submits the schema and docs updates as pull requests, and releases are drafted, described and announced automatically from the release labels of pull requests.

What's Changed
Other changes
• Update ObfuscatedStream.php by @bertmsk in https://github.com/danog/MadelineProto/pull/1717
• Fix by @xcgu in https://github.com/danog/MadelineProto/pull/1756

Full Changelog: https://github.com/danog/MadelineProto/compare/8.8.8...8.8.9

Читать полностью…

MadelineProto | Official Channel

Introducing MadelineProto 8.8.8, with video calls, group calls, livestreams and end-to-end encrypted conference calls, all in pure PHP, absolutely NO ffmpeg or extensions: all group/conference call and video call functionality works on webhosts, too!

Example:

<?php

if (!file_exists('madeline.php')) {
copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
include 'madeline.php';

$MadelineProto = new \danog\MadelineProto\API('session.madeline');
$MadelineProto->start();

$MadelineProto->requestCall('@username', video: true)->play(new RemoteUrl('https://paste.daniil.it/oncall.webm'));
$MadelineProto->joinGroupCall('@mygroup')->play(new RemoteUrl('https://paste.daniil.it/oncall.webm'));



See examples/bot.php for a full example!

See the call documentation » for more info, and try the open-source magnaluna video webradio », which plays a video (including youtube videos WITHOUT ffmpeg/yt-dlp, 100% webhost support) in one-to-one calls, in the video chats and conference calls whose links you send it, and in the video chats of all its groups!

Test the new features live with magnaluna on Telegram: @magicalcrazypony! Call it, send it /call, or send it the link of a group call or conference call to join, or use the /join command in a group to create or join a group call.

Features:
- Video calls: play WebM/MKV files with VP8, VP9, H.264, H.265 (or AV1, in one-to-one calls) video and OPUS audio into any call: frames are demuxed in pure PHP and sent as-is, with no transcoding. Start a video call with requestCall($user, video: true).
- Screen sharing: play a video as a screen share alongside the camera stream with MediaDestination::Presentation.
- Group calls (video chats and livestreams): create (also scheduled and RTMP livestreams), join (also as a channel or via an invite link), stream audio and video, share the screen, record, and manage them: title, invites and invite links, muting, volume, raised hands, server-side recording, kicking participants, in-call messages and reactions.
- Livestreams: record stream mode livestreams (including RTMP ones), using the new pure PHP Mp4 demuxer, and publish RTMP livestreams with getGroupCallStreamRtmpUrl.
- Live stories: start a live story with startLive, stream into it, comment, and handle Telegram Stars donations.
- End-to-end encrypted conference calls: create them, join them via link or invitation, invite users, verify the key emojis, send end-to-end encrypted in-call messages and remove participants (rekeying the call), or upgrade a one-to-one call with migrateCallToConference.
- Call recording: setOutput records a participant's microphone, camera and screen share into a Matroska (or OGG OPUS) file with a fixed set of tracks, and setOutputFolder records every participant into a directory, starting a new file whenever their streams change. Recordings are written in pure PHP, without decoding anything.
- New CallStreams update, emitted whenever the streams a participant sends (or their codecs) change, and whenever a recording ends.
- All call types now implement the common Call interface (and the multi-party ones MultiCall), with the same playlist, mute, screen sharing and recording controls: PrivateCall (with VoIP kept as an alias), GroupCall, LiveStory and ConferenceCall.
- New GroupCall, GroupCallParticipants, GroupCallMessage, GroupCallMessagesDeleted, LiveStory, LiveStoryMessage and ConferenceCallMessage updates.
- Messages have new getCall, canRequestCall, requestCall and getCallDenialReason methods, to start (or get) the call of a private chat, or the video chat of a group or channel; CallNotAllowedException explains why a call can't be started. $message->requestCall()->join() works in every chat, since joining an outgoing one-to-one call does nothing.
- Calls survive restarts: playlists (continuing the current WebM/OGG file where it left off), hold files (which now loop) and recordings are saved in the session.
- Resumable uploads: interrupted uploads of files, URLs, Telegram files and resumable streams (encrypted ones included) are resumed after a restart, without uploading the already uploaded parts again.
- Resumable method calls: interrupted method calls and send* calls uploading such files are resumed after a restart, until their upload completes (can be disabled with the new resumeInterruptedCalls file setting).
- Resumable download streams: downloadToReturnedStream and Media::getStream now return a ResumableDownloadStream, which can be serialized, and resumes downloading from where it left off.
- Through IPC, calls without callbacks are sent again when the IPC server restarts.
- Added support for communities.
- Any OGG OPUS file (mono or stereo, with any frame size) can now be played into calls as-is, not only the ones created by MadelineProto: no more need to pre-convert them with @libtgvoip_bot or Ogg::convert.
- Update to layer 231.

Fixes:
- Fix downloads without a size not closing the connection
- Fix getInputClientProxy on null
- Fix inline query button conversion in keyboard buttons
- Fix sending media with a TTL
- Upgrade to phpseclib 4, keeping sessions created with phpseclib 3 loadable
- File reference improvements
- Fix updates received while the event handler is starting being handled again in an endless loop, using all the memory, if the event handler failed to start
- Fix uploads with a cancellation through IPC, and IPC cancellations no longer block the event loop
- Fix encrypted downloads starting from a non-zero offset
- Cancelled uploads no longer throw errors into the event loop

The latest official MadelineProto phars are now downloadable through @madelineprotophar as well.

Full TL changelog: https://github.com/danog/MadelineProto/releases/tag/8.8.8

Читать полностью…

MadelineProto | Official Channel

Native, pure-PHP (no FFI, no shell, 💯 webhost support) group and video calls are working and coming in the next MadelineProto version!

Читать полностью…

MadelineProto | Official Channel

Indeed, looking at the announced routes i.e. in https://bgp.he.net/AS18101#_prefixes + https://bgp.he.net/AS18101#_prefixes6, they're hijacking both v4 and v6 prefixes

Читать полностью…

MadelineProto | Official Channel

MadelineProto was updated (8.6.4)!

Features:
- Layer 223

Fixes:
- Remove debug statement

New Methods:
- messages.editChatCreator
- messages.getFutureChatCreatorAfterLeave
- messages.editChatParticipantRank
- messages.declineUrlAuth
- messages.checkUrlAuthMatchCode

Changed Methods:
- Added in_app_origin param to messages.requestUrlAuth
- Added match_code param to messages.acceptUrlAuth
- Added request_msg_id param to messages.toggleNoForwards

Deleted Methods:
- channels.editCreator
- channels.getFutureCreatorAfterLeave

New Constructors:
- messageActionNoForwardsToggle
- messageActionNoForwardsRequest
- updateChatParticipantRank
- messageEntityFormattedDate
- channelAdminLogEventActionParticipantEditRank

Changed Constructors:
- Added rank param to chatParticipant
- Added rank param to chatParticipantCreator
- Added rank param to chatParticipantAdmin
- Added from_rank param to message
- Added noforwards_my_enabled param to userFull
- Added noforwards_peer_enabled param to userFull
- Added rank param to channelParticipant
- Added rank param to channelParticipantSelf
- Added rank param to channelParticipantBanned
- Added edit_rank param to channelAdminLogEventsFilter
- Added manage_ranks param to chatAdminRights
- Added edit_rank param to chatBannedRights
- Added match_codes_first param to urlAuthResultRequest
- Added match_codes param to urlAuthResultRequest
- Added user_id_hint param to urlAuthResultRequest

Читать полностью…

MadelineProto | Official Channel

Happy new year, let this be a year of peace and joy!

Читать полностью…
Subscribe to a channel