MadelineProto | Persian Channel
332 subscribers
3 photos
1 file
44 links
کانال تلگرامی MadelineProto Farsi !
مرجع آموزش و آپدیت های مدلین به زبان فارسی!

👥 Persian Group: https://t.me/joinchat/DtxwN0RlsQoKyN-lpSuOEw

👥 English Group: https://t.me/joinchat/Bgrajz6K-aJS2Dc5HJ7dsA

📢 English Channel:
@MadelineProto
Download Telegram
#update #beta109 & #beta110

- اضافه کردن قابلیت گرفتن نام کلاس هندلر به متود getEventHandler
- حل مشکل پارس کردن thumbnail ( بکگراند فیلم ها)
- حل مشکل content-type/extension در دو متود (getDownloadLink ,downloadToBrowser)

این اپدیت بیشتر جنبه فیکس کردن باگ ها رو داشته
#update #beta111 & #beta112
- بهبود لاگر
- حل مشکل متود باند delete در سوپر گروه ها و چنل ها
شما برای ذخیره پراپرتی ها و چک کردنشون واستفاده از اونا میومدین از کد زیر استفاده میکردین

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->online = $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 #beta113 #beta115

- اضافه شدن متود های مربوط به استوری تلگرام

- اضافه شدن لینک دانلود استوری به متود getDownloadLink

- ربات tgstories_dl_bot توسط مدلین نوشته شده و هر استوری تلگرام را میتونه دانلود کنه!
همچنین سورس کد اون در گیتهاب موجوده.

همچنین میتونید لینک ، فایل لوکال ، یا MessageMedia را با مدلین استوری کنید!
مثال:
$media = [
'_' => 'inputMediaUploadedPhoto',
'file' => 'faust.jpg'
];

$MadelineProto->stories->sendStory(
media: $media,
caption: "This story was posted using [MadelineProto](https://t.me/MadelineProto)!",
parse_mode: ParseMode::MARKDOWN,
privacy_rules: [['_' => 'inputPrivacyValueAllowAll']]
);
- پارس مود برای متود های استوری پشتیبانی میشه.

- حل شدن مشکل متود getReply در کانال و سوپرگروه
همچنین در صورت ریپلی نشدن پیام روی پیام دیگری null برمیگرداند.

- اضافه شدن متود های isSelfUser, isSelfBot که مشخص میکنه اکانت یوزر هست یا ربات.

- اضافه شدن تعیین لینک پیشفرض برای متود getDownloadLink در تنظیمات (CLI)

- اضافه شدن DialogMessagePinned بهمراه متود getPinnedMessage

- فیکس شدن باگ startAndLoopMulti
#update #beta116
- حل مشکلات updateSettings, getReply and FilterReplyToSelf!
#update #beta118

- اضافه شدن فیلتر FilterTextCaseInsensitive
این فیلتر مثل FilterText هستش با این تفاوت که به حروف بزرگ و کوچک حساس نیستش

- فیکس شدن باگ های جزئی
#update #beta119
- بررسی توابع کلاس eventHandler و PluginEventHandler و گزارش ارور ها (از جمله use نشدن کلاس ها و ...)
- بهبود کلاس BotApiFileId و اضافه شدن ۳ پارامتر اجباری $siza و $fileName و $protected
- بن شدن توابع exec,shell_exec , proc_open ( از این پس بجای این توابع شما از amphp/process اسفاده میکنید )
#update #beta120
- بهبود تابع getReply
- هشدار درباره اپدیت ها و توابع ( همون use نکردن و یه جورایی انالیز کد شما ) در صحفه لاگین
- حل مشکل کانکت شدن در HTTP/HTTPS/WS/WSS پروتکل های مربوط به MTProto
#update #beta125
- اضافه شدن StaticSticker, AnimatedSticker, VideoSticker به مدیا ها.
- فیکس شدن ارور های داخلی
- اضافه شدن FilterFromSender ( نسخه تکی FilterFromSenders )
- عوض شدن استراکچر IPC در داخل API داخلی و بهبود آن
- فیکس شدن باگ IPC
#update #beta126

- اضافه شدن باند متود های مسیج : addReaction, delReaction, getOurReactions, pin, unpin توسط @J_A_V_A

- از این پس شما میتوانید از traits, interfaces در پلاگین ها استفاده کنید

- حل مشکل ساخت سشن
CopyMsg.php
2.3 KB
پلاگین جدید
❗️برای ورژن پلاگینی مدلین (beta126)

> قابلیت کپی کردن هر پیامی
> در پوشه Plugins آپلود کنید
> دستور copy + ریپلای روی پیام

*️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
MadelineProto | Persian Channel
CopyMsg.php
بر اساس این اسکریپت نوشته شده
میتونید بدون پیش نیاز استفاده کنید

