How to use the aiogram.types.fields.Field function in aiogram

To help you get started, we’ve selected a few aiogram examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github aiogram / aiogram / aiogram / types / fields.py View on Github external
def serialize(self, value):
        result = []
        serialize = super(ListField, self).serialize
        for item in value:
            result.append(serialize(item))
        return result

    def deserialize(self, value, parent=None):
        result = []
        deserialize = super(ListField, self).deserialize
        for item in value:
            result.append(deserialize(item, parent=parent))
        return result


class ListOfLists(Field):
    def serialize(self, value):
        result = []
        serialize = super(ListOfLists, self).serialize
        for row in value:
            row_result = []
            for item in row:
                row_result.append(serialize(item))
            result.append(row_result)
        return result

    def deserialize(self, value, parent=None):
        result = []
        deserialize = super(ListOfLists, self).deserialize
        if hasattr(value, '__iter__'):
            for row in value:
                row_result = []
github aiogram / aiogram / aiogram / types / inline_query.py View on Github external
from .inline_query_result import InlineQueryResult
from .location import Location
from .user import User


class InlineQuery(base.TelegramObject):
    """
    This object represents an incoming inline query.

    When the user sends an empty query, your bot could return some default or trending results.

    https://core.telegram.org/bots/api#inlinequery
    """
    id: base.String = fields.Field()
    from_user: User = fields.Field(alias='from', base=User)
    location: Location = fields.Field(base=Location)
    query: base.String = fields.Field()
    offset: base.String = fields.Field()

    async def answer(self,
                     results: typing.List[InlineQueryResult],
                     cache_time: typing.Union[base.Integer, None] = None,
                     is_personal: typing.Union[base.Boolean, None] = None,
                     next_offset: typing.Union[base.String, None] = None,
                     switch_pm_text: typing.Union[base.String, None] = None,
                     switch_pm_parameter: typing.Union[base.String, None] = None):
        """
        Use this method to send answers to an inline query.
        No more than 50 results per query are allowed.

        Source: https://core.telegram.org/bots/api#answerinlinequery
github aiogram / aiogram / aiogram / types / chat_member.py View on Github external
from . import base
from . import fields
from .user import User
from ..utils import helper


class ChatMember(base.TelegramObject):
    """
    This object contains information about one member of a chat.

    https://core.telegram.org/bots/api#chatmember
    """

    user: User = fields.Field(base=User)
    status: base.String = fields.Field()
    until_date: datetime.datetime = fields.DateTimeField()
    can_be_edited: base.Boolean = fields.Field()
    can_change_info: base.Boolean = fields.Field()
    can_post_messages: base.Boolean = fields.Field()
    can_edit_messages: base.Boolean = fields.Field()
    can_delete_messages: base.Boolean = fields.Field()
    can_invite_users: base.Boolean = fields.Field()
    can_restrict_members: base.Boolean = fields.Field()
    can_pin_messages: base.Boolean = fields.Field()
    can_promote_members: base.Boolean = fields.Field()
    is_member: base.Boolean = fields.Field()
    can_send_messages: base.Boolean = fields.Field()
    can_send_media_messages: base.Boolean = fields.Field()
    can_send_other_messages: base.Boolean = fields.Field()
    can_add_web_page_previews: base.Boolean = fields.Field()
github aiogram / aiogram / aiogram / types / animation.py View on Github external
class Animation(base.TelegramObject, mixins.Downloadable):
    """
    You can provide an animation for your game so that it looks stylish in chats
    (check out Lumberjack for an example).
    This object represents an animation file to be displayed in the message containing a game.

    https://core.telegram.org/bots/api#animation
    """

    file_id: base.String = fields.Field()
    thumb: PhotoSize = fields.Field(base=PhotoSize)
    file_name: base.String = fields.Field()
    mime_type: base.String = fields.Field()
    file_size: base.Integer = fields.Field()
github aiogram / aiogram / aiogram / types / sticker.py View on Github external
from . import base
from . import fields
from . import mixins
from .mask_position import MaskPosition
from .photo_size import PhotoSize


class Sticker(base.TelegramObject, mixins.Downloadable):
    """
    This object represents a sticker.

    https://core.telegram.org/bots/api#sticker
    """
    file_id: base.String = fields.Field()
    width: base.Integer = fields.Field()
    height: base.Integer = fields.Field()
    is_animated: base.Boolean = fields.Field()
    thumb: PhotoSize = fields.Field(base=PhotoSize)
    emoji: base.String = fields.Field()
    set_name: base.String = fields.Field()
    mask_position: MaskPosition = fields.Field(base=MaskPosition)
    file_size: base.Integer = fields.Field()
github aiogram / aiogram / aiogram / types / webhook_info.py View on Github external
import typing

from . import base
from . import fields


class WebhookInfo(base.TelegramObject):
    """
    Contains information about the current status of a webhook.

    https://core.telegram.org/bots/api#webhookinfo
    """
    url: base.String = fields.Field()
    has_custom_certificate: base.Boolean = fields.Field()
    pending_update_count: base.Integer = fields.Field()
    last_error_date: base.Integer = fields.Field()
    last_error_message: base.String = fields.Field()
    max_connections: base.Integer = fields.Field()
    allowed_updates: typing.List[base.String] = fields.ListField()
github aiogram / aiogram / aiogram / types / chat.py View on Github external
from .chat_permissions import ChatPermissions
from .chat_photo import ChatPhoto
from ..utils import helper
from ..utils import markdown


class Chat(base.TelegramObject):
    """
    This object represents a chat.

    https://core.telegram.org/bots/api#chat
    """
    id: base.Integer = fields.Field()
    type: base.String = fields.Field()
    title: base.String = fields.Field()
    username: base.String = fields.Field()
    first_name: base.String = fields.Field()
    last_name: base.String = fields.Field()
    all_members_are_administrators: base.Boolean = fields.Field()
    photo: ChatPhoto = fields.Field(base=ChatPhoto)
    description: base.String = fields.Field()
    invite_link: base.String = fields.Field()
    pinned_message: 'Message' = fields.Field(base='Message')
    permissions: ChatPermissions = fields.Field(base=ChatPermissions)
    sticker_set_name: base.String = fields.Field()
    can_set_sticker_set: base.Boolean = fields.Field()

    def __hash__(self):
        return self.id

    @property
    def full_name(self):
github aiogram / aiogram / aiogram / types / webhook_info.py View on Github external
import typing

from . import base
from . import fields


class WebhookInfo(base.TelegramObject):
    """
    Contains information about the current status of a webhook.

    https://core.telegram.org/bots/api#webhookinfo
    """
    url: base.String = fields.Field()
    has_custom_certificate: base.Boolean = fields.Field()
    pending_update_count: base.Integer = fields.Field()
    last_error_date: base.Integer = fields.Field()
    last_error_message: base.String = fields.Field()
    max_connections: base.Integer = fields.Field()
    allowed_updates: typing.List[base.String] = fields.ListField()
github aiogram / aiogram / aiogram / types / audio.py View on Github external
from . import base
from . import fields
from . import mixins
from .photo_size import PhotoSize


class Audio(base.TelegramObject, mixins.Downloadable):
    """
    This object represents an audio file to be treated as music by the Telegram clients.

    https://core.telegram.org/bots/api#audio
    """
    file_id: base.String = fields.Field()
    duration: base.Integer = fields.Field()
    performer: base.String = fields.Field()
    title: base.String = fields.Field()
    mime_type: base.String = fields.Field()
    file_size: base.Integer = fields.Field()
    thumb: PhotoSize = fields.Field(base=PhotoSize)