کانال تلگرامی MadelineProto Farsi ! مرجع آموزش و آپدیت های مدلین به زبان فارسی! 👥 Persian Group: https://t.me/joinchat/DtxwN0RlsQoKyN-lpSuOEw 👥 English Group: https://t.me/joinchat/Bgrajz6K-aJS2Dc5HJ7dsA 📢 English Channel: @MadelineProto
🔠🔠🔠 (#beta153)
🔠🔠🔠🅰️🔠🔠
• فیچر های اضافه شده توسط
👉 @danogentili 🌙
- آپدیت به لایر 165
- ریفکتور کردن سکرت چت به طور کامل حل مشکلات آن و اضافه شدن آپدیت updateNewOutgoingEncryptedMessage
- افزایش پرفورمنس و پایداری به میزان قابل توجه(آپدیت به این نسخه بسیار پیشنهاد میشود!)
- اضافه شدن ساپورت سکرت چت از متود های sendDocument
/sendPhoto
/sendMessage
- کاهش مقدار مصرف رم سکرت چت به این صورت که سیو اپدیت ها در دیتابیس در صورت فعال بودن دیتابیس بکند
- اضافه کردن قابلیت کنسلیشن به دانلود ها(Mtproto Cancelation اضافه نشده پس هنگام کنسل کردن یه مقدار کمی از فایل دانلود میشه ولی قابل استفاده نیست)
• فیچر های اضافه شده توسط
👉 @J_A_V_A 😮
- اضافه کردن ساپورت کامل کلاس SimpleEventHandler
از سکرت مسیج ها توسط کلاس SecretMessage
آپدیت ها فیلتر ها و متود های آن(اضافه شدن متود های باند به زودی ...)
- اضافه شدن ساپورت سکرت چت از اپدیت های DialogSetTTL
/DialogScreenshotTaken
/DialogHistoryCleared
/SecretUserTyping
- اضافه شدن ساپورت سکرت چت از اپدیت های DialogDeleteMessages
, DialogReadMessages
(اضافه شدن ساپورت چت های عادی از این ۲ کلاس به زودی ...)
• فیچر های اضافه شده توسط
👉 @madbyte 👾
- اضافه شدن ساپورت از استوری در چنل ها به کلاس SimpleEventHandler
- اضافه شدن متود های باند enableAutoTranslate
, disableAutoTranslate
, replyOrEdit
به کل کلاس های مسیج
- اضافه شدن متود های باند enableProtection
, disableProtection
به کلاس چنل مسیج
- اضافه شدن متود های باند enableSlowMode
, disableSlowMode
, enableJoinToComment
, disableJoinToComment
به کلاس مسیج مربوط به سوپر گروه
- اضافه شدن کلاس های DialogSetChatWallPaper
/DialogBotAllowed
/ChatUserTyping
updates and BotApp
/Wallpaper
/WallpaperSettings
- اضافه شدن فیلتر های IsEdited
/IsNotEdited
مربوط به مسیج
- فیکس باگ های فراوان در کلاس SimpleEventHandler
• فیچر های اضافه شده توسط
👉 @YinYang 👨🎓
- اضافه شدن ساپورت از متود onStop
در کلاس EventHandler
کانال رسمی مدلین فارسی
ما را به دوستان خود معرفی کنید ❤️🔥
همچنین ممنون میشیم
برای باز شدن قابلیت استوری چنل
کانال ما رو یدونه boost مهمون کنید 🙂
📚 @Madeline_Farsi
#update #beta150
متود های جدید:
- bots.canSendMessage
- bots.allowSendMessage
- bots.invokeWebViewCustomMethod
- stories.canSendStory
- اضافه شدن پارامتر from_request
به متود messageActionBotAllowed
- اضافه شدن پارامتر has_viewers
به storyViews
- اضافه شدن پارامتر های verified
, scam
, fake
به chatInvite
- حل مشکلات مربوط به فایل ها
📕 کانال رسمی مدلین فارسی رو به دوستان خود معرفی کنید.
@Madeline_Farsi
#update #beta148
تشکر فراوان از @J_A_V_A,@madbyte بخاطر کمک فراوان و contribute شدن در پروژه تغییرات اساسی در زیر امده است :
فیچر های اضافه شده توسط @madbyte :
- اضافه شدن InlineQuery
به SimpleEventHandler
وکلاس های مربوط به آن
- اضافه شدن باند متود های block
, unblock
, read
, enableTTL
, disableTTL
, getStories
, setAction
, enableTTL
, disableTTL
به کلاس Message
- اضافه شدن کلاس های مربوط به آپدیت Story
, StoryReaction
, ChannelUserTyping
, UserTyping
, Blocked
, BotStopped
, Phone
, Status
, Username
, Privacy
در SimpleEventHandler
- اضافه شدن باند متود های save
, unsave
به کلاس Gif
- اضافه شدن باند متود های disableSignatures
, enableSignatures
, getMember
, hideHistory
, unhideHistory
به کلاس ChannelMessage
- اضافه شدن باند متود های getMember
, hideMembers
, unhideMembers
, hideHistory
, unhideHistory
, deleteUserMessages
, toSuperGroup
, enableAntiSpam
, disableAntiSpam
, enableTopics
, disableTopics
, createTopic
, editTopic
, openTopic
, closeTopic
, deleteTopic
به کلاس GroupMessage
- اضافه شدن کلاس های Participant
, AdminRights
, BannedRights
- اضافه شدن باند متود screeshot
به کلاس PrivateMessage
- اضافه شدن کلاس های DialogChannelCreated
, DialogChannelMigrateFrom
, DialogChatJoinedByLink
, DialogChatMigrateTo
, DialogContactSignUp
, DialogGameScore
, DialogGeoProximityReached
, DialogGiftPremium
, GroupCall
, GroupCallInvited
, GroupCallScheduled
, DialogHistoryCleared
, DialogMemberJoinedByRequest
, DialogPeerRequested
, DialogPhoneCall
, DialogScreenshotTaken
, DialogSetChatTheme
, DialogSetTTL
, DialogSuggestProfilePhoto
, DialogTopicCreated
, DialogTopicEdited
, DialogWebView
برای هندل سرویس مسیج ها در SimpleEventHandler
- اضافه شدن کلاس های مربوط به Privacy
- هندل sendMessageGamePlayAction
فیچر های اضافه شده توسط @J_A_V_A :
- اضافه شدن ساپورت از entities
به کلاس Message
به صورت کاملا شیگرا ( OOP )
- اضافه شدن آپدیت های مربوط به ButtonQuery
- اضافه شدن باند متود های downloadToDir
, downloadToFile
به کلاس Media
و آبجکت های مربوط به آن
- اضافه شدن باند متود های report
, saveContact
, removeContact
, inviteToChannel
, read
مربوط به کلاس Message
و آبجکت های مربوط به آن
- اضافه شدن باند متود view
به کلاس ChannelMessage
- اضافه شدن باند متود های ban
, unban
, kick
, deleteAll
به کلاس GroupMessage
- شروع کار روی کلاس های مربوط به secret chat
در SimpleEventHandler
فیچر های اضافه شده توسط @danogentili :
- اضافه شدن ساپورت از secret chat id در bot API
- شروع کار روی اضافه شدن قابلیت های group call , video call
- اضافه شدن پراپرتی های view/forward/author به forward messages
- افزایش پرفورمنس به وسیله buffered logging
- اضافه شدن متود isBot برا چک کردن که آیا مسیج از طرف بات ارسال شده یا خیر
- اضافه شدن فیلتر های FilterFromBot, FilterSenders
باگ فیکس ها توسط @danogentili :
#update #beta131
- تماس های VoIP
- با متود play
هر آهنگ با هر فرمتی بصورت فایل ، لینک پخش کنید.
همچنین برای هاست میتونید با ربات libtgvoip_bot از این متود استفاده کنید.
- اضافه شدن متود downloadToReturnedStream
- آپدیت شدن به layer 161
- متود های جدید:
- contacts.setBlocked
- stories.activateStealthMode
- stories.sendReaction
- متود های تغییر یافته:
اضافه شدن پارامتر my_stories_from
به متودهای زیر:
contacts.block
contacts.unblock
contacts.getBlocked
اضافه شدن پارامتر media_areas
به متودهای زیر:
stories.sendStory
stories.editStory
اضافه شدن پارامتر های از به متود stories.getStoryViewsList :q
حذف شدن پارامتر های زیر از متود stories.getStoryViewsList :
offset
just_contacts
reactions_first
offset_date, offset_idЧитать полностью…
#update #beta129
اضافه شدن کلاس های CallbackQuery, ButtonQuery, ChatButtonQuery, InlineButtonQuery, GameQuery, ChatGameQuery, InlineGameQuery
برای هندل آپدیت ها توسط Filter ها.
لیست پراپرتی ها و متودها:- $query->queryId
آیدی کوئری- $query->userId
آیدی کاربری که روی دکمه کلیک کرده- $query->chatInstance
شناسه چت که برای High Score بیشتر استفاده میشه- $query->data
دیتای دکمه ای که کلیک شده
- $query->matchesر.ک FilterRegex
- $query->chatIdبرای کلاس های
Chat*Query
- جایی که کیبورد اینلاین ارسال شده است.- $query->messageIdبرای کلاس های
Chat*Query
- آیدی مسیج- $query->gameShortName
برای کلاس GameQuery
- اسم کوتاه بازی- $query->inlineMessageIdبرای کلاس های
Inline*Query
آیدی اینلاین مسیج- $query->editText(...)برای کلاس های
Chat*Query
- ادیت متن پیام- $query->answer(ر.ک Answer an inline query
string $message,
bool $alert = false,
?string $url = null,
int $cacheTime = 5 * 60
)
translate
و editText
به کلاس MessageFilterButtonQueryData
برای کلاس ButtonQuery
سازگاری فیلتر های FilterFromAdmin
و FilterRegex
با کلاس ButtonQuery
اضافه شدن فیلتر FromAdminOrOutgoing
اضافه شدن متود markdownUrlEscape
برای اسکیپ یک لینک هنگام پارس مود markdown
حل مشکل inputMediaPhotoExternal , inputMediaDocumentExternal
هنگام ارسال رسانهIsReplyToSelf
حل مشکل رسانه CustomEmoji
حل مشکلات تبدیلات mtproto to bot api
بهبود متود markdownCodeblockEscape
Читать полностью…
#update #beta127
- حل بیسیاری از مشکلات ( از جمله لود نشدن کلاس ها در پوشه پلاگین ) و ارتقا ارور هندلر در پلاگین ها
✅ پلاگین جدید
❗️برای ورژن پلاگینی مدلین (beta126)
> قابلیت کپی کردن هر پیامی
> در پوشه Plugins آپلود کنید
> دستور copy + ریپلای روی پیام
*️⃣
#update #beta125
- اضافه شدن StaticSticker, AnimatedSticker, VideoSticker به مدیا ها.
- فیکس شدن ارور های داخلی
- اضافه شدن FilterFromSender ( نسخه تکی FilterFromSenders )
- عوض شدن استراکچر IPC در داخل API داخلی و بهبود آن
- فیکس شدن باگ IPC
#update #beta119
- بررسی توابع کلاس eventHandler و PluginEventHandler و گزارش ارور ها (از جمله use نشدن کلاس ها و ...)
- بهبود کلاس BotApiFileId و اضافه شدن ۳ پارامتر اجباری $siza و $fileName و $protected
- بن شدن توابع exec,shell_exec , proc_open ( از این پس بجای این توابع شما از amphp/process اسفاده میکنید )
#update #beta116
- حل مشکلات updateSettings, getReply and FilterReplyToSelf!
شما برای ذخیره پراپرتی ها و چک کردنشون واستفاده از اونا میومدین از کد زیر استفاده میکردینuse Amp\File\read;
اما این کد اصلا پیشنهاد نمیشه!!(چرا که شما برا رباتتون قطعا از دیتابیس استفاده میکنید پس چرا یه مرحله بیاین تو فایل بنویسید و فقط سرورتون رو شلوغ کنید یا دیگ بدتر از توابعی مثل
use Amp\File\write;
// WRONG!
if (!read('online.txt'))
{
write('online.txt', 'on');
} file_get_contents
و file_put_contents
استفاده کنید که کلا کارشون بلاک کردن اون ترد یا پروسه تا اتمام کارشون هست!!!)
حالا راه حل چیه؟ از اونجا که تو این پست گفتم توابع فایل به کل بلاک هستن پس فایل رو میریزیم دور
بجاش میایم یا از amphp/mysql استفاده میکنیم(که اینم برا کسایه که مجبورن و خب به هر طریقی نمیتونن از پراپرتی استفاده کنن)
یا راه حل بهتر استفاده از پراپرتی هاست
حالا چطوری؟ بزارید یه مثال بزنمclass OnlinePlugin extends PluginEventHandler
استفادش همینقدر راحته شما یه پراپرتی هاتون اول کد تعریف میکنید در نهایت داخل تابع
{
private bool $online = true;
public function setOnline(bool $online): void
{
$this->isOnline = $online;
}
public function __sleep() : void
{
return ['online'];
}
#[FilterCommand('online')]
public function toggleOnline(Message $message)
{
$this->online = true;
}
.......
}__sleep
به صورت ارایه ای از اسم پراپرتی ها ریترن میکنیدشون کد کاملش اینجاست
اما خب این برا دوستانی که ربات هلپر هم برا سلفشون دارن میتونه بسیار کمک کنه اما چجوری؟
تصور کنید من یه یوزر بات دارم که اسم کلاس پلاگینم همون OnlinePlugin
هستش و داخلش همونطور که بالا میبینید تابعی هست به اسم setOnline
(در واقع setter
امون هستش)
اگه بخوام ربات هلپر رو به یوزر بات متصل کنم و اون پراپرتی رو کنترلش کنم(on , off اش رو)$online = true;
$API = new \danog\MadelineProto\API('session.madeline'); $API->getEventHandler(\MadelinePlugin\Danogentili\OnlinePlugin::class)->setOnline($online);
#update #beta109 & #beta110
- اضافه کردن قابلیت گرفتن نام کلاس هندلر به متود getEventHandler
- حل مشکل پارس کردن thumbnail ( بکگراند فیلم ها)
- حل مشکل content-type/extension در دو متود (getDownloadLink
,downloadToBrowser)
این اپدیت بیشتر جنبه فیکس کردن باگ ها رو داشته
#beta108 #update
قابلیت های جدید :
- اضافه شدن پارامتر اختیاری type به FilterCommand و اضافه شدن ثابت های مربوط به آن(CommandType)
شما میتونید از این به بعد علاوه بر کامند به فیلتر مربوط به کامند تایپ هم بدین
مثال :#[CommandFilter('hello',[CommandType::DOT,Command::SLASH])]
public function replyHello(Message&Incoming $message){
$message->reply('hello');
}
تو این حالت ربات فقط به ۲ تا کامند /hello , .hello جواب میده . در حال حاظر فقط ۳ تا حالت DOT
,SLASH
,BANG
رو میتونید استفاده کنید و حتماباید به صورت ارایه ای از ثابت های CommandType
به فیلترتون بدین(فیلتر کامند پارامتر دومش اختیاری هست و به صور دیفالت هر ۳ حالت رو درنظر میگیره)
مشکل های حل شده :
- حل مشکل مربوط به IPC در نسخه های Phar
- حل مشکل یکسری از مشکلات داخلی
#bound_methods
- لیست پراپرتی های bound methods :
- $message->message: stringمتن پیام
- $message->fwdInfo:
?ForwardedInfo- $message->command:
?string- $message->commandType:
?CommandType- $message->commandArgs:
list<string> - $message->protected:
bool- $message->matches:
list<string>- $message->fromScheduled:
bool- $message->viaBotId:
?int- $message->editDate:
?int- $message->keyboard:
InlineKeyboard|ReplyKeyboard|null - $message->nextSent:
?self @readonly - $message->id:
int - $message->out:
bool - $message->chatId:
int - $message->senderId:
int - $message->replyToMsgId:
?int - $message->date:
int - $message->topicId:
?int- $message->replyToScheduled
: bool- $message->mentioned:
bool- $message->silent:
bool- $message->ttlPeriod:
?int- $message->mediaMedia|null رسانه پیام
- $message->media->botApiFileId
- $message->media->botApiFileUniqueId فایل ایدی رسانه
- $message->media->fileName, fileExt, creationDate, size, ...
لیست کامل پراپرتی های رسانه در اینجا موجود است.
Читать полностью…
#beta102 #update
- اضافه شدن متود openFileAppendOnly
برای بازکردن یک فایل بصورت async و مود a (فقط نوشتن)
- اضافه شدن متود getDownloadLink
برای گرفتن لینک دانلود (تا 4 گیگ)
مثال:<?php
شما میتونید از MessageMedia هم استفاده کنید.
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->botLogin('توکن');
$link = $MadelineProto->getDownloadLink($fileId);
حتی میتونید تو bound method هم ازش استفاده کنید:class MyEventHandler extends SimpleEventHandler {
* نکته: درصورت اجرا توسط web لینک دانلود بصورت خودکار ساخته میشود.
/**
* Gets a download link for any file up to 4GB!
*/
#[FilterCommand('dl')]
public function downloadLink(Incoming&Message $message): void
{
if (!$message->replyToMsgId) {
$message->reply("This command must reply to a media message!");
return;
}
$message = $message->getReply();
if (!$message instanceof Message || !$message->media) {
$message->reply("This command must reply to a media message!");
return;
}
$message->reply("Download link: ".$message->media->getDownloadLink());
}
}
در غیر اینصورت برای استفاده در حالت cli یا تغییر لینک باید مراحل زیر رو دنبال کنید.
فایل dl.php
شما باید این شکلی باشه:<?php
و هنگام استفاده:
if (!file_exists('madeline.php')) {
copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
include 'madeline.php';
danog\MadelineProto\API::downloadServer('session.madeline');$link = $MadelineProto->getDownloadLink(
و در صورت استفاده از فایل ایدی برای دریافت لینک باید اسم و سایز و نوع فایل رو بصورت دستی به متود بدید.
$botApiFileId,
'https://yourhost.com/dl.php',
size: $fileSize,
name: $fileName,
mime: $mimeType
);
$botApiFileId = '...';Читать полностью…
$fileName = '...';
$fileSize = 123..;
$mimeType = '...';
$link = $MadelineProto->getDownloadLink(
$botApiFileId,
size: $fileSize,
name: $fileName,
mime: $mimeType
);
#update #beta151
متود های جدید:
- stories.getPeerStories
- stories.getAllReadPeerStories
- stories.getPeerMaxIDs
- stories.getChatsToSend
- stories.togglePeerStoriesHidden
- stories.getBoostsStatus
- stories.getBoostersList
- stories.canApplyBoost
- stories.applyBoost
- کلاس های جدید
- updateNewAuthorization
- mediaAreaSuggestedReaction
- peerStories
- stories.peerStories
- stories.boostsStatus
- stories.canApplyBoostOk
- stories.canApplyBoostReplace
- booster
- stories.boostersList
تغییرات :
- پارامتر های اضافه شدهdate ->
updateReadMessagesContentsconfirmed ->
account.changeAuthorizationSettingsstart_param
,from_side_menu ->
messages.requestSimpleWebViewrecurring_terms_url ->
invoice ❌ (
حذف شده)
invoice
terms_url ->unconfirmed ->
authorizationstories
,stories_pinned_available ->
channelFullstories_hidden
,stories_max_id
,stories_hidden_min
,stories_unavailable ->
channelpost_stories
,edit_stories
,delete_stories ->
chatAdminRightsshow_in_side_menu
,show_in_attach_menu
,side_menu_disclaimer_needed ->
attachMenuBot
- اضافه شدن پارامتر peer
:
stories.canSendStory
stories.sendStory
stories.editStory
stories.deleteStories
stories.togglePinned
stories.getStoriesArchive
stories.getStoryViewsList
stories.getStoriesViews
- و همچنین حذف شدن پارامتر user_id
و جایگزین شدن پارامتر peer
با آن :
stories.getPinnedStories
stories.getStoriesByID
stories.readStories
stories.incrementStoryViews
stories.exportStoryLink
stories.report
stories.sendReaction
inputMediaStory
messageMediaStory
updateStory
updateReadStories
updateSentStoryReaction
webPageAttributeStory
باگ ها :
- بهبود متود getId
- حل باگ فیلترهای FromAdminOrOutgoing
و DialogTopicEdited
- آپدیت و حل مشکلات تبدیل سشن پایروگرام و تلتون و ...
درصورت تمایل کانال رو بوست کنید :
/channel/MadeLine_Farsi?boost
📕 کانال رسمی مدلین فارسی رو به دوستان خود معرفی کنید.
@Madeline_Farsi
- تمام شدن ریفکتور کد های مربوط به کانکشن ها :
- افزایش سرعت ۶۰-۸۰ درصدی در شروع handshakes
- دیگر نیازی به باز کردن سوکت برای dc های استفاده نشده نیست .
- دیسکانکت شدن اتوماتیک از سوکت های مربوط به مدیاهای غیرفعال
- دوباره کانکت شدن در صورت به وجود آمدن مشکلات شبکه ( فیکس ارور Request Timeout
)
- بهینه سازی کلی
- اضافه شدن استنشن pcntl
به ایمیج داکر
- مارک کردن تمام پارامتر های اپشنال متود ها به صورت اپشنال در API.
- حل مشکل مصرف پارامتر بولین در account.changeAuthorizationSettings
, messages.editExportedChatInvite
, channels.editForumTopic
, phone.toggleGroupCallSettings
, phone.toggleGroupCallRecord
, phone.editGroupCallParticipant
- حل مشکل پیجینیشن در messages.getChatInviteImporters
با در نظر گرفتن offset_date
به صورت پارامتر اجباری در صورتی که پارامتر offset_user
مقدار داشته باشد.
- حل مشکلات سکرت چت ها
- حل مشکل متود fileGetContents
و http-client
- حل مشکل اپلود دوباره مدیا توسط ابجکت های آن
- حل مشکل pending count
در broadcasts
- جلوگیری از گیر افتادن در حلقه بینهایت هنگام لاگین
- جلوگیری از سریزشدن بافر توسط integer
ها در ماژول های مربوط به VoIP
- حل مشکل setBindTo
- حل مشکلات کانکشن ها
- جلوگیری از باگ GC
- بهبود لاجیک مدیاها در DC
- حل مشکل متود های sendDocument
/sendPhoto
در IPC
- حل مشکل آپلود عکس های بدون content-length
- حل مشکل مصرف در استریم ها و فایل کالبک ها در IPC
- باز کردن متود fopen
در صورت استفاده از php://memory
در SimpleEventHandler
- بهبود لاجیک در آپلود استریم ها
- هندل ارور MSG_WAIT_FAILED
- بهبود صف در calls
- بهبود تست ها
- فیکس شدن TL ها
- جلوگیری از کانفیلیکت های مربوط به ext-psr
- فیکس باگ های ربات @libtgvoipbot
باگ فیک ها توسط @xtrime :
- حل مشکل استریم ویدیو ها در مرورگر safari
#update #beta138
فیچر ها :
- اضافه شدن فیلتر های Outgoing
, FilterOutgoing
, Running
, FilterRunning
, Ended
, FilterEnded
و همچنین SimpleFilter های مربوط به آن برای چک کردن وضعیت کال
- اصافه شدن ۳ متود VoIP::pause
/VoIP::resume
/VoIP::isPaused
به ترتیب برا pause یا resume کردن اهنگ در حال پلی روی کال و چک کردن آیا اهنگ pause است یا خیر
- اضافه شدن متود getStream به کلاس AbstractMessage
- اضافه شدن سورس کد ربات @libtgvoipbot
- اضافه شدن متود های VoIP::getAllCalls()
, VoIP::getCurrent()
به ترتیب برای گرفتن لیست کل کال های در جریان و گرفتن فایل در حال پلی در کال
- اضافه شدن یک فیلتر برای broadcast progress update
- اضافه شدن متود های Ogg::validateOgg
, Tools::getStreamPipe
- اضافه شدن ساپورت از کانکشن های Tcp در کال ها
- اضافه شدن کتاب خانه ffmpeg به docker image
فیکس باگ ها :
- فیکس شدن باگ متود های VoIP::skip()
, markdownUrlEscape
- فیکس شدن ارور " getIdFromUsername(): Return value must be of type ?int, string returned"
که هنگام استفاده از دیتابیس MYSQL رخ میداد
- فیکس شدن یسری باگ های ریز در VoIP
پ . ن : مدلین نسخه ۷ به طور کامل از دیپیریکت شده و بخاطر یسری تغییرات تلگرام از سمت سرور ها نمیشه از نسخه ۷ استفاده کرد لزا لازم هستش سورس های خودتون به 8 ارتقا بدین
- دنیل یه پیج راهنما برای این که چطور ربات هاتون از ورژن ۷ ببرین روی ۸ زده !
مشکل تماس های VOIP در مدلین حل شد!!!
- در آپدیت بعدی بتا شاهد این خواهیم بود تا بطور کامل بشه از قابلیت های VOIP در تماس ها استفاده کنیم
- ربات (magna luna(@magicalcrazypony هم بزودی آنلاین میشود مثل قبل!
- این قابلیت به طور کامل توسط php پیاده شده این سری!! پس میتونید حتی در هاست هم استفاده کنید(نیازی به سرور نیست برا استفاده ازش)
اطلاعات تکمیلی در آپدیت بعدی ؛)
#update #beta128
حل مشکل جیسون انکد شدن آپدیت ها
بر اساس این اسکریپت نوشته شده
میتونید بدون پیش نیاز استفاده کنید
و البته نکته مثبتش اینه که مسیج های به صورت گروپ مدیا هم خودکار ساپورت میشن.
با تشکر از اعضای گروه LabChat 🍀🌺
#update #beta126
- اضافه شدن باند متود های مسیج : addReaction
, delReaction
, getOurReactions, pin, unpin
توسط @J_A_V_A
- از این پس شما میتوانید از traits, interfaces در پلاگین ها استفاده کنید
- حل مشکل ساخت سشن
#update #beta120
- بهبود تابع getReply
- هشدار درباره اپدیت ها و توابع ( همون use نکردن و یه جورایی انالیز کد شما ) در صحفه لاگین
- حل مشکل کانکت شدن در HTTP/HTTPS/WS/WSS پروتکل های مربوط به MTProto
#update #beta118
- اضافه شدن فیلتر FilterTextCaseInsensitive
این فیلتر مثل FilterText هستش با این تفاوت که به حروف بزرگ و کوچک حساس نیستش
- فیکس شدن باگ های جزئی
#update #beta113 #beta115
- اضافه شدن متود های مربوط به استوری تلگرام
- اضافه شدن لینک دانلود استوری به متود getDownloadLink
- ربات tgstories_dl_bot توسط مدلین نوشته شده و هر استوری تلگرام را میتونه دانلود کنه!
همچنین سورس کد اون در گیتهاب موجوده.
همچنین میتونید لینک ، فایل لوکال ، یا MessageMedia را با مدلین استوری کنید!
مثال:$media = [
- پارس مود برای متود های استوری پشتیبانی میشه.
'_' => 'inputMediaUploadedPhoto',
'file' => 'faust.jpg'
];
$MadelineProto->stories->sendStory(
media: $media,
caption: "This story was posted using [MadelineProto](/channel/MadelineProto)!",
parse_mode: ParseMode::MARKDOWN,
privacy_rules: [['_' => 'inputPrivacyValueAllowAll']]
);
- حل شدن مشکل متود getReply
در کانال و سوپرگروه
همچنین در صورت ریپلی نشدن پیام روی پیام دیگری null برمیگرداند.
- اضافه شدن متود های isSelfUser
, isSelfBot
که مشخص میکنه اکانت یوزر هست یا ربات.
- اضافه شدن تعیین لینک پیشفرض برای متود getDownloadLink
در تنظیمات (CLI)
- اضافه شدن DialogMessagePinned
بهمراه متود getPinnedMessage
- فیکس شدن باگ startAndLoopMulti
#update #beta111 & #beta112
- بهبود لاگر
- حل مشکل متود باند delete در سوپر گروه ها و چنل ها
دوستان یه چند تا نکته در مورد اپدیت #beta100 به بعد بگم خواهشا این پست رو بخونید و اگه باز سوالی بود زیر همین پست کامنت کنید :
اگر از کلاس EventHandler
تو کدتون برای کلاس اصلی اکستند کنید :
۱ . دیگ نمیتونید از فیلتر ها و توابع bound برا ساده سازی کدتون استفاده کنید
۲ . استفاده از توابع بلاک شده و کلاس های بلاک شده(از جمله file_get_contents
, file_put_contents
,Amp\file\{get,put}
,mysql
,mysqli
,PDO
) کدتون به وارنینگ میخوره (در حالت ربات به کار خودش ادامه میده) میبینید بجز تابع openFileAppendOnly
بقیه توابع فایل بلاک هستند
۳ .استفاده نکردن یا لیک(strict_types=1
) یک عدد وارنینگ خواهد داشت(ربات همچنان به کارش ادامه میده)
۴ .استفاده ازunlink('MadelineProto.Log')
وارنینگ خواهد داشت(اینو من بالای ۱۰۰ بار تو سورس های قدیمی دیدم و میبینید فایل لاگ چقدر مهمه که دنیل هم رو این مورد حساس شده )
۵ .استفاده از توابع require
, include
داخل کلاس ها یا متود ها یک عدد fatal-error خواهد داشت(تو این حالت به کل ارور به شما میده و دیگ به کارش ادامه نمیده) برا استفاده از این توابع بالای کدتون و خارج از کلاس ها و توابع تون استفاده میکنید
اگر کلاستون از کلاس SimpleEventHandler
استفاده کنه و اکستند کنه به عنوان کلاس اصلی :
۱ .شما میتونید از فیلتر ها یا توابع bound برا راحتی هندل کار هاتون و مسیج ها تون استفاده کنید
۲ .استفاده از توابع فایل و کلاس ها و توابع بن شده اینبار fatal-error خواهد داشت و ربات دیگ به کار خودش ادامه نخواهد داد(بجز تابع openFileAppendOnly)
۳ .استفاده نکردن از strict_types=1
یا لیک آن fatal-error خواهد داشت
۴ .استفاده از unlink('MadelineProto.Log')
به دنبال خود fatal-error خواهد داشت
۵ .استفاده از توابع require
و include
هر کجای کدتون fatal-error
خواهد داشت شما باید از استراتژی PSR-4 برا لود کردن پلاگین ها و شناسوندنشون به تابع getPluginPaths
استفاده کنید(نیم اسپیستون بهتره MadelinPlugin\name باشه که اینجا name اسم خودتون هستش)
و در اخر این که دنیل در مورد فایل ها خیلی جدی هستش و گفته میخواد استفاده از همشون رو بن کنه ولی در حال حاظر گفته به همین حالت که توضیح دادم رهاشون کرده ...
#bound_methods
- لیست متود های bound methods :
- $message->getHTML(یک نسخه پیام با تگ های html برمیگرداند.
bool $allowTelegramTags = false
): string
allowTelegramTags
مشخص میکند که تگ های خاص تلگرام مثل اسپویلر، منشن و ... نیز نمایش داده شوند یا نه.- $message->getReply(): ?selfگرفتن اطلاعات پیام ریپلی شده.
null
برمیگرداند.- $message->delete(bool $revoke = true): voidپاک کردن پیام.
- $message->reply(
string $message,
ParseMode $parseMode,
...
): \danog\MadelineProto\EventHandler\Message
-
کلیک بر روی اولین دکمه ای که مقدارش برابر با label
باشد.$message->keyboard->press(
string $label,
bool $waitForResult
);
-
کلیک بر روی دکمه با مختصات$message->keyboard->pressByCoordinates(
int $row,
int $column,
bool $waitForResult
);
Читать полностью…
#beta107 #update
قابلیت های جدید
- اضافه شدن متود getPeriodicLoops
برای گرفتن تمام لوپ هایی که توسط اتربیوت cron ایجاد میشوند.
- اضافه شدن isReply به bound methods
#cron
با آپدیت بتا 100 از این ببعد برای لوپ میشه اینشکلی استفاده کرد:use danog\MadelineProto\EventHandler\Attributes\Cron;
این متود هر شصت ثانیه اجرا میشه.
#[Cron(period: 60.0)]
public function cron1(): void
{
$this->sendMessageToAdmins("The bot is online, current time ".date(DATE_RFC850)."!");
}
شما میتونید برای اتربیوت ها اعشار هم بدید که معادل میلی ثانیه میشه.
همچنین میتونید برای دریافت اطلاعات و سیگنال دادن از متود زیر استفاده کنید:$this->getPeriodicLoop('اسم متود');
اطلاعات بیشتر