مدلها (Models)
در این بخش تمامی مدلهای (کلاسهای داده) کتابخانه روبکا به همراه فیلدها، نوع و توضیحات کامل معرفی شدهاند. این مدلها برای ساختاردهی به دادههای دریافتی و ارسالی در ربات استفاده میشوند.
Chat
مدل Chat نمایانگر اطلاعات پایهای یک چت در روبیکا است. یک چت میتواند مکالمهی خصوصی با کاربر، گفتوگوی گروهی یا کانال باشد.
| فیلد | نوع | توضیحات |
|---|---|---|
| chat_id | str | شناسه چت |
| chat_type | ChatTypeEnum | نوع چت (کاربر، گروه، کانال و …) |
| user_id | str | None | شناسه کاربر مقابل بات در چتهای خصوصی |
| first_name | str | None | نام کاربر (فقط در چتهای خصوصی) |
| last_name | str | None | نام خانوادگی کاربر |
| title | str | None | عنوان گروه یا کانال |
| username | str | None | نام کاربری چت یا کاربر (در صورت تنظیم شدن) |
File
نشاندهندهی اطلاعات یک فایل است که در پیامها استفاده میشود.
| فیلد | نوع | توضیحات |
|---|---|---|
| file_id | str | شناسه فایل |
| file_name | str | نام فایل |
| size | str | حجم فایل (بر حسب بایت) |
ForwardedFrom
اطلاعات مربوط به پیامهای فوروارد شده (Forwarded) را نمایش میدهد.
| فیلد | نوع | توضیحات |
|---|---|---|
| type_from | ForwardedFromEnum | نوع منبع فوروارد (کاربر، کانال یا بات) |
| message_id | str | شناسه پیام اصلی که فوروارد شده |
| from_chat_id | str | شناسه چت مبدا |
| from_sender_id | str | شناسه کاربری ارسالکننده اصلی |
MessageTextUpdate
تغییرات متنی پیامها را نمایش میدهد که در نتیجه تعامل کاربر با Inline Keypad رخ داده است.
| فیلد | نوع | توضیحات |
|---|---|---|
| message_id | str | شناسه پیام که متن آن تغییر کرده است |
| text | str | متن جدید پیام پس از بهروزرسانی |
Bot
عمومی یک بات روبیکا است که توسط متدهایی مانند getMe بازگردانده میشود.
| فیلد | نوع | توضیحات |
|---|---|---|
| bot_id | str | شناسه یکتا بات |
| bot_title | str | عنوان نمایشدادهشده در پروفایل بات |
| avatar | File | None | تصویر پروفایل بات |
| description | str | توضیحات بات |
| username | str | نامکاربری بات |
| start_message | str | پیام خوشآمدگویی بات |
| share_url | str | لینک اشتراکگذاری بات |
BotCommand
برای تعریف دستورهای (Commands) قابل استفاده در بات بهکار میرود.
| فیلد | نوع | توضیحات |
|---|---|---|
| command | str | نام دستور بدون / (مثلاً start) |
| description | str | توضیح کوتاه درباره عملکرد دستور |
Sticker
برای نمایش اطلاعات استیکر ارسالشده در یک پیام بهکار میرود.
| فیلد | نوع | توضیحات |
|---|---|---|
| sticker_id | str | شناسه استیکر |
| file | File | اطلاعات فایل استیکر |
| emoji_character | str | اموجی مرتبط با استیکر |
ContactMessage
برای نمایش پیامهای حاوی اطلاعات تماس استفاده میشود.
| فیلد | نوع | توضیحات |
|---|---|---|
| phone_number | str | شماره تلفن ارسالشده |
| first_name | str | نام شخص صاحب شماره |
| last_name | str | None | نام خانوادگی شخص (در صورت موجود) |
PollStatus
نشاندهندهی وضعیت فعلی یک نظرسنجی (Poll) است.
| فیلد | نوع | توضیحات |
|---|---|---|
| state | PollStatusEnum | وضعیت فعلی نظرسنجی |
| selection_index | int | شماره گزینه انتخابشده (در صورت عدم انتخاب -1) |
| percent_vote_options | list[int] | درصد رأیهای هر گزینه |
| total_vote | int | تعداد کل آراء نظرسنجی |
| show_total_votes | bool | آیا تعداد آرا نمایش داده شود |
Poll
برای نمایش اطلاعات یک نظرسنجی استفاده میشود.
| فیلد | نوع | توضیحات |
|---|---|---|
| question | str | متن سؤال نظرسنجی |
| options | list[str] | آرایهای از گزینههای قابل رأیدهی |
| poll_status | PollStatus | وضعیت جاری نظرسنجی |
Location
نمایانگر مختصات جغرافیایی (GIS) است.
| فیلد | نوع | توضیحات |
|---|---|---|
| longitude | str | طول جغرافیایی |
| latitude | str | عرض جغرافیایی |
ButtonSelectionItem
هر گزینه از لیست انتخابی که نمایش داده میشود با این مدل تعریف میشود.
| فیلد | نوع | توضیحات |
|---|---|---|
| text | str | متن دکمه |
| image_url | str | None | آدرس تصویر مرتبط با گزینه |
| type | ButtonSelectionTypeEnum | نوع نمایش دکمه |
Button
نمایانگر یک دکمه تعاملی در رابط کاربری پیام یا صفحهکلید بات است.
| فیلد | نوع | توضیحات |
|---|---|---|
| id | str | شناسه دکمه |
| type | ButtonTypeEnum | نوع دکمه |
| button_text | str | متن نمایشدادهشده روی دکمه |
Keypad
مجموعهای از ردیفهای دکمه را تعریف میکند که میتواند در Keypad پیام نمایش داده شود.
| فیلد | نوع | توضیحات |
|---|---|---|
| rows | list[KeypadRow] | آرایهای از ردیف keypad ها |
| resize_keyboard | bool | تغییر اندازه و ارتفاع دکمهها |
| one_time_keyboard | bool | بسته شدن خودکار کیبورد بعد از انتخاب |
Message
نمایانگر اطلاعات یک پیام در روبیکا است.
| فیلد | نوع | توضیحات |
|---|---|---|
| message_id | str | شناسه پیام |
| text | str | None | متن پیام (اگر پیام متنی باشد) |
| time | int | زمان ارسال پیام به صورت timestamp |
| is_edited | bool | آیا پیام ویرایش شده است |
| sender_type | MessageSenderEnum | نوع فرستنده پیام |
| sender_id | str | شناسه فرستنده پیام |
| chat_id | str | شناسه چت |
Update
نمایانگر رویدادی است که از سوی API یا وبهوک به بات میرسد.
| فیلد | نوع | توضیحات |
|---|---|---|
| type | UpdateTypeEnum | نوع رویداد آپدیت |
| chat_id | str | شناسه چت مرتبط با رویداد |
| new_message | Message | None | پیام جدید (در صورت وجود) |
| updated_message | Message | None | پیام ویرایششده (در صورت وجود) |
InlineMessage
دادههای مربوط به کلیک کاربر روی Inline Keypad را نمایش میدهد.
| فیلد | نوع | توضیحات |
|---|---|---|
| sender_id | str | شناسه کاربری که کلیک کرده است |
| message_id | str | شناسه پیام اصلی |
| chat_id | str | شناسه چت مرتبط |
| aux_data | AuxData | None | دادههای کمکی مرتبط با کلیک دکمه |
Metadata / MetadataPart
برای اعمال تغییرات مختلف روی متن پیام (مانند بولد، ایتالیک، لینک و ...) استفاده میشود.
| فیلد | نوع | توضیحات |
|---|---|---|
| type | MetadataTypeEnum | نوع متادیتا (Bold, Italic, Link, ...) |
| from_index | int | اندیس شروع در متن (بر اساس UTF-16) |
| length | int | طول بخش مورد نظر |
| link_url | str | None | فقط در type=Link استفاده میشود |
| mention_text_user_id | str | None | فقط در type=MentionText استفاده میشود |