و البته نکته مثبتش اینه که مسیج های به صورت گروپ مدیا هم خودکار ساپورت میشن.

با تشکر از اعضای گروه LabChat 🍀🌺
Please open Telegram to view this post
VIEW IN TELEGRAM
#update #beta127
- حل بیسیاری از مشکلات ( از جمله لود نشدن کلاس ها در پوشه پلاگین ) و ارتقا ارور هندلر در پلاگین ها
#update #beta128
حل مشکل جیسون انکد شدن آپدیت ها
#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(
string $message,
bool $alert = false,
?string $url = null,
int $cacheTime = 5 * 60
)
ر.ک Answer an inline query

اضافه شدن متودهای translate و editText به کلاس Message
اضافه شدن فیلتر FilterButtonQueryData برای کلاس ButtonQuery
سازگاری فیلتر های FilterFromAdmin و FilterRegex با کلاس ButtonQuery
اضافه شدن فیلتر FromAdminOrOutgoing
اضافه شدن متود markdownUrlEscape برای اسکیپ یک لینک هنگام پارس مود markdown

حل مشکل inputMediaPhotoExternal , inputMediaDocumentExternal هنگام ارسال رسانه
حل مشکل فیلتر IsReplyToSelf
حل مشکل رسانه CustomEmoji
حل مشکلات تبدیلات mtproto to bot api
بهبود متود markdownCodeblockEscape
مشکل تماس های VOIP در مدلین حل شد!!!
- در آپدیت بعدی بتا شاهد این خواهیم بود تا بطور کامل بشه از قابلیت های VOIP در تماس ها استفاده کنیم

- ربات (magna luna(@magicalcrazypony هم بزودی آنلاین میشود مثل قبل!
- این قابلیت به طور کامل توسط php پیاده شده این سری!! پس میتونید حتی در هاست هم استفاده کنید(نیازی به سرور نیست برا استفاده ازش)
اطلاعات تکمیلی در آپدیت بعدی ؛)
#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
offset
just_contacts
reactions_first

حذف شدن پارامتر های زیر از متود stories.getStoryViewsList :
offset_date, offset_id
#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 ارتقا بدین

- دنیل یه پیج راهنما برای این که چطور ربات هاتون از ورژن ۷ ببرین روی ۸ زده !

📕 کانال رسمی مدلین فارسی رو به دوستان خود معرفی کنید.
@Madeline_Farsi
👍1
Channel name was changed to «MadelineProto | Persian Channel»
#update #beta148

تشکر فراوان از @J_A_V_A,@madbyte بخاطر کمک فراوان و contribute شدن در پروژه تغییرات اساسی در زیر امده است :

فیچر های اضافه شده توسط @madbyte :
- اضافه شدن InlineQuery به SimpleEventHandler وکلاس های مربوط به آن
- اضافه شدن باند متود های زیر به کلاس Message:
block - unblock - read - getStories - setAction - enableTTL - disableTTL

- اضافه شدن کلاس های مربوط به آپدیت (SimpleEventHandler):
Story, StoryReaction, ChannelUserTyping, UserTyping, Blocked, BotStopped, Phone, Status, Username, Privacy

- اضافه شدن باند متود های save, unsave به کلاس Gif

- اضافه شدن باند متود های زیر به کلاس ChannelMessage :
disableSignatures, enableSignatures, getMember , hideHistory, unhideHistory

- اضافه شدن باند متود های به کلاس GroupMessage :
getMember, hideMembers, unhideMembers, hideHistory, unhideHistory, deleteUserMessages, toSuperGroup, enableAntiSpam, disableAntiSpam, enableTopics, disableTopics, createTopic, editTopic, openTopic, closeTopic, deleteTopic

- اضافه شدن کلاس های Participant, AdminRights, BannedRights
- اضافه شدن باند متود screeshot به کلاس PrivateMessage
- اضافه شدن کلاس های زیر برای هندل سرویس مسیج ها در SimpleEventHandler:
DialogChannelCreated, DialogChannelMigrateFrom, DialogChatJoinedByLink, DialogChatMigrateTo, DialogContactSignUp, DialogGameScore, DialogGeoProximityReached, DialogGiftPremium, GroupCall, GroupCallInvited, GroupCallScheduled, DialogHistoryCleared, DialogMemberJoinedByRequest, DialogPeerRequested, DialogPhoneCall, DialogScreenshotTaken, DialogSetChatTheme, DialogSetTTL, DialogSuggestProfilePhoto, DialogTopicCreated, DialogTopicEdited, DialogWebView

- اضافه شدن کلاس های مربوط به Privacy

فیچر های اضافه شده توسط @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 :
👍1
- تمام شدن ریفکتور کد های مربوط به کانکشن ها :
- افزایش سرعت ۶۰-۸۰ درصدی در شروع 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
👍3👎1