Official MadelineProto channel. Italian Channel: @MadelineProtoIta Group: @pwrtelegramgroup
New Constructors:
- messageMediaGiveawayResults
- updateBotMessageReaction
- updateBotMessageReactions
- inputStickerSetEmojiChannelDefaultStatuses
- channelAdminLogEventActionChangePeerColor
- channelAdminLogEventActionChangeProfilePeerColor
- channelAdminLogEventActionChangeWallpaper
- channelAdminLogEventActionChangeEmojiStatus
- storyViewPublicForward
- storyViewPublicRepost
- mediaAreaChannelPost
- inputMediaAreaChannelPost
- storyReaction
- storyReactionPublicForward
- storyReactionPublicRepost
- stories.storyReactionsList
Changed Methods:
- Added requested_peers param to messages.sendBotRequestedPeer
- Removed requested_peer param from messages.sendBotRequestedPeer
- Added for_profile param to channels.updateColor
- Added offset param to stats.getMessagePublicForwards
- Removed offset_rate param from stats.getMessagePublicForwards
- Removed offset_peer param from stats.getMessagePublicForwards
- Removed offset_id param from stats.getMessagePublicForwards
- Added forwards_first param to stories.getStoryViewsList
🎄 Merry Christmas everyone!🎄
This holiday release updates MadelineProto to layer 169, and brings a number of fixes (8.0.0-beta187)!
Breaking changes:
- Remove low-level peerChannel, peerChat, peerUser constructors everywhere from the API, replacing them with bot API IDs (integers).
- Remove legacy to_id field from legacy raw updates (the new SimpleEventHandler API has not changed, because it's covered by the backwards compatibility promise, unlike legacy raw updates)
- Remove flush() method: the postpone flag will now only postpone flushing to the end of the event loop queue, instead of never triggering it until flush() or a non-postponed method is called by
- Removed the deprecated getDialogs method, please use getDialogIds instead
Features:
- Add a getDiscussion method to ChannelMessage to obtain the comment section of a post as a GroupMessage.
- Document the built-in ORM: https://docs.madelineproto.xyz/docs/UPDATES.html#built-in-orm
- Add ChannelParticipant update, received whenever a participant leaves, joins or is banned or admined in a channel or supergroup by @ahjdev
(github)
- Add a FilterTopicId filter to filter messages by topic ID by @ahjdev
(github)
- Add queueId parameter to methods to allow enforcing server-side execution order when using postpone or invoking methods concurrently
- Add delete, pin, unpin, report methods to ChatButtonQuery and ChatGameQuery by @mtalaeii
(github)
Fixes:
- Fix PHP 8.3 FFI usage for opus conversion.
- Misc usability and performance improvements.
More specifically, the access_hash field was removed from all public APIs, to avoid usage of outdated values.
- Fix various peer database issues
- Fix broadcasts
- Improve TL traces of IPC exceptions
- Misc update handling fixes
- Fix BotChatInviteRequest
- Update the source code of downloadRenameBot.php by @ahjdev
(github)
- Report exceptions thrown from event handler to the report peer(s) of the current event handler when using multiple event handler with startAndLoopMulti or EventLoop::queue(MyEventHandler::startAndLoop(...), '...madeline');
Note that for performance reasons, some internal or connection exceptions not thrown from the event handler and exceptions thrown from onStart may still get reported (only to, or also to) the last started event handler.
- Completely remove postponing from the API to avoid unwanted side effects (sequentially queued requests are still bundled in a single container anyway)
- Use async output buffer stream with downloadToBrowser
- Secret chat media improvements
Changed Constructors:
Added color param to user
Added profile_color param to user
Added color param to channel
Added view_forum_as_messages param to channelFull
Added invert_media param to message
Added force_large_media param to messageMediaWebPage
Added force_small_media param to messageMediaWebPage
Added manual param to messageMediaWebPage
Added safe param to messageMediaWebPage
Added same param to messageActionSetChatWallPaper
Added for_both param to messageActionSetChatWallPaper
Added view_forum_as_messages param to dialog
Added wallpaper_overridden param to userFull
Added invert_media param to updateServiceNotification
Added url param to webPageEmpty
Added url param to webPagePending
Added has_large_media param to webPage
Added color param to chatInvite
Added text_color param to stickerSet
Added invert_media param to inputBotInlineMessageMediaAuto
Added invert_media param to inputBotInlineMessageText
Added invert_media param to botInlineMessageMediaAuto
Added invert_media param to botInlineMessageText
Added invert_media param to draftMessage
Added reply_to param to draftMessage
Added media param to draftMessage
Removed reply_to_msg_id param from draftMessage
Added reactions_per_post param to stats.broadcastStats
Added views_per_story param to stats.broadcastStats
Added shares_per_story param to stats.broadcastStats
Added reactions_per_story param to stats.broadcastStats
Added reactions_by_emotion_graph param to stats.broadcastStats
Added story_interactions_graph param to stats.broadcastStats
Added story_reactions_by_emotion_graph param to stats.broadcastStats
Added recent_posts_interactions param to stats.broadcastStats
Removed recent_message_interactions param from stats.broadcastStats
Added quote param to messageReplyHeader
Added reply_from param to messageReplyHeader
Added reply_media param to messageReplyHeader
Added quote_text param to messageReplyHeader
Added quote_entities param to messageReplyHeader
Added quote_offset param to messageReplyHeader
Added reactions_by_emotion_graph param to stats.messageStats
Added app param to sponsoredMessage
Added button_text param to sponsoredMessage
Added trial_remains_num param to messages.transcribedAudio
Added trial_remains_until_date param to messages.transcribedAudio
Added fwd_from param to storyItem
Added reply_to_peer_id param to inputReplyToMessage
Added quote_text param to inputReplyToMessage
Added quote_entities param to inputReplyToMessage
Added quote_offset param to inputReplyToMessage
MadelineProto was updated (8.0.0-beta170)!
Features:
- Added a RestartPlugin that can be included to offer a /restart command to admins
- Add sendText
method to AbstractMessage
- Add BotCommands
, MessageForwards
, MessageViewsChanged
, UpdateChannel
, BotChatInviteRequest
, PendingJoinRequests
, DeleteChannelMessages
, DeleteMessages
, DeleteScheduledMessages
PinnedChannelMessages
, PinnedGroupMessages
, PinnedPrivateMessages
SimpleEventHandler updates
- Add ChatInvite
, ChatInviteExported
, ChatInvitePublicJoin
, Command
SimpleEventHandler objects
- Update to layer 167
- Added support for ephemeral filesystems (i.e. docker containers with no volumes, storing all data on Mysql/Postgres/Redis) by setting a table prefix manually in the settings, see here » for more info.
- Enable jemalloc and function JIT in docker image to improve performance, and bumped the PHP version to 8.3.
- The login page now features an invitation to translate MadelineProto in your language, using weblate.madelineproto.xyz!
- Added an htmlEscape
helper function for MadelineProto's HTML entity converter
- Support forwarding stories through sendMedia
Fixes:
- Fixed composer plugins
- Fix importAuthorization
- Improved public API a bit
- Multiple improvements
- Switch to LONGBLOB for session database, to cover some edge cases with event handlers with a lot of non-ORM properties.
- UNIX socket database connections
- Fix revoltphp bug
- Fix updatePinnedMessages conversion
- Fix QR code login in certain conditions
- Use different escaping rules for single-backtick codeblocks (only ` and \ need to be escaped inside of them now, escaping can be done with the new markdownCodeEscape method).
- Small auth logic bugfix
- Fix backwards conversion in the entitiesToHtml method
- Fix broadcasts with the broadcast API!
MadelineProto was updated (8.0.0-beta153):
Features by @danogentili:
- Update to layer 165
- Full secret chat refactoring, fixing many issues and adding support for updateNewOutgoingEncryptedMessage
updates.
- A huge amount of stability and performance improvements, updating to this version is strongly recommended.
- Added support for secret chats to the abstract sendDocument
/sendPhoto
/sendMessage
methods.
- Reduce memory usage of secret chats by storing all messages in separate tables if a DB backend is used.
- Add cancellation support to the download methods.
Features by @J_A_V_A:
- Add full secret chat support to the SimpleEventHandler
with the new SecretMessage
update & filters & fields!
- Add secret chat support to DialogSetTTL
/DialogScreenshotTaken
/DialogHistoryCleared
/SecretUserTyping
updates.
- Add DialogDeleteMessages
, DialogReadMessages
updates for secret chats (support will be extended to normal chats soon).
Features by @madbyte:
- Add support for channel stories in the SimpleEventHandler API
- Add enableAutoTranslate
, disableAutoTranslate
, replyOrEdit
bound methods to all message classes.
- Add enableProtection
, disableProtection
bound methods to channel/supergroup message classes.
- Add enableSlowMode
, disableSlowMode
, enableJoinToComment
, disableJoinToComment
bound methods to supergroup message classes.
- Add DialogSetChatWallPaper
/DialogBotAllowed
/ChatUserTyping
updates and BotApp
/Wallpaper
/WallpaperSettings
classes.
- Add IsEdited
/IsNotEdited
message filters
- Multiple bugfixes in the SimpleEventHandler API!
Features by @YinYang:
- Add support for an onStop method in the event handler
P.S. Here's the usual http://t.me/madelineproto?boost plug :D ❤️❤️❤️
http://t.me/madelineproto?boost 🌚 (soon)
Читать полностью…MadelineProto was updated (8.0.0-beta150)!
New Methods:
- bots.canSendMessage
- bots.allowSendMessage
- bots.invokeWebViewCustomMethod
- stories.canSendStory
Changed Constructors:
- Added from_request param to messageActionBotAllowed
- Added verified param to chatInvite
- Added scam param to chatInvite
- Added fake param to chatInvite
- Added has_viewers param to storyViews
Fixes:
- File-related fixes
MadelineProto was updated (8.0.0-beta145)!
Huge thanks to @madbyte and @J_A_V_A for contributing a huge number of abstractions for the SimpleEventHandler for this release, here's the full changelog:
Features by @madbyte:
- Add InlineQuery
SimpleEventHandler updates with related classes
- Add block
, unblock
, read
, enableTTL
, disableTTL
, getStories
, setAction
, enableTTL
, disableTTL
bound methods to all message updates (with related classes)
- Add Story
, StoryReaction
, ChannelUserTyping
, UserTyping
, Blocked
, BotStopped
, Phone
, Status
, Username
, Privacy
SimpleEventHandler updates
- Add save
, unsave
bound methods to the Gif
class
- Add disableSignatures
, enableSignatures
, getMember
, hideHistory
, unhideHistory
bound methods to ChannelMessage
- Add getMember
, hideMembers
, unhideMembers
, hideHistory
, unhideHistory
, deleteUserMessages
, toSuperGroup
, enableAntiSpam
, disableAntiSpam
, enableTopics
, disableTopics
, createTopic
, editTopic
, openTopic
, closeTopic
, deleteTopic
bound methods to GroupMessage
- Add Participant
and AdminRights
, BannedRights
classes
- Add screeshot
bound method to PrivateMessage
- Add DialogChannelCreated
, DialogChannelMigrateFrom
, DialogChatJoinedByLink
, DialogChatMigrateTo
, DialogContactSignUp
, DialogGameScore
, DialogGeoProximityReached
, DialogGiftPremium
, GroupCallEnded
, GroupCallInvited
, GroupCallScheduled
, DialogHistoryCleared
, DialogMemberJoinedByRequest
, DialogPeerRequested
, DialogPhoneCall
, DialogScreenshotTaken
, DialogSetChatTheme
, DialogSetTTL
, DialogSuggestProfilePhoto
, DialogTopicCreated
, DialogTopicEdited
, DialogWebView
SimpleEventHandler service messages
- Add Privacy
abstraction
Features by @J_A_V_A:
- Add entity support for SimpleEventHandler Message
s, with full OOP Entity abstractions
- Add ButtonQuery
updates
- Add downloadToDir
, downloadToFile
bound methods to Media
objects
- Add report
, saveContact
, removeContact
, inviteToChannel
, read
bound methods to Message
objects
- Add view
bound method to ChannelMessage
- Add ban
, unban
, kick
, deleteAll
methods to GroupMessage
- Begin work on secret chat support for SimpleEventHandler
Features by @danogentili:
- Add support for bot API secret chat IDs
- Begin work on group call and video call support
- Add view/forward/author information in forwarded messages
- Increase performance with buffered logging
- Add isBot
method, to check if the specified peer is a bot.
- Add FilterFromBot
, FilterSenders
filters
Fixes by @danogentili:
- Completely refactored the connection module, featuring:
- 60-80% faster initial handshakes
- No unneeded socket connections to unused DCs
- Automatic disconnection of inactive media sockets
- Properly reconnect in case of network issues (fixes "Request Timeout" errors)
- Optimizations across the board
- Add pcntl extension to docker image
- Mark all optional constructor parameters as optional in the public API.
- Fix usage of boolean parameters of account.changeAuthorizationSettings, messages.editExportedChatInvite, channels.editForumTopic, phone.toggleGroupCallSettings, phone.toggleGroupCallRecord, phone.editGroupCallParticipant
- Fix pagination in messages.getChatInviteImporters
by explicitly requiring the offset_date
parameter if offset_user
is provided
- Secret chat fixes
- Fix fileGetContents
and http-client
- Fix reuploading of media files from abstract Media objects
- Fix pending count in broadcasts
- Avoid race condition during initialization
- Avoid integer overflow in VoIP module
- FIx setBindTo
Fixes by @xtrime:
- Fix safari video streaming
Breaking changes:
- Moved the isSupergroup, toSupergroup, fromSupergroup methods to a DialogId class, which also has many other useful methods to work with bot API IDs.
- All download methods except for downloadToFile and downloadToDir now return null instead of true.
On a more personal note, I'm very happy of the changes that were contributed in this release: MadelineProto is an open source project, and you can contribute features as well, feel free to fork it and submit pull requests to add the features you think would be cool to have! :)
I'm very happy to announce the first release of https://github.com/danog/php-tokio: you can now use any async Rust library from PHP!
It's fully integrated with revolt: this allows full compatibility with amphp, PSL and reactphp, and with any Rust library powered by tokio.rs.
Here's an example from the repo, using the async Rust reqwest library to make asynchronous HTTP requests from PHP:
<?phpI'm really excited for the potential usecases of php-tokio, and its implications for the PHP async ecosystem.
use Reqwest\Client;
use function Amp\async;
use function Amp\Future\await;
require 'vendor/autoload.php';
Client::init();
function test(int $delay): void {
$url = "https://httpbin.org/delay/$delay";
$t = time();
echo "Making async reqwest to $url that will return after $delay seconds...".PHP_EOL;
Client::get($url);
$t = time() - $t;
echo "Got response from $url after ~".$t." seconds!".PHP_EOL;
};
$futures = [];
$futures []= async(test(...), 5);
$futures []= async(test(...), 5);
$futures []= async(test(...), 5);
await($futures);
Aaaand we're on the front-page of hackernews ❤️❤️❤️
Читать полностью…MadelineProto was updated (8.0.0-beta138)!
Features:
- Added Outgoing
, FilterOutgoing
, Running
, FilterRunning
, Ended
, FilterEnded
filters and simple filters to allow filtering for outgoing, successfully configured or ended calls!
- Added VoIP::pause
/VoIP::resume
/VoIP::isPaused
methods for pausing/resuming currently playing files
- Add a getStream()
bound method to abstract Message objects!
- Allow uploading files directly from streams!
- Allow playing and converting VoIP audio from a stream (including any Telegram file with getStream()
!)
- Add source code of @libtgvoipbot
- Add VoIP::getCurrent()
method, to obtain the currently playing audio!
- Add a VoIP::getAllCalls()
method, to obtain all currently running calls indexed by user ID!
- Add a simple filter for broadcast progress updates
- Add Ogg::validateOgg
method
- Add Tools::getStreamPipe
method
- Add support for TCP VoIP streams
- Add ffmpeg to docker image
Fixes:
- Fix VoIP::skip()!
- Fix markdownUrlEscape!
- Fix the "Fix getIdFromUsername(): Return value must be of type ?int, string returned" issue that popped up when using the MySQL ORM
- Fixed many small VoIP issues!
Notice: MadelineProto v7 is now fully deprecated due to Telegram server-side changes, it cannot be used anymore, please switch to MadelineProto v8.
For this purpose, I've created a page to help in the conversion of your bots from MadelineProto v7 to MadelineProto v8, check it out!
As a birthday present for Telegram's 🥳th birthday, MadelineProto now supports VoIP calls again!
Try calling the Magna Luna webradio @magicalcrazypony to hear some cool songs, powered by @MadelineProto!
The new MadelineProto VoIP implementation is written in pure PHP, so it works even on free webhosts!
Check out the new VoIP documentation for more info on how to write your very own Telegram webradio using MadelineProto!
Features (8.0.0-beta131):
- VoIP calls!
- You can now play()
audio files of any format, local files, stream URLs or even stream data using AMP streams!
- You can now play()
audio files even on webhosts, by pre-converting the files using @libtgvoip_bot!
- Added a downloadToReturnedStream
method!
- Updated to layer 161!
New Methods:
- contacts.setBlocked
- stories.activateStealthMode
- stories.sendReaction
Changed Methods:
Added my_stories_from param to contacts.block
Added my_stories_from param to contacts.unblock
Added my_stories_from param to contacts.getBlocked
Added media_areas param to stories.sendStory
Added media_areas param to stories.editStory
Added just_contacts param to stories.getStoryViewsList
Added reactions_first param to stories.getStoryViewsList
Added q param to stories.getStoryViewsList
Added offset param to stories.getStoryViewsList
Removed offset_date param from stories.getStoryViewsList
Removed offset_id param from stories.getStoryViewsList
New Constructors:
- updateStoriesStealthMode
- updateSentStoryReaction
- storiesStealthMode
- mediaAreaCoordinates
- mediaAreaVenue
- inputMediaAreaVenue
- mediaAreaGeoPoint
Changed Constructors:
Added blocked_my_stories_from param to userFull
Added blocked_my_stories_from param to updatePeerBlocked
Added reactions_count param to storyViews
Added media_areas param to storyItem
Added sent_reaction param to storyItem
Added stealth_mode param to stories.allStoriesNotModified
Added stealth_mode param to stories.allStories
Added blocked param to storyView
Added blocked_my_stories_from param to storyView
Added reaction param to storyView
Added reactions_count param to stories.storyViewsList
Added next_offset param to stories.storyViewsList
Fixes:
- Greatly improved performance by deferring all ORM operations!
- CDN fixes!
- Fix connection to the database when a password is accidentally provided but none is needed
- Removed all generator polyfilling code and deprecated generator functions!
As a side note, I'm very happy of how the current VoIP implementation turned out, and it was a lot of fun to write!
Adding native webhost support required me to write a pure PHP OGG OPUS muxer and demuxer, as well as a full reimplementation of the GrVP protocol in pure PHP: doing it in such a high-level language allowed me to easily use amphp's libraries to easily add support for URLs, streams and all audio formats.
I also wrote a PHP FFI wrapper for libopus for this project, I'll probably split it to a separate package along with the OGG muxer/demuxer because it's really useful :)
P. S. It seems like the official Telegram iOS app has a bug which prevents magnaluna from working properly, I'm looking into it, try calling from your Mac/Android/PC, instead!
VoIP calls are working again!
They will be released in the next beta, Magna Luna will also come back to life very soon ;)
P.S. This is done using a pure PHP implementation of VoIP, so it'll work even on webhosts ;)
And here comes beta127 with multiple fixes and improvements to plugins and error handling!
Читать полностью…Deleted Methods:
- help.getAppChangelog
New Methods:
- account.getChannelDefaultEmojiStatuses
- account.getChannelRestrictedStatusEmojis
- channels.updateEmojiStatus
- stories.getStoryReactionsList
The next release will probably feature a takeout API :)
Читать полностью…New Methods:
- account.updateColor
- account.getDefaultBackgroundEmojis
- messages.searchEmojiStickerSets
- help.getPeerColors
- help.getPeerProfileColors
- channels.updateColor
- channels.toggleViewForumAsMessages
- channels.getChannelRecommendations
- payments.getPremiumGiftCodeOptions
- payments.checkGiftCode
- payments.applyGiftCode
- payments.getGiveawayInfo
- payments.launchPrepaidGiveaway
- stats.getStoryStats
- stats.getStoryPublicForwards
- premium.getBoostsList
- premium.getMyBoosts
- premium.applyBoost
- premium.getBoostsStatus
- premium.getUserBoosts
Changed Methods:
Added invert_media param to messages.sendMessage
Added invert_media param to messages.sendMedia
Added invert_media param to messages.editMessage
Added invert_media param to messages.editInlineBotMessage
Added invert_media param to messages.saveDraft
Added reply_to param to messages.saveDraft
Added media param to messages.saveDraft
Removed reply_to_msg_id param from messages.saveDraft
Removed top_msg_id param from messages.saveDraft
Added invert_media param to messages.sendMultiMedia
Added for_both param to messages.setChatWallPaper
Added revert param to messages.setChatWallPaper
Added fwd_modified param to stories.sendStory
Added fwd_from_id param to stories.sendStory
Added fwd_from_story param to stories.sendStory
New Constructors:
- inputMediaWebPage
- messageMediaGiveaway
- messageActionGiftCode
- messageActionGiveawayLaunch
- messageActionGiveawayResults
- updateBotChatBoost
- updateChannelViewForumAsMessages
- updatePeerWallpaper
- inputBotInlineMessageMediaWebPage
- botInlineMessageMediaWebPage
- channelAdminLogEventActionChangeColor
- channelAdminLogEventActionChangeBackgroundEmoji
- inputInvoicePremiumGiftCode
- inputStorePaymentPremiumGiftCode
- inputStorePaymentPremiumGiveaway
- premiumGiftCodeOption
- payments.checkedGiftCode
- payments.giveawayInfo
- payments.giveawayInfoResults
- prepaidGiveaway
- boost
- premium.boostsList
- myBoost
- premium.myBoosts
- premium.boostsStatus
- storyFwdHeader
- postInteractionCountersMessage
- postInteractionCountersStory
- stats.storyStats
- publicForwardMessage
- publicForwardStory
- stats.publicForwards
- peerColor
- help.peerColorSet
- help.peerColorProfileSet
- help.peerColorOption
- help.peerColorsNotModified
- help.peerColors
MadelineProto was updated (8.0.0-beta156)!
Features:
- Added support for request cancellation to all methods.
- You can now specify a custom floodWaitLimit
for each API method call.
Fixes:
- Multiple bugfixes, improved abstractions
- Improve queue logic
- Improve performance & cleanup method call code
MadelineProto was updated (8.0.0-beta151!)
Features:
- Upgraded to layer 164
New Methods:
- stories.getPeerStories
- stories.getAllReadPeerStories
- stories.getPeerMaxIDs
- stories.getChatsToSend
- stories.togglePeerStoriesHidden
- stories.getBoostsStatus
- stories.getBoostersList
- stories.canApplyBoost
- stories.applyBoost
Changed Methods:
Added confirmed param to account.changeAuthorizationSettings
Added from_side_menu param to messages.requestSimpleWebView
Added start_param param to messages.requestSimpleWebView
Added peer param to stories.canSendStory
Added peer param to stories.sendStory
Added peer param to stories.editStory
Added peer param to stories.deleteStories
Added peer param to stories.togglePinned
Added peer param to stories.getPinnedStories
Removed user_id param from stories.getPinnedStories
Added peer param to stories.getStoriesArchive
Added peer param to stories.getStoriesByID
Removed user_id param from stories.getStoriesByID
Added peer param to stories.readStories
Removed user_id param from stories.readStories
Added peer param to stories.incrementStoryViews
Removed user_id param from stories.incrementStoryViews
Added peer param to stories.getStoryViewsList
Added peer param to stories.getStoriesViews
Added peer param to stories.exportStoryLink
Removed user_id param from stories.exportStoryLink
Added peer param to stories.report
Removed user_id param from stories.report
Added peer param to stories.sendReaction
Removed user_id param from stories.sendReaction
New Constructors:
- updateNewAuthorization
- mediaAreaSuggestedReaction
- peerStories
- stories.peerStories
- stories.boostsStatus
- stories.canApplyBoostOk
- stories.canApplyBoostReplace
- booster
- stories.boostersList
Changed Constructors:
Added peer param to inputMediaStory
Removed user_id param from inputMediaStory
Added stories_hidden param to channel
Added stories_hidden_min param to channel
Added stories_unavailable param to channel
Added stories_max_id param to channel
Added stories_pinned_available param to channelFull
Added stories param to channelFull
Added peer param to messageMediaStory
Removed user_id param from messageMediaStory
Added date param to updateReadMessagesContents
Added peer param to updateStory
Removed user_id param from updateStory
Added peer param to updateReadStories
Removed user_id param from updateReadStories
Added peer param to updateSentStoryReaction
Removed user_id param from updateSentStoryReaction
Added unconfirmed param to authorization
Added terms_url param to invoice
Removed recurring_terms_url param from invoice
Added post_stories param to chatAdminRights
Added edit_stories param to chatAdminRights
Added delete_stories param to chatAdminRights
Added peer param to webPageAttributeStory
Removed user_id param from webPageAttributeStory
Added show_in_attach_menu param to attachMenuBot
Added show_in_side_menu param to attachMenuBot
Added side_menu_disclaimer_needed param to attachMenuBot
Added has_settings param to messages.botApp
Added forwards_count param to storyViews
Added reactions param to storyViews
Added out param to storyItem
Added peer_stories param to stories.allStories
Added chats param to stories.allStories
Removed user_stories param from stories.allStories
Added chats param to stories.stories
Fixes:
- Performance improvements for getID
- Fix hangs by disabling JIT in official docker image
- Fix issue in DialogTopicEdited
- Fix FromAdminOrOutgoing filter
- Fix status logic in CheckLoop (should avoid Request Timeout errors)
- Update&fix telethon and pyrogram session conversion logic
- Get rid of old code
- tg-cli ID bugfixes
- TL performance improvements
P.S. You can now boost this channel by clicking on this link: http://t.me/madelineproto?boost :D
I'll use the boost to post cool stories regarding my projects and MadelineProto updates ☺️
Docs are still being built, the links should work in ~10 mins :)
Читать полностью…MadelineProto was updated (8.0.0-beta148)!
Fixes by @danogentili:
- Connection stability fixes
- Avoid GC bugs
- Improve media DC logic
- Fix sendDocument/sendPhoto through IPC API
- Fix upload of images with no content-length
- Fix usage of streams and filecallbacks through the IPC API
- Allow using fopen on php://memory in the SimpleEventHandler
- Improve stream upload logic
- Handle MSG_WAIT_FAILED errors
- Improve call queue
- Improve tests
- TL fix
- Avoid ext-psr conflict
- Bugfix for @libtgvoipbot
Fixes by @AhJXD:
- Handle sendMessageGamePlayAction
My pure PHP implementation of STUN is ready, the first pre-alpha version of the library is available at https://github.com/danog/stun!
This library is the first step in the creation of a pure PHP implementation of webrtc, specifically to work with Telegram's new WebRTC-based VoIP implementation used in group and video calls, even from shared PHP webhosts :)
MadelineProto was updated (8.0.0-beta144)!
Features:
- Add cb, offset and end parameters to Media::getStream
- Always run updateSettings if settings are passed to constructor.
This is a useful UX improvement, but it brings some additional overhead when using new \danog\MadelineProto\API
, so please remove (or pass null) the second $settings parameter passed to the API constructor once the instance is logged in.
Fixes:
- Multiple IPC fixes and improvements
- Avoid connecting to old DCs that the server told us to forget about.
- Performance improvements in the update handler.
I'm now the main maintainer of gojekyll, a ~30x faster Go port of Jekyll :)
I fell in love with gojekyll the first time I found it: it's incredibly fast, and it's currently powering the MadelineProto documentation!
When I first found it, the project was kind of abandoned with quite a few missing features: now, it has a lot less bugs, some new features, and most importantly it's much faster than it used to be, mostly thanks to my fork of the blackfriday markdown processor, which uses the golang bfchroma syntax highlighter instead of the extremely slow python pygmentize library :)
I'm now also a maintainer of osteele/liquid, the Go port of the Shopify Liquid template engine powering gojekyll.
I've released MadelineProto 8.0.0-beta136, it features many fixes, including fixes for proxies and a fix to avoid reporting the same error more than once in a minute.
Also, as mentioned in the previous post, I completely removed all deprecated APIs, including the legacy array settings and Generator polyfills.
These APIs were deprecated and due to be removed a long time ago, but in case you haven't switched over yet, here's a quick recap on how to upgrade:
- Update to php 8.1.17+ or php 8.2.4+ (PHP 8.2.9 is strongly recommended)
- Remove all calls to async(false), async(true), all yields and unwrap all code wrapped in loop(function ()...) blocks (because async is now always enabled by default, and you can use async functions without yield since php 8.1).
- Replace legacy loops with the new loop API from daniil.it/loop
- Replace array settings with object settings, for example for the API ID:
Before:$settings = ['app_info' => ['api_id' => 123456, 'api_hash' => 'xxx']];
After:$settings = (new \danog\MadelineProto\Settings\AppInfo) ->setApiId(124) ->setApiHash('xx');
See docs.madelineproto.xyz/docs/SETTINGS.html and docs.madelineproto.xyz for more info.
Finished writing my own OGG muxer in pure PHP, for easy conversion of songs to the maximum possible bitrate, for the best possible VoIP quality :)
Читать полностью…MadelineProto 8.0.0-beta130 was released!
Features:
- Add CallbackQuery
, ButtonQuery
, ChatButtonQuery
, InlineButtonQuery
, GameQuery
, ChatGameQuery
, InlineGameQuery
simple update classes with many useful properties and methods:
- $query->queryId
: Query ID
- $query->userId
: ID of the user that pressed the button
- $query->chatInstance
: Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games.
- $query->data
: for ButtonQuery
and subclasses, data associated with the callback button.
- $query->matches
: for ButtonQuery
and subclasses, regex matches, if a filter regex is present.
- $query->chatId
: for Chat*Query
classes, chat where the inline keyboard was sent.
- $query->messageId
: for Chat*Query
classes, message ID.
- $query->gameShortName
: for GameQuery
and subclasses, short name of a Game to be returned, serves as the unique identifier for the game
- $query->inlineMessageId
: for Inline*Query
and subclasses, inline message ID
- $query->editText(...)
: for Chat*Query
classes, edits the message's text.
- $query->answer(string $message, bool $alert = false, ?string $url = null, int $cacheTime = 5 * 60)
- Answer an inline query
- Add translate
and editText
methods to Message
class
- Add FilterButtonQueryData
filter for ButtonQuery
- Adapt FilterFromAdmin
and FilterRegex
filter for ButtonQuery
- Add FromAdminOrOutgoing
simple filter
- Add markdownUrlEscape
method!
Fixes:
- Fix usage of inputMediaPhotoExternal
and inputMediaDocumentExternal
with messages.sendMultiMedia
, messages.sendMedia
, messages.uploadMedia
- Fix IsReplyToSelf
simple filter
- Fix CustomEmoji
media type
- Fix bot API conversion for messages forwarded from private channels (+ other bot API conversion fixes)
- Fix pagination hash generation
- Improve markdownCodeblockEscape
method
- Properly terminate IPC worker and delete session in case of session revocation
- Fix CDN file downloads
- Fix connection to testmode
- Properly wait when making getPwrChat requests
- Many other fixes!
MadelineProto was updated (8.0.0-beta126)!
Features:
- Add addReaction
, delReaction
, getOurReactions, pin, unpin
bound Message methods by @J_A_V_A
Fixes:
- Allow inclusion of traits, interfaces in plugins
- Fix creation of sessions